|
|
@@ -210,26 +210,26 @@ type APITemplate struct {
|
|
|
//
|
|
|
// 参数说明:https://preweb.asign.cn/platform/openDoc/docDetail?mid=createContract
|
|
|
type APICreateContractReq struct {
|
|
|
- ContractNo string `json:"contractNo" binding:"required"` // 合同ID,合同唯一编号
|
|
|
- ContractName string `json:"contractName" binding:"required"` // 合同名称
|
|
|
- ValidityTime int `json:"validityTime" structs:",omitempty"` // 合同签署剩余天数(系统当前时间+该天数=在此日期之前可以签署合同日期),【注】与合同有效截止日期必传其一,【例】可传剩余天数:15
|
|
|
- ValidityDate string `json:"validityDate" structs:",omitempty"` // 合同有效截止日期(在此日期之前可以签署合同,格式要求:yyyyMMddHHmmss),【注】与合同有效天数必传其一,【例】传值“20231207190000” 为:2023年12月07日19时00分00秒
|
|
|
- SignOrder int `json:"signOrder" binding:"required"` // 签约方式 1:无序签约(默认) 2:顺序签约
|
|
|
- ReadSeconds int `json:"readSeconds" structs:",omitempty"` // 强制阅读时间(秒)
|
|
|
- ReadType int `json:"readType" structs:",omitempty"` // 强制阅读设置 1:倒计时读秒方式 2:必须滑动到文件最底部(有多个文件务必逐个阅读) 3:必须点击打开查看(有多个文件务必逐个打开查看)【注】当readType不传值,仅readSeconds传值时,倒计时读秒是针对整体合同(不强制每个文件逐个阅读)。当readType传值1时,readSeconds也传值时,倒计时(要求每个文件逐个阅读)。当readType传值2或3时,readSeconds也传值时,倒计时读秒是针对整体合同(不强制每个文件逐个阅读)。
|
|
|
- NeedAgree int `json:"needAgree" structs:",omitempty"` // 同意协议开关:(开启后表示必须同意协议才可签署合同) 1 - 开,0 - 关(默认)
|
|
|
- AutoExpand int `json:"autoExpand" structs:",omitempty"` // 多文件时,是否自动展开文件列表 1 - 展开, 0 - 不展开(默认)
|
|
|
- NotifyUrl string `json:"notifyUrl" structs:",omitempty"` // 合同签署完成后(合同状态 status=2)回调通知地址,响应【"ok"】表示接收回调成功。
|
|
|
- CallbackUrl string `json:"callbackUrl" structs:",omitempty"` // 合同拒签或过期后(合同状态 status=3/4)回调通知地址,响应【"ok"】表示接收回调成功。
|
|
|
- UserNotifyUrl string `json:"userNotifyUrl" structs:",omitempty"` // 某个用户签署完成(用户签署状态 signStatus=2,参考 查询合同信息接口)之后回调地址,响应【"ok"】表示接收回调成功。
|
|
|
- RedirectUrl string `json:"redirectUrl" structs:",omitempty"` // 合同签署完成后同步回调地址: redirectUrl 若不为空,可以跳转业务方自己的前端过渡页面,实现业务方自己的逻辑。redirectUrl 为空,签署成功后,会回调小程序或app的方法。具体调用方法参考如下。
|
|
|
- RefuseOn int `json:"refuseOn" structs:",omitempty"` // 合同签署页退回按钮开关: 1 - 开启,0 - 关闭(默认)
|
|
|
- AutoContinue int `json:"autoContinue" structs:",omitempty"` // 当前签署人签署完成自动跳转至下一签署人签署开关(仅对顺序签合同生效): 1 - 开启,0 - 关闭(默认)
|
|
|
- ViewFlg int `json:"viewFlg" structs:",omitempty"` // 合同签署完是否允许可以通过链接查看合同内容: 1:不允许查看 不传值:可以查看(默认)
|
|
|
- RedirectReturnUrl string `json:"redirectReturnUrl" structs:",omitempty"` // 合同发起页面返回按钮跳转url 若不为空,可以跳转业务方自己的前端页面。
|
|
|
- RedirectCompletedUrl string `json:"redirectCompletedUrl" structs:",omitempty"` // 合同发起页面完成后跳转url 若不为空,可以跳转业务方自己的前端过渡页面,实现业务方自己的逻辑。
|
|
|
- ContractFiles []interface{} `json:"contractFiles" structs:",omitempty"` // 合同附件(与合同模板必传其一)(支持多文件上传)
|
|
|
- Templates []APITemplate `json:"templates" structs:",omitempty"` // 合同模板列表(与合同附件必传其一)
|
|
|
+ ContractNo string `json:"contractNo" structs:"contractNo" binding:"required"` // 合同ID,合同唯一编号
|
|
|
+ ContractName string `json:"contractName" structs:"contractName" binding:"required"` // 合同名称
|
|
|
+ ValidityTime int `json:"validityTime" structs:"validityTime,omitempty"` // 合同签署剩余天数(系统当前时间+该天数=在此日期之前可以签署合同日期),【注】与合同有效截止日期必传其一,【例】可传剩余天数:15
|
|
|
+ ValidityDate string `json:"validityDate" structs:"validityDate,omitempty"` // 合同有效截止日期(在此日期之前可以签署合同,格式要求:yyyyMMddHHmmss),【注】与合同有效天数必传其一,【例】传值“20231207190000” 为:2023年12月07日19时00分00秒
|
|
|
+ SignOrder int `json:"signOrder" structs:"signOrder" binding:"required"` // 签约方式 1:无序签约(默认) 2:顺序签约
|
|
|
+ ReadSeconds int `json:"readSeconds" structs:"readSeconds,omitempty"` // 强制阅读时间(秒)
|
|
|
+ ReadType int `json:"readType" structs:"readType,omitempty"` // 强制阅读设置 1:倒计时读秒方式 2:必须滑动到文件最底部(有多个文件务必逐个阅读) 3:必须点击打开查看(有多个文件务必逐个打开查看)【注】当readType不传值,仅readSeconds传值时,倒计时读秒是针对整体合同(不强制每个文件逐个阅读)。当readType传值1时,readSeconds也传值时,倒计时(要求每个文件逐个阅读)。当readType传值2或3时,readSeconds也传值时,倒计时读秒是针对整体合同(不强制每个文件逐个阅读)。
|
|
|
+ NeedAgree int `json:"needAgree" structs:"needAgree,omitempty"` // 同意协议开关:(开启后表示必须同意协议才可签署合同) 1 - 开,0 - 关(默认)
|
|
|
+ AutoExpand int `json:"autoExpand" structs:"autoExpand,omitempty"` // 多文件时,是否自动展开文件列表 1 - 展开, 0 - 不展开(默认)
|
|
|
+ NotifyUrl string `json:"notifyUrl" structs:"notifyUrl,omitempty"` // 合同签署完成后(合同状态 status=2)回调通知地址,响应【"ok"】表示接收回调成功。
|
|
|
+ CallbackUrl string `json:"callbackUrl" structs:"callbackUrl,omitempty"` // 合同拒签或过期后(合同状态 status=3/4)回调通知地址,响应【"ok"】表示接收回调成功。
|
|
|
+ UserNotifyUrl string `json:"userNotifyUrl" structs:"userNotifyUrl,omitempty"` // 某个用户签署完成(用户签署状态 signStatus=2,参考 查询合同信息接口)之后回调地址,响应【"ok"】表示接收回调成功。
|
|
|
+ RedirectUrl string `json:"redirectUrl" structs:"redirectUrl,omitempty"` // 合同签署完成后同步回调地址: redirectUrl 若不为空,可以跳转业务方自己的前端过渡页面,实现业务方自己的逻辑。redirectUrl 为空,签署成功后,会回调小程序或app的方法。具体调用方法参考如下。
|
|
|
+ RefuseOn int `json:"refuseOn" structs:"refuseOn,omitempty"` // 合同签署页退回按钮开关: 1 - 开启,0 - 关闭(默认)
|
|
|
+ AutoContinue int `json:"autoContinue" structs:"autoContinue,omitempty"` // 当前签署人签署完成自动跳转至下一签署人签署开关(仅对顺序签合同生效): 1 - 开启,0 - 关闭(默认)
|
|
|
+ ViewFlg int `json:"viewFlg" structs:"viewFlg,omitempty"` // 合同签署完是否允许可以通过链接查看合同内容: 1:不允许查看 不传值:可以查看(默认)
|
|
|
+ RedirectReturnUrl string `json:"redirectReturnUrl" structs:"redirectReturnUrl,omitempty"` // 合同发起页面返回按钮跳转url 若不为空,可以跳转业务方自己的前端页面。
|
|
|
+ RedirectCompletedUrl string `json:"redirectCompletedUrl" structs:"redirectCompletedUrl,omitempty"` // 合同发起页面完成后跳转url 若不为空,可以跳转业务方自己的前端过渡页面,实现业务方自己的逻辑。
|
|
|
+ ContractFiles []interface{} `json:"contractFiles" structs:"contractFiles,omitempty"` // 合同附件(与合同模板必传其一)(支持多文件上传)
|
|
|
+ Templates []APITemplate `json:"templates" structs:"templates,omitempty"` // 合同模板列表(与合同附件必传其一)
|
|
|
}
|
|
|
|
|
|
// APICreateContractRsp 上传待签署文件出参
|
|
|
@@ -240,16 +240,16 @@ type APICreateContractRsp struct {
|
|
|
|
|
|
// APISignStrategy 签章策略
|
|
|
type APISignStrategy struct {
|
|
|
- AttachNo int `json:"attachNo" binding:"required"` // 附件编号 注:对应上传待签署文件接口(createContract)中,合同附件(contractFiles)或合同模板(templates)参数中的List排序序号(例如:1,2,3...)
|
|
|
- LocationMode int `json:"locationMode" binding:"required"` // 定位方式:2:坐标签章 3:关键字签章 4:模板坐标签章
|
|
|
- CanDrag int `json:"canDrag" structs:",omitempty"` // 签章位置是否可以拖动 1:可以, 其他值:不可以
|
|
|
- SignKey string `json:"signKey" structs:",omitempty"` // 关键字或签署区名称key(定位方式为关键字签章时此处需传定位关键字,定位方式为模板坐标签章时此处需传模板中设置的签署区名称)
|
|
|
- SignType int `json:"signType" structs:",omitempty"` // 印章类型:1:签名/签章(默认) 2:时间戳
|
|
|
- SignPage int `json:"signPage" structs:",omitempty"` // 签章页码(定位方式为坐标签章时必传)
|
|
|
- SignX float64 `json:"signX" structs:",omitempty"` // 签章位置与当前签约文件的左内边距与当前签约文件宽度的比例(精确到小数点后2位)(定位方式为坐标签章时必传)
|
|
|
- SignY float64 `json:"signY" structs:",omitempty"` // 签章位置与当前签约文件的上内边距与当前签约文件高度的比例(精确到小数点后2位)(定位方式为坐标签章时必传)
|
|
|
- OffsetX float64 `json:"offsetX" structs:",omitempty"` // 坐标偏移量(像素PX)
|
|
|
- OffsetY float64 `json:"offsetY" structs:",omitempty"` // 坐标偏移量(像素PX)
|
|
|
+ AttachNo int `json:"attachNo" structs:"attachNo" binding:"required"` // 附件编号 注:对应上传待签署文件接口(createContract)中,合同附件(contractFiles)或合同模板(templates)参数中的List排序序号(例如:1,2,3...)
|
|
|
+ LocationMode int `json:"locationMode" structs:"locationMode" binding:"required"` // 定位方式:2:坐标签章 3:关键字签章 4:模板坐标签章
|
|
|
+ CanDrag int `json:"canDrag" structs:"canDrag,omitempty"` // 签章位置是否可以拖动 1:可以, 其他值:不可以
|
|
|
+ SignKey string `json:"signKey" structs:"signKey,omitempty"` // 关键字或签署区名称key(定位方式为关键字签章时此处需传定位关键字,定位方式为模板坐标签章时此处需传模板中设置的签署区名称)
|
|
|
+ SignType int `json:"signType" structs:"signType,omitempty"` // 印章类型:1:签名/签章(默认) 2:时间戳
|
|
|
+ SignPage int `json:"signPage" structs:"signPage,omitempty"` // 签章页码(定位方式为坐标签章时必传)
|
|
|
+ SignX float64 `json:"signX" structs:"signX,omitempty"` // 签章位置与当前签约文件的左内边距与当前签约文件宽度的比例(精确到小数点后2位)(定位方式为坐标签章时必传)
|
|
|
+ SignY float64 `json:"signY" structs:"signY,omitempty"` // 签章位置与当前签约文件的上内边距与当前签约文件高度的比例(精确到小数点后2位)(定位方式为坐标签章时必传)
|
|
|
+ OffsetX float64 `json:"offsetX" structs:"offsetX,omitempty"` // 坐标偏移量(像素PX)
|
|
|
+ OffsetY float64 `json:"offsetY" structs:"offsetY,omitempty"` // 坐标偏移量(像素PX)
|
|
|
}
|
|
|
|
|
|
// APIReceiverFillStrategy 接收方模板填充策略
|
|
|
@@ -266,28 +266,28 @@ type APIReceiverFillStrategy struct {
|
|
|
//
|
|
|
// 参数说明:https://preweb.asign.cn/platform/openDoc/docDetail?mid=addSigner
|
|
|
type APIAddSignerReq struct {
|
|
|
- ContractNo string `json:"contractNo" binding:"required"` // 合同唯一编码 (40位之内)
|
|
|
- Account string `json:"account" binding:"required"` // 用户唯一识别码
|
|
|
- SignType int `json:"signType" binding:"required"` // 签约方式:2:无感知签约(需要开通权限) 3:有感知签约
|
|
|
- SealNo string `json:"sealNo" structs:",omitempty"` // 印章编号【注】若不传值,则由当前主体的默认印章进行签署
|
|
|
- AuthSignAccount string `json:"authSignAccount" structs:",omitempty"` // 指定授权签约用户,该用户需要有印章编号【sealNo】的有效授权记录,如若不指定则印章的默认使用者进行签署,如无默认使用者,则由当前主体【account】进行签署
|
|
|
- NoticeMobile string `json:"noticeMobile" structs:",omitempty"` // 通知手机号(用于接收合同签署链接的通知短信)
|
|
|
- NoticeEmail string `json:"noticeEmail" structs:",omitempty"` // 通知邮箱号(用于接收合同签署链接的通知短信)
|
|
|
- SignOrder string `json:"signOrder" structs:",omitempty"` // 使用顺序签约时签约顺序编号(从1开始),无序签约都为1
|
|
|
- IsNotice int `json:"isNotice" structs:",omitempty"` // 是否接收合同签署链接的短信通知,优先级高于添加用户接口同名参数:0 - 否(默认),1 - 是
|
|
|
- ValidateType int `json:"validateType" structs:",omitempty"` // 签署方式指定:(从以下分类中指定一种) 1:短信验证码签约(支持企业和个人) 2:签约密码签约(支持企业和个人) 3:人脸识别签约(支持企业和个人) 4:手写签名(不推荐,仅限个人,需要开通权限) 5:宋体章签名(不推荐,仅限个人,需要开通权限) 6:手写识别签名+短信签约(仅限个人) 7:手写签名+短信签约(仅限个人) 8:手写签名+人脸识别签约(仅限个人) 9:手写识别签名+人脸识别签约(仅限个人) 10:手写签名 + 认证意愿合一(仅支持个人陌生用户) 11:手写签名识别 + 认证意愿合一(仅支持个人陌生用户) 12:宋体章 + 认证意愿合一(仅支持个人陌生用户) 13:视频双录核身签约(需要开通权限)
|
|
|
- FaceAuthMode int `json:"faceAuthMode" structs:",omitempty"` // 人脸识别方式:1:支付宝(不可在支付宝小程序中接入) 2:H5(默认) 4:微信小程序(支持在微信小程序内唤起人脸识别,需联系商务人员开启权限后使用) 5:支付宝小程序(支持在支付宝小程序内唤起人脸识别,需联系商务人员开启权限后使用) 【注】签署方式包含人脸(3,8,9)时,可指定人脸识别方式,不传默认为H5
|
|
|
- ValidateTypeList string `json:"validateTypeList" structs:",omitempty"` // 组合签署方式指定:(从以上分类中指定多种以逗号间隔,示例:1,2,3)。允许开发者可以自主控制展示几种签署方式,让签约用户选择。【注】 validateTypeList和validateType都有传值时,签署方式按照validateTypeList指定
|
|
|
- AutoSwitch int `json:"autoSwitch" structs:",omitempty"` // 自动切换签约方式:开发者可以自主控制手写内容识别和人脸刷脸识别多次不通过时,是否允许用户切换方式 1 - 仅手写识别允许切换(默认) 2 - 仅人脸识别允许切换 3 - 全部允许 0 - 全部不允许 【注】手写识别三次失败时,会允许用户切换成宋体印章。人脸识别三次不通过,允许切换为短信验证码方式。
|
|
|
- IsNoticeComplete int `json:"isNoticeComplete" structs:",omitempty"` // 合同签署完成后是否通知用户:1 - 是,0 - 否(默认)
|
|
|
- WaterMark int `json:"waterMark" structs:",omitempty"` // 是否在距底部10px中央位置添加日期水印: 1 - 是,0 - 否(默认)
|
|
|
- AutoSms int `json:"autoSms" structs:",omitempty"` // 是否自动触发验证码短信:(仅短信验证码方式签署时生效)1:是(默认) 0:否(需要用户手动点击“获取验证码”触发)
|
|
|
- CustomSignFlag int `json:"customSignFlag" structs:",omitempty"` // 签章位置策略:0(默认)- 由该接口的参数signStrategyList或signStrikeList指定 1 - 签署用户在签署时自行拖动签章位置 2 - 签署用户在签署时自行拖动签章位置和骑缝章位置
|
|
|
- IsIframe int `json:"isIframe" structs:",omitempty"` // 如果认证页面使用了iframe,且签约涉及人脸识别,则需传入此参数 1.是 0.否(默认) 接入方需要给iframe开启相机权限,方可正常使用实时检测人脸核身功能<iframe allow="camera;"></iframe>
|
|
|
- SignStrategyList []APISignStrategy `json:"signStrategyList" binding:"required"` // 签章策略
|
|
|
- SignStrikeList []interface{} `json:"signStrikeList" structs:",omitempty"` // 骑缝章策略
|
|
|
- ReceiverFillStrategyList []APIReceiverFillStrategy `json:"receiverFillStrategyList" structs:",omitempty"` // 接收方模板填充策略
|
|
|
- AuthConfig interface{} `json:"authConfig" structs:",omitempty"` // 添加陌生签署人认证参数配置
|
|
|
+ ContractNo string `json:"contractNo" structs:"contractNo" binding:"required"` // 合同唯一编码 (40位之内)
|
|
|
+ Account string `json:"account" structs:"account" binding:"required"` // 用户唯一识别码
|
|
|
+ SignType int `json:"signType" structs:"signType" binding:"required"` // 签约方式:2:无感知签约(需要开通权限) 3:有感知签约
|
|
|
+ SealNo string `json:"sealNo" structs:"sealNo,omitempty"` // 印章编号【注】若不传值,则由当前主体的默认印章进行签署
|
|
|
+ AuthSignAccount string `json:"authSignAccount" structs:"authSignAccount,omitempty"` // 指定授权签约用户,该用户需要有印章编号【sealNo】的有效授权记录,如若不指定则印章的默认使用者进行签署,如无默认使用者,则由当前主体【account】进行签署
|
|
|
+ NoticeMobile string `json:"noticeMobile" structs:"noticeMobile,omitempty"` // 通知手机号(用于接收合同签署链接的通知短信)
|
|
|
+ NoticeEmail string `json:"noticeEmail" structs:"noticeEmail,omitempty"` // 通知邮箱号(用于接收合同签署链接的通知短信)
|
|
|
+ SignOrder string `json:"signOrder" structs:"signOrder,omitempty"` // 使用顺序签约时签约顺序编号(从1开始),无序签约都为1
|
|
|
+ IsNotice int `json:"isNotice" structs:"isNotice,omitempty"` // 是否接收合同签署链接的短信通知,优先级高于添加用户接口同名参数:0 - 否(默认),1 - 是
|
|
|
+ ValidateType int `json:"validateType" structs:"validateType,omitempty"` // 签署方式指定:(从以下分类中指定一种) 1:短信验证码签约(支持企业和个人) 2:签约密码签约(支持企业和个人) 3:人脸识别签约(支持企业和个人) 4:手写签名(不推荐,仅限个人,需要开通权限) 5:宋体章签名(不推荐,仅限个人,需要开通权限) 6:手写识别签名+短信签约(仅限个人) 7:手写签名+短信签约(仅限个人) 8:手写签名+人脸识别签约(仅限个人) 9:手写识别签名+人脸识别签约(仅限个人) 10:手写签名 + 认证意愿合一(仅支持个人陌生用户) 11:手写签名识别 + 认证意愿合一(仅支持个人陌生用户) 12:宋体章 + 认证意愿合一(仅支持个人陌生用户) 13:视频双录核身签约(需要开通权限)
|
|
|
+ FaceAuthMode int `json:"faceAuthMode" structs:"faceAuthMode,omitempty"` // 人脸识别方式:1:支付宝(不可在支付宝小程序中接入) 2:H5(默认) 4:微信小程序(支持在微信小程序内唤起人脸识别,需联系商务人员开启权限后使用) 5:支付宝小程序(支持在支付宝小程序内唤起人脸识别,需联系商务人员开启权限后使用) 【注】签署方式包含人脸(3,8,9)时,可指定人脸识别方式,不传默认为H5
|
|
|
+ ValidateTypeList string `json:"validateTypeList" structs:"validateTypeList,omitempty"` // 组合签署方式指定:(从以上分类中指定多种以逗号间隔,示例:1,2,3)。允许开发者可以自主控制展示几种签署方式,让签约用户选择。【注】 validateTypeList和validateType都有传值时,签署方式按照validateTypeList指定
|
|
|
+ AutoSwitch int `json:"autoSwitch" structs:"autoSwitch,omitempty"` // 自动切换签约方式:开发者可以自主控制手写内容识别和人脸刷脸识别多次不通过时,是否允许用户切换方式 1 - 仅手写识别允许切换(默认) 2 - 仅人脸识别允许切换 3 - 全部允许 0 - 全部不允许 【注】手写识别三次失败时,会允许用户切换成宋体印章。人脸识别三次不通过,允许切换为短信验证码方式。
|
|
|
+ IsNoticeComplete int `json:"isNoticeComplete" structs:"isNoticeComplete,omitempty"` // 合同签署完成后是否通知用户:1 - 是,0 - 否(默认)
|
|
|
+ WaterMark int `json:"waterMark" structs:"waterMark,omitempty"` // 是否在距底部10px中央位置添加日期水印: 1 - 是,0 - 否(默认)
|
|
|
+ AutoSms int `json:"autoSms" structs:"autoSms,omitempty"` // 是否自动触发验证码短信:(仅短信验证码方式签署时生效)1:是(默认) 0:否(需要用户手动点击“获取验证码”触发)
|
|
|
+ CustomSignFlag int `json:"customSignFlag" structs:"customSignFlag,omitempty"` // 签章位置策略:0(默认)- 由该接口的参数signStrategyList或signStrikeList指定 1 - 签署用户在签署时自行拖动签章位置 2 - 签署用户在签署时自行拖动签章位置和骑缝章位置
|
|
|
+ IsIframe int `json:"isIframe" structs:"isIframe,omitempty"` // 如果认证页面使用了iframe,且签约涉及人脸识别,则需传入此参数 1.是 0.否(默认) 接入方需要给iframe开启相机权限,方可正常使用实时检测人脸核身功能<iframe allow="camera;"></iframe>
|
|
|
+ SignStrategyList []APISignStrategy `json:"signStrategyList" structs:"signStrategyList" binding:"required"` // 签章策略
|
|
|
+ SignStrikeList []interface{} `json:"signStrikeList" structs:"signStrikeList,omitempty"` // 骑缝章策略
|
|
|
+ ReceiverFillStrategyList []APIReceiverFillStrategy `json:"receiverFillStrategyList" structs:"receiverFillStrategyList,omitempty"` // 接收方模板填充策略
|
|
|
+ AuthConfig interface{} `json:"authConfig" structs:"authConfig,omitempty"` // 添加陌生签署人认证参数配置
|
|
|
}
|
|
|
|
|
|
// APISignUserDetail 合同用户信息
|