uni-app中实现微信|支付宝支付
一、主要逻辑
1.支付可能需要哪些东西
- 支付的金额
- 订单的标题
- 订单号
- 订单的有效期
- 支付完成跳转的链接
2.支付
2.1.点击立即购买的时候,想后端发送ajax请求,请求中携带信息 的完整流程
ajax({
url:xxxx, =====》前端给后端传递的数据
data:{
用户id,
****订单的金额
****订单的商品系类
},
success:function(){ ===》后端给前端返回的数据
if(data.xxx){
data是一个对象,通常含有订单号
然后跳转到确认订单页面
}
}
})
2.2.确认订单页面===>点击提交订单===>选择支付方式(支付前也会发送请求)
2.2.1 再三确定用户选择的,和后端返回的方式是否一致
2.2.2 对接官方支付
总结1:用户点击购买的时候不是立即调起支付的请求,而是向后端发送请求,然后后端返回订单号。返回订单号的意义就是当用户点击提交订单的时候,再将这个订单号传递给后端,可以知道该订单的状态,然后同时将用户选择 的支付方式告知后端,最后后端进行返回验证。最后根据后端返回的数据发送支付请求(对接官方)----这个支付请求一般是封装好的,你只需要传递一些数据即可
前端拿到订单号之后再向后端发送请求,
三、在uni-app中的使用:
前端的所要做的就是:
- 请求后端接口,获取到orderinfo(订单信息)根据官方的新这个订单信息是后端直接拼接的字符串,前端不需要其他操作
- 调用支付API:uni.requestPayMent
- 处理回调
注意问题:
- 订单的格式是后端返回来的,前端不需要进行任何处理,不管是哪种支付,订单的信息都是strng类习惯的
- 商户订单号 唯一 是针对整个项目,可能有多个交易记录表,订单号不能重复
主要代码:
简洁版的理解代码:
uni.requestPayment({
provider: alipay,
orderInfo: 后端返回的orderinfo字符串,
success: res => {
// 进入此回调说明支付成功
},
fail: err => {
const message = err.errMsg || ;
if (message.indexOf([payment支付宝:62001]) !== -1) {
uni.showModal({
content: 您已取消支付。如有需要,您可在我的订单里重新付款。30分钟内有效。,
showCancel: false
});
} else {
uni.showModal({
content: 支付失败,原因为: + message,
showCancel: false
});
}
},
complete: () => {
this.submitting = false;
}
});
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
微信小程序自定义tabBar
