微信小程序---微信支付流程实现
好的,我将详细描述微信小程序中的微信支付流程实现。
一、微信小程序的两种支付流程
微信小程序提供了两种支付流程:云支付和非云支付。下面分别介绍这两种支付流程的实现方法。
1. 云支付云支付是微信小程序中的一种支付方式,通过后端获取订单参数,并返回一个虚拟订单号,然后调用微信支付接口即可调起微信支付操作。
步骤:
1. 后端生成虚拟订单:开发者需要在后端生成一个虚拟订单号,这个订单号将作为支付的凭证。
2. 获取订单参数:小程序端通过后端接口获取到虚拟订单号和其他相关信息,如订单金额、商品名称等。
3. 调用微信支付接口:小程序端通过微信支付接口,传递虚拟订单号和其他相关信息,调起微信支付操作。
示例代码:
```javascript// 后端生成虚拟订单const order = {
id: 'ORDER_123456',
amount:10.99,
goods_name: '测试商品'
};
// 小程序端获取订单参数wx.cloud.callFunction({
name: 'getOrder',
data: { id: order.id },
success: res => {
const { code, message } = res.result;
if (code ===0) {
// 调用微信支付接口 wx.requestPayment({
timeStamp: res.timeStamp,
nonceStr: res.nonceStr,
package_: res.package_,
signType: res.signType,
paySign: res.paySign,
success: () => {
console.log('支付成功!');
},
fail: err => {
console.error(err);
}
});
} else {
console.error(message);
}
},
fail: err => {
console.error(err);
}
});
```
2. 非云支付非云支付是指小程序端直接与微信支付服务器通信,进行支付操作。这种方式不需要后端的参与。
步骤:
1. 获取用户授权:小程序端需要获取用户的授权,才能进行支付操作。
2. 生成预付订单:小程序端通过微信支付接口,生成一个预付订单号。
3. 调起微信支付:小程序端通过微信支付接口,传递预付订单号和其他相关信息,调起微信支付操作。
示例代码:
```javascript// 获取用户授权wx.authorize({
scope: 'scope.writePhotosAlbum',
success: () => {
//生成预付订单 wx.request({
url: ' method: 'POST',
data: {
appid: 'YOUR_APPID',
mch_id: 'YOUR_MCH_ID',
nonce_str: Math.random().toString(36).substr(2),
body: '测试商品',
out_trade_no: Date.now(),
total_fee:10.99,
spbill_create_ip: '192.168.1.1'
},
header: {
'Content-Type': 'application/x-www-form-urlencoded'
},
success: res => {
const { code, message } = res.result;
if (code ===0) {
// 调起微信支付 wx.requestPayment({
timeStamp: res.timeStamp,
nonceStr: res.nonceStr,
package_: res.package_,
signType: res.signType,
paySign: res.paySign,
success: () => {
console.log('支付成功!');
},
fail: err => {
console.error(err);
}
});
} else {
console.error(message);
}
},
fail: err => {
console.error(err);
}
});
},
fail: err => {
console.error(err);
}
});
```
注意:
* 在使用微信支付接口时,需要遵守微信支付的相关规则和规范。
* 需要在后端生成虚拟订单号,并传递给小程序端,以便进行支付操作。
* 小程序端需要获取用户授权,并调起微信支付操作。
以上是微信小程序中的微信支付流程实现的详细描述。