准备步骤
参数 | 说明 | 来源 |
appId | 业务流程唯一标识,即 wbappid | |
orderNo | 订单号,字母/数字组成的字符串,本次服务上送的订单号,唯一标识 | 合作方自行分配 |
nonce | 随机数 32位随机串(字母+数字组成的随机数) | 合作方自行生成(与接口里面定义的随机数保持一致) |
version | 1.0.0 | - |
ticket | 合作伙伴服务端缓存的 ticket,注意是 SIGN 类型 | 获取方式请参见 获取 SIGN ticket |
注意
参与签名的数据需要和使用该签名的接口中的请求参数保持一致。
基本步骤
1. 生成一个32位的随机字符串(字母和数字) nonce(登录时也要用到),将 AppId、orderNo、version、连同 ticket、nonce 共5个参数的值进行字典序排序。
2. 将排序后的所有参数字符串拼接成一个字符串进行 SHA1 编码。
3. SHA1 编码后的40位字符串作为签名(sign)。
参考示例
请求参数:
AppId= appId001nonce = kHoSxvLZGxSoFsjxlbzEoUzh5PAnTU7T (必须为32位)version = 1.0.0orderNo = aabc1457895464ticket=FxlAe3HFtEy73Um0pJNzIUriwtfnS3KRcPXiesd5ulS4XRAIcT0FbfaP52dwZf5S
字典排序后的参数为:
[1.0.0,FxlAe3HFtEy73Um0pJNzIUriwtfnS3KRcPXiesd5ulS4XRAIcT0FbfaP52dwZf5S, aabc1457895464, appId001,kHoSxvLZGxSoFsjxlbzEoUzh5PAnTU7T]
拼接后的字符串为:
1.0.0FxlAe3HFtEy73Um0pJNzIUriwtfnS3KRcPXiesd5ulS4XRAIcT0FbfaP52dwZf5Saabc1457895464appId001kHoSxvLZGxSoFsjxlbzEoUzh5PAnTU7T
计算 SHA1 得到签名:
该字符串就是最终生成的签名(40 位),不区分大小写。
993D057C652D97FD90D5D298F2E5DC4B8D893CBC