BinarySignV2Request.go 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package binary_request
  2. import (
  3. "encoding/json"
  4. "git.sxidc.com/student-physical-examination/contract_lock_sdk/http"
  5. "git.sxidc.com/student-physical-examination/contract_lock_sdk/model/common"
  6. "os"
  7. )
  8. type BinarySignV2Request struct {
  9. // <ext>core:true</ext> 【数据签名主题】数据签名主题 【作用】 定义数据签名的标题,便于后续在前台显示数据签名列表时区分显示每条数据 【传参】 最大长度:500(包含) 【特殊说明】 若未传,则默认按【数据签名-数据签名id】作为主题名称
  10. Subject string `json:"subject,omitempty"`
  11. // <ext>core:true</ext> 【数据签名文件】数据签名文件 【作用】 传入签署的业务数据文件(使用数字证书签署整份文件) 例如:医院的病历系统中存在一份.txt格式的病历单,则可以将病历单文件传入接口进行签署 【传参】 1、支持的文件格式:pdf, xlsx,pptx, docx, doc, wps, xls, ppt, png, webp, tiff,xml,xht,xhtml,htm,html,txt,jpg,jpeg,gif,avi,zip,rtf。 2、数据签名文件和数据签名内容必传其一,均传入以数据签名文件为准。
  12. Data *os.File `json:"data,omitempty"`
  13. // <ext>core:true</ext> 【数据签名内容】数据签名内容 【作用】 以字符串的形式传入签署的业务数据(使用数字证书签署数据流) 例如:采购系统需要签署一份采购表单,采购表单本身不是文件只是表单上一串数据,则可传入数据进行签署 【传参】 数据签名文件和数据签名内容必传其一,均传入以数据签名文件为准。
  14. DataString string `json:"dataString,omitempty"`
  15. // <ext>core:true</ext> 【签名算法】签名算法 【作用】 指定签署使用的签名算法 1、RSA国际算法:即使用RSA数字证书进行数据签名 2、SM2国密算法:即使用SM2数字证书进行数据签名 3、RSA国际+SM2国密双算法:需使用RSA+SM2两种数字证书进行数据签名 4、不传值时以电子签章管理后台【签名算法配置 】为准 【传参】 取值范围:RSA(RSA国际算法),SM2(SM2国密算法),SM2WithRSA(RSA+SM2两种数字证书);不传值默认为:电子签章管理后台配置。
  16. DigestSigAlgType string `json:"digestSigAlgType,omitempty"`
  17. // <ext>core:true</ext> 【签署方式】签署方式 【作用】 1、使用印章签署:使用接口指定的印章签署数据 2、使用签名签署 :使用接口指定的签名签署数据,此时Signatory中的operator不能为空 【传参】 取值范围:COMPANY(使用印章签署),PERSONAL(使用签名签署);不传值默认为:COMPANY(使用印章签署)。
  18. TenantType string `json:"tenantType,omitempty"`
  19. // <ext>inner-type:Json<BinarySignatory>;core:true</ext> 【签署主体信息】签署主体信息 【作用】 签署数据签名的签署人、以及使用印章或签名
  20. Signatory string `json:"signatory"`
  21. // <ext>core:true</ext> 【是否添加时间戳 】是否添加时间戳 【作用】 用户在签署页面是否可添加时间戳图片(日期图片) 【传参】 1、取值范围:true(可添加),false(不可添加);不传值默认为:false(不可添加)。
  22. NeedTsa string `json:"needTsa,omitempty"`
  23. SignatoryObject *common.BinarySignatory `json:"signatoryObject,omitempty"`
  24. }
  25. func (obj BinarySignV2Request) GetUrl() string {
  26. return "/binary/sign/v2"
  27. }
  28. func (obj BinarySignV2Request) GetHttpParameter() *http.HttpParameter {
  29. parameter := http.NewPostHttpParameter()
  30. parameter.AddParam("subject", obj.Subject)
  31. parameter.AddParam("dataString", obj.DataString)
  32. parameter.AddParam("digestSigAlgType", obj.DigestSigAlgType)
  33. parameter.AddParam("tenantType", obj.TenantType)
  34. parameter.AddParam("needTsa", obj.NeedTsa)
  35. parameter.AddFiles("data", obj.Data)
  36. if obj.SignatoryObject != nil {
  37. jsonBytes, _ := json.Marshal(obj.SignatoryObject)
  38. parameter.AddParam("signatory", string(jsonBytes))
  39. } else {
  40. parameter.AddParam("signatory", obj.Signatory)
  41. }
  42. return parameter
  43. }