微信爬坑记-getBrandWCPayRequest报错以及chooseWXPay产生的纠葛

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a747223454/article/details/89494422

由于公司业绩萎缩,出现了大面积的 裁员,所以不幸接收了很多码农大大留下的代码。其中遇到的一坑就是拉起微信支付~

首先跑前任留下的代码时发现微信支付拉不起来,前任跑的时候说他的功能做完了都测试过的,非常信任的签收了接收协议,结果遇到拉不起来的情况瞬间怀疑人生了。以下是我的解决方式:

  使用微信开发工具拉去微信支付页面直接报错:{errMsg: "chooseWXPay:fail, the permission value is offline verifying"}。

            代码如下:

    1、遇到该错误我第一反应是the permission value is offline verifying,这种情况一般会有两个地方可能触发这个错误。

          1)支付授权页面配置错误,然后去(微信支付商户平台-产品中心-开发配置)中核对没问题。

          2)加签错错了,然后把paySign重新缕了一遍没问题。

    2、排除了上面两个问题后,我重新审视报错,从chooseWXPay:fail入手,

         1)我使用的是微信支付API里的getBrandWCPayRequest,这里面并没有chooseWXPay,所以我去搜索了chooseWXPay:fail的解决方案,网上全是类似于(确认config正确通过。如果是在页面加载好时就调用了JSAPI,则必须写在wx.ready的回调中。确认config的jsApiList参数包含了这个JSAPI)这样的解决方案。但是getBrandWCPayRequest开发并不依赖JS-SDK,这些解决方案都是针对使用JS-SDK中wx.chooseWXPay接口的解决方案所以这不是我要的答案。

          2)然后我又搜索了getBrandWCPayRequest和chooseWXPay的区别,网上说chooseWXPay 依赖 http://res.wx.qq.com/open/js/jweixin-1.0.0.js,而getBrandWCPayRequest不依赖,实际上两个的功能一致,一个是微信浏览器内置功能,一个是为了适应JS-SDK接口重新封装的,实际上也是调用的getBrandWCPayRequest。那就很奇怪了我的getBrandWCPayRequest为什么会报chooseWXPay错,然后我重新审查代码,发现前任哥哥在文件里引用了一下http://res.wx.qq.com/open/js/jweixin-1.0.0.js,我脑子进水想着是不是版本太低了,然后把版本升级到jweixin-1.4.0~还是不行,然后我就想会不会这俩货有冲突,然后就把这个引用注释了,用微信开发工具试还是不行。

          3)高潮来了,我搞了很久了一身不爽,然后刷手机,刷着刷着翻到了我在微信里留的访问地址,然后点了进去,点支付我擦拉起来了。我回去又把注释放开,又拉不起来了。妈卖批搞了半天是这俩接口有冲突,而且只要页面上使用了JS-SDK功能就不能再使用getBrandWCPayRequest 内置功能了,所以要么换成chooseWXPay,要么把相关的JS-SDK接口重新设计。

        

猜你喜欢

转载自blog.csdn.net/a747223454/article/details/89494422
今日推荐