详解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 相关文章推荐
让IE8支持DOM 2(不用框架!)
Dec 31 Javascript
jquery动态加载select下拉框示例代码
Dec 10 Javascript
jQuery获取和设置表单元素的方法
Feb 14 Javascript
javascript中的作用域和闭包详解
Jan 13 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
Jul 27 Javascript
对angular4子路由&辅助路由详解
Oct 09 Javascript
利用hasOwnProperty给数组去重的面试题分享
Nov 05 Javascript
vue使用Google地图的实现示例代码
Dec 19 Javascript
Vue Prop属性功能与用法实例详解
Feb 23 Javascript
移动端 Vue+Vant 的Uploader 实现上传、压缩、旋转图片功能
Jun 10 Javascript
JsonServer安装及启动过程图解
Feb 28 Javascript
原生JS封装拖动验证滑块的实现代码示例
Jun 01 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
PHPMyadmin 配置文件详解(配置)
2009/12/03 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
2012/09/05 PHP
PHP实现的日历功能示例
2018/09/01 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
jQuery jcrop插件截图使用方法
2013/11/20 Javascript
NodeJs中的VM模块详解
2015/05/06 NodeJs
jQuery匹配文档链接并添加class的方法
2015/06/26 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
JavaScript实现图片自动加载的瀑布流效果
2016/04/11 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
node使用promise替代回调函数
2018/05/07 Javascript
微信小程序实现长按删除图片的示例
2018/05/18 Javascript
微信小程序使用map组件实现解析经纬度功能示例
2019/01/22 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
浅谈Vue.use到底是什么鬼
2020/01/21 Javascript
Python中的lstrip()方法使用简介
2015/05/19 Python
python3 与python2 异常处理的区别与联系
2016/06/19 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
2019/02/14 Python
学习python分支结构
2019/05/17 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
使用python画社交网络图实例代码
2019/07/10 Python
python制作朋友圈九宫格图片
2019/11/03 Python
Python:type、object、class与内置类型实例
2019/12/25 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
如何使用 Python 读取文件和照片的创建日期
2020/09/05 Python
Python eval函数原理及用法解析
2020/11/14 Python
英国计算机商店:Technextday
2019/12/28 全球购物
努力学习演讲稿
2014/05/10 职场文书
2014村党支部书记党建工作汇报材料
2014/11/02 职场文书
归元寺导游词
2015/02/06 职场文书
《比尾巴》教学反思
2016/02/24 职场文书
Python 数据可视化之Matplotlib详解
2021/11/02 Python
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL