0
点赞
收藏
分享

微信扫一扫

微信小程序支付(uni-app)


以下4个步骤对应最下面“详细代码”的4个方法

第一步 :

先通过uni.login获取code

(如果是微信原生的小程序开发,应该是wx.login)

第二步:

将code传给后台接口,获取openid

第三步:

将openid传给后台接口,获取微信支付所需参数

最后:

通过uni.requestPayment这个api发起微信支付

(如果是微信原生的小程序开发,应该是wx.requestPayment)

详细代码如下

//获取code
getCode() {
uni.login({
provider: 'weixin',
success: (res) => {
if (res.code) { //微信登录成功 已拿到code
this.getOpenId(res)
} else {
console.log('登录失败!' + res.errMsg)
}
},
fail: () => {

}
});
},
//获取openId
getOpenId(res) {
this.$http({ //请求后台接口获取openId
url: '/api/grouppurchase/isAuth', //请以你的后端接口为准
noToken: true,
data: {
code: res.code,
},
}).then(res => {
if (res.code == 0) {
uni.setStorageSync('openid', res.data.openid)
} else {
this.hasLogin = false
}

}).catch(() => {
this.hasLogin = false
})
},
//点击支付按钮
//将openId传给后台接口,获取微信支付所需参数
getPayParams() {
let openId = uni.getStorageSync('openid')
this.$http({
url: '/api/order/createPayData',
method: 'POST',
data: {
orderId: this.orderId,
"client": "WX_MINI",
"openId": openId,
"payType": 2,
}
}).then(res => {
if (res.code == 0) {
this.wxpay(JSON.parse(res.data))
} else {
uni.showToast({
title: res.msg,
icon: "none"
});
}
}).catch(res => {
this.btnDisabled = false
})
},
//调用支付api,发起支付
wxpay(params) {
uni.requestPayment({
provider: 'wxpay',
timeStamp: params.timeStamp,
nonceStr: params.nonceStr,
package: params.package,
signType: params.signType,
paySign: params.paySign,
success: (res) => {
uni.showToast({
title: '支付成功'
})

},
fail: (err) => {
this.getSubscribe('0')
},
complete: (err) => {
//this.getOrderStatus()
this.btnDisabled = false
}
});
},

举报

相关推荐

0 条评论