微信公众号支付签名验证错误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支付授权目录配置
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值