1. 通过uni/wx.login()接口获取临时登录凭证 code
2. 通过code,调后端接口获取 open_id
3. 通过open_id和订单编号,调后端接口(后端调用统一下单接口,用于创建订单,给该订单绑定对应的数据,如:本小程序关联的商户信息,付款金额等等),返回值中的 package
4. 调用uni.requestPayment()
需要后端返回的值有:package 、paySign…
package:统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=xx。
// 该API用于调起微信支付的弹框 每个参数应该都不能省略
uni.requestPayment({
provider: 'wxpay', // 看需求,每个端都有各自的值,eg: 'alipay'
timeStamp: res.data.timeStamp, // 当前时间戳(从1970年1月1日至今的秒数)
nonceStr: res.data.nonceStr, // 随机字符串 - 也可以后端返回
package: res.data.package, // 后端接口返回
paySign: res.data.paySign, // 后端返回
signType: 'MD5', // 签名的算法,默认值 ’MD5‘
success: (result) => {
console.log('success', result)
// 支付成功跳转结果页
uni.setStorageSync('resultObject', {type: 'pay', status: 1, payType: 'wxpay' })
uni.redirectTo({
url: '/pageMall/pages/mall/result'
})
},
fail: (err) => {
console.log('fail', err)
uni.showToast({
title: '订单已生成,支付失败',
icon: 'none',
duration: 2000
})
setTimeout(() => uni.navigateBack(), 1000)
}
})