第一步:调用uni.login获取用户的code
第二步:携带用户的code向后端发起请求,获取用户的openId
第三步:携带用户的openId和要支付的金额等参数,向后端发起请求,获取微信支付需要的相关参数
第四步:携带微信支付需要的相关参数,调用uni.requestPayment拉起微信支付
1.调用uni.login接口获取用户的code
uni.login({
provider: 'weixin',
success (res) {
if (res.code) {
this.payFn(res.code)
} else {
}
}
})
//第二步+第三步+第四步
async payFn(code){
//2.获取用户的openId
const res = await uni.$http.get('后端接口?code='+code)
if(res.code === 200){
const data = {
openId:res.data.openId,
money:this.money
}
//3.获取支付相关的参数
const {data:res2} = await uni.$http.post('后端接口',data)
if(res2.code === 200){
//4.调用微信的支付接口,携带后端返回的支付相关的参数,即可完成支付
uni.requestPayment({
provider: 'wxpay',
timeStamp: res2.data.timeStamp,
nonceStr: res2.data.nonceStr,
package: res2.data.package,
signType: 'MD5',
paySign: res2.data.paySign,
success: function (res) {
uni.showToast({
title:'支付成功',
icon:'success'
})
},
fail: function (err) {
uni.showToast({
title:'支付失败',
icon:'error'
})
}
});
}
}