微信支付 WeixinJSBridge is not defined 報錯


 

    1. 我沒有用到微信JS-SDK或者接口都正確返回預支付id都正確, 為什么會報這個錯呢?
      答: 微信內置瀏覽器會有WeixinJSBridge ,但是需要一定的加載時間。

    2. 我使用了微信JS-SDK, 但是為什么會出錯呢?
      答: 微信webview注入鈎子有時序問題:在WeixinJSBridge 還未注入之前,就已經成功注入其它依賴於WeixinJSBridge 的其它XX模塊。在XX模塊中調用WeixinJSBridge 就會失敗。

      如何解決

      如果你開發一款移動應用,必不可少要考慮分享到微信的功能;如果你開發網頁,那么用戶之間的分享更多的也是通過微信。那么這個問題到底有多嚴重,如何解決也變得至關重要。

      • 如果網頁中未使用微信JS-SDK, 用戶在微信中打開網站可能會觸發這個錯誤,目前看來只有忽略。因為是微信JS-SDK自身的問題,我們也無法控制。

      • 關於微信支付

        • 方法一: 改為監聽ready事件之后再進行下一步操作

          if (typeof window.WeixinJSBridge == "undefined"){

        • $(document).on('WeixinJSBridgeReady',function(){ })
          •  //你的代碼
        • }
        • 方法二: 直接使用JS-SDK文檔中的支付代碼,不要使用公眾號支付文檔里面的代碼。參考: 微信支付

      后記: 關於這個問題的帖子從2014年開始就有了,然而到現在依然存在,可見一直沒有修復好!

      參考鏈接

      [1]微信支付: https://mp.weixin.qq.com/wiki...
      [2] Uncaught ReferenceError: WeixinJSBridge is not defined: http://www.henkuai.com/forum....
      [3] Uncaught ReferenceError: WeixinJSBridge is not defined問題: http://www.henkuai.com/thread...
      [4] 微信支付問題:Uncaught ReferenceError: WeixinJSBridge is not defined: http://www.java-bbs.com/threa...
      [5] 傳說中的WeixinJSBridge和微信rest接口: http://bbs.blueidea.com/threa...
      [6] 監聽wxbridge加載后再喚起微信支付: https://github.com/whq731/mob...                   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM