详解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 相关文章推荐
非主流的textarea自增长实现js代码
Dec 20 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
Jun 18 Javascript
javascript数组快速打乱重排的方法
Jan 02 Javascript
jQuery对下拉框,单选框,多选框的操作
Feb 21 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
Apr 04 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
Mar 03 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
Sep 01 Javascript
Markdown+Bootstrap图片自适应属性详解
May 21 Javascript
JavaScript实现的微信二维码图片生成器的示例
Oct 26 Javascript
jQuery表单元素选择器代码实例
Feb 06 Javascript
node.js express中app.param的用法详解
Jul 16 Javascript
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
Sep 29 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新手上路(三)
2006/10/09 PHP
php控制文件下载速度的方法
2015/03/24 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
2016/05/09 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
laravel框架数据库配置及操作数据库示例
2019/10/10 PHP
PHP的重载使用魔术方法代码实例详解
2021/02/26 PHP
在javascript中如何得到中英文混合字符串的长度
2014/01/17 Javascript
js动态移动滚动条至底部示例代码
2014/04/24 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
Javascript代码实现仿实例化类
2015/04/03 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
Angular.js中控制器之间的传值详解
2017/04/24 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
2017/04/24 Javascript
jQuery实现IE输入框完成placeholder标签功能的方法
2017/09/20 jQuery
React根据宽度自适应高度的示例代码
2017/10/11 Javascript
jQuery实现的电子时钟效果完整示例
2018/04/28 jQuery
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
express框架下使用session的方法
2019/07/31 Javascript
vue实现设置载入动画和初始化页面动画效果
2019/10/28 Javascript
[01:30]2016国际邀请赛中国区预选赛神秘商店火爆开启
2016/06/26 DOTA
浅谈Python 中整型对象的存储问题
2016/05/16 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
2018/01/06 Python
python中的内置函数max()和min()及mas()函数的高级用法
2018/03/29 Python
Python统计单词出现的次数
2018/04/04 Python
python抓取网站的图片并下载到本地的方法
2018/05/22 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
2018/10/09 Python
Python 共享变量加锁、释放详解
2019/08/28 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
运动会广播稿200米
2014/01/27 职场文书
食品安全工作方案
2014/05/07 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
干货:我将这样书写我的演讲稿!
2019/05/09 职场文书
【D4DJ】美少女DJ企划 动画将于明年冬季开播第2季
2022/04/11 日漫