apiModels.go 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. package asign
  2. type APIReqData interface {
  3. interface{} | APIPersonBankCard4Req | APICompanyBankCard4Req | APICaptchaResendReq | APICaptchaVerifyReq | APIGetUserReq | APIAddPersonalUserReq | APIAddEnterpriseUserReq | APITemplateListReq | APICreateContractReq | APIAddSignerReq | APIContractStatusReq | APIDownloadContractReq | APICreateSealReq | APIModifySealReq
  4. }
  5. type APIReq[T APIReqData] struct {
  6. Data T // 请求数据
  7. }
  8. type APIRspData interface {
  9. interface{} | APIBankCard4Rsp | APIAddUserRsp | APICaptchaVerifyRsp | APIGetUserRsp
  10. }
  11. type APIRsp[T APIRspData] struct {
  12. Code int `json:"code"` // 响应码,100000表示成功,其他表示异常
  13. Msg string `json:"msg"` // 响应信息
  14. Data T // 响应数据
  15. }
  16. // APIPersonBankCard4Req 个人银行卡四要素认证入参
  17. type APIPersonBankCard4Req struct {
  18. RealName string `json:"realName" binding:"required"` // 真实姓名
  19. IdCardNo string `json:"idCardNo" binding:"required"` // 身份证号
  20. BankCard string `json:"bankCard" binding:"required"` // 银行卡号(仅限印有“银联”字样的银行卡)
  21. Mobile string `json:"mobile" binding:"required"` // 手机号码(限中国大陆11位手机号)
  22. }
  23. // APICompanyBankCard4Req 企业法人银行卡四要素认证入参
  24. type APICompanyBankCard4Req struct {
  25. CompanyName string `json:"companyName" binding:"required"` // 企业名称
  26. CreditCode string `json:"creditCode" binding:"required"` // 社会统一信用代码
  27. RealName string `json:"realName" binding:"required"` // 法人姓名
  28. IdCardNo string `json:"idCardNo" binding:"required"` // 法人身份证号
  29. BankCard string `json:"bankCard" binding:"required"` // 法人银行卡号(仅限印有“银联”字样的银行卡)
  30. Mobile string `json:"mobile" binding:"required"` // 法人手机号(限中国大陆11位手机号)
  31. }
  32. // APIBankCard4Rsp 银行卡四要素认证出参
  33. type APIBankCard4Rsp struct {
  34. Result int `json:"result"` // 认证结果 0.暂无结果/认证中 1.成功 2.失败
  35. SerialNo string `json:"serialNo"` // 认证流水号
  36. Type string `json:"type"` // 认证类型
  37. }
  38. type APICaptchaResendReq struct {
  39. SerialNo string `json:"serialNo" binding:"required"` // 认证流水号
  40. }
  41. // CaptchaVerifyReq 认证验证码校验入参
  42. type APICaptchaVerifyReq struct {
  43. SerialNo string `json:"serialNo" binding:"required"` // 认证流水号
  44. Captcha string `json:"captcha" binding:"required"` // 短信验证码
  45. }
  46. // CaptchaVerifyRsp 认证验证码校验出参
  47. type APICaptchaVerifyRsp struct {
  48. Result int `json:"result"` // 认证结果 0.暂无结果/认证中 1.成功 2.失败
  49. SerialNo string `json:"serialNo"` // 认证流水号
  50. Type string `json:"type"` // 认证类型
  51. }
  52. // APIGetUserReq 查询用户信息入参
  53. type APIGetUserReq struct {
  54. Account string `json:"account" structs:",omitempty"` // 用户唯一识别码
  55. CreditCode string `json:"creditCode" structs:",omitempty"` // 社会统一信用代码
  56. IdCard string `json:"idCard" structs:",omitempty"` // 证件号码
  57. }
  58. // APIGetUserRsp 查询用户信息出参
  59. type APIGetUserRsp struct {
  60. Account string `json:"account"` // 用户账号,用户唯一识别码
  61. Name string `json:"name"` // 个人用户姓名/企业法人姓名
  62. CompanyName string `json:"companyName"` // 企业名称
  63. IdCard string `json:"idCard"` // 个人用户证件号/企业法人身份证号
  64. Mobile string `json:"mobile"` // 用户手机号(签约短信通知手机号)
  65. Email string `json:"email"` // 用户邮箱号
  66. UserType int `json:"userType"` // 用户类型: 1:企业 2:个人
  67. CreditCode string `json:"creditCode"` // 社会统一信用代码
  68. BankCard string `json:"bankCard"` // 用户银行卡号
  69. PortVersion int `json:"portVersion"` // 用户添加时调用的接口版本: 0:历史接口 1:V2版本接口
  70. IdentifyType int `json:"identifyType"` // 认证类型
  71. AuthType int `json:"authType"` // 认证方式: 当portVersion=0 历史接口时 0:非强制认证 1:爱签平台强制认证 当portVersion=1 (V2)版本接口时 0:平台方自行认证 1:爱签平台认证
  72. CreateTime string `json:"createTime"` // 创建时间
  73. IdentifyTime string `json:"identifyTime"` // 认证时间
  74. }
  75. // AddPersonalUserReq 添加个人用户(V2)入参
  76. type APIAddPersonalUserReq struct {
  77. Account string `json:"account" binding:"required"` // 用户唯一识别码(请转入UserID)
  78. SerialNo string `json:"serialNo" structs:",omitempty"` // 实名认证流水号
  79. Name string `json:"name" structs:",omitempty"` // 用户姓名
  80. IdCard string `json:"idCard" structs:",omitempty"` // 个人身份证、台胞证、港澳通行证等证件号
  81. IdCardType int `json:"idCardType" structs:",omitempty"` // 证件类型 1:居民身份证 2:台湾居民来往内地通行证 3:港澳居民往来内地通行证 10:武装警察身份证 11:军人身份证 15:警察(警官)证 21:外国人永久居留证 23:护照
  82. Mobile string `json:"mobile" structs:",omitempty"` // 手机号码
  83. SignPwd string `json:"signPwd" structs:",omitempty"` // 签约密码(MTP2登录密码加密方式),如果为空将随机生成签约密码(当签约方式为“签约密码签约”时会使用到,可通过重置接口修改)
  84. IsSignPwdNotice int `json:"isSignPwdNotice" structs:",omitempty"` // 是否将签约密码以短信形式通知用户 0:不通知(默认) 1:通知
  85. IsNotice int `json:"isNotice" structs:",omitempty"` // 用户发起合同或需要签署时是否进行短信通知 0:否(默认) 1:是
  86. }
  87. // APIAddEnterpriseUserReq 添加企业用户(V2)入参
  88. type APIAddEnterpriseUserReq struct {
  89. Account string `json:"account" binding:"required"` // 用户唯一识别码(可用证件号、手机号等具有唯一属性的标识作为参数传递)
  90. SerialNo string `json:"serialNo" structs:",omitempty"` // 实名认证流水号(若您希望不传此值,由您自行完成认证。请联系商务人员开通权限)
  91. CompanyName string `json:"companyName" structs:",omitempty"` // 企业名称
  92. CreditCode string `json:"creditCode" structs:",omitempty"` // 企业证件号
  93. CreditType int `json:"creditType" structs:",omitempty"` // 企业证件类型, 不传默认为1; 1:统一社会信用代码 2:表示其他证件类型
  94. Name string `json:"name" structs:",omitempty"` // 企业法人姓名
  95. IdCard string `json:"idCard" structs:",omitempty"` // 法人身份证、台胞证、港澳通行证等证件号
  96. IdCardType int `json:"idCardType" structs:",omitempty"` // 证件类型, 不传默认为1; 1:居民身份证 2:台湾居民来往大陆通行证 3:港澳居民来往内地通行证等...
  97. Mobile string `json:"mobile" structs:",omitempty"` // 签约手机,该手机号将用于企业用户合同签署时短信验证,请确保真实有效
  98. ContactName string `json:"contactName" structs:",omitempty"` // 联系人姓名(与企业的法定代表人可以是同一个人)
  99. ContactIdCard string `json:"contactIdCard" structs:",omitempty"` // 联系人身份证号(与企业的法定代表人可以是同一个人)
  100. SignPwd string `json:"signPwd" structs:",omitempty"` // 签约密码明文,如果为空我方将随机生成签约密码(当签约方式为“签约密码签约”时会使用到,可通过重置接口修改)
  101. IsSignPwdNotice int `json:"isSignPwdNotice" structs:",omitempty"` // 是否将签约密码以短信形式通知用户: 0-不通知(默认), 1-通知
  102. IsNotice int `json:"isNotice" structs:",omitempty"` // 用户发起合同或需要签署时是否进行短信通知: 0-否(默认), 1-是
  103. }
  104. // APIAddUserRsp 添加用户(V2)出参(包括个人和企业)
  105. type APIAddUserRsp struct {
  106. SealNo string `json:"sealNo" binding:"required"` // 生成默认印章编号
  107. }
  108. // APITemplateListReq 查询模板列表入参
  109. type APITemplateListReq struct {
  110. Page int `json:"page"` // 页数(不传默认1)
  111. Rows int `json:"rows"` // 每页数据量(不传默认10)
  112. TemplateIdent string `json:"templateIdent"` // 模板编号
  113. }
  114. // APITemplateInfo 模板信息
  115. type APITemplateInfo struct {
  116. TemplateIdent string `json:"templateIdent"` // 模板编号
  117. TemplateName string `json:"templateName"` // 模板名称
  118. TemplateType int `json:"templateType"` // 模板类型:1:word 2:pdf 3:html
  119. Page int `json:"page"` // 模板页数
  120. Sponsor bool `json:"sponsor"` // 是否含发起方填写
  121. ReceiverFill bool `json:"receiverFill"` // 是否含接收方填写
  122. Param bool `json:"param"` // 是否含填充参数
  123. Sign bool `json:"sign"` // 是否含签约参数
  124. Status int `json:"status"` // 模板状态:0:删除 1:使用中 2:停用
  125. Url string `json:"url"` // 模板预览地址(有效时间30分钟)
  126. SyncUrl string `json:"syncUrl"` // 同步模板预览地址(有效时间30分钟)
  127. SyncStatus int `json:"syncStatus"` // 模板同步状态:0:未同步 1:已同步 2:同步过时【注】此字段逻辑不针对老数据,当旧的模板再次同步后进入此逻辑
  128. CreateTime string `json:"createTime"` // 创建时间
  129. ModifyTime string `json:"modifyTime"` // 更新时间
  130. }
  131. // APITemplateListRsp 查询模板列表出参
  132. type APITemplateListRsp struct {
  133. Total int `json:"total"` // 总模板数量
  134. PageNum int `json:"pageNum"` // 页码
  135. PageSize int `json:"pageSize"` // 每页数据量
  136. Size int `json:"size"` // 当页数据量
  137. Pages int `json:"pages"` // 总页数
  138. List []APITemplateInfo `json:"list"` // 模板列表
  139. }
  140. // APIFillData 单行文本、多行文本、日期、身份证类型参数填充。
  141. type APIFillData struct {
  142. DataKey string `json:"dataKey" binding:"required"` // 参数名称
  143. Value string `json:"value" binding:"required"` // 填充值
  144. }
  145. // APIComponentData 单选、复选、勾选、图片类型参数填充
  146. type APIComponentData struct {
  147. Type int `json:"type" binding:"required"` // 组件类型: 2:单选 3:勾选 9:复选 11:图片
  148. Keyword string `json:"keyword" binding:"required"` // 参数名称
  149. DefaultValue string `json:"defaultValue" structs:",omitempty"` // 当填充类型为勾选(type=3)时填写: Yes:选中 Off:不选中
  150. Options map[string]interface{} `json:"options" structs:",omitempty"` // 选项内容
  151. ImageByte []byte `json:"imageByte" structs:",omitempty"` // 图片资源
  152. }
  153. // APItableData 表格填充数据
  154. type APItableData struct {
  155. Keyword string `json:"keyword" binding:"required"` // 表名称
  156. RowValues []map[string]interface{} `json:"rowValues"` // 表格填充值
  157. }
  158. // APITemplate 合同模板
  159. type APITemplate struct {
  160. TemplateNo string `json:"templateNo" binding:"required"` // 合同模板编号
  161. ContractNo string `json:"contractNo" structs:",omitempty"` // 合同编号(此处可传已完成签署的合同编号,实现追加签章的场景)
  162. FillData APIFillData `json:"fillData" structs:",omitempty"` // 单行文本、多行文本、日期、身份证类型参数填充。
  163. ComponentData []APIComponentData `json:"componentData" structs:",omitempty"` // 单选、复选、勾选、图片类型参数填充
  164. TableDatas []APItableData `json:"tableDatas" structs:",omitempty"` // 表格填充数据
  165. }
  166. // APICreateContractReq 上传待签署文件入参
  167. //
  168. // 参数说明:https://preweb.asign.cn/platform/openDoc/docDetail?mid=createContract
  169. type APICreateContractReq struct {
  170. ContractNo string `json:"contractNo" binding:"required"` // 合同ID,合同唯一编号
  171. ContractName string `json:"contractName" binding:"required"` // 合同名称
  172. ValidityTime int `json:"validityTime" structs:",omitempty"` // 合同签署剩余天数(系统当前时间+该天数=在此日期之前可以签署合同日期),【注】与合同有效截止日期必传其一,【例】可传剩余天数:15
  173. ValidityDate string `json:"validityDate" structs:",omitempty"` // 合同有效截止日期(在此日期之前可以签署合同,格式要求:yyyyMMddHHmmss),【注】与合同有效天数必传其一,【例】传值“20231207190000” 为:2023年12月07日19时00分00秒
  174. SignOrder int `json:"signOrder" binding:"required"` // 签约方式 1:无序签约(默认) 2:顺序签约
  175. ReadSeconds int `json:"readSeconds" structs:",omitempty"` // 强制阅读时间(秒)
  176. ReadType int `json:"readType" structs:",omitempty"` // 强制阅读设置 1:倒计时读秒方式 2:必须滑动到文件最底部(有多个文件务必逐个阅读) 3:必须点击打开查看(有多个文件务必逐个打开查看)【注】当readType不传值,仅readSeconds传值时,倒计时读秒是针对整体合同(不强制每个文件逐个阅读)。当readType传值1时,readSeconds也传值时,倒计时(要求每个文件逐个阅读)。当readType传值2或3时,readSeconds也传值时,倒计时读秒是针对整体合同(不强制每个文件逐个阅读)。
  177. NeedAgree int `json:"needAgree" structs:",omitempty"` // 同意协议开关:(开启后表示必须同意协议才可签署合同) 1 - 开,0 - 关(默认)
  178. AutoExpand int `json:"autoExpand" structs:",omitempty"` // 多文件时,是否自动展开文件列表 1 - 展开, 0 - 不展开(默认)
  179. NotifyUrl string `json:"notifyUrl" structs:",omitempty"` // 合同签署完成后(合同状态 status=2)回调通知地址,响应【"ok"】表示接收回调成功。
  180. CallbackUrl string `json:"callbackUrl" structs:",omitempty"` // 合同拒签或过期后(合同状态 status=3/4)回调通知地址,响应【"ok"】表示接收回调成功。
  181. UserNotifyUrl string `json:"userNotifyUrl" structs:",omitempty"` // 某个用户签署完成(用户签署状态 signStatus=2,参考 查询合同信息接口)之后回调地址,响应【"ok"】表示接收回调成功。
  182. RedirectUrl string `json:"redirectUrl" structs:",omitempty"` // 合同签署完成后同步回调地址: redirectUrl 若不为空,可以跳转业务方自己的前端过渡页面,实现业务方自己的逻辑。redirectUrl 为空,签署成功后,会回调小程序或app的方法。具体调用方法参考如下。
  183. RefuseOn int `json:"refuseOn" structs:",omitempty"` // 合同签署页退回按钮开关: 1 - 开启,0 - 关闭(默认)
  184. AutoContinue int `json:"autoContinue" structs:",omitempty"` // 当前签署人签署完成自动跳转至下一签署人签署开关(仅对顺序签合同生效): 1 - 开启,0 - 关闭(默认)
  185. ViewFlg int `json:"viewFlg" structs:",omitempty"` // 合同签署完是否允许可以通过链接查看合同内容: 1:不允许查看 不传值:可以查看(默认)
  186. RedirectReturnUrl string `json:"redirectReturnUrl" structs:",omitempty"` // 合同发起页面返回按钮跳转url 若不为空,可以跳转业务方自己的前端页面。
  187. RedirectCompletedUrl string `json:"redirectCompletedUrl" structs:",omitempty"` // 合同发起页面完成后跳转url 若不为空,可以跳转业务方自己的前端过渡页面,实现业务方自己的逻辑。
  188. ContractFiles []interface{} `json:"contractFiles" structs:",omitempty"` // 合同附件(与合同模板必传其一)(支持多文件上传)
  189. Templates []APITemplate `json:"templates" structs:",omitempty"` // 合同模板列表(与合同附件必传其一)
  190. }
  191. // APICreateContractRsp 上传待签署文件出参
  192. type APICreateContractRsp struct {
  193. PreviewUrl string `json:"previewUrl"` // 合同预览链接(预览链接3小时内有效,过期后可通过查询合同信息接口重新获取)
  194. ContractFiles []interface{} `json:"contractFiles"` // 合同文件信息(文件名称,附件编号,页数)
  195. }
  196. // APISignStrategy 签章策略
  197. type APISignStrategy struct {
  198. AttachNo int `json:"attachNo" binding:"required"` // 附件编号 注:对应上传待签署文件接口(createContract)中,合同附件(contractFiles)或合同模板(templates)参数中的List排序序号(例如:1,2,3...)
  199. LocationMode int `json:"locationMode" binding:"required"` // 定位方式:2:坐标签章 3:关键字签章 4:模板坐标签章
  200. CanDrag int `json:"canDrag" structs:",omitempty"` // 签章位置是否可以拖动 1:可以, 其他值:不可以
  201. SignKey string `json:"signKey" structs:",omitempty"` // 关键字或签署区名称key(定位方式为关键字签章时此处需传定位关键字,定位方式为模板坐标签章时此处需传模板中设置的签署区名称)
  202. SignType int `json:"signType" structs:",omitempty"` // 印章类型:1:签名/签章(默认) 2:时间戳
  203. SignPage int `json:"signPage" structs:",omitempty"` // 签章页码(定位方式为坐标签章时必传)
  204. SignX float64 `json:"signX" structs:",omitempty"` // 签章位置与当前签约文件的左内边距与当前签约文件宽度的比例(精确到小数点后2位)(定位方式为坐标签章时必传)
  205. SignY float64 `json:"signY" structs:",omitempty"` // 签章位置与当前签约文件的上内边距与当前签约文件高度的比例(精确到小数点后2位)(定位方式为坐标签章时必传)
  206. OffsetX float64 `json:"offsetX" structs:",omitempty"` // 坐标偏移量(像素PX)
  207. OffsetY float64 `json:"offsetY" structs:",omitempty"` // 坐标偏移量(像素PX)
  208. }
  209. // APIReceiverFillStrategy 接收方模板填充策略
  210. type APIReceiverFillStrategy struct {
  211. AttachNo int `json:"attachNo" binding:"required"` // 附件编号(合同上传的附件序号:1,2,3…)
  212. Key string `json:"key" binding:"required"` // 参数名称
  213. Value string `json:"value" structs:",omitempty"` // ● 填充类型为单行、多行、身份证、日期时传null或空字符串则为页面填充,传值则为即时填充 ● 填充类型为勾选时,Yes:选中;Off:不选中 ● 填充类型为图片时,传base64字符串
  214. FillStage int `json:"fillStage" structs:",omitempty"` // 当填充类型为单选、复选、勾选、图片时,填充场景标记:2:即时填充(调用当前接口即刻填充,默认) 3:页面填充(用户签约时填充)
  215. Options []interface{} `json:"options" structs:",omitempty"` // 单、复选选项内容
  216. RowValues []interface{} `json:"rowValues" structs:",omitempty"` // 表格填充值
  217. }
  218. // APIAddSignerReq 添加签署方入参
  219. //
  220. // 参数说明:https://preweb.asign.cn/platform/openDoc/docDetail?mid=addSigner
  221. type APIAddSignerReq struct {
  222. ContractNo string `json:"contractNo" binding:"required"` // 合同唯一编码 (40位之内)
  223. Account string `json:"account" binding:"required"` // 用户唯一识别码
  224. SignType int `json:"signType" binding:"required"` // 签约方式:2:无感知签约(需要开通权限) 3:有感知签约
  225. SealNo string `json:"sealNo" structs:",omitempty"` // 印章编号【注】若不传值,则由当前主体的默认印章进行签署
  226. AuthSignAccount string `json:"authSignAccount" structs:",omitempty"` // 指定授权签约用户,该用户需要有印章编号【sealNo】的有效授权记录,如若不指定则印章的默认使用者进行签署,如无默认使用者,则由当前主体【account】进行签署
  227. NoticeMobile string `json:"noticeMobile" structs:",omitempty"` // 通知手机号(用于接收合同签署链接的通知短信)
  228. NoticeEmail string `json:"noticeEmail" structs:",omitempty"` // 通知邮箱号(用于接收合同签署链接的通知短信)
  229. SignOrder string `json:"signOrder" structs:",omitempty"` // 使用顺序签约时签约顺序编号(从1开始),无序签约都为1
  230. IsNotice int `json:"isNotice" structs:",omitempty"` // 是否接收合同签署链接的短信通知,优先级高于添加用户接口同名参数:0 - 否(默认),1 - 是
  231. ValidateType int `json:"validateType" structs:",omitempty"` // 签署方式指定:(从以下分类中指定一种) 1:短信验证码签约(支持企业和个人) 2:签约密码签约(支持企业和个人) 3:人脸识别签约(支持企业和个人) 4:手写签名(不推荐,仅限个人,需要开通权限) 5:宋体章签名(不推荐,仅限个人,需要开通权限) 6:手写识别签名+短信签约(仅限个人) 7:手写签名+短信签约(仅限个人) 8:手写签名+人脸识别签约(仅限个人) 9:手写识别签名+人脸识别签约(仅限个人) 10:手写签名 + 认证意愿合一(仅支持个人陌生用户) 11:手写签名识别 + 认证意愿合一(仅支持个人陌生用户) 12:宋体章 + 认证意愿合一(仅支持个人陌生用户) 13:视频双录核身签约(需要开通权限)
  232. FaceAuthMode int `json:"faceAuthMode" structs:",omitempty"` // 人脸识别方式:1:支付宝(不可在支付宝小程序中接入) 2:H5(默认) 4:微信小程序(支持在微信小程序内唤起人脸识别,需联系商务人员开启权限后使用) 5:支付宝小程序(支持在支付宝小程序内唤起人脸识别,需联系商务人员开启权限后使用) 【注】签署方式包含人脸(3,8,9)时,可指定人脸识别方式,不传默认为H5
  233. ValidateTypeList string `json:"validateTypeList" structs:",omitempty"` // 组合签署方式指定:(从以上分类中指定多种以逗号间隔,示例:1,2,3)。允许开发者可以自主控制展示几种签署方式,让签约用户选择。【注】 validateTypeList和validateType都有传值时,签署方式按照validateTypeList指定
  234. AutoSwitch int `json:"autoSwitch" structs:",omitempty"` // 自动切换签约方式:开发者可以自主控制手写内容识别和人脸刷脸识别多次不通过时,是否允许用户切换方式 1 - 仅手写识别允许切换(默认) 2 - 仅人脸识别允许切换 3 - 全部允许 0 - 全部不允许 【注】手写识别三次失败时,会允许用户切换成宋体印章。人脸识别三次不通过,允许切换为短信验证码方式。
  235. IsNoticeComplete int `json:"isNoticeComplete" structs:",omitempty"` // 合同签署完成后是否通知用户:1 - 是,0 - 否(默认)
  236. WaterMark int `json:"waterMark" structs:",omitempty"` // 是否在距底部10px中央位置添加日期水印: 1 - 是,0 - 否(默认)
  237. AutoSms int `json:"autoSms" structs:",omitempty"` // 是否自动触发验证码短信:(仅短信验证码方式签署时生效)1:是(默认) 0:否(需要用户手动点击“获取验证码”触发)
  238. CustomSignFlag int `json:"customSignFlag" structs:",omitempty"` // 签章位置策略:0(默认)- 由该接口的参数signStrategyList或signStrikeList指定 1 - 签署用户在签署时自行拖动签章位置 2 - 签署用户在签署时自行拖动签章位置和骑缝章位置
  239. IsIframe int `json:"isIframe" structs:",omitempty"` // 如果认证页面使用了iframe,且签约涉及人脸识别,则需传入此参数 1.是 0.否(默认) 接入方需要给iframe开启相机权限,方可正常使用实时检测人脸核身功能<iframe allow="camera;"></iframe>
  240. SignStrategyList []APISignStrategy `json:"signStrategyList" binding:"required"` // 签章策略
  241. SignStrikeList []interface{} `json:"signStrikeList" structs:",omitempty"` // 骑缝章策略
  242. ReceiverFillStrategyList []APIReceiverFillStrategy `json:"receiverFillStrategyList" structs:",omitempty"` // 接收方模板填充策略
  243. AuthConfig interface{} `json:"authConfig" structs:",omitempty"` // 添加陌生签署人认证参数配置
  244. }
  245. // APISignUserDetail 合同用户信息
  246. type APISignUserDetail struct {
  247. Account string `json:"account" binding:"required"` // 用户唯一识别码
  248. SignUrl string `json:"signUrl" binding:"required"` // 合同签署链接
  249. PwdSignUrl string `json:"pwdSignUrl" binding:"required"` // 密码签署链接
  250. SignOrder int `json:"signOrder" structs:",omitempty"` // 顺序签约的序号
  251. Name string `json:"name" binding:"required"` // 用户姓名
  252. IdCard string `json:"idCard" binding:"required"` // 用户身份证
  253. }
  254. // APIAddSignerRsp 添加签署方出参
  255. type APIAddSignerRsp struct {
  256. ContractNo string `json:"contractNo"` // 合同编号
  257. ContractName string `json:"contractName"` // 合同名称
  258. ValidityTime string `json:"validityTime"` // 合同有效期
  259. PreviewUrl string `json:"previewUrl"` // 合同预览链接
  260. SignUser []APISignUserDetail `json:"signUser"` // 合同用户信息
  261. }
  262. // APIContractStatusReq 查询合同状态入参
  263. type APIContractStatusReq struct {
  264. ContractNo string `json:"contractNo" binding:"required"` // 合同唯一编码
  265. }
  266. // APIContractStatusRsp 查询合同状态出参
  267. type APIContractStatusRsp struct {
  268. ContractNo string `json:"contractNo"` // 合同唯一编号
  269. ContractName string `json:"contractName"` // 合同名称
  270. Status int `json:"status"` // 合同状态:0:等待签约 1:签约中 2:已签约 3:过期 4:拒签 6:作废 -2:状态异常
  271. }
  272. // APIDownloadContractReq 下载合同入参
  273. type APIDownloadContractReq struct {
  274. ContractNo string `json:"contractNo" binding:"required"` // 合同唯一编码
  275. Outfile string `json:"outfile" structs:",omitempty"` // 文件本地路径(下载的文件,写到本地,当文件数为1时,下载的文件类型是pdf,否则为zip)
  276. Force int `json:"force" structs:",omitempty"` // 强制下载标识 0(默认):未签署完的无法下载 1:无论什么状态都强制下载
  277. DownloadFileType int `json:"downloadFileType" structs:",omitempty"` // 下载文件类型,多附件下载:1:PDF文件 2:多个单张PNG文件,含PDF文件,单附件对应单张图片 3:分页PNG压缩文件,含PDF文件 4:合同单张图片,不含PDF文件 5:所有分页图片,不含PDF文件
  278. }
  279. // APIDownloadContractRsp 下载合同出参
  280. type APIDownloadContractRsp struct {
  281. FileName string `json:"fileName"` // 文件名
  282. Md5 string `json:"md5"` // 文件md5值
  283. FileType int `json:"fileType"` // 文件类型:0:PDF 1:ZIP
  284. Size int `json:"size"` // 文件大小
  285. Data string `json:"data"` // Base64字符串
  286. }
  287. // APICreateSealReq 创建印章入参
  288. type APICreateSealReq struct {
  289. Account string `json:"account" binding:"required"` // 用户唯一识别码
  290. Image string `json:"image" structs:"-"` // 印章图片(不传以默认模板生成印章)
  291. IsDefault int `json:"isDefault"` // 是否为默认印章:1 - 是,0 - 否
  292. Base64ImageStr string `json:"base64ImageStr" structs:",omitempty"` // base64格式的印模图片
  293. SealName string `json:"sealName"` // 印章抬头文字(60字符以内)【注】印章下方横向展示的文字,例如“合同专用章”等。若不显示文字可传空格
  294. SealNo string `json:"sealNo" binding:"required"` // 印章唯一编号(32字符以内)
  295. Scaling float64 `json:"scaling" structs:",omitempty"` // 图片缩放百分比(介于0~1之间的数字)
  296. Color string `json:"color" structs:",omitempty"` // 印章颜色(仅个人印章有效)【注】参数为RGB16进制数,例如:000000(黑),FF0000(红),默认为黑色。
  297. HasBorder int `json:"hasBorder" structs:",omitempty"` // 是否带边框(仅个人印章有效)1 - 是,0 - 否(默认)
  298. Shape int `json:"shape" structs:",omitempty"` // 边框样式(仅个人印章有效)
  299. }
  300. // APIModifySealReq 修改印章入参
  301. type APIModifySealReq struct {
  302. Account string `json:"account" binding:"required"` // 用户唯一识别码
  303. Image string `json:"image" structs:"-"` // 印章图片(不传以默认模板生成印章)
  304. IsDefault int `json:"isDefault"` // 是否为默认印章:1 - 是,0 - 否
  305. Base64ImageStr string `json:"base64ImageStr" structs:",omitempty"` // base64格式的印模图片
  306. SealName string `json:"sealName"` // 印章抬头文字(60字符以内)【注】印章下方横向展示的文字,例如“合同专用章”等。若不显示文字可传空格
  307. SealNo string `json:"sealNo" binding:"required"` // 印章编号(搜索印章用,不做更新)
  308. Scaling float64 `json:"scaling" structs:",omitempty"` // 图片缩放百分比(介于0~1之间的数字)
  309. Color string `json:"color" structs:",omitempty"` // 印章颜色(仅个人印章有效)【注】参数为RGB16进制数,例如:000000(黑),FF0000(红),默认为黑色。
  310. HasBorder int `json:"hasBorder" structs:",omitempty"` // 是否带边框(仅个人印章有效)1 - 是,0 - 否(默认)
  311. Shape int `json:"shape" structs:",omitempty"` // 边框样式(仅个人印章有效)
  312. }