支付宝同步通知和异步通知-支付成功后跳页面

飞一样的编程
飞一样的编程
擅长邻域:Java,MySQL,Linux,nginx,springboot,mongodb,微信小程序,vue

分类: ssm 专栏: 爱旅行项目 标签: 支付宝异步通知和同步通知

2023-02-24 22:21:12 489浏览

支付宝同步通知和异步通知-支付成功后跳页面

同步通知:万一支付成功后直接关闭了浏览器这种情况

浏览器重定向到支付成功的页面

异步通知:通知到达的概率是99.99%,是非常靠谱的

同步回调使用get请求传参;异步回调使用post请求

1.同步回调只有一次,异步回调可以有多次

详解:

同步回调只有一次,那这一次的结果就是最终结果,回调成功就是成功,回调失败就是失败;

异步回调如果失败,在失效时间内会继续回调,直到成功为止。

异步回调第一次收到订单信息是与返回页近乎等同的时间,在判断不成功的情况下,

会收到第二次第三次的通知,时间间隔从最先的一两分钟,到后面的几个小时。失效时间是48小时

2.同步回调使用get请求传参;异步回调使用post请求传参

轶事:用户支付成功(手机上有支付成功截图),但我们的网站上没有显示成功,用户找客服,

运营就找到研发来了。查看日志是回调失败,失败原因定位到在一次Swagger的升级中同事限制了回调的请求方法,

都设置为get请求,在同步失败的情况下,异步回调也失败;紧急去掉限制后上线,异步回调成功,解决客户问题。

3.同步是客户端回调;异步是服务器端回调

4.异步通知里的交易完成和支付成功的区别

 if(trade_status.equals("TRADE_FINISHED")){//不可退款
                //判断该笔订单是否在商户网站中已经做过处理
                //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                //如果有做过处理,不执行商户的业务程序

                //注意:
                //退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知
            }else if (trade_status.equals("TRADE_SUCCESS")){//可以退款
                //判断该笔订单是否在商户网站中已经做过处理
                //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                //如果有做过处理,不执行商户的业务程序

                //注意:
                //付款完成后,支付宝系统发送该交易状态通知
            }

说白了:

收到TRADE_FINISHED请求后,这笔订单就结束了,支付宝不会再主动请求商户网站了;收到TRADE_SUCCESS请求后,后续一定还有至少一条通知记录,即TRADE_FINISHED。所以,在做通知接口时,切记使用判断订单状态用或的关系。

异步通知时间

25 小时以内完成 8 次通知(通知的间隔频率一般是:4m,10m,10m,1h,2h,6h,15h)

好博客就要一起分享哦!分享海报

此处可发布评论

评论(31展开评论

蓝色妖姬 能力:10

2023-02-25 10:54:44

cv
蓝色妖姬 能力:10

2023-02-25 10:54:44

cv
蓝色妖姬 能力:10

2023-02-25 10:54:44

cv
蓝色妖姬 能力:10

2023-02-25 10:54:44

cv
蓝色妖姬 能力:10

2023-02-25 10:54:43

cv
蓝色妖姬 能力:10

2023-02-25 10:54:43

cv
蓝色妖姬 能力:10

2023-02-25 10:54:43

cv
蓝色妖姬 能力:10

2023-02-25 10:54:43

cv
蓝色妖姬 能力:10

2023-02-25 10:54:43

cv
蓝色妖姬 能力:10

2023-02-25 10:54:43

cv
点击查看更多评论

展开评论

您可能感兴趣的博客

客服QQ 1913284695