1.从后台拿到用户的openid
uni.login({
provider: 'weixin',
success: res => {
// 在服务端获取用户信息
uni.request({
// 你的服务器地址
url: 'https://888/xxxxxxxxxxxxxxxxx',
method: 'POST',
data: {
code: res.code,
},
success(res) {
// 获取需要的用户信息
that.openid = res.data.data.openid;
}
})
},
fail: err => {
uni.showToast({
content: '授权失败,请联系工作人员处理',
duration: 2000
})
}
})
2.在输入 你需要金额和 后台需要的数据 然后请求
uni.request({
url: 'https://xxxxxxxxxxxxxxxxxxxxxxxxxxx',
data: {
subject: this.khname,
money: `${this.khmoney}`,
openid: this.openid
},
success: (res) => {
/*
支付2需要的数据(你们自己后台返回的的数据 这是我的)
nonceStr: "kXPXAPctRdtKA8gn3lnJE"
outsn: "20230818092621980"
package: "prepay_id=wx1809054b0bedb51dafe7c470000"
paySign: "S+5+ETaTFI2qIGvWmyyMKXXCacrl4BRPdRUXDmmzZK7ZulI0joQhcSD+UGaVM4F9oMfhqn/zWNyRwoIf4"
signType: "RSA"
timeStamp: "1692321981"
*/
let outTradeNo = res.data.data.outsn;
//调用支付接口
uni.requestPayment({
provider: 'wxpay',
...res.data.data,
success(res) {
console.log(res);
uni.hideLoading();
// if (res.resultCode === "9000") {
// console.log('跳转');
// } else {
// console.log('支付未完成');
// }
uni.navigateTo({
url: `../paydetail/paydetail?id=${outTradeNo}`
});
},
fail(e) {
uni.showToast({
title: '未支付',
icon: "error",
duration: 1000
})
}
})
},
fail(e) {
// console.log('创建订单失败');
}
});