小伙伴们现在分享一哈小程序微信支付,有兴趣的可以了解一下,上干货!!!
// pages/confirm/confirm.js
const app = getApp();
import { conFirm } from 'confirm-model.js';
var confirm = new conFirm(); //实例化 对象
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
*点击立即支付
*
*/
formSubmit:function(e){
var that = this;
//这里是去你后端生成订单编号
var payInfo = {
body: '提示信息',
total_fee: '金额',
order_sn: '后端接口返回给你的订单编号',
openid: openid,//支付人openid
}
that.wxPay(payInfo);//参数验证,上面的四个参数缺一不可
},
/**
* TODO 支付函数 【需要支付时调用此函数即可】
* @param {[type]} _payInfo [description]
* @return {[type]} [description]
*/
wxPay: function (_payInfo) {
var that = this;
//提取订单信息
var payInfo = {
body: '',
total_fee: '',
order_sn: '',
openid: ''
}
//将所有可枚举属性的值从一个或多个源对象复制到目标对象,然后返回目标对象
Object.assign(payInfo, _payInfo);
if (payInfo.body.length == 0) {
var message = '支付信息描述错误';
that.prompt(message);
return false;
}
if (payInfo.total_fee == 0) {
var message = '支付金额不能0';
that.prompt(message);
return false;
}
if (payInfo.order_sn.length == 0) {
var message = '订单号不能为空';
that.prompt(message);
return false;
}
that.getPrepay_id(payInfo);
},
/**
* 生成预支付订单prepay_id
*/
getPrepay_id: function (payInfo) {//这里是去后端获取预支付订单id,prepay_id
var that = this;
var body = payInfo.body;
var total_fee = payInfo.total_fee;
var order_sn = payInfo.order_sn;
var openid = payInfo.openid;
confirm.getPrepay_id(body, total_fee, order_sn, openid, (res) => {
that.payCallBack(res);//获取到支付需要的参数,去调起微信支付
})
},
/**
* 微信唤醒支付的回调操作
*/
payCallBack: function (payResult) {
var self = this;
// console.log(payResult);
wx.requestPayment({
'timeStamp': payResult.timeStamp,
'nonceStr': payResult.nonceStr,
'package': payResult.package,
'signType': payResult.signType,
'paySign': payResult.paySign,
'success': function (succ) {
//此处做支付成功后的页面展示
var message = '支付成功';
self.prompt(message);
},
'fail': function (err) {
//此处做支付失败后的页面展示
var message = '支付失败';
self.prompt(message);
},
})
},
/**
* 提示框
*/
prompt: function (message) {
wx.showToast({
title: message,
icon: 'none',
duration: 2000, //时间
mask: true //蒙层
})
},
})
这里只是前端的微信调起支付,需要配合后端接口去获取prepay_id,如果有不懂的小伙伴,可以微object_1995联系我哦!!!
整理不易,转发请附原创地址,谢谢