前置条件:请合作方确保 SIGN ticket 已经正常获取,获取方式见 获取 SIGN ticket。 合作方根据本次 OCR 识别的如下参数生成签名,需要签名的参数信息如下:
参数 | 说明 | 来源 |
---|---|---|
appId | 业务流程唯一标识,即 wbappid | 可参考 获取 WBappid 指引在人脸核身控制台内申请 |
orderNo | 订单号,字母/数字组成的字符串,本次服务上送的订单号,唯一标识 | 合作方自行分配 |
nonce | 随机数 32位随机串(字母+数字组成的随机数) |
合作方自行生成(与接口里面定义的随机数保持一致) |
version | 1.0.0 | - |
ticket | 合作伙伴服务端缓存的 ticket,注意是 SIGN 类型 | 获取方式请参见 获取 SIGN ticket |
! 参与签名的数据需要和使用该签名的接口中的请求参数保持一致。
- 生成一个32位的随机字符串(字母和数字) nonce(登录时也要用到),将 webankAppId、orderNo、version、连同 ticket、nonce 共5个参数的值进行字典序排序。
- 将排序后的所有参数字符串拼接成一个字符串进行 SHA1 编码。
- SHA1 编码后的40位字符串作为签名(sign)。
- 请求参数:
webankAppId= appId001
nonce = kHoSxvLZGxSoFsjxlbzEoUzh5PAnTU7T (必须为32位)
version = 1.0.0
orderNo = aabc1457895464
ticket=FxlAe3HFtEy73Um0pJNzIUriwtfnS3KRcPXiesd5ulS4XRAIcT0FbfaP52dwZf5S
- 字典排序后的参数为:
[1.0.0,FxlAe3HFtEy73Um0pJNzIUriwtfnS3KRcPXiesd5ulS4XRAIcT0FbfaP52dwZf5S, aabc1457895464, appId001,kHoSxvLZGxSoFsjxlbzEoUzh5PAnTU7T]
- 拼接后的字符串为:
1.0.0FxlAe3HFtEy73Um0pJNzIUriwtfnS3KRcPXiesd5ulS4XRAIcT0FbfaP52dwZf5Saabc1457895464appId001kHoSxvLZGxSoFsjxlbzEoUzh5PAnTU7T
- 计算 SHA1 得到签名: 该字符串就是最终生成的签名(40 位),不区分大小写。
993D057C652D97FD90D5D298F2E5DC4B8D893CBC