开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
文档中心
凯发app官方网站的技术支持 & 案例 faq 
支付能力 > 当面付 > 案例分析 > 轮询机制介绍
收藏
我的文档
设置
背景
因为支付宝返回的结果都是同步返回,为避免出现单边账等情况,所以开发者需要调用查询接口轮询订单状态。
轮询一般为支付请求发起后进行,每一笔交易一定要闭环,即要么支付成功,要么撤销交易,一定不能有交易一直停留在等待用户付款的状态。
通过轮询 撤销的流程中,如轮询的结果一直为未付款,撤销一定要紧接着最后一次查询,当中不能有时间间隔。
轮询机制
当请求支付返回 wait_buyer_pay 时,收银系统需要做轮询处理,建议:
收银终端界面阻塞并提示“等待用户确认支付”。
轮询间隔设为 3~6 秒,轮询总时长 60 秒左右。
轮询时,收银终端界面提供手动停止功能,停止时必须调用撤销 api 撤销支付宝交易。
设置轮询可以使用定时器进行轮询,参考下面代码:
plain text
复制代码
timer = setinterval(function() { endtime--; if (endtime === 59) { clearinterval(timer); } }, 1000);
轮询流程
1当交易创建后(交易状态为wait_buyer_pay),即可调用交易查询接口查询判断交易是否成功。交易如果未创建,交易查询接口会返回报错
2可设置定时器进行轮询,轮询间隔设为 3~6 秒,轮询总时长 60 秒左右。
3在轮询过程中,只有调用返回 trade_status(交易状态)为 trade_success(交易支付成功)或者 trade_finished(交易结束,不可退款),才可判断用户付款成功。
4如果轮询超过 60 秒,查询接口一直未返回 trade_status(交易状态)为 trade_success(交易支付成功)或者 trade_finished(交易结束,不可退款)状态,(提示如报错系统异常、交易状态为wait_buyer_pay等),可调用 撤销该笔交易。
5如果后续仍然需要继续交易,请修改支付接口中的out_trade_no(商户订单号),重新发起请求扣款并轮询。
注意:撤销接口使用有效性为订单创建后的 24 小时内。
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图