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