支付(异步通知notify_url 与 同步通知return_url的区别)
同步通知和异步通知发送的数据没有本质的区别;
同步通知有2个作用;
第一是从支付宝的页面上返回自己的网站继续后续操作;
第二是携带支付状态的get参数;让自己的网站用于验证;
同步通知后;还需要异步通知主要是为了防止出现意外情况;
因为涉及到金钱;这是一个对安全和稳定要求比较严格的场景;
如果同步通知的过程中;用户不小心关闭了浏览器;或者浏览器卡死了;
异步也能收到通知;记录支付状态;
即便是用户端没问题;万一自己的服务器网络异常了一下呢?
如果自己的服务器没有正确返回接受到通知的状态;
支付宝的服务器会在一段时间内持续的往自己的服务器发送异步通知;
一直到成功;
顺便去确认了下;这个一段时间是:
25 小时以内完成 8 次通知(通知的间隔频率一般是:4m,10m,10m,1h,2h,6h,15h)
如果用户支付后,立即关闭了浏览器窗口,那么回调通知就会失败,但是用户的确是支付了,所以需要异步通知。
保险用的,除了关闭浏览器这种常见的意外情况,异步通知的接口也会有时候不可访问,支付宝会周期性的反复请求异步接口,刚开始是1分钟后重试,然后8分钟之后重试,然后30分钟后重试,然后1小时,然后5小时,这种。如果2天内都无法成功,就真正放弃。这个原理,具体的多次调用的规则请看官方文档。