生成签名
准备步骤
下载 SDK,请到控制台自助接入列表页获取密码。
前置条件:请合作方确保 SIGN ticket 已经正常获取,获取方式见 获取 SIGN ticket 。
SIGN 类型的 ticket,其有效期为60分钟,且可多次使用。
签名的数据需要和使用该签名的 SDK 中的请求参数保持一致。
合作方为人脸核身服务生成签名,需要具有以下参数:
参数名 | 说明 | 来源 |
appId | 业务流程唯一标识 | |
orderNo | 业务订单号 | 订单号,由合作方上传,字母/数字组成的字符串,每次唯一,不能超过 32 位 |
version | 参数值为:1.0.0 | - |
ticket | 合作伙伴服务端获取的 ticket,注意是 SIGN 类型 | 获取方式见 获取 SIGN ticket |
nonce | 必须是 32 位随机数 | 合作方自行生成 |
基本步骤
1. 生成一个32位的随机字符串 nonce(其为字母和数字,登录时也要用到)。
2. 将 appId、orderNo、version 连同 ticket、nonce 共五个参数的值进行字典序排序。
3. 将排序后的所有参数字符串拼接成一个字符串。
4. 将排序后的字符串进行 SHA1 编码,编码后的40位字符串作为签名(sign)。
注意
参考示例
请求参数:
参数名 | 参数值 |
appId | IDAXXXXX |
orderNo | orderNo596551 |
nonce | kHoSxvLZGxSoFsjxlbzEoUzh5PAnTU7T |
version | 1.0.0 |
ticket | XO99Qfxlti9iTVgHAjwvJdAZKN3nMuUhrsPdPlPVKlcyS50N6tlLnfuFBPIucaMS |
字典排序后的参数为:
[1.0.0, IDAXXXXX, XO99Qfxlti9iTVgHAjwvJdAZKN3nMuUhrsPdPlPVKlcyS50N6tlLnfuFBPIucaMS , kHoSxvLZGxSoFsjxlbzEoUzh5PAnTU7T, orderNo596551]
拼接后的字符串为:
1.0.0IDAXXXXXXO99Qfxlti9iTVgHAjwvJdAZKN3nMuUhrsPdPlPVKlcyS50N6tlLnfuFBPIucaMSkHoSxvLZGxSoFsjxlbzEoUzh5PAnTU7TorderNo596551
计算 SHA1 得到签名:
6CD5F0DBCFA1155E2A66754B33C2E67DD358393B
说明
该字串就是最终生成的签名(40 位),不区分大小写。
合作方后台上传信息
请求
请求 URL:
https://kyc1.qcloud.com/api/server/getOcrCertId?orderNo=xxx
注意
为方便查询耗时,该请求 url 后面请拼接 orderNo 订单号参数。
请求方法:POST。
报文格式:Content-Type: application/json。
请求参数:
参数 | 说明 | 类型 | 长度(字节) | 是否必填 |
appId | String | 8 | 是 | |
orderNo | 订单号,由合作方上传,字母/数字组成的字符串,每次唯一,不能超过32位 | String | 不能超过32位 | 是 |
userId | 用户 ID ,用户的唯一标识(不能带有特殊字符) | String | 不能超过 32 位 | 是 |
version | 默认参数值为:1.0.0 | String | 20 | 是 |
sign | 签名:使用上面生成的签名 | String | 40 | 是 |
nonce | 随机数,需要跟生成签名的 nonce 保持一致 | String | 32 | 是 |
nfcType | 调用类型;1:二代身份证;3:港澳居民回乡证 | String | 32 | 是 |
响应
响应参数:
参数 | 类型 | 说明 |
code | String | 0:成功,非0:失败;详情请参见 SaaS 服务错误码 |
msg | String | 请求结果描述 |
bizSeqNo | String | 请求业务流水号 |
orderNo | String | 订单编号 |
ocrCertId | String | 此次唯一标识,调 SDK 时传入 |
响应示例:
{"code": 0,"msg": "成功","result": {"bizSeqNo":"业务流水号","orderNo":"合作方订单号","ocrCertId":"cc1184c3995c71a731357f9812aab988"}}