• 使用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-04-11 15:06
最后编辑:郭祥西  更新时间:2024-11-07 15:18