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 相关文章推荐
基础的prototype.js常用函数及其用法
Mar 10 Javascript
javascript写的一个模拟阅读小说的程序
Apr 04 Javascript
node.js中的fs.lchown方法使用说明
Dec 16 Javascript
vue.js指令v-model实现方法
Dec 05 Javascript
js中数组的常用方法小结
Dec 30 Javascript
简单实现js进度条加载效果
Mar 25 Javascript
Angular6 用户自定义标签开发的实现方法
Jan 08 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
May 07 Javascript
React中使用外部样式的3种方式(小结)
May 28 Javascript
Vue数据绑定实例写法
Aug 06 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
Jan 22 Javascript
JavaScript实现通讯录功能
Dec 27 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原理的opcodes(操作码)
2010/10/26 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
2014/03/08 PHP
php数组合并的二种方法
2014/03/21 PHP
php生成年月日下载列表的方法
2015/04/24 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
2016/04/07 PHP
用ASP将SQL搜索出来的内容导出为TXT的代码
2007/07/27 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
2012/03/01 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
2013/05/21 Javascript
javascript 数字格式化输出的实现代码
2013/12/10 Javascript
javascript正则表达式模糊匹配IP地址功能示例
2017/01/06 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
2017/01/18 Javascript
MUI  Scroll插件的使用详解
2017/04/13 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
2017/04/16 Javascript
vue之nextTick全面解析
2017/05/17 Javascript
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
详解webpack+ES6+Sass搭建多页面应用
2018/11/05 Javascript
vue实现简单的星级评分组件源码
2018/11/16 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
vue项目配置使用flow类型检查的步骤
2020/03/18 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
Python中decorator使用实例
2015/04/14 Python
Python输出PowerPoint(ppt)文件中全部文字信息的方法
2015/04/28 Python
Python selenium如何设置等待时间
2016/09/15 Python
Django中Model的使用方法教程
2018/03/07 Python
Python 发送邮件方法总结
2020/08/10 Python
Python中使用aiohttp模拟服务器出现错误问题及解决方法
2020/10/31 Python
详解python中的异常和文件读写
2021/01/03 Python
会计主管岗位职责范文
2013/11/08 职场文书
电子商务专业个人的自我评价
2013/11/19 职场文书
地理科学专业自荐信
2014/09/01 职场文书
小学教学工作总结2015
2015/05/13 职场文书
安全教育的主题班会
2015/08/13 职场文书
竞聘书的秘诀
2019/04/02 职场文书
实战 快速定位MySQL的慢SQL
2022/03/22 MySQL