微信支付的坑

参数问题
安全目录问题

参数问题

微信支付具体的代码参考官方文档,可是在使用的时候仍是碰见一个坑。小程序

写法一(success)

WeixinJSBridge.invoke('getBrandWCPayRequest', payload, function (res) {

});

写法二(failed)

wx.chooseWXPay(payload);

分析学习

使用写法二的时候不能成功唤起支付,调试的时候发现 timeStampundefined ,跟踪发现以下问题:

server给的payload格式以下:安全

nonceStr: "***"
package: "prepay_id=***"
paySign: "***"
signType: "MD5"
timeStamp: "***"

须要注意的位置是timeStamp,看文档须要的键名是timeStamp,可是实际在jssdk中经过f(a)方法的调用时是经过timestamp获取的微信

chooseWXPay: function(a) {
    c(p.chooseWXPay, f(a), a)
}
function f(a) {
    return {
        timeStamp: a.timestamp + "",
        nonceStr: a.nonceStr,
        "package": a["package"],
        paySign: a.paySign,
        signType: a.signType || "SHA1"
    }
}

解决方案

server给定timestamp,fe手动添加timestamp

回调响应的key也切换为驼峰命名了(2017-08-31更新)

  • WeixinJSBridge.invoke err_msg
  • wx.chooseWXPay errMsg

2017-09-28

spa单页url中新增了其它参数,再继续支付会出现报错 “access_denied”app

  • 更新wx.config
  • 带参数从新加载页面(至关于更新)

安全目录问题

开始调试的时候把 debug: true 不少错误信息真机调试会弹出来,调试起来方便一些。
{errMsg: chooseWXPay:fail} 须要配置一下安全目录。
多个商户号的状况下,必定要找到对应的公众号来配置目录。学习

小程序关联支付易错问题

服务号已经有了,直接关联的小程序的APPID,这些地方都不会引发问题。关联之后也会生成一个商户号,开发的时候仍是使用主商户号就好了。易错点:签名时key不是appSecret,这点错了会致使“签名验证失败”。微信支付

相关文章
相关标签/搜索