一、首先熟悉支付流程
二、支付前进行的操作
在用户登录的时候就获取用户的 openid 为支付做准备
- 在
qpp.js中 通过wx.login来获取用户的code - 通过
code先后端发送请求得到openid - 将
openid存储到本地 方便使用
三、当进行支付操作时
- 通过 接口获取
预支付信息 - 需要发送的参数:
| 参数名称 | 值 |
|---|---|
| openid | 存储的openid |
| body | 商品描述 |
| out_trade_no | 编号(new Date().getTime()) |
| total_fee | 多少钱 以分为单位 |
3.通过后端返回的预支付信息
- 通过wx.requestPayment发起支付请求参数就是后端返回的预支付信息
四、代码
获取openid
// app.js
App({
onLaunch() {
//1.在用户登录的时候获取用户的 openid
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
// 1.1获取用户的code
let code = res.code
// 1.2根据用户的code获取用户的openid
wx.request({
url: 'http://mppay.0820.cloud/openid.php',
data: { code },
success: res => {
//1.3对openid进行存储
wx.setStorageSync('openid', res.data.openid)
},
fail: err => {
console.log(err);
}
})
}
})
},
})
支付
// 2.在获取完毕openid之后 获取预支付信息
goPay() {
wx.request({
url: 'http://mppay.0820.cloud/jsapi.php',
method: "POST",
data: {
//用户id
openid: wx.getStorageSync('openid'),
//商品信息
body: "支付测试",
//编号
out_trade_no: new Date().getTime(),
//支付多少 是以钱的分为单位
total_fee: 1
},
success: res => {
console.log(res, 'res');
//2.1调取支付窗口
wx.requestPayment({
...res.data,
success: res => {
console.log(res, 'payres');
},
fail: err => {
console.log(err, 'errpay');
}
})
},
fail: err => {
console.log(err, 'err');
}
})
},