package others_request import ( "encoding/json" "git.sxidc.com/student-physical-examination/contract_lock_sdk/http" "git.sxidc.com/student-physical-examination/contract_lock_sdk/model/common" "os" ) type ChainCustomNotaryRequest struct { // core:true 【存证数据名称】存证数据名称 【传参】 最大长度:256。 NotaryName string `json:"notaryName"` // core:true 【第三方业务系统存证数据id】第三方业务系统存证数据id 【作用】 传入第三方业务系统中唯一的存证数据id,便于后续查询和管理 【传参】 最大长度:256。 NotaryDataID string `json:"notaryDataID,omitempty"` // core:true 【存证数据类型】存证数据类型 【作用】 1.数据hash :即可自行计算需要存证的数据的hash值进行存证 2.数据原文:即可直接传入需要存证的数据的原文件,由电子签章系统计算hash值后进行存证 【传参】 取值范围:HASH(数据hash),FILE(数据原文)。 NotaryType string `json:"notaryType"` // core:true 【数据原文】数据原文 【作用】 支持传入需要存证的数据的原文,系统将使用数据原文hash算法中指定的算法计算文本hash值后进行存证 NotaryData *os.File `json:"notaryData,omitempty"` // core:true 【文件类型】文件类型 【作用】 可支持入数据原文的文件类型,后续在系统中可通过文件类型进行检索 【传参】 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等。 FileType string `json:"fileType,omitempty"` // core:true 【数据原文hash算法】数据原文hash算法 【作用】 可传入需要计算数据原文的hash值的算法 【传参】 1、notaryType(存证数据类型)为FILE(数据原文)时必传。 2、目前仅支持SHA256(SHA256)。 HashAlgorithm string `json:"hashAlgorithm,omitempty"` // core:true 【数据原文是否存储】数据原文是否存储 【作用】 可选择是否将接口传入的数据存证原文在私有云存储。存储后,后续可通过存证列表直接查看存证原文 【传参】 1、notaryType(存证数据类型)为FILE(数据原文)时可传值。 2、取值范围:false(存证数据原文不需要存储至私有云),true(存证数据原文需要存储至私有云);不传值默认为:电子签章管理后台配置。 StorageFile string `json:"storageFile,omitempty"` // core:true 【数据hash】数据hash 【作用】 传入自行计算的存证数据hash值,系统将对传入的hash值进行存证。推荐使用SHA256算法计算hash值,否则无法存证至蚂蚁区块链 【传参】 notaryType(存证数据类型)为HASH(数据hash)时必传。 NotaryDataHash string `json:"notaryDataHash,omitempty"` // inner-type:Json;core:true 【单位存证主体】单位存证主体信息 【作用】 单位和个人至少有一个存证主体,都传入时优先以单位主体进行存证,后续若涉及到出证,需要以存证主体的名义进行出证 CompanyInfo string `json:"companyInfo,omitempty"` // inner-type:Json;core:true 【个人存证主体】个人存证主体信息 【作用】 单位和个人至少有一个存证主体,都传入时优先以单位主体进行存证,后续若涉及到出证,需要以存证主体的名义进行出证 UserInfo string `json:"userInfo,omitempty"` // inner-type:Json;core:true 【操作人】操作人信息 【作用】 可传入业务系统中进行数据存证的操作人,传入后将在电子签章前台的存证详情与审计中进行记录,方便后期追溯 【传参】 1、参数必传其一(除姓名外),传入多个参数时只按参数中最高优先级查询,优先级为用户id>联系方式>手机号>邮箱>成员编号>证件号>第三方业务系统用户id>登录账号。 2、同时分配给操作人当前存证数据的查看权限,若不创建用户,则不分配查看权限。 3、若用户不存在时或当操作人未传时,审计日志将记录调用此接口的应用名称。 OperatorInfo string `json:"operatorInfo,omitempty"` OperatorInfoObject *common.NotaryOperatorInfo `json:"operatorInfoObject,omitempty"` UserInfoObject *common.NotaryUserInfo `json:"userInfoObject,omitempty"` CompanyInfoObject *common.NotaryCompanyInfo `json:"companyInfoObject,omitempty"` } func (obj ChainCustomNotaryRequest) GetUrl() string { return "/chain/custom/notary" } func (obj ChainCustomNotaryRequest) GetHttpParameter() *http.HttpParameter { parameter := http.NewPostHttpParameter() parameter.AddParam("notaryName", obj.NotaryName) parameter.AddParam("notaryDataID", obj.NotaryDataID) parameter.AddParam("notaryType", obj.NotaryType) parameter.AddParam("fileType", obj.FileType) parameter.AddParam("hashAlgorithm", obj.HashAlgorithm) parameter.AddParam("storageFile", obj.StorageFile) parameter.AddParam("notaryDataHash", obj.NotaryDataHash) parameter.AddFiles("notaryData", obj.NotaryData) if obj.UserInfoObject != nil { jsonBytes, _ := json.Marshal(obj.UserInfoObject) parameter.AddParam("userInfo", string(jsonBytes)) } else { parameter.AddParam("userInfo", obj.UserInfo) } if obj.OperatorInfoObject != nil { jsonBytes, _ := json.Marshal(obj.OperatorInfoObject) parameter.AddParam("operatorInfo", string(jsonBytes)) } else { parameter.AddParam("operatorInfo", obj.OperatorInfo) } if obj.CompanyInfoObject != nil { jsonBytes, _ := json.Marshal(obj.CompanyInfoObject) parameter.AddParam("companyInfo", string(jsonBytes)) } else { parameter.AddParam("companyInfo", obj.CompanyInfo) } return parameter }