const wechatOrder = function wechatOrder(money, successDate, errorData) {
var that = this;
var url = '域名路径' + "/order/add"; //这里是下单接口的请求路径
var data = {
money: money
};
uni.request({
url: url,
data: data,
method: "POST",
header: {}, //请求头
success: (res) => {
if (res.data.code === 200) {
wechatPay(res.data.msg, money, (res) => {
successDate(res)
}, (err) => {
errorData(err)
})
}
},
fail: (err) => {
return false
}
});
}
}
function wechatPay(orderId, money, successDate, errorData) {
var that = this;
var userinfo = uni.getStorageSync("userinfo").member;
var url = Vue.prototype.BaseURL + '/pay/wechat'
var data = {
orderId: orderId,//订单ID
openId: openId//用户openid
};
uni.request({
url: url,
data: data,
method: "POST",
header: {},
success: (res) => {
if (res.data.code === 200) {
xcxPay(res.data.data, (res) => {
successDate(res)
}, (err) => {
errorData(err)
})
}
},
fail: (err) => {
console.log('请求错误信息: ' + err);
}
});
}
/**
* 调用微信支付接口
*/
function xcxPay(result, successDate, errorData) {
uni.requestPayment({
'nonceStr': result.nonceStr,
'package': result.package, // 这里的值必须是 prepay_id=XXXXXXXXX 的格式,否则也会报错
'signType': 'MD5',
'timeStamp': result.timeStamp, // 时间戳必须是字符串,否则会报错
'paySign': result.sign,
'success': function(res) {
// 这里应该是 res.errMsg , 跟公众号的支付返回的参数不一样,公众号是 err_msg, 就因为没注意到这个,折腾了很长时间
console.log(res)
if (res.errMsg == "requestPayment:ok") { // 调用支付成功
successDate(true)
// uni.showToast({
// title: '支付成功',
// icon: 'success',
// success(res) {
// }
// });
}
},
'fail': function(res) {
errorData(false)
},
'complete': function(res) {
// console.log('paycomplete-->', res)
// return false
}
})
}
uni-app 封装微信小程序支付请求
最新推荐文章于 2024-01-26 15:26:36 发布