• 简书网微信公众号二维码
您当前的位置: 首页 > 知识百科 > 微信小程序支付签名算法是什么?

微信小程序支付签名算法是什么?

时间:2023-07-01 14:05 阅读数:23 人阅读 分类:知识百科

   微信小程序支付签名算法是什么?微信支付签名算法,微信支付我们每天都在用,我们在设置微信支付时,需要用到小程序,微信小程序支付签名算法是什么?小编整理的微信小程序支付签名算法是什么?有兴趣的朋友们可以阅读。

  


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

  第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。

  特别注意以下重要规则:

  ◆ 参数名ASCII码从小到大排序(字典序);

  ◆ 如果参数的值为空不参与签名;

  ◆ 参数名区分大小写;

  ◆ 验证调用返回或微信主动通知签名时,传送的sign参数不参与签名,将生成的个*签名与该sign值作校验。

  ◆ 微信接口可能增加字段,验证签名时必须支持增加的扩展字段

  第二步,在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。

  key设置路径:微信商户平台(pay.weixin.qq)-->账户设置-->API安全-->密钥设置

  举例:

  假设传送的参数如下:

  appid: wxd930ea5d5a258f4f

  mch_id: 10000100

  device_info: 1000

  body: test

  nonce_str: ibuaiVcKdpRxkhJA

  第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:

  stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA";

  第二步:拼接API密钥:

  stringSignTemp=stringA+"&key=192006250b4c09247ec02edce69f6a2d"

  sign=MD5(stringSignTemp).toUpperCase()="9A0A8659F005D6984697E2CA0A9CF3B7"

  最终得到最终发送的数据:

  2、生成随机数算法

  微信支付API接口协议中包含字段nonce_str,主要保证签名不可预测。我们推荐生成随机数算法如下:调用随机数函数生成,将得到的值转换为字符串。

  感谢大家前来阅读微信小程序支付签名算法是什么?的内容,但愿能帮到大家,想要了解更多微信小程序大全,记得常来微小乔,每天为你呈现更多的精彩。

  更多推荐:

  微信小程序手写签名验证、加解密的数据

  怎么在微信小程序中制作返回顶部按钮?

  小程序支付失败、签名错误