概述

本文主要描述关于支付流程相关的思考,并不进行代码编写说明与指导,仅供流程设计参考
下文将以商户APP唤起支付宝支付流程为例进行思路说明
支付宝API官方文档

以上图流程为例

  • 在商户APP中确认订单信息
  • 选择支付方式,选择支付宝
  • 唤起支付宝APP,输入支付密码
  • 调用支付宝SDK推送支付数据,展示支付宝APP的支付结果
  • 返回商户APP,展示最终支付结果

时序图

时序图

支付流程

可能出现的异常情况与相应补偿手段

异常case处理预案
生单用户信息校验&风控检测黑户或风险异常创单失败,并上报异常
商户服务端创单失败服务端内部进行重试,超过最大次数则需要返回系统异常,告知用户,并告警&人工介入排查
唤起支付宝创单并支付失败,买家信息异常&交易信息篡改上报风控,考虑是否存在诈骗&黑产情况
唤起支付宝创单并支付失败,买家状态非法&参数无效告警&人工介入排查
唤起支付宝创单并支付失败,订单已支付or订单已关闭将此结果传给商户服务端进行信息确认,若确认已支付则进行正常业务流程,若已关闭需要考虑同步最新的订单状态
商户APP端,调用服务端接口推送支付结果超时服务端接收到支付宝回调前,需要考虑轮循机制,定期查询支付宝API订单状态,确认是否支付成功,超过一定时间没有结果时需要进入异常流程
商户APP端,调用服务端接口推送支付成功,服务端未监听到结果,或轮循支付宝接口为未支付上报风控,考虑是否存在诈骗&黑产情况
商户服务端确认支付成功,更新订单状态失败,无法执行后续流程调用支付宝退款接口,关闭订单,通知用户

参考资料:
https://blog.csdn.net/u014799...


老污的猫
30 声望5 粉丝