详解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 相关文章推荐
Code: write(s,d) 输出连续字符串
Aug 19 Javascript
分享Javascript中最常用的55个经典小技巧
Nov 29 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
Apr 25 Javascript
原生js实现fadein 和 fadeout淡入淡出效果
Jun 05 Javascript
jQuery的事件委托实例分析
Jul 15 Javascript
jQuery实现监控页面所有ajax请求的方法
Dec 10 Javascript
分享JavaScript监听全部Ajax请求事件的方法
Aug 28 Javascript
node.js实现登录注册页面
Apr 08 Javascript
javaScript日期工具类DateUtils详解
Dec 08 Javascript
JS中原始值和引用值的储存方式示例详解
Mar 23 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
Jun 26 Javascript
JavaScript oncopy事件用法实例解析
May 13 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
PHP字符编码问题之GB2312 VS UTF-8解决方法
2011/06/23 PHP
php中的比较运算符详解
2013/10/28 PHP
phalcon框架使用指南
2016/02/23 PHP
Javascript hasOwnProperty 方法 & in 关键字
2008/11/26 Javascript
JavaScript 提升运行速度之循环篇 译文
2009/08/15 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
JavaScript自定义数组排序方法
2015/02/12 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
深入理解Java线程编程中的阻塞队列容器
2015/12/07 Javascript
JQuery在循环中绑定事件的问题详解
2016/06/02 Javascript
AngularJS中如何使用echart插件示例详解
2016/10/26 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
Angular使用Md5加密的解决方法
2017/09/16 Javascript
JavaScript类的继承多种实现方法
2020/05/30 Javascript
python解析发往本机的数据包示例 (解析数据包)
2014/01/16 Python
Python如何实现文本转语音
2016/08/08 Python
利用pyinstaller或virtualenv将python程序打包详解
2017/03/22 Python
python 返回一个列表中第二大的数方法
2019/07/09 Python
python selenium 查找隐藏元素 自动播放视频功能
2019/07/24 Python
Pytorch Tensor基本数学运算详解
2019/12/30 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
Python sql注入 过滤字符串的非法字符实例
2020/04/03 Python
Python如何定义接口和抽象类
2020/07/28 Python
详解python tcp编程
2020/08/24 Python
提高python代码运行效率的一些建议
2020/09/29 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
佛罗里达州印第安河新鲜水果:Hale Groves
2017/02/20 全球购物
Europcar德国:全球汽车租赁领域的领导者
2018/08/15 全球购物
德国前卫设计师时装在线商店:Luxury Loft
2019/11/04 全球购物
使用Vue.js和MJML创建响应式电子邮件
2021/03/23 Vue.js
总经理司机岗位职责
2014/02/06 职场文书
《穷人》教学反思
2014/04/08 职场文书
初中英语教师个人工作总结2015
2015/07/21 职场文书
合同范本之电脑出租
2019/08/13 职场文书
创业计划书之婴幼儿游泳馆
2019/09/11 职场文书
Canvas绘制像素风图片的示例代码
2021/09/25 HTML / CSS