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 相关文章推荐
JS鼠标事件大全 推荐收藏
Nov 01 Javascript
Jqgrid表格随窗口大小改变而改变的简单实例
Dec 28 Javascript
jQuery遍历json中多个map的方法
Feb 12 Javascript
JS实现CheckBox复选框全选全不选功能
May 06 Javascript
angularJS 指令封装回到顶部示例详解
Jan 22 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
Jun 21 Javascript
使用JS编写的随机抽取号码的小程序
Aug 11 Javascript
js实现二级联动简单实例
Jan 11 Javascript
vue实现信息管理系统
May 30 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
Aug 09 Javascript
vue keep-alive实现多组件嵌套中个别组件存活不销毁的操作
Oct 30 Javascript
如何用JS实现简单的数据监听
May 06 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
《超神学院》霸气归来, 天使彦上演维多利亚的秘密
2020/03/02 国漫
Yii2.0表关联查询实例分析
2016/07/18 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
2019/04/27 PHP
不能再简单的无闪刷新验证码原理很简单
2007/11/05 Javascript
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
jQuery+css实现图片滚动效果(附源码)
2013/03/18 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
2014/10/11 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
JQuery动态添加Select的Option元素实现方法
2016/08/29 Javascript
简单实现jQuery轮播效果
2017/08/18 jQuery
Angular4学习笔记router的简单使用
2018/03/30 Javascript
解决vue scoped html样式无效的问题
2020/10/24 Javascript
python实现爬取千万淘宝商品的方法
2015/06/30 Python
Python装饰器用法示例小结
2018/02/11 Python
Python实现找出数组中第2大数字的方法示例
2018/03/26 Python
Python利用公共键如何对字典列表进行排序详解
2018/05/19 Python
opencv python统计及绘制直方图的方法
2019/01/21 Python
django 信号调度机制详解
2019/07/19 Python
python实现京东订单推送到测试环境,提供便利操作示例
2019/08/09 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
使用Python实现正态分布、正态分布采样
2019/11/20 Python
Win10下用Anaconda安装TensorFlow(图文教程)
2020/06/18 Python
实例代码讲解Python 线程池
2020/08/24 Python
实现Python3数组旋转的3种算法实例
2020/09/16 Python
HTML5中Localstorage的使用教程
2015/07/09 HTML / CSS
印尼综合在线预订网站:Tiket.com(机票、酒店、火车、租车和娱乐)
2018/10/11 全球购物
网络教育自我鉴定
2013/11/01 职场文书
中西医专业毕业生职业规划书
2014/02/24 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
大学生万能检讨书范例
2014/10/04 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书
2014年乡镇工作总结
2014/11/21 职场文书
观看焦裕禄观后感
2015/06/09 职场文书
2016年学习雷锋精神广播稿
2015/12/17 职场文书
Golang 链表的学习和使用
2022/04/19 Golang
Apache Hudi 加速传统的批处理模式
2022/04/24 Servers