支付模块梳理

支付宝和微信

1、支付宝app支付

2、支付宝二维码支付

3、跳转支付地址支付

4、支付宝WAP支付(H5)

5、微信app支付

6、微信二维码支付

7、微信公众号JSAPI支付

8、微信WAP支付(H5)

9、微信小程序支付

实现

构造pay对象

pay对象包含属性有:用户id、订单id(List)、支付金额、支付状态、支付类型(aliqr、aliurl、aliwap、aliapp)、支付订单的类型(具体由业务定义)、支付标题,即支付时显示的商品名称、商品信息、服务器异步通知页面路径(回调地址)、页面跳转同步通知页面路径

若是微信公众号支付,需加上openid,ip(微信支付所需的客户端ip),prepayId(用于发送模板消息)

入参支付

将pay对象传入,组装业务参数,调取第三方sdk进行支付。

回调

回调结果,支付成功,pay对象写入支付状态1并返回。

业务数据更新

根据回调结果以及是否返回pay对象,验证支付成功,进行业务数据更新。
主要是订单的记录,创建order并保存。业务数据更新成功后,pay对象写入支付状态2