学信签名验证工具

自定义参数

签名结果

请填写必要参数后点击"生成签名"按钮

签名算法说明

签名生成的通用步骤如下:

  1. 设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序)
  2. 使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
  3. 在stringA最后拼接上key得到stringSignTemp字符串
  4. 对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue

示例:

假设参数如下:

appid: wx1234567890abcdef
mch_id: 10000100
device_info: 1000
body: 测试商品
nonce_str: ibuaiVcKdpRxkhJA

签名步骤如下:

  1. 按ASCII码排序参数:
    appid=wx1234567890abcdef
    body=测试商品
    device_info=1000
    mch_id=10000100
    nonce_str=ibuaiVcKdpRxkhJA
  2. 拼接字符串stringA:
    appid=wx1234567890abcdef&body=测试商品&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA
  3. 拼接密钥key(假设为192006250b4c09247ec02edce69f6a2d):
    appid=wx1234567890abcdef&body=测试商品&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA&key=192006250b4c09247ec02edce69f6a2d
  4. 计算MD5并转为大写:
    40819360366A12DBBD7BA7AEBFCE8261

特别注意以下重要规则:

  • 参数名ASCII码从小到大排序(字典序)
  • 如果参数的值为空不参与签名
  • 参数名区分大小写
  • 验证调用签名时,传送的sign参数不参与签名