电子合同管理系统-对接文档
对接指南
API接口
认证
账户管理
新增开户或变更账户信息
请求授权企业静默签(线上)
请求授权企业静默签(线下)
线下授权文件上传
新增或变更企业代理签署人信息
请求授权企业代理签署人(线上)
请求授权企业代理签署人(线下)
获取账户
模版管理
添加-更新模版
预览模版-返回预览链接
预览模版-返回pdf文件流
合同管理
使用模版创建合同文档
根据合同文档编号查询合同文档的全部信息
取消合同文档签署
订阅接口
常见问题
回调/订阅通知
合同签署回调通知
企业信息变更订阅通知
本文档使用 MrDoc 发布
-
+
首页
企业信息变更订阅通知
# 说明 * 一个企业在本平台中只会存在一个账户,但是平台会有多个对接应用,对接应用与对接应用之间的数据相互隔离,例如应用A开户企业x,应用B也开户企业x,此时可能企业信息进行了变更(例如企业名称、法人信息、负责人信息等),因此平台采用订阅机制来实现账户变更的通知,如果对接应用存在账户管理功能,可以接受不接收并进行同步。 # 通知参数 | 参数名 | 类型 | 说明 | | --- | --- | --- | | subscribeType | string | 订阅类型,区分不同的订阅通知类型,参考`SubscribeType` | | key | string | 订阅key,与subscribeType组合判断当前的通知类型 | | content | object | 订阅通知内容 | # SubscribeType ## `CORPORATE_OPENED_ACCOUNT_CONTRACT_SIGNED` ### 说明 企业开户合同签署后进行通知 ### CONTENT参数 ```java @Schema @Data @TableName(autoResultMap = true) public class Account { @TableId(value = "id", type = IdType.ASSIGN_ID) @Schema(hidden = true) private Long id; /** * e签宝账户ID */ @Schema(description = "e签宝账户ID") private String esignAccountId; /** * 主体类型:PERSONAL,CORPORATE */ @Schema(description = "主体类型:PERSONAL,CORPORATE") private EntityType entityType; /** * 静默签署授权期限 */ @Schema(description = "静默签署授权期限") private LocalDate silentlyTerm; public boolean isTermOfValidity() { if (silentlyTerm == null) return false; LocalDate now = LocalDate.now(); return silentlyTerm.isEqual(now) || silentlyTerm.isAfter(now); } public boolean isSupportSilently(String scope) { if (isTermOfValidity() && StrUtil.isBlank(scope)) { return true; } return isTermOfValidity() && (CollUtil.isEmpty(silentlyScope) || CollUtil.containsAny(silentlyScope, Arrays.asList(scope, "ALL"))); } /** * 主体名称 */ @Schema(description = "主体名称") private String entityName; /** * 主体证件号 */ @Schema(description = "主体证件号") private String entityIdNumber; /** * 开户人手机号,将用于接收签署验证码 */ @Schema(description = "开户人手机号,将用于接收签署验证码") private String entityMobile; /** * entity_type为企业时使用,法人 姓名 */ @Schema(description = "entity_type为企业时使用,法人 姓名") private String userName; /** * entity_type为企业时使用,法人 身份证号 */ @Schema(description = "entity_type为企业时使用,法人身份证号") private String userIdNumber; /** * 企业负责人姓名 */ @Schema(description = "企业负责人姓名") @TableField(updateStrategy = FieldStrategy.ALWAYS) private String leaderName; /** * 企业负责人身份证号 */ @Schema(description = "企业负责人身份证号") @TableField(updateStrategy = FieldStrategy.ALWAYS) private String leaderIdNumber; /** * 企业负责人手机号 */ @Schema(description = "企业负责人手机号") @TableField(updateStrategy = FieldStrategy.ALWAYS) private String leaderMobile; /** * 状态:OPENED 已开户,UNOPENED 未开户 */ @Schema(description = "状态:OPENED 已开户,UNOPENED 未开户") private OpenStatus openStatus; @Schema(description = "开户合同文档编号") private String openCdsNo; @Schema(description = "开户合同授权到期日期") private LocalDate openCdsExpirationDate; @Schema(description = "是否已签署开户合同") private boolean openCdsSigned; @Schema(description = "开户合同附加参数") @TableField(typeHandler = JacksonTypeHandler.class) private Map<String, Object> openCdsAdditionalParams; /** * 附件 */ @Schema(description = "附件") @TableField(typeHandler = JacksonTypeHandler.class) private Attachments attachments; /** * 部门ID */ @Schema(description = "部门ID") @TableField(fill = FieldFill.INSERT) private Long deptId; /** * 公司ID */ @Schema(description = "公司ID") @TableField(fill = FieldFill.INSERT) private Long companyId; /** * 数据源 */ private String client; /** * 静默签授权业务范围 */ @Schema(description = "静默签授权业务范围,为空时表示授权所有") @TableField(typeHandler = JacksonTypeHandler.class) private List<String> silentlyScope = new ArrayList<>(); /** * 创建人 */ @Schema(description = "创建人") @TableField(fill = FieldFill.INSERT) @JsonInjectUser private String createBy; @TableField(fill = FieldFill.INSERT) @Schema(description = "") private LocalDateTime createTime; @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE) @Schema(description = "") private String updateBy; @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @Schema(description = "") private LocalDateTime updateTime; private boolean specialCases; } ``` ## `CORPORATE_AUTHORIZING_SILENTLY` ### 说明 企业静默签授权后进行通知 ### CONTENT参数 ```java @Schema @Data @TableName(autoResultMap = true) public class Account { @TableId(value = "id", type = IdType.ASSIGN_ID) @Schema(hidden = true) private Long id; /** * e签宝账户ID */ @Schema(description = "e签宝账户ID") private String esignAccountId; /** * 主体类型:PERSONAL,CORPORATE */ @Schema(description = "主体类型:PERSONAL,CORPORATE") private EntityType entityType; /** * 静默签署授权期限 */ @Schema(description = "静默签署授权期限") private LocalDate silentlyTerm; public boolean isTermOfValidity() { if (silentlyTerm == null) return false; LocalDate now = LocalDate.now(); return silentlyTerm.isEqual(now) || silentlyTerm.isAfter(now); } public boolean isSupportSilently(String scope) { if (isTermOfValidity() && StrUtil.isBlank(scope)) { return true; } return isTermOfValidity() && (CollUtil.isEmpty(silentlyScope) || CollUtil.containsAny(silentlyScope, Arrays.asList(scope, "ALL"))); } /** * 主体名称 */ @Schema(description = "主体名称") private String entityName; /** * 主体证件号 */ @Schema(description = "主体证件号") private String entityIdNumber; /** * 开户人手机号,将用于接收签署验证码 */ @Schema(description = "开户人手机号,将用于接收签署验证码") private String entityMobile; /** * entity_type为企业时使用,法人 姓名 */ @Schema(description = "entity_type为企业时使用,法人 姓名") private String userName; /** * entity_type为企业时使用,法人 身份证号 */ @Schema(description = "entity_type为企业时使用,法人身份证号") private String userIdNumber; /** * 企业负责人姓名 */ @Schema(description = "企业负责人姓名") @TableField(updateStrategy = FieldStrategy.ALWAYS) private String leaderName; /** * 企业负责人身份证号 */ @Schema(description = "企业负责人身份证号") @TableField(updateStrategy = FieldStrategy.ALWAYS) private String leaderIdNumber; /** * 企业负责人手机号 */ @Schema(description = "企业负责人手机号") @TableField(updateStrategy = FieldStrategy.ALWAYS) private String leaderMobile; /** * 状态:OPENED 已开户,UNOPENED 未开户 */ @Schema(description = "状态:OPENED 已开户,UNOPENED 未开户") private OpenStatus openStatus; @Schema(description = "开户合同文档编号") private String openCdsNo; @Schema(description = "开户合同授权到期日期") private LocalDate openCdsExpirationDate; @Schema(description = "是否已签署开户合同") private boolean openCdsSigned; @Schema(description = "开户合同附加参数") @TableField(typeHandler = JacksonTypeHandler.class) private Map<String, Object> openCdsAdditionalParams; /** * 附件 */ @Schema(description = "附件") @TableField(typeHandler = JacksonTypeHandler.class) private Attachments attachments; /** * 部门ID */ @Schema(description = "部门ID") @TableField(fill = FieldFill.INSERT) private Long deptId; /** * 公司ID */ @Schema(description = "公司ID") @TableField(fill = FieldFill.INSERT) private Long companyId; /** * 数据源 */ private String client; /** * 静默签授权业务范围 */ @Schema(description = "静默签授权业务范围,为空时表示授权所有") @TableField(typeHandler = JacksonTypeHandler.class) private List<String> silentlyScope = new ArrayList<>(); /** * 创建人 */ @Schema(description = "创建人") @TableField(fill = FieldFill.INSERT) @JsonInjectUser private String createBy; @TableField(fill = FieldFill.INSERT) @Schema(description = "") private LocalDateTime createTime; @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE) @Schema(description = "") private String updateBy; @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @Schema(description = "") private LocalDateTime updateTime; private boolean specialCases; } ``` ## `CORPORATE_AUTHORIZING_AGENT_SIGNATORY` ### 说明 企业经办人授权后进行通知 ### CONTENT参数 ```java /** * 企业代理签署人 */ @Schema(description = "企业代理签署人") @Data @TableName(value = "corporate_agent_signatory", autoResultMap = true) public class CorporateAgentSignatory implements Comparable<CorporateAgentSignatory> { @TableId(value = "id", type = IdType.ASSIGN_ID) @Schema(description = "") private Long id; /** * 企业编码 */ @TableField(value = "corporate_id_number") @Schema(description = "企业编码") private String corporateIdNumber; /** * 业务范围 */ @TableField(typeHandler = JacksonTypeHandler.class) @Schema(description = "业务范围,为空时表示授权所有") private List<String> scopes; @TableField(value = "`name`") @Schema(description = "") private String name; @TableField(value = "id_number") @Schema(description = "身份证号") private String idNumber; @TableField(value = "mobile") @Schema(description = "手机号") private String mobile; @Schema(description = "授权有效期") private LocalDate term; public boolean isTermOfValidity() { return term != null && (term.isAfter(LocalDate.now()) || term.isEqual(LocalDate.now())); } private AvailableStatus status; /** * 删除标识(0-正常,1-删除) */ @TableLogic @TableField(fill = FieldFill.INSERT) @Schema(description = "删除标记,1:已删除,0:正常") private String delFlag; @TableField(value = "create_by", fill = FieldFill.INSERT) @Schema(description = "") private String createBy; @TableField(value = "create_time", fill = FieldFill.INSERT) @Schema(description = "") private LocalDateTime createTime; @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE) @Schema(description = "") private String updateBy; @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @Schema(description = "") private LocalDateTime updateTime; @Schema(description = "角色") private Role role; @Schema(description = "附件") @TableField(typeHandler = JacksonTypeHandler.class) private Attachments attachments; @Schema(description = "授权书合同文档编号") private String authCdsNo; @Schema(description = "是否已签署授权合同") private boolean authCdsSigned; @Schema(description = "委托人授权合同授权到期日期") private LocalDate authCdsExpirationDate; @Schema(description = "授权书合同附加参数") @TableField(typeHandler = JacksonTypeHandler.class) private Map<String, Object> authCdsAdditionalParams; @Override public int compareTo(@NotNull CorporateAgentSignatory o) { int i = this.role.getPriority() - o.role.getPriority(); if (i == 0) { i = this.id.compareTo(o.id); } return i; } } ```
admin
2024年8月29日 11:06
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码