1:获取用户的open_id
getOpenid(options, authorization) {
const that = this
let app_id = ' ' //这里是小程序的app_id
wx.login({
success: function (res) {
// 调用后端接口获取
http.getReq(********+ `/?code=${res.code}&app_id=${app_id}`, function (res) {
console.log(res.data.openid) // 获取到的openid
})
}
})
},
2:获取用户的手机号
获取用户手机号链接
3:获取小程序的支付信息(调用后端接口)
// 这段可以在H5内实现,也可以在微信小程序内实现
appletPay() {
const that = this
appletPayApi({
mchno: ' ',//这里是支付的商户号
open_id: ' ', // 小程序用户的open_id
way_code: "WX_LITE",
total_amount: Number(that.total_amount),//支付金额
order_num: 'yszcz' + new Date().getTime(),//订单号
phone_number: that.phone_number, //手机号
subject:"充值",
payment_type:0
}).then(res => {
if (res.message === 'success') {
console.log(res)
const payData = JSON.parse(res.data.payData)
const param = {
appId: payData.appId,
nonceStr: payData.nonceStr,
package: payData.package.split('=')[1],
paySign: payData.paySign,
signType: payData.signType,
timeStamp: payData.timeStamp,
payDetailId: res.data.payOrderId,
callbackUrl: 'https://fatsha.eloadspider.com/#/recharge?is_pay=success',
failBackUrl: 'https://fatsha.eloadspider.com/#/recharge?is_pay=error',
full_payment: Number(that.total_amount),
open_id: that.open_id,
phone_number: that.phone_number,
pay_order_id: res.data.payOrderId,
}
console.log(param)
const obj = {
payParam: param,
tokenModel: 'yszcz'
}
// 这里是微信小程序的
this.wxPay(payParam, tokenModel) // 唤起微信支付
} else {
instance('获取支付信息失败')
}
})
},
// 微信小程序内的唤起微信支付窗口
// 唤起微信支付窗口
wxPay(payParam, tokenModel) {
let that = this
wx.requestPayment({
'timeStamp': payParam.timeStamp,
'nonceStr': payParam.nonceStr,
'package': 'prepay_id=' + payParam.package,
'signType': payParam.signType,//'MD5',
'paySign': payParam.paySign,
'success': function (res) {
// 成功后需要处理的业务
},
'fail': function (res) {
// 失败后需要处理的业务
},
'complete': function (res) {
if (res.errMsg == 'requestPayment:fail cancel') {
// 失败后需要处理的业务
}
},
})
},