关于支付宝异步通知的状态
刚开始接入支付宝支付的时候,就看到支付宝有几个异步通知的状态,其他的状态还理解,但是有两个状态的作用我感觉好像是有点重复,分别是TRADE_SUCCESS(交易成功)、TRADE_FINISHED(交易完成)。代码里也是有两个分支判断。
本人当时本着交易安全的考虑,在两处分支代码里都写入的自己的逻辑(我们做的是流量充值,会调用运营商的接口进行充值),就是两个返回状态都会去做充值。开始的测试都是返回TRADE_SUCCESS,但是因为确实流程正常,支付成功并且收到钱了,我也就觉得没有什么问题了。
正题来了,但是3个月后,我们当时测试的手机号,突然间连续收到“充值流量”成功的提示,我了草草草,这可吓坏了本宝宝了,这才开始找问题,打支付宝客服、查日志、看代码,最后终于在同事的帮助下搞清了问题的关键。。
原来,支付宝会在3个月后发来TRADE_FINISHED的状态通知。。。哔了,这时候才明白,原来这就是TRADE_SUCCESS(交易成功)和TRADE_FINISHED(交易完成)的区别。