详解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 相关文章推荐
Opacity.js
Jan 22 Javascript
加载jQuery后$冲突的解决办法
Jul 09 Javascript
浅谈jQuery事件绑定原理
Jan 02 Javascript
jQuery对JSON数据进行排序输出的方法
Jun 24 Javascript
JavaScript 节流函数 Throttle 详解
Jul 04 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
Dec 06 Javascript
基于bootstrap按钮式下拉菜单组件的搜索建议插件
Mar 25 Javascript
在vue-cli中组件通信的方法
Dec 16 Javascript
vue自定义全局组件(自定义插件)的用法
Jan 30 Javascript
手写Node静态资源服务器的实现方法
Mar 20 Javascript
40行代码把Vue3的响应式集成进React做状态管理
May 20 Javascript
JavaScript中window和document用法详解
Jul 28 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
destoon实现资讯信息前面调用它所属分类的方法
2014/07/15 PHP
Yii的Srbac插件用法详解
2016/07/14 PHP
laravel学习教程之存取器
2016/07/30 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
2016/11/21 PHP
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
2017/03/25 PHP
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
2015/09/05 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
原生javascript 学习之js变量全面了解
2016/07/14 Javascript
Bootstrap table使用方法详细介绍
2016/12/09 Javascript
EasyUI学习之DataGird分页显示数据
2016/12/29 Javascript
基于JS实现二维码图片固定在右下角某处并跟随滚动条滚动
2017/02/08 Javascript
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
如何通过shell脚本自动生成vue文件详解
2019/09/10 Javascript
ES2020 新特性(种草)
2020/01/12 Javascript
微信小程序实现搜索框功能及踩过的坑
2020/06/19 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
Python实现excel转sqlite的方法
2017/07/17 Python
Python管理Windows服务小脚本
2018/03/12 Python
python写入已存在的excel数据实例
2018/05/03 Python
python 脚本生成随机 字母 + 数字密码功能
2018/05/26 Python
Django处理文件上传File Uploads的实例
2018/05/28 Python
Python3.8对可迭代解包的改进及用法详解
2019/10/15 Python
Python面向对象之继承原理与用法案例分析
2019/12/31 Python
python time()的实例用法
2020/11/03 Python
Topman美国官网:英国著名的国际平价时尚男装品牌
2017/12/22 全球购物
护士实习自我鉴定
2013/10/22 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
高中生军训感言
2015/08/01 职场文书
2016教师政治学习心得体会
2016/01/23 职场文书
Python经常使用的一些内置函数
2022/04/11 Python