详解vue项目接入微信JSSDK的坑


Posted in Javascript onDecember 14, 2018

用于记录接入微信JS-SDK的坑,以后方便查询 第一次接入公众号微信支付、分享、定位等等的坑的时候,心里是迷茫而又恐惧。因为,听说坑特别多,后来发现自己的亲身体验到了这一点。

支付的坑

1、当前URL未注册

详解vue项目接入微信JSSDK的坑

问题: 微信公众号H5调起支付时,点击支付按钮出现“当前页面的URL未注册”的提示。

解决办法:由于2017年8月1日微信官方把关于支付的信息转移到了商户平台:公众平台微信支付公众号支付授权目录、扫码支付回调URL配置入口已于8月1日迁移至商户平台(pay.weixin.qq.com )

所以进入以下位置:

登录微信商户平台-产品中心-开发配置,配置支付授权路径。如果掉起支付的页面在 域名/pay.html中,那么就在此添加授权路径, 如我的掉起支付的页面在www.weixinPay.com/pay.html 中,那么授权目录就配置为htt://www.weixinPay.com/

tip: 注意:后面的 / 一定要加上,表示该路径下的页面都可以调起微信的支付接口。

详解vue项目接入微信JSSDK的坑

2、如果按照以上还是弹出当前URL未注册 因为微信支付对spa项目的hash路由兼容还是不很好。需要加上一个 "?" 如图:

详解vue项目接入微信JSSDK的坑

代码如下:

watch: {
 $route() {
  this.directRightUrl()
 }
},
methods: {
 directRightUrl() {
 let { href, protocol, host, pathname, search, hash } = window.location
 search = search || '?'
 let newHref = `${protocol}//${host}${pathname}${search}${hash}`
 if (newHref !== href) {
  window.location.replace(newHref)
 }
 }

我这里是根据App.vue文件,进行路由监控。然后给每个页面都加上问号,虽然会些许性能消耗。但是方便省事,具体可以根据自己的页面适当修改。

微信JS-SDK说明文档

分享的坑

根据JS-SDK的文档,很多人都是在初始化的wx配置的时候,传入的当前的URL地址不正确。 然后就导致如下结果:

详解vue项目接入微信JSSDK的坑

解决办法: 请在保证后台能正确返回初始化需要的配置参数的情况下

详解vue项目接入微信JSSDK的坑

修改前:
// let currentUrl = window.location.href
修改后
let currentUrl = window.location.href.split('#')[0]

神奇成功了开心

详解vue项目接入微信JSSDK的坑

需要注意的几点:

jsApList: [] 需要加入对应参数。比如,分享加入'onMenuShareTimeline', 'onMenuShareAppMessage'。 具体的对应接口的参数可以参考文档

所有接口的调用,请保证在wx.ready()执行后,才调用。文档里面是这么建议的。

详解vue项目接入微信JSSDK的坑

定位的坑

刚开始定位的,内心是有点小激动的。因为觉得这个功能很高大尚,当然了这只是我个人的想法。好了~,不扯了。

同样的,给微信初始化的 jsApList 加入对应的参数。 然后在wx.ready()函数执行,但是,发现无论如何第一次进入页面都无法成功弹出授权弹框。

详解vue项目接入微信JSSDK的坑

后来发现,在页面完成之后。延迟一秒再进行获取定位,即可 百分百成功!坑爹有木有。 代码如下

详解vue项目接入微信JSSDK的坑

详解vue项目接入微信JSSDK的坑

目前遇到这个三个坑,后期遇到再写上吧。痛苦的经历需要不要再有了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
不用写JS也能使用EXTJS视频演示
Dec 29 Javascript
javascript 利用Image对象实现的埋点(某处的点击数)统计
Dec 28 Javascript
AngularJS ng-bind-html 指令详解及实例代码
Jul 30 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
May 03 Javascript
深入理解vue.js中的v-if和v-show
Jun 22 Javascript
微信小程序实现弹出菜单
Jul 19 Javascript
深入理解 Koa 框架中间件原理
Oct 18 Javascript
详解vue中移动端自适应方案
May 05 Javascript
小程序中英文混合排序问题解决
Aug 02 Javascript
使用Vue CLI创建typescript项目的方法
Aug 09 Javascript
JS实现简单移动端鼠标拖拽
Jul 23 Javascript
详解前端任务构建利器Gulp.js使用指南
Apr 30 Javascript
微信小程序实现动态显示和隐藏某个控件功能示例
Dec 14 #Javascript
javascript中的event loop事件循环详解
Dec 14 #Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
Dec 14 #Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
Dec 13 #Javascript
node.js学习笔记之koa框架和简单爬虫练习
Dec 13 #Javascript
浅谈vuex actions和mutation的异曲同工
Dec 13 #Javascript
webpack3里使用uglifyjs压缩js时打包报错的解决
Dec 13 #Javascript
You might like
php5中类的学习
2008/03/28 PHP
PHP实现的英文名字全拼随机排号脚本
2014/07/04 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
zen cart实现订单中增加paypal中预留电话的方法
2016/07/12 PHP
php中钩子(hook)的原理与简单应用demo示例
2019/09/03 PHP
Laravel (Lumen) 解决JWT-Auth刷新token的问题
2019/10/24 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
PHP7 整型处理机制修改
2021/03/09 PHP
javascript 兼容FF的onmouseenter和onmouseleave的代码
2008/07/19 Javascript
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
扩展JS Date对象时间格式化功能的小例子
2013/12/02 Javascript
浅析Node.js的Stream模块中的Readable对象
2015/07/29 Javascript
js+css简单实现网页换肤效果
2015/12/29 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
JavaScript lodash常见用法系列小结
2016/08/24 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
Bootstrap Table使用心得总结
2016/11/29 Javascript
Vue 短信验证码组件开发详解
2017/02/14 Javascript
JS实现加载和读取XML文件的方法详解
2017/04/24 Javascript
ES6中参数的默认值语法介绍
2017/05/03 Javascript
vue proxyTable 接口跨域请求调试的示例
2017/09/12 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
2020/01/16 Javascript
Python numpy.array()生成相同元素数组的示例
2018/11/12 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
python垃圾回收机制(GC)原理解析
2019/12/30 Python
Python中socket网络通信是干嘛的
2020/05/27 Python
python中setuptools的作用是什么
2020/06/19 Python
如何通过python实现IOU计算代码实例
2020/11/02 Python
Python扫描端口的实现
2021/01/25 Python
德国香水、化妆品和护理产品网上商店:Parfumdreams
2018/09/26 全球购物
计算机专业推荐信范文
2013/11/20 职场文书
浪费资源的建议书
2014/03/12 职场文书
2015年消费者权益日活动总结
2015/02/09 职场文书
创业分两种人:那么哪些适合创业?,哪些适合不适合创业呢?
2019/08/23 职场文书
进阶篇之linux环境下安装MySQL数据库
2022/04/09 MySQL