如何为给定 PNR 中的所有航段预订航空座位?

How can reserve Air Seats for all segments in a given PNR?

我计划使用 Sabre 的 SOAP <AirSeatRQ> 请求 API,但根据文档,您必须根据用户的偏好为每个航段的每位乘客请求座位分配。

根据 Dev Studio 上的示例是这样的:

<AirSeatRQ ReturnHostCommand="false" TimeStamp="2011-10-27T15:30:00-06:00" Version="2.0.0">
<!--Repeat Factor=0-->
    <Seats>
        <Seat BoardingPass="true" ChangeOfGauge="true" NameNumber="1.1" Number="21A" Preference="AN" SegmentNumber="1"/>
    </Seats>
</AirSeatRQ>

此外,根据请求文档,<Seats> 请求的重复因子为零。这是否意味着如果我想为所有航段的所有乘客分配座位,我必须发送多个请求吗?

理想情况下,我希望在阅读 PNR 后自动为所有航段的所有乘客分配座位。可以通过 Web 服务实现吗?

好像是这样。

测试 <Seats> 中的多个 <Seat> 元素 returns 模式验证错误。使用多个 <Seats> 元素时相同。

看来现在唯一的选择是发送多个请求,每个航段的每位乘客一个。

检查<PassengerDetailsRQ> XML 架构定义,<AirSeatRQ> 可以一起发送。我想你可以执行一个独立的 <AirSeatRQ> 请求,但是将它与乘客详细信息捆绑在一起会更容易,并且可以避免我们向 Sabre 的 API.

发出额外请求

您必须为行程的每个航段中的每位乘客发送 <Seat\> 请求。这是我为两条腿行程所做的一个工作示例,每条腿由两个成人的两个部分组成:

我省略了大部分乘客详细信息属性并重点介绍了 AirSeat 元素:

<PassengerDetailsRQ Version="2.3.0">
    <PriceQuoteInfo HaltOnError="true"></PriceQuoteInfo>
    <SpecialReqDetails>
        <AddRemarkRQ>
            <RemarkInfo>
                <Remark Code="H" Type="General">
                    <Text>THANK YOU FOR BOOKING MAURICIO CUENCA AIRLINES</Text>
                </Remark>
            </RemarkInfo>
        </AddRemarkRQ>
        <AirSeatRQ>
            <Seats>
                <Seat NameNumber="1.1" Preference="AN" SegmentNumber="1"/>
                <Seat NameNumber="1.2" Preference="AN" SegmentNumber="2"/>
                <Seat NameNumber="1.1" Preference="AN" SegmentNumber="3"/>
                <Seat NameNumber="1.2" Preference="AN" SegmentNumber="4"/>
            </Seats>
        </AirSeatRQ>
        <SpecialServiceRQ HaltOnError="true">
            <SpecialServiceInfo></SpecialServiceInfo>
        </SpecialServiceRQ>
    </SpecialReqDetails>
    <TravelItineraryAddInfoRQ HaltOnError="true">
        <AgencyInfo></AgencyInfo>
        <CustomerInfo></CustomerInfo>
    </TravelItineraryAddInfoRQ>
</PassengerDetailsRQ>

这样,在创建 PNR 后,每个航段的所有乘客的所有座位都已分配,无需进一步请求分配座位。