概述
本文主要描述关于支付流程相关的思考,并不进行代码编写说明与指导,仅供流程设计参考
下文将以商户APP唤起支付宝支付流程为例进行思路说明
支付宝API官方文档
以上图流程为例
- 在商户APP中确认订单信息
- 选择支付方式,选择支付宝
- 唤起支付宝APP,输入支付密码
- 调用支付宝SDK推送支付数据,展示支付宝APP的支付结果
- 返回商户APP,展示最终支付结果
时序图
支付流程
可能出现的异常情况与相应补偿手段
异常case | 处理预案 |
---|---|
生单用户信息校验&风控检测 | 黑户或风险异常创单失败,并上报异常 |
商户服务端创单失败 | 服务端内部进行重试,超过最大次数则需要返回系统异常,告知用户,并告警&人工介入排查 |
唤起支付宝创单并支付失败,买家信息异常&交易信息篡改 | 上报风控,考虑是否存在诈骗&黑产情况 |
唤起支付宝创单并支付失败,买家状态非法&参数无效 | 告警&人工介入排查 |
唤起支付宝创单并支付失败,订单已支付or订单已关闭 | 将此结果传给商户服务端进行信息确认,若确认已支付则进行正常业务流程,若已关闭需要考虑同步最新的订单状态 |
商户APP端,调用服务端接口推送支付结果超时 | 服务端接收到支付宝回调前,需要考虑轮循机制,定期查询支付宝API订单状态,确认是否支付成功,超过一定时间没有结果时需要进入异常流程 |
商户APP端,调用服务端接口推送支付成功,服务端未监听到结果,或轮循支付宝接口为未支付 | 上报风控,考虑是否存在诈骗&黑产情况 |
商户服务端确认支付成功,更新订单状态失败,无法执行后续流程 | 调用支付宝退款接口,关闭订单,通知用户 |
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。