支付异步回调成功,页面跳转问题

发布于 2022-09-05 00:36:48 字数 129 浏览 19 评论 0

支付宝扫码支付成功异步回调了处理函数,需要返回信息告诉支付宝的。这样导致了我没办法去处理支付成功的页面跳转。想到一种方法就是ajax轮询,但是觉得如果用户一直不扫码,或一直不支付,那轮询就会不断地发请求,感觉不大好。请问有没有好一点的处理方法?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

有木有妳兜一样 2022-09-12 00:36:48

ajax长轮询, websocket

夏有森光若流苏 2022-09-12 00:36:48

推荐一个好玩的;
符合你的需求并且代码简单,集成简单,纯php开发
http://www.workerman.net/web-...

话少心凉 2022-09-12 00:36:48

我的建议就是ajax轮询!其实支付宝也是是ajax轮询。关键的问题就是如果考虑性能的话。可以依靠redis。发起支付后,key_订单号的值为0,代表未支付;异步处理成功后,redis的值变更为1;而前端ajax轮询的时候,只需要去查这个key。只要变成1,就做相应操作!

缘字诀 2022-09-12 00:36:48

对于这种问题,只要把支付宝的回调跟自己的业务逻辑分开就行了,首先,用户页面的跳转跟支付宝是没关系了,所以支付宝的回调不应该跟页面跳转混在一起,支付宝的回调只是通知你用户付没付钱,所以回调代码里面只负责用户支付后的逻辑,至于页面跳转,常规方案是轮询,浏览器不断的发起请求来询问支付状态,但可以转个弯来实现,比如让这个二维码以弹框的形式出现,用户扫没扫码根本就不用管,因为支付后的逻辑是有支付宝回调,当用户扫完后点关闭二维码时这时去发起请求查询支付状态,这时想怎么跳转就怎么跳转,如果实在是需要用户一扫完码当前页面就需要知道状态的话那只能是用轮询或者websocket,因为扫码到支付这一系列操作都是用户跟支付宝服务器通信,只有支付宝服务器通知你的服务器你才知道用户具体到哪步了,所以除了全双工通信外想要实时得到用户操作进度的话只能是通过轮询,这还是要看支付宝有没有给你推送用户操作进度,如果支付宝只有支付回调的话不给你推送用户扫没扫码的话轮询获取用户扫码进度这些都是没多大用处的。

嘿咻 2022-09-12 00:36:48

我的建议就是ajax轮询!其实支付宝也是是ajax轮询。关键的问题就是如果考虑性能的话。可以依靠redis。发起支付后,key_订单号的值为0,代表未支付;异步处理成功后,redis的值变更为1;而前端ajax轮询的时候,只需要去查这个key。只要变成1,就做相应操作!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文