充值遇到的到账延迟
前言
最近公司的充值,遇到了几个问题,用户反馈成功付钱了,页面也提示充值成功了,但是充值的道具没有即时到账。
这时候,我的第一反应就是,充值的回调延迟了吗,后端接收到成功的通知,在操作更新订单状态的时候时间变长了吗?
因为这些处理时间的变长,意味着用户获取充值订单的时间就会变长了。
延迟到账的问题定位
适用支付宝为栗子,来看下支付官方给的充值流程图
这里面,app 端如何和支付宝进行的交互,流程图已经介绍的很清楚了。
充值过程中的的交互流程按照支付宝的文档走就行了,不会出现什么问题,不过我们上面遇到的问题,是在充值之后的页面交互上遇到的问题,具体分析如下:
1、当充值成功之后,app 端收到了成功的提示信息,这时候就直接弹出成功的提示框,查询当前用户的充值道具信息,这样就会存在一个问题,因为 app 端和 server 端是同时收到支付宝的充值回调的,这时候 server 端要去操作处理用户的订单数据,如果这个时候直接查询用户状态,可能会存在充值的道具还没有加上;
2、过分依赖第三方平台的回调,如果第三方平台没有及时回调成功的通知,这时候订单状态不能及时更新,给用户的感知就是充值道具延迟到账了。
这两种情况实际上的原因就是用户充值之后没有增加订单的状态的查询,在真正查询到订单成功之后,才弹出提示的成功信息,当然,这里面还会有两种异常的情况:
1、支付宝回调延迟了,我们server端没有收到成功的回调,这时候不管在怎么去轮询订单的状态接口,都是不会成功的,这时候 server 需要添加订单的反查功能,在查询到订单成功时候就及时处理订单的状态,也不是一直等待回调的通知;
2、系统处理订单确实耗时时间比较久,在轮询完之后,订单状态还没有成功,这时候我们就不能弹出成功的提示框,而是弹框告知用户,充值用户有延迟,让用户持续刷新页面;
解决方法
1、app 端增加订单的查询轮询;
2、sever 端除了接收成功的回调,还需要在充值成功之后,增加订单的反查;
3、页面的提示优化,充值成功,用户账号信息到账,弹出成功的提示; app 端收到成功的提示,但是订单的状态在轮询之后没有刷新,弹出成功提示,但是告知用户有延迟,需要等待一段时间。
参考
【APP 支付快速接入】https://opendocs.alipay.com/open/204/01dcc0?pathHash=cf89b2be
【充值遇到的到账延迟】https://boilingfrog.github.io/2024/07/20/充值遇到的延迟到账问题/