ChainCustomNotaryRequest.go 5.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package others_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 ChainCustomNotaryRequest struct {
  9. // <ext>core:true</ext> 【存证数据名称】存证数据名称 【传参】 最大长度:256。
  10. NotaryName string `json:"notaryName"`
  11. // <ext>core:true</ext> 【第三方业务系统存证数据id】第三方业务系统存证数据id 【作用】 传入第三方业务系统中唯一的存证数据id,便于后续查询和管理 【传参】 最大长度:256。
  12. NotaryDataID string `json:"notaryDataID,omitempty"`
  13. // <ext>core:true</ext> 【存证数据类型】存证数据类型 【作用】 1.数据hash :即可自行计算需要存证的数据的hash值进行存证 2.数据原文:即可直接传入需要存证的数据的原文件,由电子签章系统计算hash值后进行存证 【传参】 取值范围:HASH(数据hash),FILE(数据原文)。
  14. NotaryType string `json:"notaryType"`
  15. // <ext>core:true</ext> 【数据原文】数据原文 【作用】 支持传入需要存证的数据的原文,系统将使用数据原文hash算法中指定的算法计算文本hash值后进行存证
  16. NotaryData *os.File `json:"notaryData,omitempty"`
  17. // <ext>core:true</ext> 【文件类型】文件类型 【作用】 可支持入数据原文的文件类型,后续在系统中可通过文件类型进行检索 【传参】 1、最大长度:32。 2、notaryType(存证数据类型)为FILE(数据原文)时必传。 3、可支持传入pdf,xlsx,pptx,docx,doc,wps,xls,ppt,png,webp,tiff,xml,xht,xhtml,htm,html,txt,jpg,jpeg,png,gif,avi,zip,rtf,mp3,mp4,rm,rmvb,wmv,asf,asx,mov,m4v等。
  18. FileType string `json:"fileType,omitempty"`
  19. // <ext>core:true</ext> 【数据原文hash算法】数据原文hash算法 【作用】 可传入需要计算数据原文的hash值的算法 【传参】 1、notaryType(存证数据类型)为FILE(数据原文)时必传。 2、目前仅支持SHA256(SHA256)。
  20. HashAlgorithm string `json:"hashAlgorithm,omitempty"`
  21. // <ext>core:true</ext> 【数据原文是否存储】数据原文是否存储 【作用】 可选择是否将接口传入的数据存证原文在私有云存储。存储后,后续可通过存证列表直接查看存证原文 【传参】 1、notaryType(存证数据类型)为FILE(数据原文)时可传值。 2、取值范围:false(存证数据原文不需要存储至私有云),true(存证数据原文需要存储至私有云);不传值默认为:电子签章管理后台配置。
  22. StorageFile string `json:"storageFile,omitempty"`
  23. // <ext>core:true</ext> 【数据hash】数据hash 【作用】 传入自行计算的存证数据hash值,系统将对传入的hash值进行存证。推荐使用SHA256算法计算hash值,否则无法存证至蚂蚁区块链 【传参】 notaryType(存证数据类型)为HASH(数据hash)时必传。
  24. NotaryDataHash string `json:"notaryDataHash,omitempty"`
  25. // <ext>inner-type:Json<NotaryCompanyInfo>;core:true</ext> 【单位存证主体】单位存证主体信息 【作用】 单位和个人至少有一个存证主体,都传入时优先以单位主体进行存证,后续若涉及到出证,需要以存证主体的名义进行出证
  26. CompanyInfo string `json:"companyInfo,omitempty"`
  27. // <ext>inner-type:Json<NotaryUserInfo>;core:true</ext> 【个人存证主体】个人存证主体信息 【作用】 单位和个人至少有一个存证主体,都传入时优先以单位主体进行存证,后续若涉及到出证,需要以存证主体的名义进行出证
  28. UserInfo string `json:"userInfo,omitempty"`
  29. // <ext>inner-type:Json<NotaryOperatorInfo>;core:true</ext> 【操作人】操作人信息 【作用】 可传入业务系统中进行数据存证的操作人,传入后将在电子签章前台的存证详情与审计中进行记录,方便后期追溯 【传参】 1、参数必传其一(除姓名外),传入多个参数时只按参数中最高优先级查询,优先级为用户id>联系方式>手机号>邮箱>成员编号>证件号>第三方业务系统用户id>登录账号。 2、同时分配给操作人当前存证数据的查看权限,若不创建用户,则不分配查看权限。 3、若用户不存在时或当操作人未传时,审计日志将记录调用此接口的应用名称。
  30. OperatorInfo string `json:"operatorInfo,omitempty"`
  31. OperatorInfoObject *common.NotaryOperatorInfo `json:"operatorInfoObject,omitempty"`
  32. UserInfoObject *common.NotaryUserInfo `json:"userInfoObject,omitempty"`
  33. CompanyInfoObject *common.NotaryCompanyInfo `json:"companyInfoObject,omitempty"`
  34. }
  35. func (obj ChainCustomNotaryRequest) GetUrl() string {
  36. return "/chain/custom/notary"
  37. }
  38. func (obj ChainCustomNotaryRequest) GetHttpParameter() *http.HttpParameter {
  39. parameter := http.NewPostHttpParameter()
  40. parameter.AddParam("notaryName", obj.NotaryName)
  41. parameter.AddParam("notaryDataID", obj.NotaryDataID)
  42. parameter.AddParam("notaryType", obj.NotaryType)
  43. parameter.AddParam("fileType", obj.FileType)
  44. parameter.AddParam("hashAlgorithm", obj.HashAlgorithm)
  45. parameter.AddParam("storageFile", obj.StorageFile)
  46. parameter.AddParam("notaryDataHash", obj.NotaryDataHash)
  47. parameter.AddFiles("notaryData", obj.NotaryData)
  48. if obj.UserInfoObject != nil {
  49. jsonBytes, _ := json.Marshal(obj.UserInfoObject)
  50. parameter.AddParam("userInfo", string(jsonBytes))
  51. } else {
  52. parameter.AddParam("userInfo", obj.UserInfo)
  53. }
  54. if obj.OperatorInfoObject != nil {
  55. jsonBytes, _ := json.Marshal(obj.OperatorInfoObject)
  56. parameter.AddParam("operatorInfo", string(jsonBytes))
  57. } else {
  58. parameter.AddParam("operatorInfo", obj.OperatorInfo)
  59. }
  60. if obj.CompanyInfoObject != nil {
  61. jsonBytes, _ := json.Marshal(obj.CompanyInfoObject)
  62. parameter.AddParam("companyInfo", string(jsonBytes))
  63. } else {
  64. parameter.AddParam("companyInfo", obj.CompanyInfo)
  65. }
  66. return parameter
  67. }