关于Amadeus Flight Create Orders流程添加额外行李的技术问询
航班预订工作流添加额外行李的解决方案
要在Flight Offers Price环节添加额外行李并确保其被纳入订单,你遗漏了两个核心环节:
1. 先给航班报价附加行李服务信息
Flight Offers Search返回的原始报价对象不包含行李相关配置,必须先为选中的航班(flight_search[0])添加行李服务参数,再传入价格确认接口。
2. 使用价格确认后的报价创建订单
当前代码直接用原始搜索结果创建订单,而未使用已包含行李定价的price_confirm返回值,这是行李未被纳入订单的根本原因。
修改后的完整代码示例
# 搜索MAD到ATH的航班 flight_search = amadeus.shopping.flight_offers_search.get( originLocationCode='MAD', destinationLocationCode='ATH', departureDate='2022-12-01', adults=1 ).data # 为选中航班添加额外行李服务(示例为1件23kg托运行李) selected_offer = flight_search[0] selected_offer['travelerPricings'][0]['price']['optionalServices'] = [ { "quantity": 1, "service": { "id": "BAG", "name": "Checked Baggage", "description": "1 piece of 23kg checked baggage" }, "price": { "amount": "50.00", "currencyCode": "EUR" } } ] # 确认包含行李的航班价格 price_confirm = amadeus.shopping.flight_offers.pricing.post(selected_offer).data # 使用已确认价格的报价创建订单(此时行李已被纳入) booked_flight = amadeus.booking.flight_orders.post(price_confirm, traveler).data
关键说明
- 行李服务的具体参数(如
service.id、价格)需对应目标航班实际支持的行李选项,要匹配航空公司的行李规则。 - 必须确保
optionalServices字段的结构符合Amadeus API规范,否则价格确认接口会返回错误。 - 订单创建环节必须传入价格确认后的
price_confirm对象,而非原始搜索结果,这样系统才会将行李服务计入最终订单。
内容的提问来源于stack exchange,提问作者Wissam Metawee
相关产品推荐
相关产品推荐

