在支付网关(如支付宝)接入时,我们需要在支付完成调用同步通知后,需要再次调用异步通知。很多时候会疑惑:为什么有了同步通知还需要异步通知?
其实为了安全保险起见用的,两者发送的数据没有本质的区别;
同步通知有2个作用;
第一是从支付宝的页面上返回自己的网站继续后续操作;
第二是携带支付状态的get参数;让自己的网站用于验证;
同步通知后;还需要异步通知主要是为了防止出现意外情况;
因为涉及到金钱,这是一个对安全和稳定要求比较严格的场景,如果同步通知的过程中,用户不小心关闭了浏览器,或者浏览器卡死了,异步也能收到通知,记录支付状态。
即便是用户端没问题;万一自己的服务器网络异常了一下呢?如果自己的服务器没有正确返回接受到通知的状态,支付宝的服务器会在一段时间内持续的往自己的服务器发送异步通知,一直到成功;这个时间是:
25 小时以内完成 8 次通知(通知的间隔频率一般是:4m, 10m, 10m, 1h, 2h, 6h, 15h)