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 相关文章推荐
document对象execCommand的command参数介绍
Aug 01 Javascript
JavaScript打字小游戏代码
Dec 26 Javascript
多个datatable共存造成多个表格的checkbox都被选中
Jul 11 Javascript
js中数组Array的一些常用方法总结
Aug 12 Javascript
js使用cookie记录用户名的方法
Nov 26 Javascript
Jquery技巧(必须掌握)
Mar 16 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
May 17 Javascript
从对象列表中获取一个对象的方法,依据关键字和值
Sep 20 Javascript
angularjs实现猜大小功能
Oct 23 Javascript
JavaScript原生数组函数实例汇总
Oct 14 Javascript
解决vue scoped html样式无效的问题
Oct 24 Javascript
WebPack工具运行原理及入门教程
Dec 02 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
PHP语法自动检查的Vim插件
2014/08/11 PHP
php中magic_quotes_gpc对unserialize的影响分析
2014/12/16 PHP
PHP使用mysqldump命令导出数据库
2015/04/14 PHP
php实现的mongodb操作类
2015/05/28 PHP
php自动加载方式集合
2016/04/04 PHP
php的socket编程详解
2016/11/20 PHP
PHP实现文件上传功能实例代码
2017/05/18 PHP
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
js 上下左右键控制焦点(示例代码)
2013/12/14 Javascript
HTML页面登录时的JS验证方法
2014/05/28 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
2015/09/18 Javascript
ionic 上拉菜单(ActionSheet)实例代码
2016/06/06 Javascript
javascript实现滚动效果的数字时钟实例
2016/07/21 Javascript
domReady的实现案例
2016/11/23 Javascript
react开发中如何使用require.ensure加载es6风格的组件
2017/05/09 Javascript
nodejs利用ajax实现网页无刷新上传图片实例代码
2017/06/06 NodeJs
React项目动态设置title标题的方法示例
2018/09/26 Javascript
vue实现表单录入小案例
2019/09/27 Javascript
JS XMLHttpRequest原理与使用方法深入详解
2020/04/30 Javascript
JavaScript用document.write()输出换行的示例代码
2020/11/26 Javascript
两个使用Python脚本操作文件的小示例分享
2015/08/27 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
Python键盘输入转换为列表的实例
2018/06/23 Python
python 遍历列表提取下标和值的实例
2018/12/25 Python
对python实现二维函数高次拟合的示例详解
2018/12/29 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
kafka-python 获取topic lag值方式
2019/12/23 Python
html5菜单折纸效果
2014/04/22 HTML / CSS
武汉世纪畅想数字传播有限公司 .NET笔试题
2015/06/13 面试题
2014国培学习感言
2014/03/05 职场文书
物业管理委托协议(2篇)
2014/09/23 职场文书
无锡灵山大佛导游词
2015/02/09 职场文书
Win11无法安装更新补丁KB3045316怎么办 附KB3045316补丁修复教程
2022/08/14 数码科技