uniapp里在使用wx.requestPayment进行微信支付的时候会弹出支付验证签名失败,后来发现是后端返回的paySign出现了问题
解决方案:
wx.requestPayment会使用后端返回的五个数值:
timeStamp//后端返回的时间戳
nonceStr//后端返回的随机字符串
package//后端返回的prepay_id
signType//后端签名算法,根据后端来,后端MD5这里即为MD5
paySign//后端返回的签名
问题就出在了paySign上,后端第一次获取到的paySign并不是真正的paySign,需要把数据拼接起来进行加密之后再返回前端,这个签名才是真正的数据
格式大概如下:
具体数据自行更改
paySign=md5("appId=appId&nonceStr=nonceStr&package=prepay_id=prepay_id&signType=MD5&timeStamp=timeStamp&key=key"); // 二次签名
这样问题就解决啦