微信公众号支付签名验证错误chooseWXPay:fail

最近用nodejs开发微信公众号支付功能后台,明明后台已经签名校验成功了(签名相关可参照我的上一篇文章),支付的prepay_id都已经拿到了,但是返回给H5,H5调起微信支付面板时一直报chooseWXPay:fail,关键是android机闪了下支付面板,然后就没了,连个错误弹框都没,而ios就弹支付签名验证失败,搞了我大半天,才搞定。

通过微信https://api.mch.weixin.qq.com/pay/unifiedorder接口成功返回prepay_id, nonce_str, sign 等参数,然后将这些参数返回给H5,h5调微信支付接口,然后就一直报支付签名验证失败了。

1.我的问题是,微信接口返回的 签名(sign) 不能直接给h5,需要再次签名!!!!https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6


h5调起微信支付参数

再次签名:paySign=MD5(appId=${appid}&nonceStr=${nonceStr}&package=prepay_id=${prepay_id}&signType=MD5&timeStamp=${timeStamp}&key=${key}).toString().toUpperCase();   得到签名paySign连同timeStamp,appid,nonceStr一并返回给H5,

需要注意的是:再次签名中的时间戳是秒,timeStamp中的S是大写,而H5请求支付时timestamp中的s是小写

2.当然,有些人时因为支付授权目录配置错误,需要检查h5支付授权目录是否正确,网上很多说是要配置到二级或三级目录,但发现它们的开发配置文档是之前的,8月1号后支付都移到微信支付平台了,而且官方也没提示要配置到二级或三级了,估计这个也坑了很多人,我这边情况就配置了审核过的域名,这个应该要根据项目而定。这块我没遇到问题就不写,怕写得不对就埋坑了。


H5支付授权目录配置
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27053103/article/details/76985185
个人分类: node.js
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

微信公众号支付签名验证错误chooseWXPay:fail

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭