微信支付 WeixinJSBridge is not defined 报错

Posted 2350305682

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信支付 WeixinJSBridge is not defined 报错相关的知识,希望对你有一定的参考价值。

https://www.cnblogs.com/ottoman/p/7614419.html

       

    1. 我没有用到微信JS-SDK或者接口都正确返回预支付id都正确, 为什么会报这个错呢?
      答: 微信内置浏览器会有WeixinJSBridge ,但是需要一定的加载时间。

    2. 我使用了微信JS-SDK, 但是为什么会出错呢?
      答: 微信webview注入钩子有时序问题:在WeixinJSBridge 还未注入之前,就已经成功注入其它依赖于WeixinJSBridge 的其它XX模块。在XX模块中调用WeixinJSBridge 就会失败。

    3. 什么是微信JS-SDK ?

      引用官方文档: 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力。

    4.  

      如何解决

      如果你开发一款移动应用,必不可少要考虑分享到微信的功能;如果你开发网页,那么用户之间的分享更多的也是通过微信。那么这个问题到底有多严重,如何解决也变得至关重要。

      • 如果网页中未使用微信JS-SDK, 用户在微信中打开网站可能会触发这个错误,目前看来只有忽略。因为是微信JS-SDK自身的问题,我们也无法控制。

      • 关于微信支付

        • 方法一: 改为监听ready事件之后再进行下一步操作

          从微信进入支付中心直接唤起微信支付时 有时会抛出ReferenceError:weixinJSBridge is not defined的异常 实际是浏览器加载weixinJSBridge需要一点延迟时间

          改为监听ready事件之后再进行下一步操作 if (typeof window.WeixinJSBridge == "undefined"){ $(document).on(\'WeixinJSBridgeReady\',function(){ $(\'#weiXinPay\').click(); }); }else{ $(\'#weiXinPay\').click();

          }

        • 方法二: 直接使用JS-SDK文档中的支付代码,不要使用公众号支付文档里面的代码。参考: 微信支付

      后记: 关于这个问题的帖子从2014年开始就有了,然而到现在依然存在,可见一直没有修复好!

以上是关于微信支付 WeixinJSBridge is not defined 报错的主要内容,如果未能解决你的问题,请参考以下文章

WeixinJSBridge is not defined 安卓机型报错+ajax status为0的解决历程

微信支付 JSAPI WeixinJSBridge.invoke 支付成功 IOS 不返回?

微信支付WeixinJSBridge.invoke 安卓无反应,ios调用却可以

浅析"WeixinJSBridge is not defined"

怎么微信WeixinJSBridge.invoke支付成功居然不跳转?还把我页面给关了!这篇文章就告诉你What should I do!

怎么微信WeixinJSBridge.invoke支付成功居然不跳转?还把我页面给关了!这篇文章就告诉你What should I do!