微信支付 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...

时间: 2024-08-03 23:36:46

微信支付 WeixinJSBridge is not defined 报错的相关文章

java win10 配置jdk的环境变量,project sdk is not defined报错

系统升级后原先设置的环境变量需要重新配置,在win10里面配置环境变量的时候碰到了一些麻烦,第一次配置环境变量的时候使用传统的配置方式设置了 CLASSPATH为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; JAVA_HOME为C:\Program Files\Java\jdk1.8.0_60 PATH为%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 配置完成后yunx java -version 提示找不到命令

MySQL中出现Multiple primary key defined报错提示之解决办法

创建主键可以有两种方式: create table 表名(字段名 类型,字段名 类型,--primary key(name)); 或者是 create table 表名(字段名 类型 primary key,字段名 类型,--); 但是要注意的是,想要创建复合主键,就不可以用第二种方式.下面列举一个小例子:这里报错Multiple primary key defined,表示定义了多个主键,正确的写法是如下:如果项设置复合主键,复合主键的特点是同时创建.同时删除,所以需要把主键删除,但是这里设置

关于vue,webpack 中 “exports is not defined”报错

vue项目npm run dev 后项目报错 : 提示 "exports is not defined". 导致这个问题是因为balbel的配置文件.babelrc的问题: { "presets": [ ["env", { "modules": false }], "stage-2" ], "plugins": ["transform-runtime"], "

微信服务器配置---服务器地址(URL) :报错 token验证失败

服务器配置---服务器地址(URL) :报错 token验证失败. 原因之一是: 开发调试环境(本机) 的ip变化,没有及时配置ip白名单. 也可以反向验证:在配置好jeewx工程之公众号信息后,可以点击按钮“重置微信token”,看看是否报错40164: 微信错误:errcode=40164,该错误信息:无效ip 地址,不在白名单中. 原因之二是: netapp的隧道变化了. 原文地址:https://www.cnblogs.com/wuxingang/p/11240050.html

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

1. 公司之前微信支付调用的是JSSDK方式,但是JSSDK每次调用之前需要config接口注入权限验证配置,先用到appid,之后再调用wx.chooseWXPay({}),具体参数可查看官方文档https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#58: 2.所以决定启用 WeixinJSBridge.invoke获取支付调用,只能找官方文档一段配置 https://pay.weixin.qq.com

【微信】微信小程序 微信开发工具 创建js文件报错 pages/module/module.js 出现脚本错误或者未正确调用 Page()

创建报错pages/module/module.js 出现脚本错误或者未正确调用 Page() 解决方法: 在js文件中添加 Page({ }) 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/9076274.html

微信公众号群发消息,报错返回 “read time out” 的处理办法

这个报错往往是没有传参数: clientmsgid post参数示例如下: { "filter":{ "is_to_all":false, "tag_id":2 }, "mpnews":{ "media_id":"123dsdajkasd231jhksad" }, "msgtype":"mpnews", "send_ignore_repr

regeneratorRuntime is not defined报错处理

提示这个报错是因为使用了async/await等es7语法,需要babel进行转换 具体:(babel7) $ yarn add @babel/runtime && yarn add --dev @babel/plugin-transform-runtime 并在.babelrc里面添加如下: { ..., plugins: ['@babel/plugin-transform-runtime'] } 原文地址:https://www.cnblogs.com/musiq66/p/111865

Jquery-Uncaught ReferenceError: $ is not defined报错

在我的jsp页面上有这些js代码: //加载数据 $(document).ready(function() { var param={}; param.page=3; param.size=10; $.post(home+"/user/queryAllInfo",param, function(result) { if(result !=null && result.success) { var obj =result.rows; for ( var i = 0; i