交易状态处理方案
# 交易状态处理方案
Tips :
1. 交易状态处理不能仅仅依赖于异步通知,也不能仅仅依靠查询接口。
2. 用户完成支付之后,应当及时展现交易结果。
# 支付结果展现方案
用户支付完成之后应当引导到一个等待支付结果的页面,此时客户端请求商户服务端DB查询接口长轮询交易结果。
异步通知到达时候,商户服务端通过交易状态处理业务更改交易状态。更改完成之后,通过长轮询返回交易结果数据。
长轮询5-10后仍然无法获取结果(异步通知未到达),商户可以主动请求查询接口获取结果,并把交易结果通过长轮询返回给客户端展示。
# Notify的处理
notify通知到来之时应当留存到DB中,以便于后续查验。
notify 留存到DB成功之后,商户可以立即响应字符串OK,httpCode=200。
3.异步调用notify响应数据进行订单处理逻辑。
# 定时补单与关单机制
对于商户交易系统中可能会出现的掉单情况,以订单下单成功时间为基准,每隔1分钟/3分钟/5分钟/10分钟/30分钟调用订单查询接口, 对于交易状态是未支付的订单进行校准。
对于多次未查询到结果的订单进行标记或者关单处理。
# T+1日查单机制
- 商户每到第二天10点,可以调用交易批量查询接口,下载交易账单文件,解析然后逐一比对。
核对时有如下几种情况:
订单匹配成功,并且状态都是支付成功:正常情况,对账成功。
订单匹配成功,但是商户侧状态非支付成功:商户根据自身业务情况,决定是否把订单状态更新为支付成功并给用户发货,或者是给用户发起退款。
订单匹配失败,对账单中的单号在商户系统未找到记录:异常情况,需要商户排查系统是否出现数据异常。
订单匹配失败,商户系统中成功的订单在对账单中未找到记录:异常情况,需要商户排查是否订单处理逻辑有bug。
上次更新: 2021/11/26, 17:52:31