1.登录获取code
uni.login({
success(res) {
console.log("code", res.code)
}
})
2.调用微信接口,code换取openid(用户真实id)
uni.request({
// 微信接口
url: "https://api.weixin.qq.com/sns/jscode2session",
data: {
// appid: '小程序appId',
// secret: '小程序密钥,在小程序appId下一行,放一块在',
// js_code: '刚才获取的code',
// grant_type: 'authorization_code' ,//固定值
appid: 'wx9055d5fde47088f2',
secret: 'e1518a7662899aa7f57aa49154578a84',
js_code: res.code,
grant_type: 'authorization_code'
},
success(res) {
console.log("openid", res.data.openid)
}
})
3.调用(自己)公司 支付接口
该商品库存-1
//调用公司后端自己提供的接口
uni.request({
url: '',
method: 'POST',
data:{
openId: res.data.openid, //用户真实id
name: '电饭煲', //商品名称
money: _this.money, //扣多少钱
code: _this.id++, //订单编号
payType: 1, //小程序支付1
clientIp: '127.0.0.2' //随便填一个ip
},
success(res) {
// appId: "wx4f27fd5197bfda"
// nonceStr: "VmTJObhbihujKoW"
// packageValue: "prepay_id=wx11161138405677ddd5099b941e9ed0000"
// paySign: "3298C274FE7C27F17EBFD4C2320564B"
// signType: "MD5"
// timeStamp: "1665475333"
}
})
4.调用官方微信支付接口,传递给官方接口
取消支付不调用,订单状态待支付
支付超时未支付,不能支付且该商品库存-1
uni.requestPayment({
timeStamp: res.data.data.timeStamp,
paySign:res.data.data.paySign,
package: res.data.data.packageValue,
signType: res.data.data.signType,
nonceStr: res.data.data.nonceStr,
success() {
console.log('支付成功')
}
})