> For the complete documentation index, see [llms.txt](https://resources.atriptech.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://resources.atriptech.com/api-wen-dang/readme/yu-ding-liu-cheng-gai-lan/huo-qu-offer.md).

# 获取 Offer

{% hint style="info" %}
遇到 API 接入问题时，可登录 [Eva](https://www.atriptech.com/) 寻求帮助。
{% endhint %}

当你需要独立报价查询流程时，使用这页。

{% hint style="info" %}
以 OpenAPI 命名为准。

文档和集成都统一使用 `getOffers.do`。
{% endhint %}

### 主要 API

* `getOffers.do`

### 输入

* 准确的行程信息
* 请求要求的乘客组合
* 当前 API 参考要求的其他字段

### 关键输出

* 最新可预订票价
* 库存状态
* 后续下单和 `seatAvailability.do` 使用的 `OfferId`

### 它和标准搜索有什么不同

#### 标准搜索流程

当 Atlas 是你的主购物入口时，使用 `search.do`。

这种方式适合先让 Atlas 返回可售报价。

#### Get Offer 流程

当你已经知道目标行程时，使用 `getOffers.do`。

这种方式更适合直接验价、独立校验和外部购物路径。

#### 实际区别

标准搜索流程通常会继续走 `verify.do`。

Get Offer 流程则围绕返回的 `OfferId` 继续下单。

### 适用场景

* 不走标准搜索的报价查询流程
* 下单前二次验价
* 出票前最低价校验
* 使用你自有航班数据源的流程

### 常见场景

#### 使用自有航班数据源

如果航班选择发生在 Atlas 标准搜索之外，可使用 `getOffers.do`。

这样可以直接获取最新可订票价和 `OfferId`。

#### 下单前做最终验价

在创建订单前，通过 `getOffers.do` 再检查最新可订价格。

这样能减少报价和下单之间的价格漂移。

#### 出票前比较渠道

如果你需要在送入出票前做一次实时校验，可使用 `getOffers.do`。

这适合以最新可得价格为优先的流程。

### 推荐业务链路

#### 最短链路

只需要取价和出票时，使用：

1. 调用 `getOffers.do`
2. 保存返回的 `OfferId`
3. 调用 `order.do`
4. 调用 `pay.do`

#### 带附加服务的链路

如果要在预订流程中展示座位和行李，使用：

1. 调用 `getOffers.do`
2. 确认票价和目标航班
3. 调用 `getLuggage.do` 和 `seatAvailability.do`
4. 用 `order.do` 创建订单
5. 用 `pay.do` 完成支付

#### 何时停止并重新校验

若以下任一项变化，应停止并刷新报价：

* 目标航班
* 乘客组合
* 预期票价
* 会影响预订决策的附加服务需求

### 典型流程

{% stepper %}
{% step %}

### 获取 Offer

用目标行程调用 `getOffers.do`。

保存返回的 `OfferId`。
{% endstep %}

{% step %}

### 预订中座位与行李

调用 `getLuggage.do` 和 `seatAvailability.do`。

当报价已匹配目标航班和价格后，向用户展示行李和座位选项。
{% endstep %}

{% step %}

### 创建订单

用返回的 `OfferId` 和必填预订数据调用 `order.do`。
{% endstep %}

{% step %}

### 支付并出票

调用 `pay.do` 完成出票。
{% endstep %}
{% endstepper %}

### 何时查询附加服务

#### 使用 `getLuggage.do`

在预订流程中展示行李价格和行李选项时使用。

先确认目标 Offer，再查行李。

#### 使用 `seatAvailability.do`

在预订流程中展示座位图和完成选座时使用。

请使用当前 `getOffers.do` 返回的 `OfferId`。

不支持仅凭航班信息直接调用。

### 实现建议

#### 最适合谁

这条流程适合已掌控购物逻辑的合作方。

也适合下单前需要 Atlas 侧最终验价的场景。

#### 需要保留的数据

保留调用 `getOffers.do` 时使用的完整行程上下文。

下单完成前持续保留返回的 `OfferId`。

#### 建议校验点

在 `order.do` 前确认：

* 航班与目标行程一致
* 票价符合预期售卖逻辑
* 乘客组合仍然正确
* 如有要求，附加服务选择已完成

### 运行注意事项

#### 真正依据

请求字段和响应字段都以 OpenAPI schema 为准。

#### 命名

实现材料、支持回复和对外说明都统一使用 `getOffers.do`。

#### 错误处理

如果下单或支付因票价或库存变化失败，应从新的报价查询开始。

不要基于过期假设直接重试。

### FAQ

#### `getOffers.do` 会替代 `search.do` 吗？

不会。

当 Atlas 是主购物入口时，用 `search.do`。

当你已知目标行程，或需要独立验价时，用 `getOffers.do`。

#### 这个流程还需要 `verify.do` 吗？

按本页描述的标准 Get Offer 路径，不需要。

这个流程围绕 `OfferId` 和后续下单展开。

#### 这条流程可以接入预订中座位和行李吗？

可以。

建议在支持场景下接入 `getLuggage.do` 和 `seatAvailability.do`。

#### 什么时候应刷新 Offer？

当任何关键预订输入发生变化时，都应刷新。

常见触发条件：

* 乘客人数变化
* 目标航班变化
* 预期票价变化
* 下单前等待过久，当前价格可能已过期

#### 可以配合自有购物引擎使用吗？

可以。

这是这条流程的主要使用场景之一。

请确保你的行程映射与 OpenAPI 中定义的请求字段一致。

### 失败处理

#### 如果 `getOffers.do` 失败

先检查请求是否完整。

再确认行程、乘客和 OpenAPI 要求的必填字段。

若为瞬时问题，可做受控退避重试。

#### 如果 Get Offer 之后 `order.do` 失败

不要假设原先返回的 Offer 仍然有效。

如果失败指向票价、库存或状态漂移，请重新调用 `getOffers.do`，再基于新数据重建订单请求。

#### 如果 `pay.do` 失败

先检查订单是否已支付，或是否仍在处理中。

不要盲目重复支付。

必要时先查询订单状态再决定是否重试。

#### 什么情况下不要立刻重试

以下原因导致的问题，不应立即重试：

* 过期票价数据
* 不支持的支付方式
* 无效乘客或联系人数据
* 航司侧限制

先修复根因。

### 日志和支持建议

#### 日志中至少保留这些值

排障时建议记录：

* 请求时间戳
* 行程摘要
* 乘客组合
* `OfferId`
* 下单后的 `orderNo`
* 支付方式类型
* 最终响应状态和消息

#### 保持请求链路可追踪

把 Get Offer 请求和后续订单请求记录为同一条业务链路。

这样更容易定位价格漂移和状态不一致。

#### 升级支持时提供什么

升级问题时，请提供：

* API 名称
* 请求时间
* `OfferId` 或 `orderNo` 等关键标识符
* 响应码
* 响应消息

这会显著加快支持排查。

### 说明

* 这条流程不从标准 `search.do` 开始。
* 必填字段以当前 API 参考为准。
* 接口命名以 OpenAPI 为准。
* 实现材料中统一使用 `getOffers.do` 作为正式接口名。

### 相关页面

* [搜索](/api-wen-dang/readme/yu-ding-liu-cheng-gai-lan/sou-suo.md)
* [创建订单](/api-wen-dang/readme/yu-ding-liu-cheng-gai-lan/chuang-jian-ding-dan.md)
* [支付与出票](/api-wen-dang/readme/yu-ding-liu-cheng-gai-lan/zhi-fu-yu-chu-piao.md)
* [座位](/api-wen-dang/readme/yu-ding-liu-cheng-gai-lan/zuo-wei.md)
* [行李](/api-wen-dang/readme/yu-ding-liu-cheng-gai-lan/xing-li.md)

### 完整 API 参考

接口级详情见：

* [获取 Offer](/api-wen-dang/api-can-kao/yu-ding-api/huo-qu-offer.md)
* [预订中座位与行李](/api-wen-dang/api-can-kao/yu-ding-api/yu-ding-zhong-zuo-wei-yu-xing-li.md)
* [创建订单](/api-wen-dang/api-can-kao/yu-ding-api/chuang-jian-ding-dan.md)
* [支付与出票](/api-wen-dang/api-can-kao/yu-ding-api/zhi-fu-yu-chu-piao.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://resources.atriptech.com/api-wen-dang/readme/yu-ding-liu-cheng-gai-lan/huo-qu-offer.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
