详解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 相关文章推荐
JS字符串函数扩展代码
Sep 13 Javascript
JS判断客服QQ号在线还是离线状态的方法
Jan 13 Javascript
javascript中使用new与不使用实例化对象的区别
Jun 22 Javascript
js实现浏览本地文件并显示扩展名的方法
Aug 17 Javascript
基于javascript实现tab选项卡切换特效调试笔记
Mar 30 Javascript
微信小程序之picker日期和时间选择器
Feb 09 Javascript
Vue2 配置 Axios api 接口调用文件的方法
Nov 13 Javascript
详解几十行代码实现一个vue的状态管理
Jan 28 Javascript
json 带斜杠时如何解析的实现
Aug 12 Javascript
vue视频播放暂停代码
Nov 08 Javascript
jQuery轮播图功能制作方法详解
Dec 03 jQuery
vue-router 路由传参用法实例分析
Mar 06 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代码优化之成员变量获取速度对比
2014/02/28 PHP
PHP框架Laravel学习心得体会
2015/10/28 PHP
PHP使用file_get_content设置头信息的方法
2016/02/14 PHP
php实现的redis缓存类定义与使用方法示例
2017/08/09 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
2019/12/03 PHP
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
移动端JQ插件hammer使用详解
2015/07/03 Javascript
JavaScript表单验证实例之验证表单项是否为空
2016/01/10 Javascript
Node.js操作Firebird数据库教程
2016/03/04 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
基于jQuery的ajax方法封装
2016/07/14 Javascript
Highcharts入门之简介
2016/08/02 Javascript
微信小程序 动态绑定数据及动态事件处理
2017/03/14 Javascript
详解微信第三方小程序代开发
2017/06/23 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
vue组件的写法汇总
2018/04/12 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
vant 时间选择器--开始时间和结束时间实例
2020/11/04 Javascript
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
使用Python读取安卓手机的屏幕分辨率方法
2018/03/31 Python
Python实现密码薄文件读写操作
2019/12/16 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
Python2及Python3如何实现兼容切换
2020/09/01 Python
Python安装并操作redis实现流程详解
2020/10/13 Python
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
元旦获奖感言
2014/03/08 职场文书
大专生自荐书范文
2014/06/22 职场文书
董事长助理岗位职责
2015/02/11 职场文书
个人总结格式范文
2015/03/09 职场文书
2019七夕节祝福语36句,快来收藏吧
2019/08/06 职场文书
详解PyTorch模型保存与加载
2022/04/28 Python