支付的流程总结分3步骤
1,向自己的后台提交资料
2,后台返回相应的字段
3,拿到字段向微信发请求
代码如下:
//去支付
goPay: function () {
wx.request({
url: app.globalData.urls + app.globalData.gopayK,
data: {
//后台需要的参数,用于生成订单。
},
header: {
"Content-Type": "application/x-www-form-urlencoded"
},
method: "POST",
success: (res) => {
//第二步
if (res.data.error == "0") { //提交成功
wx.request({
url: app.globalData.urls + app.globalData.gopaytext,
data: {//后台需要的参数,一般是3个
openid: utils.getopenid(), //登陆的时候,给后台code,后台返回的openid
body: "XXX",
orderNum: res.data.data.orderNum,
},
header: {
"Content-Type": "application/x-www-form-urlencoded"
},
method: "POST",
success: (res) => {
3,后台返回的参数,在给微信发过去
var timeStamp = res.data.data.timeStamp
var packages = res.data.data.package
var nonceStr = res.data.data.nonceStr
var paySign = res.data.data.paySign
var appId = res.data.data.appId
if (res.data.error == 0) {
wx.requestPayment({
"timeStamp": timeStamp,
"package": packages,
"paySign": paySign,
"appId": appId,
"signType": "MD5",
"nonceStr": nonceStr,
'success': function (res) {
console.log('success');
wx.showToast({
title: '支付成功',
icon: 'success',
duration: 3000,
})
//获取页面栈
let pages = getCurrentPages();
//上一个页面实例对象
let prepage = pages[pages.length - 2];
//把得到的值回调给上个界面
app.globalData.tjqx = "ok"; //获取差参数
// prepage.setData({
// status: "ok",
// });
//返回到上一个界面
wx.navigateBack({})
},
'fail': function (res) {
wx.showToast({
title: '支付失败',
icon: 'success',
duration: 3000
});
},
});
}
}
})
} else {
this.prompt(res.data.msg)
}
}
})
},