详解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 相关文章推荐
document.documentElement的一些使用技巧
Apr 18 Javascript
js中的布尔运算符使用介绍
Nov 20 Javascript
JavaScript验证电子邮箱的函数
Aug 22 Javascript
详解JavaScript对Date对象的操作问题(生成一个倒数7天的数组)
Oct 01 Javascript
JQuery.Ajax()的data参数类型实例详解
Nov 20 Javascript
JavaScript中的this机制
Jan 30 Javascript
jQuery滚动新闻实现代码
Jun 26 Javascript
Jquery调用iframe父页面中的元素及方法
Aug 23 Javascript
解决微信内置浏览器返回上一页强制刷新问题方法
Feb 05 Javascript
React Native之prop-types进行属性确认详解
Dec 19 Javascript
Servlet3.0与纯javascript通过Ajax交互的实例详解
Mar 18 Javascript
微信小程序scroll-view点击项自动居中效果的实现
Mar 25 Javascript
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 iconv() : Detected an illegal character in input string
2010/12/05 PHP
比较简单的百度网盘文件直链PHP代码
2013/03/24 PHP
php实现最简单的MVC框架实例教程
2014/09/08 PHP
php jsonp单引号转义
2014/11/23 PHP
[原创]php正则删除html代码中class样式属性的方法
2017/05/24 PHP
JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器
2013/12/12 Javascript
网站内容禁止复制和粘贴、另存为的js代码
2014/02/26 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
2014/12/15 Javascript
jQuery实现tab标签自动切换的方法
2015/02/28 Javascript
Javascript 是你的高阶函数(高级应用)
2015/06/15 Javascript
JavaScript判断FileUpload控件上传文件类型
2015/09/28 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
JavaScript事件学习小结(五)js中事件类型之鼠标事件
2016/06/09 Javascript
jQuery实现查找最近父节点的方法
2016/06/23 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
JavaScript requestAnimationFrame动画详解
2017/09/14 Javascript
深入理解React高阶组件
2017/09/28 Javascript
js动态设置select下拉菜单的默认选中项实例
2018/08/21 Javascript
对vue中methods互相调用的方法详解
2018/08/30 Javascript
Vue3.x源码调试的实现方法
2019/10/13 Javascript
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
深入解析Python编程中super关键字的用法
2016/06/24 Python
Python装饰器语法糖
2019/01/02 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
2019/08/08 Python
python RC4加密操作示例【测试可用】
2019/09/26 Python
Python全局锁中如何合理运用多线程(多进程)
2019/11/06 Python
python 通过文件夹导入包的操作
2020/06/01 Python
python 制作网站小说下载器
2021/02/20 Python
canvas与html5实现视频截图功能示例
2016/12/15 HTML / CSS
会计师事务所审计实习自我鉴定
2013/09/20 职场文书
晚宴邀请函范文
2014/01/15 职场文书
数控专业大学毕业生职业规划范文
2014/02/06 职场文书
销售辞职信范文
2015/03/02 职场文书
2016年敬老月活动总结
2016/04/05 职场文书
CPU不支持Windows11系统怎么办
2021/11/21 数码科技