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