1. 注册微信支付商户号(由上级或法人注册)
2. 注册小程序账号(由上级或者领导注册)
3. 登录商户号绑定小程序
4. 后端工程师书写接口
- 后端书写接口,根据前端传入数据,返回微信支付核心数据,后端需要什么数据,前端调用此接口时,传给后端即可

"appId": "xxxx",
"nonceStr": "xxxx",
"packageValue": "prepay_id=xxxxx",
"paySign": "xxxxxx",
"signType": "MD5",
"timeStamp": "xxxxxx"
5. 前端工程师调用接口
5.1. 获取openid(当前用户真实id)
- 最重要的参数就是用户的openId,此id无法直接获取.需要先调用login()拿到code,再用code去微信服务器换openid
5.2 调用公司后端接口,获取支付核心数据
- 此接口必须返回以下6个核心数据,都是由后台计算生成
5.3 调用微信官方支付接口,弹出支付界面
uni.login({
success(res) {
console.log(res.code)
uni.request({
url: 'https://api.weixin.qq.com/sns/jscode2session',
data: {
appid: 'wx4f27fd51b9a7bfda',
secret: '1a9bfee5a8155f0020c5857cd9038674',
js_code: res.code,
grant_type: 'authorization_code'
},
success(obj) {
console.log(obj.data.openid, '获取到用户的真实id')
uni.request({
url: 'http://api.100qhl.com:5024/v1/order/createOrder',
method: 'POST',
data:{
openId: obj.data.openid,
name: '电饭煲',
money: _this.money,
code: _this.id++,
payType: 1,
clientIp: '127.0.0.2'
},
success(res) {
console.log(res, '服务器返回的数据')
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('支付成功')
}
})
}
})
}
})
}
})