Мы работаем над интеграцией API в нашу систему. Мы неплохо справились с поездкой в один конец и успешно сгенерировали PNR, но у нас есть запас в PassengerDetailsRQ для поездки туда и обратно. Я уверен, что BargainFinderMaxRQ подходит для приема-передачи, но мы также запутались в EnhancedAirBookRQ. Итак, я прилагаю оба EnhancedAirBookRQ и PassengerDetailsRQ для туда и обратно. Надеюсь, что помощь от сабли.
EnhancedAirBookRQ:
<EnhancedAirBookRQ xmlns="http://services.sabre.com/sp/eab/v3_2" HaltOnError="false" version="3.2.0">
<OTA_AirBookRQ>
<HaltOnStatus Code="UC"/>
<HaltOnStatus Code="LL"/>
<HaltOnStatus Code="UN"/>
<HaltOnStatus Code="NO"/>
<HaltOnStatus Code="HL"/>
<OriginDestinationInformation>
<FlightSegment DepartureDateTime="2016-09-02T09:50:00" FlightNumber="263" NumberInParty="1" ResBookDesigCode="O" Status="NN">
<DestinationLocation LocationCode="DEL"/>
<MarketingAirline Code="9W" FlightNumber="263"/>
<OperatingAirline Code="9W"/>
<OriginLocation LocationCode="KTM"/>
</FlightSegment>
<FlightSegment DepartureDateTime="2016-09-22T13:45:00" FlightNumber="260" NumberInParty="1" ResBookDesigCode="S" Status="NN">
<DestinationLocation LocationCode="KTM"/>
<MarketingAirline Code="9W" FlightNumber="260"/>
<OperatingAirline Code="9W"/>
<OriginLocation LocationCode="DEL"/>
</FlightSegment>
</OriginDestinationInformation>
</OTA_AirBookRQ>
<OTA_AirPriceRQ>
<PriceRequestInformation Retain="true">
<OptionalQualifiers>
<PricingQualifiers>
<PassengerType Code="ADT" Quantity="1"/>
</PricingQualifiers>
</OptionalQualifiers>
</PriceRequestInformation>
</OTA_AirPriceRQ>
<PostProcessing IgnoreAfter="false">
<RedisplayReservation WaitInterval="2000"/>
</PostProcessing>
<PreProcessing IgnoreBefore="false"/>
</EnhancedAirBookRQ>
PassengerDetailsRQ:
<PassengerDetailsRQ xmlns="http://services.sabre.com/sp/pd/v3_1" version="3.1.0">
<MiscSegmentSellRQ>
<MiscSegment DepartureDateTime="09-02" NumberInParty="1" Status="NN" Type="OTH">
<OriginLocation LocationCode="KTM"/>
<Text>RETENTION SEGMENT</Text>
<VendorPrefs>
<Airline Code="9W"/>
</VendorPrefs>
</MiscSegment>
<MiscSegment DepartureDateTime="09-22" NumberInParty="1" Status="NN" Type="OTH">
<OriginLocation LocationCode="DEL"/>
<Text>RETENTION SEGMENT</Text>
<VendorPrefs>
<Airline Code="9W"/>
</VendorPrefs>
</MiscSegment>
</MiscSegmentSellRQ>
<PostProcessing>
<EndTransactionRQ>
<EndTransaction Ind="true"/>
<Source ReceivedFrom="TARA TESTING"/>
</EndTransactionRQ>
</PostProcessing>
<PriceQuoteInfo>
<Link NameNumber="1.1" Record="1"/>
</PriceQuoteInfo>
<SpecialReqDetails>
<AddRemarkRQ>
<RemarkInfo>
<FOP_Remark Type="CASH"/>
<Remark Type="General">
<Text>TEST GENERAL REMARK</Text>
</Remark>
</RemarkInfo>
</AddRemarkRQ>
<SpecialServiceRQ>
<SpecialServiceInfo>
<SecureFlight SegmentNumber="A" SSR_Code="DOCS">
<PersonName DateOfBirth="1990-02-07" Gender="M" NameNumber="1.1">
<GivenName>Kiran</GivenName>
<Surname>Subedi</Surname>
</PersonName>
<VendorPrefs>
<Airline Hosted="false"/>
</VendorPrefs>
</SecureFlight>
</SpecialServiceInfo>
</SpecialServiceRQ>
</SpecialReqDetails>
<TravelItineraryAddInfoRQ>
<AgencyInfo>
<Address>
<AddressLine>TARA TRAVEL</AddressLine>
<CityName>Kathmandu</CityName>
<CountryCode>NP</CountryCode>
<PostalCode>977</PostalCode>
<StateCountyProv StateCode="KTM"/>
<StreetNmbr>3150 DDDD DRIVE</StreetNmbr>
</Address>
<Ticketing TicketType="7TAW"/>
</AgencyInfo>
<CustomerInfo>
<ContactNumbers>
<ContactNumber LocationCode="KTM" NameNumber="1.1" Phone="9846231634" PhoneUseType="H"/>
</ContactNumbers>
<Email Address="[email protected]" NameNumber="1.1"/>
<PersonName NameNumber="1.1" PassengerType="ADT">
<GivenName>Kiran</GivenName>
<Surname>Subedi</Surname>
</PersonName>
</CustomerInfo>
</TravelItineraryAddInfoRQ>
</PassengerDetailsRQ>
MiscSegment не требуется для завершения PNR, но маршрут есть.
Вы не делаете сначала вызов EnhancedAirBook (чтобы забронировать рейсы и включить их в маршрут), а затем (используя тот же BinarySecurityToken) вызов PassengerDetails? Кстати, звонок в PassengerDetails не должен знать, является ли ваш маршрут туда-обратно или в одну сторону …
Вы можете удалить «MiscSegmentSellRQ» из «PassengerDetailsRQ», и это поможет вам.