使用HTTP消息体sign签名,签名规则如下:
第一步
设所有发送或者接收到的请求数据为集合M,将集合M内非空参数值的参数按照参数名从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。- 特别注意以下重要规则:
1.参数名从小到大排序(字典序);
2.如果参数的值为NULL则不参与签名;
3.参数名区分大小写;
4.验证调用返回或平台主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。
5.平台接口可能增加字段,验证签名时必须支持增加的扩展字段
- 特别注意以下重要规则:
第二步
在stringA最后拼接上appSecretKey得到stringSignTemp字符串,并对stringSignTemp进行标准MD5 32位运算,再将得到的字符串所有字符转换为大写,得到sign值。签名举例
签名秘钥为appSecretKey
假设传送的参数如下:“appid”:”yme51ef06b32ac6cf1”
“rand”:”6.964368448”
“account”:”test001”1:对参数按照key=value的格式,并按照参数名字典序排序如下:
stringA=”account=test001&appid=yme51ef06b32ac6cf1&rand=6.964368448&”;
2:拼接密钥:
stringSignTamp=stringA+”7616c0fc4d2f4891b51d52b1e31fbdbd” //注:拼接参数 “密钥”即:
stringSignTamp=”account=test001&appid=yme51ef06b32ac6cf1&rand=6.964368448&7616c0fc4d2f4891b51d52b1e31fbdbd”;
第三步:标准MD5运算:
最终得到签名
sign=MD5(stringSignTamp).toUpperCase()=”4070B71EDCE386680067DFC871E6786A” //注:MD5签名方式最后,得到最终发送的Json数据:
{ "appid":"yme51ef06b32ac6cf1", "account":"test001", "rand":"6.964368448", "sign":"4070B71EDCE386680067DFC871E6786A” }
最后编辑:郭祥西 更新时间:2024-11-07 15:18