详解nuxt 微信公众号支付遇到的问题与解决


Posted in Javascript onAugust 26, 2019

背景:nuxt为默认的history模式,用这个npm 支付weixin-js-sdk,开启debug模式,尽量在ios下调试,因为alert弹窗的信息会更多。

async onPay (config) {
 try {
 const wxUrl = window.location.href//分享的路径
 const res = await $axios.$get("")//获取配置sdk参数,包括微信分享的参数
 if (res.status === 0) {
  const {data} = res
  wx.config({
  debug: true,
  appId: data.appId,
  timestamp: data.timestamp,
  nonceStr: data.nonceStr,
  signature: data.signature,
  jsApiList: ['chooseWXPay']
  })

  wx.ready(function () {
  wx.checkJsApi({
   jsApiList: ['chooseWXPay'],
   success: (res) => {
   wx.chooseWXPay({
    timestamp: config.timestamp,
    nonceStr: config.nonceStr, 
    package: config.package, 
    signType: config.signType, 
    paySign: config.paySign, // 支付签名
    success: function (res) {
    },
    cancel: function (res) {
    // 支付取消的回调函数
    },
    error: function (res) {
    // 支付失败的回调函数
    }
   })
   }
  })

  })

 }
 } catch (e) {
 throw e
 }
}

1、微信调起支付loading又立刻关闭,并提示:当前页面的url未注册:https://xxx/xx/xx/

补充:由于支付路径太深,ios下,提示支付路径未注册出现了各种情况。甚至出现只有我一个人可以调起支付,其他人测试都不行的情况。

原因:这是因为微信获取支付路径的时候,在ios与安卓下是不同的,对于spa应用来说,首先我们把我们从微信别的地方点击链接呼出微信浏览器时所落在的页面、或者点击微信浏览器的刷新按钮时所刷新的页面,我们叫做落地页。问题来了,在ios和安卓下呼出微信支付的时候,微信支付判断当前路径ios为落地页,安卓则为正常的当前页面的路径。

解决支付路径app不统一:用window.location.href 的方式跳转至支付页

微信获取支付路径的方式:以url最后一个/为准,获取/之前的路径。

支付路径例子:例如我们后台配置的支付的路径为

https://域名/项目名/(可能有多级目录)/pay/

那么就会匹配

https://域名/项目名/(可能有多级目录)/pay/?xxxxxxxxxxxxxxxxxx

注意pay支付路径后的/一定要加。因为我们做路由跳转很可能是这种形式

https://域名/项目名/(可能有多级目录)/pay?xxxxxxxxxxxxxxxxxx //错误,'?'前没有'/',会匹配不到正确的路径。

2、微信调起支付loading又直接关闭,提示,订单已过期。

解决:这个是服务器那边的问题,后端直接设置了固定的订单时间以跳过支付环节。

3、sdk中wx.config中的参数。

事实上,我们并不需要额外的请求wx.config的参数,因为支付接口返回的支付参数已经有了所有的config参数,除了signature这个加密签名字段,在支付参数中对应的加密签名是paysign这个字段,事实上直接用paysign作为signature的值也是没有问题的。wx.config的参数差别是分享的时候。需要额外的分享的路径url

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

Javascript 相关文章推荐
Using the TextRange Object
Oct 14 Javascript
jQuery学习笔记 操作jQuery对象 属性处理
Sep 19 Javascript
在Javascript中 声明时用"var"与不用"var"的区别
Apr 15 Javascript
new Date()问题在ie8下面的处理方法
Jul 31 Javascript
js判断浏览器版本以及浏览器内核的方法
Jan 20 Javascript
jQuery实现360°全景拖动展示
Mar 18 Javascript
Javascript实现的简单右键菜单类
Sep 23 Javascript
同步文本框内容JS代码实现
Aug 04 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
Nov 25 Javascript
Bootstrap select下拉联动(jQuery cxselect)
Jan 04 Javascript
实现elementUI表单的全局验证的方法步骤
Apr 29 Javascript
Vue router安装及使用方法解析
Dec 02 Vue.js
Vue路由之JWT身份认证的实现方法
Aug 26 #Javascript
Vue中跨域及打包部署到nginx跨域设置方法
Aug 26 #Javascript
js实现跟随鼠标移动的小球
Aug 26 #Javascript
vue 源码解析之虚拟Dom-render
Aug 26 #Javascript
Node.js爬虫如何获取天气和每日问候详解
Aug 26 #Javascript
vue移动端实现手机左右滑动入场动画
Jun 17 #Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
Aug 26 #Javascript
You might like
利用PHP抓取百度阅读的方法示例
2016/12/18 PHP
Ajax+Jpgraph实现的动态折线图功能示例
2019/02/11 PHP
通过ifame指向的页面高度调整iframe的高度
2006/10/05 Javascript
JQuery 简便实现页面元素数据验证功能
2007/03/24 Javascript
js写的方法实现上传图片之后查看大图
2014/03/05 Javascript
jQuery中siblings()方法用法实例
2015/01/08 Javascript
javascript性能优化之DOM交互操作实例分析
2015/12/12 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
JS基于正则实现数字千分位用逗号分隔的方法
2017/06/16 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
AngularJS实现的锚点楼层跳转功能示例
2018/01/02 Javascript
React key值的作用和使用详解
2018/08/23 Javascript
Vue 莹石摄像头直播视频实例代码
2018/08/31 Javascript
vue 中滚动条始终定位在底部的方法
2018/09/03 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
2019/05/15 Javascript
JavaScript实现Excel表格效果
2020/02/07 Javascript
如何解决vue在ios微信"复制链接"功能问题
2020/03/26 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
[04:28]DOTA2亚洲邀请赛小组赛第五日 TOP10精彩集锦
2015/02/03 DOTA
用Python代码来解图片迷宫的方法整理
2015/04/02 Python
100行python代码实现跳一跳辅助程序
2018/01/15 Python
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
Python常见数字运算操作实例小结
2019/03/22 Python
selenium跳过webdriver检测并模拟登录淘宝
2019/06/12 Python
使用pyqt 实现重复打开多个相同界面
2019/12/13 Python
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
澳大利亚家具和家居用品在线:BROSA
2017/11/02 全球购物
《植物妈妈有办法》教学反思
2014/02/25 职场文书
保健品市场营销方案
2014/03/31 职场文书
节电标语大全
2014/06/23 职场文书
日语专业求职信
2014/07/04 职场文书
班主任寄语2015
2015/02/26 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
开学典礼致辞
2015/07/29 职场文书