vue前后分离调起微信支付


Posted in Javascript onJuly 29, 2019

本文实例为大家分享了vue前后分离调起微信支付的具体代码,供大家参考,具体内容如下

@ VUE调起微信支付

VUE前后分离调起微信支付

支付很简单,但每次都是在网上直接扒下来使用,老年人记忆,于是就自己记录一下,方便以后快速的粘贴复制;

第一步: VUE 需要安装 微信支付模块

// npm install weixin-js-sdk
import wx from "weixin-js-sdk";

第二步:封装 微信支付方法

wexinPay(data, cb, errorCb) {
  //获取后台传入的数据
  let appId = data.appId;
  let timestamp = data.timeStamp;
  let nonceStr = data.nonceStr;
  let signature = data.signature;
  let packages = data.package;
  let paySign = data.paySign;
  let signType = data.signType;
  console.log('发起微信支付')
  //下面要发起微信支付了
  wx.config({
   debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
   appId: appId, // 必填,公众号的唯一标识
   timestamp: timestamp, // 必填,生成签名的时间戳
   nonceStr: nonceStr, // 必填,生成签名的随机串
   signature: signature, // 必填,签名,见附录1
   jsApiList: ['chooseWXPay'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
  });
  wx.ready(function () {
   wx.chooseWXPay({
    timestamp: timestamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
    nonceStr: nonceStr, // 支付签名随机串,不长于 32 位
    package: packages, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
    signType: signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
    paySign: paySign, // 支付签名
    success: function (res) {
     // 支付成功后的回调函数
     cb(res);
    },
    fail: function (res) {
     //失败回调函数
     errorCb(res);
    }
   });
  });
  wx.error(function (res) {
   // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
   /*alert("config信息验证失败");*/
  });
 }

第三步:向后台请求数据 成功获取 转入微信支付方法 调起 微信支付

//请求后台接口获取数据 准备进行微信支付 
  that.axios.post("user/recommend", data).then(res => {
  //成功状态下 
  if (res.data.status) {
   // 存储微信支付数据data
   let data = res.data.data;
   console.log("即将跳转微信支付");
   //函数为分装过得 (就是调用微信支付)
   http.wexinPay(
   {
    appId: data.appId,
    nonceStr: data.nonceStr,
    package: data.package,
    paySign: data.paySign,
    signType: data.signType,
    timeStamp: data.timeStamp
   },
   //成功回调函数
   res => {
    that.$router.push({ path: "/vip" });
   }
   );
  } 
  else {
   that.$message.error(res.data.message);
 }
});

PS: 注意查看数据是够对应 ,后台有时候可能会把提现和支付搞混,保证数据正确性;

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

Javascript 相关文章推荐
jQuery中setTimeout的几种使用方法小结
Apr 07 Javascript
JQuery对id中含有特殊字符的转义处理示例
Sep 06 Javascript
Array 重排序方法和操作方法的简单实例
Jan 24 Javascript
解决node.js安装包失败的几种方法
Sep 02 Javascript
jQuery实现可拖拽3D万花筒旋转特效
Jan 03 Javascript
基于JavaScript实现的顺序查找算法示例
Apr 14 Javascript
layui form表单提交之后重新加载数据表格的方法
Sep 11 Javascript
vue-form表单验证是否为空值的实例详解
Oct 29 Javascript
Vue防止白屏添加首屏动画的实例
Oct 31 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
Jan 12 Javascript
深入webpack打包原理及loader和plugin的实现
May 06 Javascript
webpack+express实现文件精确缓存的示例代码
Jun 11 Javascript
详解vue-property-decorator使用手册
Jul 29 #Javascript
微信小程序new Date()方法失效问题解决方法
Jul 29 #Javascript
微信小程序 WXML节点信息查询详解
Jul 29 #Javascript
微信小程序登录对接Django后端实现JWT方式验证登录详解
Jul 29 #Javascript
JavaScript HTML DOM元素 节点操作汇总
Jul 29 #Javascript
vue.js 2.0实现简单分页效果
Jul 29 #Javascript
JavaScript如何获取一个元素的样式信息
Jul 29 #Javascript
You might like
isset和empty的区别
2007/01/15 PHP
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
php最简单的删除目录与文件实现方法
2014/11/28 PHP
laravel学习教程之存取器
2016/07/30 PHP
PHP中的use关键字及文件的加载详解
2016/11/28 PHP
php unicode编码和字符串互转的方法
2020/08/12 PHP
JS 获取span标签中的值的代码 支持ie与firefox
2009/08/24 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
2013/01/11 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
2014/06/10 Javascript
js判断某个方法是否存在实例代码
2015/01/10 Javascript
基于jQuery实现左右图片轮播(原理通用)
2015/12/24 Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
2016/08/28 Javascript
微信小程序 canvas API详解及实例代码
2016/10/08 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
Angularjs 实现移动端在线测评效果(推荐)
2017/04/05 Javascript
Bootstrap Table使用整理(一)
2017/06/09 Javascript
深入理解Vuex 模块化(module)
2017/09/26 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
2019/05/20 Javascript
layui实现左侧菜单点击右侧内容区显示
2019/07/26 Javascript
javascript 使用sleep函数的常见方法详解
2020/04/26 Javascript
JS算法教程之字符串去重与字符串反转
2020/12/15 Javascript
Python函数式编程
2017/07/20 Python
详谈Numpy中数组重塑、合并与拆分方法
2018/04/17 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
Python any()函数的使用方法
2019/10/28 Python
html5如何在Canvas中实现自定义路径动画示例
2017/09/18 HTML / CSS
全球烹饪课程的领先预订平台:Cookly
2020/01/28 全球购物
李维斯牛仔裤荷兰官方网站:Levi’s NL
2020/08/23 全球购物
2014年政工师工作总结
2014/12/18 职场文书
自荐信格式模板
2015/03/27 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
redis 查看所有的key方式
2021/05/07 Redis
python可视化大屏库big_screen示例详解
2021/11/23 Python
各国货币符号大全
2022/02/17 杂记
python微信智能AI机器人实现多种支付方式
2022/04/12 Python