

由图可知,支付流程主要分为,创建订单,支付步骤,支付完成对账
- 创建订单,由小程序openid、商品id,创建出订单号和支付用的参数(给微信支付api)
- 支付步骤。由
前端小程序api做好不同情况处理,点击取消点击确定,异常等 - 支付完成对账,由订单号、商品名、支付信息
得已购信息

1、创建订单接口createPayOrder
- 入参:
- 代金券id
- 用户id
- 出参:
- 支付信息payinfo
- 订单id
2、微信发起支付wx.requestPayment
- 入参:
- 支付信息payInfo
- 出参:
- 状态
👆注意,promisify之后,取消支付也是走的catch路线
支付成功,不像接口有个statusCode,而是res.errMsg == 'requestPayment:ok'
- 状态
👇微信api发起支付,有如下三种情况
- 取消支付
- 支付失败
- 支付成功
取消支付:调用取消订单接口。因为订单已经创建,所以要做释放内存清除无效订单的操作,这个接口实际上相当于删除订单接口
支付失败:弹窗提示
支付成功:调用对账接口。获取到已购代金券id,用于跳转到该已购代金券详情页面等后续操作。
3、取消订单接口cancelBuy
- 入参
- 订单id
- 代金券id
- 用户id
- 出参
- status
4、对账接口payStatusForPage
- 入参
- 订单id
- 跳转页面(???)
- 支付信息
- 代金券名(???)
- 出参
- 获得积分
- 已购代金卷id
注意点
1、decodeURIComponent()

从上一个页面传递过来的对象值,经过json转为对象之前要
MDN--decodeURIComponent()
示例

👆可知是用来解码中文.......
不要用这种方法做页面传值,应该存本地缓存传对象,获取到对象之后清除本地缓存
2、catch里的return👇
