业务文档
业务文档
5.1 RFC3161标准协议接口定义
名称 | 内容 |
接口说明 | RFC3161协议签发时间戳 |
请求地址 | 生产环境: https://open.itruscloud.com/apigate/timestampapi?serviceCode=TSA0005 测试环境: https://demo-open.itruscloud.com/apigate/timestampapi?serviceCode=TSA0005 |
账号 | 应用appid |
密码 | JSON |
输出示例 | 1. 成功返回 会在指定的路径下生产pdf文件 2. 失败返回 2.1 app没有添加服务或者购买数量不足 java.io.IOException: Server returned HTTP response code: 401 for URL: https://demo-open.itruscloud.com/apigate/timestampapi?serviceCode=TSA0005 如果还是不能确定问题在哪,需要看apigate网关的日志排查,因为这个401是网关返回的。 |
5.2 签戳服务接口定义
基本信息:
名称 | 内容 |
接口说明 | 签发时间戳 |
请求地址 | 生产环境: https://open.itruscloud.com/apigate/timestampapi 测试环境: https://demo-open.itruscloud.com/apigate/timestampapi |
请求方法 | POST |
应答格式 | JSON |
HEAD参数 | Content-Signature:“HMAC-SHA1 ”加hmac签名值,采用HmacSHA1算法 |
请求参数:
名称 | 类型 | 约束 | 描述 |
plainHash | String | 必选 | 原文hash的hex编码 |
hashAlg | String | 必选 | 原文Hash算法。可选值为“SHA1”或者“SM3” |
返回值:
名称 | 类型 | 描述 |
status | String | status的值为1表示签戳成功, 其他表示签戳失败 |
message | String | 对应状态信息说明 或 失败原因 |
serialNumber | String | 流水号 |
b64TimeStamp | String | base64编码后的时间戳数据。如果签戳失败,返回为“”。 |
signTime | Date | 时间戳签发时间,格式为"yyyy-MM-dd HH:mm:ss"。如果签戳失败,返回为“”。 |
输出示例 | 1. 成功返回 { "serialNumber":"TSA202007131445390545087", "b64TimeStamp":"时间戳base64字符串", "signTime":"2020-07-13 14:45:39", "message":"success.", "status":"1" } 2. 失败返回 2.1原文字符串plainHash错误 { "serialNumber":"TSA202007131632418306001", "b64TimeStamp":"", "signTime":"", "message":"generated timestamp failed. errCode : 65547, errMsg : 1000B.", "status":"251658246" } 注: 目前这个错在错误码中没有 2.2原文hash算法hashAlg错误 {"data":"101003","message":"原文的hash算法不支持","status":200} |
5.3 验戳接口定义
名称 | 内容 |
接口说明 | 验证时间戳 |
请求地址 | 生产环境: https://open.itruscloud.com/apigate/timestampapi 测试环境: https://demo-open.itruscloud.com/apigate/timestampapi |
请求方法 | POST |
应答格式 | JSON |
HEAD参数 | Content-Signature:“HMAC-SHA1 ”加hmac签名值,采用HmacSHA1算法 |
请求参数:
名称 | 类型 | 约束 | 描述 |
plainHash | String | 必选 | 原文hash的hex编码 |
hashAlg | String | 必选 | 原文Hash算法。可选值为“SHA1”或者“SM3” |
b64TimeStamp | String | 必选 | base64编码后的时间戳数据 |
返回值:
名称 | 类型 | 描述 |
status | Long | 1表示调用成功,其他表示调用失败 |
message | String | 对应状态信息说明 或 失败原因 |
verifyResult | Boolean | 验证结果,true表示时间戳验证通过,false表示时间戳验证未通过 |
verifyResultStr | String | 验证结果信息 |
serialNumber | String | 流水号 |
signAlg | String | 采用的签名算法,SHA1withRSA或SM3withSM2。如果验证失败,返回为“”。 |
signTime | Date | 时间戳签发时间,格式为"yyyy-MM-dd HH:mm:ss"。如果验证失败,返回为“”。 |
输出示例 | 3. 成功返回 { "orderNumber":"TSA202007131650128508820", "signTime":"2020-07-06 14:05:12", "verifyResultStr":"verify success", "signAlg":"SHA1withRSA", "verifyResult":true, "message":"success", "status":"1" } 4. 失败返回 2.1原文字符串plainHash错误 { "orderNumber":"TSA202007131811018147744", "signTime":"", "verifyResultStr":"", "signAlg":"", "verifyResult":false, "message":"success. errCode : 65547, errMsg : 1000B.", "status":"251658244" } 注: 目前这个错在错误码中没有
2.2 原文hash算法hashAlg错误 { "orderNumber":"TSA202007131808545736474", "signTime":"", "verifyResultStr":"wrong plain hash or hash alg.", "signAlg":"", "verifyResult":false, "message":"success", "status":"1" }
2.3待验证的时间戳b64TimeStamp错误 {"message":"接口调用异常","status":100008}
2.4 验戳时使用的serviceCode与签戳时使用的serviceCode的证书算法不一致 比如,签戳时用TSA0001(这个产品使用的是rsa证书),验戳时使用TSA0004(这个产品使用的是SM2证书)或者其他编码,两者使用的证书算法不一致。 { "orderNumber":"TSA202007141855201804606", "signTime":"", "verifyResultStr":"no found match cert.", "signAlg":"", "verifyResult":false, "message":"success", "status":"1" } |