支付后轮询
如何在 pay.do 之后跟进订单、何时继续轮询 queryOrderDetails.do,以及为什么这不是一个独立的预订步骤。
当支付成功但出票尚未完成时使用此页面。
这不是一个独立的预订步骤。
标准流程仍然以通过 queryOrderDetails.do 进行订单跟进结束。
简要说明
pay.do 成功并不总是意味着出票已完成。
持续轮询 queryOrderDetails.do 直到最终出票状态得到确认。
将此页面视为"查询订单"步骤的跟进指导。
使用 webhook 作为补充,而不是唯一的确认方式。
临近起飞订单
当 lastMinuteFlight: true 时,支付和确认窗口为五分钟。
持续轮询,直到 Atlas 确认出票或取消订单。
不要在该窗口外重试支付。
请参阅临近起飞航班,了解完整处理规则。
常见问题
何时开始轮询?
在 pay.do 返回且订单进入支付后跟进阶段时开始。
何时停止轮询?
当订单达到最终出票结果或其他已确认的终态时停止。
Webhook 应取代轮询吗?
不。
Webhook 有帮助,但订单查询应保持为您的首要状态来源。
支付成功不保证的内容
支付成功并不总是保证:
航司 PNR 已可用
票号已签发
出票已完成
将支付和最终出票视为独立的里程碑。
主要状态来源
使用 queryOrderDetails.do 作为支付后的主要事实来源。
至少检查:
orderStatusticketStatus航司 PNR 详情
票号(如可用)
推荐的轮询模式
使用受控的轮询循环。
一个实用的模式是:
在
pay.do后调用queryOrderDetails.do在出票仍在进行中时,以退避方式继续轮询
仅在最终结果确认后停止
建议的节奏
以短间隔开始。
如果出票仍在进行中,则拉长间隔。
不要以紧密循环的方式频繁调用订单查询端点。
何时不重试支付
不要因为票号尚未出现就重试 pay.do。
先检查订单状态。
以下情况尤其重要:
402404406615
常见时间场景
支付成功且出票仍在进行中
继续轮询。
这是正常情况。
支付正在进行中
不要发送另一笔支付请求。
等待并再次查询订单。
支付成功但 PNR 仍缺失
不要重试支付。
改为监控订单状态。
出票延迟超过预期
保持订单在跟进中。
如果状态停滞或重复出现错误,请附带订单上下文升级处理。
常见错误
在收到第一个成功的支付响应后停止
不要这样做。
订单可能仍在出票中。
在首次支付仍在处理时重试支付
不要这样做。
这会带来重复支付的风险。
将 webhook 作为唯一的完成信号
不要这样做。
持续轮询直到最终订单状态得到确认。
最佳实践
在整个跟进链中记录以下值:
orderNo支付请求时间
最新
orderStatus最新
ticketStatus航司 PNR(如可用)
最终票号(如可用)
相关页面
Last updated
Was this helpful?

