用户
 找回密码
 立即注册
搜索

该用户从未签到

18-1-30 09:45 曼曼 管理员 楼主 0785
1 简述
秀赞通用签名校验说明

2 签名校验步骤以及约定

2.1 签名算法
签名生成的通用步骤如下:
第一步,设所有发送为集合 M,将集合 M 内非空参数值的参数按照参数名 ASCII 码从小到大排序(字典序),使用 URL 键值对的格式(即key1=value1&key2=value2…)拼接成字符串 string。
特别注意以下重要规则:
- 参数名 ASCII 码从小到大排序(字典序);
- 如果参数的值为空不参与签名;
- 参数名区分大小写;
- 传送的 sign 参数不参与签名,将生成的签名与该 sign 值作校验。
- 接口可能增加字段,验证签名时必须支持增加的扩展字段
- 如果参数是 url,参数必须进行 urlencode,然后才能参与签名
第二步,拼接 stringSignTemp 字符串,并对 stringSignTemp 进行 sha256 运算,再将得到的字符串所有字符转换为大写,得到 sign 值 signValue。

2.2 举例:
秀赞提供 key 和 secret
假设传送的参数如下:
appkey: 71995a7bc6c3b0cddffe31ed1765fa21serialnumber: 1849680868timestamp: 1468916031
第一步:对参数按照 key=value 的格式,并按照参数名 ASCII 字典序排序 如下:
stringSignTemp = "appkey=71995a7bc6c3b0cddffe31ed1765fa21&appsecret=af5a330095e80b47681cd504d569d0da&serialnumber=1849680868×tamp=1468916031";
第二步:对排序好的字符串做 sha256 运算,生成一个签名:
sign = sha256(stringSignTemp).toUpperCase() = "C7D0900FC999628AC0E93B6357D8CAD61E88DCAFB7591EEB4A46F59DC80C536F"3 签名需要参数
开发者需要到秀赞注册生成相应的 key, secret(必需), 同时可选填写 webhook(目前暂时由秀赞帮用户做这些事情)
需要参加签名校验:
[td]
参数
类型
解释
appkey
string
app key
timestamp
int
时间戳
serialnumber
string
流水账号(每个第三方保证自己流水唯一性)
appsecret
string
app secret (此有秀赞暂时分发,第三方保管好, 此参数只做签名,不能出现在 url 中)




使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册