开放签电子签章回调通知服务使用技巧:区分合同状态与事件类型

举报
大犀牛牛 发表于 2025/08/22 11:22:34 2025/08/22
【摘要】 在集成开放签电子签章回调通知服务时,许多用户容易混淆"合同状态(contractStatus)"和"事件类型(callbackType)"这两个概念。本文将通过实际案例详细解释它们的区别,帮助您正确理解和使用这两个参数。

回调通知服务使用技巧:区分合同状态与事件类型

在集成开放签回调通知服务时,许多用户容易混淆"合同状态(contractStatus)"和"事件类型(callbackType)"这两个概念。本文将通过实际案例详细解释它们的区别,帮助您正确理解和使用这两个参数。

核心概念解析

合同状态 (contractStatus) - 合同的整体状态

合同状态表示整个合同在某个时刻所处的整体状态,它描述的是合同的生命周期阶段。例如:签署中、已拒签、已完成等。

事件类型 (callbackType) - 用户的具体操作

事件类型表示在合同签署流程中发生的具体操作或事件以及触发关联事件,它描述的是某个用户或者程序执行的具体动作。例如:提交签署、拒签、完成签署等。

形象化比喻

可以把合同状态比作一部电影的播放状态(未开始、播放中、已结束),而事件类型则是观众的具体操作(暂停、快进、重新播放)。每次操作都可能影响电影的播放状态,但操作本身和状态是两个不同的概念。

合同状态详解

状态 说明
DRAFT 草稿
DELETED 已删除
WRITING 填写中
REFUSAL_WRITE 已拒填
SIGNING 签署中
REFUSAL_SIGN 已拒签
EXPIRED 已失效
RECALLED 已撤回
COMPLETED 已完成

事件类型详解

事件 说明
SEND_SIGNING 发起签署
SUBMIT_WRITE 填写
REFUSAL_WRITE 拒填
SUBMIT_SIGN 签署
REFUSAL_SIGN 拒签
RECALLED 合同撤销
DELETE 删除合同
COMPLETE 完成签署
EXPIRED 合同过期
SIGN_FAILED 签署失败
DOCUMENT_DELAY 修改签署截止时间

实际应用案例

案例一:企业合作协议签署

某公司需要与合作伙伴签署合作协议,流程如下:

  1. 发起合同

    • 事件类型: SEND_SIGNING
    • 合同状态: SIGNING
    • 说明: 合同被正式发起,进入签署状态
  2. 甲方签署

    • 事件类型: SUBMIT_SIGN
    • 合同状态: SIGNING
    • 说明: 甲方完成签署,但合同仍处于签署中(因乙方未签)
  3. 乙方签署

    • 事件类型: SUBMIT_SIGN
    • 合同状态: COMPLETED
    • 说明: 乙方完成签署,合同状态变为已完成
  4. 签署完成

    • 事件类型: COMPLETE
    • 合同状态: COMPLETED
    • 说明: 所有签署方完成签署,合同状态变为已完成

案例二:租房合同拒签场景

  1. 发起合同

    • 事件类型: SEND_SIGNING
    • 合同状态: SIGNING
  2. 租客拒签

    • 事件类型: REFUSAL_SIGN
    • 合同状态: REFUSAL_SIGN
    • 说明: 租客拒绝签署,合同整体状态直接变为已拒签
  3. 合同拒签

    • 合同状态: REFUSAL_SIGN
    • 说明: 租客拒绝签署,合同整体状态直接变为已拒签

在业务系统中的正确应用

正确做法

展示合同进度(使用合同状态)

// 根据合同状态展示整体进度
switch(contractStatus) {
  case 'SIGNING':
    showStatus('签署中');
    break;
  case 'COMPLETED':
    showStatus('已完成');
    break;
  case 'REFUSAL_SIGN':
    showStatus('已拒签');
    break;
}

记录操作日志(使用事件类型)

// 根据事件类型记录详细操作
switch(callbackType) {
  case 'SUBMIT_SIGN':
    addLog('某个用户已完成签署');
    break;
  case 'REFUSAL_SIGN':
    addLog('某个用户拒绝签署');
    break;
}

常见错误

错误地将事件类型用于判断合同状态:

// 错误示例
if (callbackType === 'SUBMIT_SIGN') {
  // 仅因有人签署就认为合同完成,这是错误的
  showStatus('已完成');
}

使用建议

  1. 明确区分用途:合同状态用于展示合同整体进度,事件类型用于记录详细操作日志
  2. 关注状态转换:理解不同事件如何影响合同状态的转换
  3. 处理异常情况:特别注意REFUSAL_SIGNSIGN_FAILED等异常事件类型
  4. 完整记录信息:既要关注合同状态变化,也要记录具体事件,构建完整的操作轨迹

通过正确理解和使用合同状态与事件类型,您可以构建更准确、更可靠的合同管理系统,为用户提供更好的体验。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。