Веб-служба поиска авиабилетов: различия между версиями
(→Подключение) |
|||
(не показано 97 промежуточных версий 14 участников) | |||
Строка 1: | Строка 1: | ||
== Подключение == | == Подключение == | ||
− | Это сервис внутри Nemo, который позволяет получить результаты поиска | + | Это сервис внутри Nemo, который позволяет получить результаты поиска. |
− | Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе ''' | + | Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе '''«Настройки системы»''' ⇨ '''«Интеграция»''' ⇨ '''«Nemo (SOAP API)»'''. |
− | После добавления пользователя, ему будут присвоены Номер ( | + | После добавления пользователя, ему будут присвоены Номер (ClientId) и API ключ клиента, которые нужно использовать для подключения. |
WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=SearchFlights | WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=SearchFlights | ||
− | == | + | == Общий формат запроса / ответа поиска == |
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
Строка 22: | Строка 22: | ||
<Request> | <Request> | ||
<SearchFlights LinkOnly="?"> | <SearchFlights LinkOnly="?"> | ||
− | <!--LinkOnly | + | <!--LinkOnly — Позволяет управлять выдачей результатов. true — вернуть только ссылку на результаты поиска, |
− | без перелётов (занимает меньше времени), false | + | без перелётов (занимает меньше времени), false — полная выдача, ссылки и перелёты.--> |
<ODPairs Type="?" Direct="?" AroundDates="?"> | <ODPairs Type="?" Direct="?" AroundDates="?"> | ||
− | <!--Type | + | <!--Type — тип перелёта, возможные значения: OW — туда, RT — туда-обратно, CR — сложный маршрут. Для перелета |
туда-обратно или сложного маршрута необходимо добавить еще один или несколько тэгов ODPair, примеры далее--> | туда-обратно или сложного маршрута необходимо добавить еще один или несколько тэгов ODPair, примеры далее--> | ||
− | <!--Direct | + | <!--Direct — искать только прямые перелёты, возможные значения: true/false--> |
− | <!--AroundDates | + | <!--AroundDates — поиск по окружным датам, количество дней +/- от даты заезда/возвращения, значения: 0, 1, 3. |
Применим только для типов перелёта в одну сторону(OW) и туда-обратно(RT)--> | Применим только для типов перелёта в одну сторону(OW) и туда-обратно(RT)--> | ||
<!--Zero or more repetitions:--> | <!--Zero or more repetitions:--> | ||
<ODPair> | <ODPair> | ||
<DepDate>?</DepDate> | <DepDate>?</DepDate> | ||
− | <!--DepDate | + | <!--DepDate — дата вылета, в формате ГГГГ-MM-ДД--> |
<DepAirp CodeType="IATA">?</DepAirp> | <DepAirp CodeType="IATA">?</DepAirp> | ||
− | <!--DepAirp - аэропорт | + | <!--DepAirp — аэропорт вылета, IATA код--> |
+ | <!--Optional:--> | ||
+ | <DepAltAirports> | ||
+ | <!--DepAltAirports— альтернативные аэропорты вылета--> | ||
+ | <!--Once or more repetitions:--> | ||
+ | <AltAirport CodeType="IATA">?</AltAirport> | ||
+ | <!--AltAirport — альтернативный аэропорт, IATA код--> | ||
+ | </DepAltAirports> | ||
<ArrAirp CodeType="IATA">?</ArrAirp> | <ArrAirp CodeType="IATA">?</ArrAirp> | ||
− | <!--ArrAirp - аэропорт | + | <!--ArrAirp — аэропорт прилёта, IATA код--> |
+ | <!--Optional:--> | ||
+ | <ArrAltAirports> | ||
+ | <!--ArrAltAirports— альтернативные аэропорты прилета--> | ||
+ | <!--Once or more repetitions:--> | ||
+ | <AltAirport CodeType="IATA">?</AltAirport> | ||
+ | <!--AltAirport — альтернативный аэропорт, IATA код--> | ||
+ | </ArrAltAirports> | ||
</ODPair> | </ODPair> | ||
</ODPairs> | </ODPairs> | ||
Строка 43: | Строка 57: | ||
<!--Zero or more repetitions:--> | <!--Zero or more repetitions:--> | ||
<Traveller Type="?" Count="?"/> | <Traveller Type="?" Count="?"/> | ||
− | <!--Type | + | <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети, |
− | INF | + | INF — младенцы, INS — младенцы с местом--> |
− | <!--Count | + | <!--Count — количество пассажиров--> |
</Travellers> | </Travellers> | ||
<Restrictions> | <Restrictions> | ||
− | <ClassPref>?</ClassPref> | + | <ClassPref>?</ClassPref> <!--необязательный--> |
− | <!--ClassPref | + | <!--ClassPref — предпочитаемый класс поиска, возможные значения: economy, business, first. |
− | Если не заполнять, то будет произведен поиск | + | Если не заполнять, то будет произведен поиск всех классов--> |
− | |||
− | |||
<AirVPrefs> | <AirVPrefs> | ||
<!--Zero or more repetitions:--> | <!--Zero or more repetitions:--> | ||
− | <AirVPref Code="?" Include="?" Type="IATA"/> | + | <AirVPref Code="?" Include="?" Type="IATA"/> <!--необязательный--> |
− | <!--Code | + | <!--Code — код авиакомпании, SU, FV и т.п.--> |
− | <!--Include | + | <!--Include — включить или исключить авиакомпанию из результатов: true — включить, false — исключить--> |
</AirVPrefs> | </AirVPrefs> | ||
− | <IncludePrivateFare>?</IncludePrivateFare> | + | <IncludePrivateFare>?</IncludePrivateFare> <!--необязательный--> |
− | <!--IncludePrivateFare | + | <!--IncludePrivateFare — искать цены для агентства, если true — то включаем приватные, false — публичные--> |
− | <CurrencyCode>?</CurrencyCode> | + | <CurrencyCode>?</CurrencyCode> <!--необязательный--> |
− | <!--CurrencyCode | + | <!--CurrencyCode — код валюты, например: RUB, EUR--> |
+ | <MaxResultCount>?</MaxResultCount> <!--необязательный--> | ||
+ | <!--MaxResultCount — желаемое количество результатов поиска, значение передается в ГРС--> | ||
+ | <PriceRefundType>?</PriceRefundType> <!--необязательный--> | ||
+ | <!--PriceRefundType — выбор возвратности тарифов, допустимые значения (если в запросе не указывать PriceRefundType вообще, то в поисковой выдаче будут тарифы, как и при указании значения AnyLowest):--> | ||
+ | <!--Refundable — в поисковой выдаче будут только возвратные тарифы--> | ||
+ | <!--AnyLowest — в поисковой выдаче будут только самые дешевые тарифы (по умолчанию)--> | ||
+ | <!--Both — совокупность поисковых выдач поиска возвратных тарифов и самых дешевых--> | ||
+ | |||
</Restrictions> | </Restrictions> | ||
+ | <UTMSource>?</UTMSource> <!--необязательный--> | ||
+ | <!--UTMSource — название источника метрики заведенного в настройках--> | ||
+ | <DeviceId> <!--необязательный--> | ||
+ | <Type>?</Type> | ||
+ | <!--Type — Тип мобильного устройства (apple/android)--> | ||
+ | <Token>?</Token> | ||
+ | <!--Token — Токен мобильного устройства--> | ||
+ | </DeviceId> | ||
</SearchFlights> | </SearchFlights> | ||
</Request> | </Request> | ||
<Source> | <Source> | ||
<ClientId>?</ClientId> | <ClientId>?</ClientId> | ||
− | <!--ClientId | + | <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе |
− | "Администрирование" | + | "Администрирование" ? "Веб-служба. Авторизация".--> |
<APIKey>?</APIKey> | <APIKey>?</APIKey> | ||
− | <!--APIKey | + | <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе |
− | "Администрирование" | + | "Администрирование" ? "Веб-служба. Авторизация".--> |
<Language>?</Language> | <Language>?</Language> | ||
− | <!--Language | + | <!--Language — язык, например: RU--> |
<Currency>?</Currency> | <Currency>?</Currency> | ||
− | <!-- | + | <!-- Currency — валюта, например: RUB, EUR--> |
+ | <ShowNames>?</ShowNames> | ||
+ | <!-- ShowNames — отображение названий аэропортов, авиакомпаний и воздушных судов: true - отображать, false - не отображать. Возвращает значение на том языке, который был указан в запросе. Для RU - русский вариант, для UKR, EN, ES - латинский вариант. Опциональный элемент. --> | ||
+ | <EndUserData> | ||
+ | <!--Блок с данными о конечном пользователе, необязательный, но необходим при при использовании запросов поиска и бронирования для поставщика TravelFusion--> | ||
+ | <EndUserIP>123.123.123.123</EndUserIP> | ||
+ | <!--IP адрес пользователя--> | ||
+ | <EndUserBrowserAgent>firefox</EndUserBrowserAgent> | ||
+ | <!--Браузер пользователя--> | ||
+ | <RequestOrigin>Russia-nemo.travel</RequestOrigin> | ||
+ | <!--Страна и домен, с которого пользователь совершает поиск/бронирование--> | ||
+ | </EndUserData> | ||
</Source> | </Source> | ||
</RequestBin> | </RequestBin> | ||
Строка 87: | Строка 126: | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
+ | |||
==== Ответ ==== | ==== Ответ ==== | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
Строка 97: | Строка 137: | ||
<SearchFlights> | <SearchFlights> | ||
<Flights SearchId="?" ResultURL="?"> | <Flights SearchId="?" ResultURL="?"> | ||
− | <!--SearchId | + | <!--SearchId — ID процесса поиска в Nemo 1.0--> |
− | <!--ResultURL | + | <!--ResultURL — ссылка на страницу просмотра результатов на сайте агентства--> |
− | <Flight FlightId="?"> | + | <Flight FlightId="?" Nemo2FlightId="?"> |
− | <!--FlightId - | + | <!--FlightId — Id перелёта в системе Nemo (1.0) --> |
+ | <!--Nemo2FlightId — Id перелёта в системе Nemo (2.0)--> | ||
<WebService>?</WebService> | <WebService>?</WebService> | ||
− | <!--WebService | + | <!--WebService — поставщик перелёта--> |
<ValCompany>?</ValCompany> | <ValCompany>?</ValCompany> | ||
− | <!--ValCompany | + | <!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA--> |
<URL>?</URL> | <URL>?</URL> | ||
− | <!--URL | + | <!--URL — ссылка на бронирование конкретного перелета--> |
<Segments> | <Segments> | ||
<Segment SegNum="?" SegGroupNum="?"> | <Segment SegNum="?" SegGroupNum="?"> | ||
− | <!--SegNum | + | <!--SegNum — номер сегмента в перелёте--> |
<!--SegGroupNum – номер плеча перелёта--> | <!--SegGroupNum – номер плеча перелёта--> | ||
− | <DepAirp CodeType="IATA">?</DepAirp> | + | <DepAirp CodeType="IATA" Name="?">?</DepAirp> |
− | <!--DepAirp - | + | <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва или SVO — Шереметьево. Name - название аэропорта отправления--> |
<DepTerminal>?</DepTerminal> | <DepTerminal>?</DepTerminal> | ||
− | <!--DepTerminal | + | <!--DepTerminal — терминал пункта отправления, если пустое значение, |
то в аэропорту всего 1 терминал--> | то в аэропорту всего 1 терминал--> | ||
− | <ArrAirp CodeType="IATA">?</ArrAirp> | + | <ArrAirp CodeType="IATA" Name="?">?</ArrAirp> |
− | <!--ArrAirp - | + | <!--ArrAirp — аэропорт прибытия. Name - название аэропорта прибытия--> |
<ArrTerminal>?</ArrTerminal> | <ArrTerminal>?</ArrTerminal> | ||
− | <!--ArrTerminal | + | <!--ArrTerminal — терминал пункта прибытия, если пустое значение, |
то в аэропорту всего 1 терминал--> | то в аэропорту всего 1 терминал--> | ||
<OpAirline>?</OpAirline> | <OpAirline>?</OpAirline> | ||
− | <!--OpAirline | + | <!--OpAirline — авиакомпания перевозчик, например: SU — Аэрофлот--> |
+ | <OpAirlineName>?</OpAirlineName> | ||
+ | <!--OpAirlineName — название авиакомпании перевозчика, например: Аэрофлот - Российские авиалинии --> | ||
+ | <OpAirlineLogo>?</OpAirlineLogo> | ||
+ | <!-- OpAirlineLogo — ссылка на изображение логотипа авиакомпании --> | ||
<MarkAirline>?</MarkAirline> | <MarkAirline>?</MarkAirline> | ||
− | <!--MarkAirline | + | <!--MarkAirline — авиакомпания, продающая перелёт--> |
+ | <MarkAirlineName>?</MarkAirlineName> | ||
+ | <!--MarkAirlineName — название авиакомпании, продающей перелёт--> | ||
+ | <MarkAirlineLogo>?</MarkAirlineLogo> | ||
+ | <!-- MarkAirlineLogo — ссылка на изображение логотипа авиакомпании --> | ||
<FlightNumber>?</FlightNumber> | <FlightNumber>?</FlightNumber> | ||
− | <!--FlightNumber | + | <!--FlightNumber — номер рейса--> |
+ | <AircraftName>?</AircraftName> | ||
+ | <!--AircraftName — название воздушного судна. Например: Airbus 320--> | ||
<AircraftType>?</AircraftType> | <AircraftType>?</AircraftType> | ||
− | <!--AircraftType | + | <!--AircraftType — тип воздушного судна, код--> |
<DepDateTime>?</DepDateTime> | <DepDateTime>?</DepDateTime> | ||
− | <!--DepDateTime | + | <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> |
<ArrDateTime>?</ArrDateTime> | <ArrDateTime>?</ArrDateTime> | ||
− | <!--ArrDateTime | + | <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> |
<StopNum>?</StopNum> | <StopNum>?</StopNum> | ||
− | <!--StopNum | + | <!--StopNum — количество остановок--> |
+ | <StopPoints> | ||
+ | <!--StopPoints — информация о технических остановках, если они есть--> | ||
+ | <StopPoint> | ||
+ | <AirportCode>?</AirportCode> | ||
+ | <!--AirportCode — код аэропорта остановки, трех символьный iata код--> | ||
+ | <UTC>?</UTC> | ||
+ | <!--UTC — сдвиг часового пояса аэропорта--> | ||
+ | <ArrDateTime>?</ArrDateTime> | ||
+ | <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | <DepDateTime>?</DepDateTime> | ||
+ | <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | </StopPoint> | ||
+ | </StopPoints> | ||
<BookingCodes> | <BookingCodes> | ||
<BookingCode ClassType="?"> | <BookingCode ClassType="?"> | ||
− | <!--ClassType | + | <!--ClassType — класс перелета, например: economy--> |
<BookingCode>?</BookingCode> | <BookingCode>?</BookingCode> | ||
− | <!--BookingCode | + | <!--BookingCode — код класса бронирования, у разных авиакомпаний один и тот же класс |
+ | может записываться разными литерами, например: L. Возвращает информацию о классе перелета определенного сегмента.--> | ||
</BookingCode> | </BookingCode> | ||
</BookingCodes> | </BookingCodes> | ||
<FlightTime>?</FlightTime> | <FlightTime>?</FlightTime> | ||
− | <!--FlightTime | + | <!--FlightTime — время перелёта в минутах--> |
+ | <RemainingSeats>?</RemainingSeats> | ||
+ | <!--RemainingSeats — количетсво свободных мест для данного класса перелёта--> | ||
<TimeZone Departure="?" Arrival="?"/> | <TimeZone Departure="?" Arrival="?"/> | ||
<!--Departure временная зона аэропорта отправления--> | <!--Departure временная зона аэропорта отправления--> | ||
− | <!--Arrival | + | <!--Arrival — временная зона аэропорта прибытия--> |
<ETicket>?</ETicket> | <ETicket>?</ETicket> | ||
− | <!--ETicket | + | <!--ETicket — признак электронного билета, значения: true / false--> |
+ | <isCharter>?</isCharter> | ||
+ | <!--isCharter — признак чартерного перелета, значения: true / false--> | ||
+ | <BaggageAllowances> | ||
+ | <!--BaggageAllowances — информация о багаже--> | ||
+ | <BaggageAllowance> | ||
+ | <PassengerType>?</PassengerType> | ||
+ | <!--PassengerType — тип пассажира, соответстует типу пассижира в PricingInfo --> | ||
+ | <Value>?</Value> | ||
+ | <!--Value — количество--> | ||
+ | <Measurement>?</Measurement> | ||
+ | <!--Measurement — мера измерения: kg — килограмм, pc — багажное место, lb — фунт--> | ||
+ | </BaggageAllowance> | ||
+ | </BaggageAllowances> | ||
</Segment> | </Segment> | ||
</Segments> | </Segments> | ||
<PricingInfo Refundable="?"> | <PricingInfo Refundable="?"> | ||
− | <!--Refundable | + | <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно--> |
<PassengerFare Type="?" Quantity="?"> | <PassengerFare Type="?" Quantity="?"> | ||
− | <!--Type | + | <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети, |
− | INF | + | INF — младенцы, INS — младенцы с местом--> |
− | <!--Quantity | + | <!--Quantity — количество пассажиров данного типа--> |
+ | <TravellerRef/> | ||
+ | <!--Ссылка на пассажиров, к которым относится данный тариф--> | ||
<BaseFare Currency="?" Amount="?"/> | <BaseFare Currency="?" Amount="?"/> | ||
− | <!--BaseFare | + | <!--BaseFare — базовая стоимость, в базовой валюте. Currency — код валюты, Amount — значение цены--> |
<EquiveFare Currency="?" Amount="?"/> | <EquiveFare Currency="?" Amount="?"/> | ||
− | <!--EquiveFare | + | <!--EquiveFare — базовая стоимость, в эквивалентной валюте(валюте продажи). |
− | Currency | + | Currency — код валюты, Amount — значение цены--> |
<TotalFare Currency="?" Amount="?"/> | <TotalFare Currency="?" Amount="?"/> | ||
− | <!--TotalFare | + | <!--TotalFare — суммарная стоимость перелета за тип пассажира, в эквивалентной валюте. |
− | Currency | + | Currency — код валюты, Amount — значение цены--> |
<Taxes> | <Taxes> | ||
<Tax CurCode="?" TaxCode="?" Amount="?"/> | <Tax CurCode="?" TaxCode="?" Amount="?"/> | ||
− | <!--CurCode | + | <!--CurCode — код валюты, TaxCode — код таксы, Amount — сумма таксы--> |
</Taxes> | </Taxes> | ||
<Tariffs> | <Tariffs> | ||
<Tariff Code="?" SegNum="?"/> | <Tariff Code="?" SegNum="?"/> | ||
− | <!--Code | + | <!--Code — код тарифа, SegNum — номер сегмента, к которому применён тариф--> |
+ | <FareFamilies> | ||
+ | <!--FareFamilies - наличие данного параметра у сегмента, означает, что у а\к заведены семейства тарифов--> | ||
+ | <FullName>?</FullName> | ||
+ | <!--FullName - название тарифа, который принадлежит семейству тарифов, у сегмента--> | ||
+ | </FareFamilies> | ||
+ | </Tariff> | ||
</Tariffs> | </Tariffs> | ||
<FareCalc>?</FareCalc> | <FareCalc>?</FareCalc> | ||
− | <!--FareCalc | + | <!--FareCalc — строка расчёта цены--> |
<LastTicketDateTime>?</LastTicketDateTime> | <LastTicketDateTime>?</LastTicketDateTime> | ||
− | <!--LastTicketDateTime | + | <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС по московскому времени. Если включена настройка "Применение временной зоны - Для расчетов таймлимитов в агентском API", дата и время таймлимита будут переведены во временную зону пользователя. При отключенной настройке по умолчанию дата и время будут в Московском часовом поясе.--> |
</PassengerFare> | </PassengerFare> | ||
</PricingInfo> | </PricingInfo> | ||
<Commission/> | <Commission/> | ||
<Charges Currency="?">?</Charges> | <Charges Currency="?">?</Charges> | ||
− | <!--Charges | + | <!--Charges — сборы, Currency — код валюты--> |
<TotalPrice Currency="?">?</TotalPrice> | <TotalPrice Currency="?">?</TotalPrice> | ||
− | <!--TotalPrice | + | <!--TotalPrice — итоговая цена, Currency — код валюты--> |
</Flight> | </Flight> | ||
<Flight>...</Flight> | <Flight>...</Flight> | ||
Строка 191: | Строка 279: | ||
<Errors> | <Errors> | ||
<Error Code="?"> | <Error Code="?"> | ||
− | <!--Code | + | <!--Code — код ошибки в системе Nemo--> |
<ServiceErrorMessage>?</ServiceErrorMessage> | <ServiceErrorMessage>?</ServiceErrorMessage> | ||
− | <!--ServiceErrorMessage | + | <!--ServiceErrorMessage — сообщение об ошибке полученное от веб-сервиса поставщика--> |
<Message>?</Message> | <Message>?</Message> | ||
− | <!--Message | + | <!--Message — сообщение об ошибке от системы Nemo--> |
</Error> | </Error> | ||
</Errors> | </Errors> | ||
Строка 209: | Строка 297: | ||
В ссылках на просмотр страницы результата поиска и на бронирование конкретного перелета, домен агентства/субагентства определяется следующим образом: | В ссылках на просмотр страницы результата поиска и на бронирование конкретного перелета, домен агентства/субагентства определяется следующим образом: | ||
− | * Если текущий домен агентства/субагентства есть в настройках ('' | + | * Если текущий домен агентства/субагентства есть в настройках ('''Управление сайтом''' ⇨ '''Домены и протоколы''' ⇨ '''Доменное имя сайта для загрузки настроек'''), то этот домен используется в ссылках. |
* Если текущего домена нет в настройках, то используется первый домен из настроек. | * Если текущего домена нет в настройках, то используется первый домен из настроек. | ||
* Если в настройках не прописано ни одного домена, то используется текущий домен. | * Если в настройках не прописано ни одного домена, то используется текущий домен. | ||
− | == Односторонний перелет == | + | На поиск действуют ограничения заданные в настройках агентства, в частности ограничения по пассажирам и ограничение ближайшей разрешенной даты поиска билетов. |
+ | * Если дата поиска меньше ближайшей разрешенной даты для поиска билетов, то выводится сообщение об ошибке Invalid search param: Неверная дата вылета: слишком близкая | ||
+ | * Если количество взрослых пассажиров превышает допустимое ограничение - Invalid search param: Слишком много взрослых | ||
+ | * Если количество детей в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много детей | ||
+ | * Если количество младенцев в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантов | ||
+ | * Если количество младенцев с местом в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантов | ||
+ | |||
+ | Примечание: | ||
+ | |||
+ | Если в запросе поиска указать PriceRefundType = “Both”, то для всех ГРС кроме Sabre будет отправляться 2 запроса. | ||
+ | Если количество доп. цен в БФМ запросе в Сейбре больше 10, то и в нем будет 2 запроса. Количество доп. цен в запросе зависит от: | ||
+ | * Настроек прайсинга по альтернативным J типам в пакете реквизитов; | ||
+ | * Количества запрошенных классов перелетов; | ||
+ | * Количества запрошенных типов пассажиров; | ||
+ | * Настройки "Дополнительно запросить только публичные тарифы" в применявшемся правила маршрутизатора. | ||
+ | |||
+ | == Примеры использования == | ||
+ | |||
+ | === Односторонний перелет === | ||
− | Пример одностороннего перелета: Москва - | + | Пример одностороннего перелета: Москва — Санкт-Петербург, 1 взрослый, эконом класс, предпочитаемая авиакомпания — ЮТэйр. |
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
Строка 221: | Строка 327: | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> | ||
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http:// | + | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIEN_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights"> |
<soapenv:Header/> | <soapenv:Header/> | ||
<soapenv:Body> | <soapenv:Body> | ||
Строка 231: | Строка 337: | ||
<!--Zero or more repetitions:--> | <!--Zero or more repetitions:--> | ||
<ODPair> | <ODPair> | ||
− | <DepDate> | + | <DepDate>2018-04-09</DepDate> |
− | + | <DepAirp CodeType="IATA">MOW</DepAirp> | |
− | + | <ArrAirp CodeType="IATA">LED</ArrAirp> | |
</ODPair> | </ODPair> | ||
− | + | </ODPairs> | |
<Travellers> | <Travellers> | ||
<!--Zero or more repetitions:--> | <!--Zero or more repetitions:--> | ||
<Traveller Type="ADT" Count="1"/> | <Traveller Type="ADT" Count="1"/> | ||
− | |||
</Travellers> | </Travellers> | ||
<Restrictions> | <Restrictions> | ||
Строка 246: | Строка 351: | ||
<AirVPrefs> | <AirVPrefs> | ||
<!--Zero or more repetitions:--> | <!--Zero or more repetitions:--> | ||
− | <AirVPref Code=" | + | <AirVPref Code="UT" Include="true" Type="IATA"/> |
</AirVPrefs> | </AirVPrefs> | ||
<IncludePrivateFare>false</IncludePrivateFare> | <IncludePrivateFare>false</IncludePrivateFare> | ||
Строка 254: | Строка 359: | ||
</Request> | </Request> | ||
<Source> | <Source> | ||
− | <ClientId> | + | <ClientId>---</ClientId> |
− | <APIKey> | + | <APIKey>---</APIKey> |
<Language>RU</Language> | <Language>RU</Language> | ||
<Currency>RUB</Currency> | <Currency>RUB</Currency> | ||
+ | <ShowNames>true</ShowNames> | ||
+ | <EndUserData> | ||
+ | <EndUserIP>---</EndUserIP> | ||
+ | <EndUserBrowserAgent>---</EndUserBrowserAgent> | ||
+ | <RequestOrigin>---</RequestOrigin> | ||
+ | </EndUserData> | ||
</Source> | </Source> | ||
</RequestBin> | </RequestBin> | ||
Строка 268: | Строка 379: | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
+ | |||
==== Ответ ==== | ==== Ответ ==== | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
Строка 277: | Строка 389: | ||
<Response> | <Response> | ||
<SearchFlights> | <SearchFlights> | ||
− | <Flights SearchId=" | + | <Flights SearchId="221980" ResultURL="http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D221968 "> |
− | <Flight FlightId=" | + | <Flight FlightId="1387380004" Nemo2FlightId="142939413030003"> |
− | <WebService> | + | <WebService>AMADEUS</WebService> |
− | <ValCompany/> | + | <ValCompany>UT</ValCompany> |
− | <URL>http%3A%2F% | + | <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D221980%26flight%3D1387380004</URL> |
<Segments> | <Segments> | ||
<Segment SegNum="1" SegGroupNum="0"> | <Segment SegNum="1" SegGroupNum="0"> | ||
− | <DepAirp CodeType="IATA"> | + | <SupplierCode/> |
− | <DepTerminal/> | + | <DepAirp CodeType="IATA" Name="Внуково, Москва">VKO</DepAirp> |
− | <ArrAirp CodeType="IATA"> | + | <DepTerminal>A</DepTerminal> |
− | <ArrTerminal/> | + | <ArrAirp CodeType="IATA" Name="Санкт-Петербург, Пулково">LED</ArrAirp> |
− | <OpAirline> | + | <ArrTerminal>1</ArrTerminal> |
− | <MarkAirline> | + | <OpAirline>UT</OpAirline> |
− | <FlightNumber> | + | <OpAirlineName>ЮТэйр</OpAirlineName> |
− | <AircraftType> | + | <OpAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F5700-ca202ff9af392fb5ad923722eb5455f6.svg</OpAirlineLogo> |
− | <DepDateTime> | + | <MarkAirline>UT</MarkAirline> |
− | <ArrDateTime> | + | <MarkAirlineName>ЮТэйр</MarkAirlineName> |
+ | <MarkAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F5700-ca202ff9af392fb5ad923722eb5455f6.svg</MarkAirlineLogo> | ||
+ | <FlightNumber>369</FlightNumber> | ||
+ | <AircraftName>Boeing 737</AircraftName> | ||
+ | <AircraftType>735</AircraftType> | ||
+ | <DepDateTime>2018-04-09T10:35:00</DepDateTime> | ||
+ | <ArrDateTime>2018-04-09T11:55:00</ArrDateTime> | ||
<StopNum>0</StopNum> | <StopNum>0</StopNum> | ||
+ | <StopPoints/> | ||
<BookingCodes> | <BookingCodes> | ||
<BookingCode ClassType="economy"> | <BookingCode ClassType="economy"> | ||
− | <BookingCode> | + | <BookingCode>H</BookingCode> |
</BookingCode> | </BookingCode> | ||
</BookingCodes> | </BookingCodes> | ||
− | <FlightTime> | + | <FlightTime>80</FlightTime> |
− | <TimeZone Departure=" | + | <RemainingSeats>9</RemainingSeats> |
+ | <TimeZone Departure="3" Arrival="3"/> | ||
<ETicket>true</ETicket> | <ETicket>true</ETicket> | ||
+ | <isCharter>false</isCharter> | ||
+ | <BaggageAllowances> | ||
+ | <BaggageAllowance> | ||
+ | <PassengerType>ADT</PassengerType> | ||
+ | <Value/> | ||
+ | <Measurement>kg</Measurement> | ||
+ | </BaggageAllowance> | ||
+ | </BaggageAllowances> | ||
</Segment> | </Segment> | ||
</Segments> | </Segments> | ||
<PricingInfo Refundable="false"> | <PricingInfo Refundable="false"> | ||
<PassengerFare Type="ADT" Quantity="1"> | <PassengerFare Type="ADT" Quantity="1"> | ||
− | <BaseFare Currency=" | + | <TravellerRef xsi:nil="true"/> |
− | <EquiveFare Currency=" | + | <BaseFare Currency="KZT" Amount="7329"/> |
− | <TotalFare Currency=" | + | <EquiveFare Currency="KZT" Amount="7329"/> |
+ | <TotalFare Currency="KZT" Amount="19702"/> | ||
<Taxes> | <Taxes> | ||
− | <Tax CurCode=" | + | <Tax CurCode="KZT" TaxCode="XT" Amount="12373"/> |
− | |||
</Taxes> | </Taxes> | ||
− | <Tariffs | + | <Tariffs> |
− | + | <Tariff Code="HLTOW" SegNum="1"> | |
− | + | <FareFamilies> | |
− | + | <FullName>Лайт</FullName> | |
− | + | </FareFamilies> | |
− | + | </Tariff> | |
− | + | </Tariffs> | |
− | + | <FareCalc/> | |
− | + | <LastTicketDateTime>2018-04-03T23:59:00</LastTicketDateTime> | |
− | |||
− | < | ||
− | </ | ||
− | |||
− | <FareCalc | ||
− | <LastTicketDateTime> | ||
</PassengerFare> | </PassengerFare> | ||
</PricingInfo> | </PricingInfo> | ||
<Commission/> | <Commission/> | ||
− | <Charges Currency="RUB"> | + | <Charges Currency="RUB">2851.23</Charges> |
− | <TotalPrice Currency="RUB"> | + | <TotalPrice Currency="RUB">6367</TotalPrice> |
</Flight> | </Flight> | ||
− | <Flight FlightId=" | + | <Flight FlightId="1387380005" Nemo2FlightId="142939413020000"> |
− | <WebService> | + | <WebService>SIRENA2000</WebService> |
− | <ValCompany/> | + | <ValCompany>UT</ValCompany> |
− | <URL>http%3A%2F% | + | <URL>http%3A%2F%2FCLIEN_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D221980%26flight%3D1387380005</URL> |
<Segments> | <Segments> | ||
<Segment SegNum="1" SegGroupNum="0"> | <Segment SegNum="1" SegGroupNum="0"> | ||
− | <DepAirp CodeType="IATA"> | + | <SupplierCode/> |
− | <DepTerminal/> | + | <DepAirp CodeType="IATA" Name="Внуково, Москва">VKO</DepAirp> |
− | <ArrAirp CodeType="IATA"> | + | <DepTerminal>A</DepTerminal> |
− | <ArrTerminal/> | + | <ArrAirp CodeType="IATA" Name="Санкт-Петербург, Пулково">LED</ArrAirp> |
− | <OpAirline> | + | <ArrTerminal>1</ArrTerminal> |
− | <MarkAirline> | + | <OpAirline>UT</OpAirline> |
− | <FlightNumber> | + | <OpAirlineName>ЮТэйр</OpAirlineName> |
− | <AircraftType> | + | <OpAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F5700-ca202ff9af392fb5ad923722eb5455f6.svg</OpAirlineLogo> |
− | <DepDateTime> | + | <MarkAirline>UT</MarkAirline> |
− | <ArrDateTime> | + | <MarkAirlineName>ЮТэйр</MarkAirlineName> |
+ | <MarkAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F5700-ca202ff9af392fb5ad923722eb5455f6.svg</MarkAirlineLogo> | ||
+ | <FlightNumber>369</FlightNumber> | ||
+ | <AircraftName>Boeing 737</AircraftName> | ||
+ | <AircraftType>735</AircraftType> | ||
+ | <DepDateTime>2018-04-09T10:35:00</DepDateTime> | ||
+ | <ArrDateTime>2018-04-09T11:55:00</ArrDateTime> | ||
<StopNum>0</StopNum> | <StopNum>0</StopNum> | ||
+ | <StopPoints/> | ||
<BookingCodes> | <BookingCodes> | ||
<BookingCode ClassType="economy"> | <BookingCode ClassType="economy"> | ||
− | <BookingCode> | + | <BookingCode>K</BookingCode> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</BookingCode> | </BookingCode> | ||
</BookingCodes> | </BookingCodes> | ||
<FlightTime>80</FlightTime> | <FlightTime>80</FlightTime> | ||
− | <TimeZone Departure=" | + | <RemainingSeats>9</RemainingSeats> |
+ | <TimeZone Departure="3" Arrival="3"/> | ||
<ETicket>true</ETicket> | <ETicket>true</ETicket> | ||
+ | <isCharter>false</isCharter> | ||
+ | <BaggageAllowances> | ||
+ | <BaggageAllowance> | ||
+ | <PassengerType>ADT</PassengerType> | ||
+ | <Value>0</Value> | ||
+ | <Measurement>kg</Measurement> | ||
+ | </BaggageAllowance> | ||
+ | </BaggageAllowances> | ||
</Segment> | </Segment> | ||
</Segments> | </Segments> | ||
<PricingInfo Refundable="false"> | <PricingInfo Refundable="false"> | ||
<PassengerFare Type="ADT" Quantity="1"> | <PassengerFare Type="ADT" Quantity="1"> | ||
− | <BaseFare Currency=" | + | <TravellerRef xsi:nil="true"/> |
− | <EquiveFare Currency="RUB" Amount=" | + | <BaseFare Currency="RUB" Amount="805"/> |
− | <TotalFare Currency="RUB" Amount=" | + | <EquiveFare Currency="RUB" Amount="805"/> |
+ | <TotalFare Currency="RUB" Amount="4647"/> | ||
<Taxes> | <Taxes> | ||
− | <Tax CurCode="RUB" TaxCode=" | + | <Tax CurCode="RUB" TaxCode="SA" Amount="300"/> |
− | <Tax CurCode="RUB" TaxCode=" | + | <Tax CurCode="RUB" TaxCode="YQ" Amount="1300"/> |
− | <Tax CurCode="RUB" TaxCode=" | + | <Tax CurCode="RUB" TaxCode="ZZ" Amount="185"/> |
− | <Tax CurCode="RUB" TaxCode=" | + | <Tax CurCode="RUB" TaxCode="AG" Amount="500"/> |
− | + | <Tax CurCode="RUB" TaxCode="RI" Amount="1557"/> | |
− | <Tax CurCode="RUB" TaxCode=" | ||
</Taxes> | </Taxes> | ||
− | <Tariffs | + | <Tariffs> |
− | + | <Tariff Code="LLTOW" SegNum="1"> | |
− | + | <FareFamilies> | |
− | + | <FullName>Лайт</FullName> | |
− | + | </FareFamilies> | |
− | + | </Tariff> | |
− | + | </Tariffs> | |
− | + | <FareCalc/> | |
− | + | <LastTicketDateTime>2018-04-09T10:35:00</LastTicketDateTime> | |
− | |||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | </ | ||
− | |||
− | <FareCalc | ||
− | <LastTicketDateTime> | ||
</PassengerFare> | </PassengerFare> | ||
</PricingInfo> | </PricingInfo> | ||
<Commission/> | <Commission/> | ||
− | <Charges Currency="RUB"> | + | <Charges Currency="RUB">2851</Charges> |
− | <TotalPrice Currency="RUB"> | + | <TotalPrice Currency="RUB">7498</TotalPrice> |
</Flight> | </Flight> | ||
......... | ......... | ||
Строка 492: | Строка 542: | ||
</div> | </div> | ||
− | == Перелет туда-обратно == | + | === Перелет туда-обратно === |
− | Пример перелета туда-обратно: Москва | + | Пример перелета туда-обратно: Москва — Париж, 2 взрослых, бизнес класс. '''Выдача с именами авиакомпаний, воздушных судов, аэропортов.''' |
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
Строка 501: | Строка 551: | ||
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> | ||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights"> | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights"> | ||
− | + | <soapenv:Header/> | |
− | + | <soapenv:Body> | |
− | + | <ver:search> | |
− | + | <RequestBin> | |
− | + | <Request> | |
− | + | <SearchFlights LinkOnly="false"> | |
− | + | <ODPairs Type="RT" Direct="false" AroundDates="0"> | |
− | + | <!--Zero or more repetitions:--> | |
− | + | <ODPair> | |
− | + | <DepDate>2018-04-09</DepDate> | |
− | + | <DepAirp CodeType="IATA">MOW</DepAirp> | |
− | + | <ArrAirp CodeType="IATA">PAR</ArrAirp> | |
− | + | </ODPair> | |
− | + | <ODPair> | |
− | + | <DepDate>2018-04-16</DepDate> | |
− | + | <DepAirp CodeType="IATA">PAR</DepAirp> | |
− | + | <ArrAirp CodeType="IATA">MOW</ArrAirp> | |
− | + | </ODPair> | |
− | + | </ODPairs> | |
− | + | <Travellers> | |
− | + | <!--Zero or more repetitions:--> | |
− | + | <Traveller Type="ADT" Count="2"/> | |
− | + | </Travellers> | |
− | + | <Restrictions> | |
− | + | <ClassPref>business</ClassPref> | |
− | + | <OnlyAvail>false</OnlyAvail> | |
− | + | <AirVPrefs/> | |
− | + | <IncludePrivateFare>false</IncludePrivateFare> | |
− | + | <CurrencyCode>RUB</CurrencyCode> | |
− | + | </Restrictions> | |
− | + | </SearchFlights> | |
− | + | </Request> | |
− | + | <Source> | |
− | + | <ClientId>---</ClientId> | |
− | + | <APIKey>---</APIKey> | |
− | + | <Language>RU</Language> | |
− | + | <Currency>RUB</Currency> | |
− | + | <ShowNames>true</ShowNames> | |
− | + | <EndUserData> | |
− | + | <EndUserIP>---</EndUserIP> | |
− | + | <EndUserBrowserAgent>---</EndUserBrowserAgent> | |
− | </soapenv:Envelope> | + | <RequestOrigin>---</RequestOrigin> |
+ | </EndUserData> | ||
+ | </Source> | ||
+ | </RequestBin> | ||
+ | </ver:search> | ||
+ | </soapenv:Body> | ||
+ | </soapenv:Envelope> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</div> | </div> | ||
Строка 548: | Строка 604: | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
+ | |||
==== Ответ ==== | ==== Ответ ==== | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> | ||
− | <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http:// | + | <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIEN_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
− | + | <SOAP-ENV:Body> | |
<ns1:searchResponse> | <ns1:searchResponse> | ||
<ResponseBin> | <ResponseBin> | ||
<Response> | <Response> | ||
<SearchFlights> | <SearchFlights> | ||
− | <Flights SearchId=" | + | <Flights SearchId="221983" ResultURL="http%3A%2F%2FCLIEN_DOMAIN%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D221983"> |
− | <Flight FlightId=" | + | <Flight FlightId="1387400001" Nemo2FlightId="142939437030005"> |
<WebService>SABRE</WebService> | <WebService>SABRE</WebService> | ||
− | <ValCompany/> | + | <ValCompany>OS</ValCompany> |
− | <URL>http%3A%2F% | + | <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D221983%26flight%3D1387400001</URL> |
<Segments> | <Segments> | ||
<Segment SegNum="1" SegGroupNum="0"> | <Segment SegNum="1" SegGroupNum="0"> | ||
− | <DepAirp CodeType="IATA"> | + | <SupplierCode/> |
+ | <DepAirp CodeType="IATA" Name="Домодедово, Москва">DME</DepAirp> | ||
<DepTerminal/> | <DepTerminal/> | ||
− | <ArrAirp CodeType="IATA"> | + | <ArrAirp CodeType="IATA" Name="Вена">VIE</ArrAirp> |
<ArrTerminal/> | <ArrTerminal/> | ||
− | <OpAirline> | + | <OpAirline>OS</OpAirline> |
− | <MarkAirline> | + | <OpAirlineName>Austrian</OpAirlineName> |
− | <FlightNumber> | + | <OpAirlineLogo>http%3A%2F%2FCLIENT_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F2761-b2b2c577490837af7be6f8bece58db7e.svg</OpAirlineLogo> |
+ | <MarkAirline>OS</MarkAirline> | ||
+ | <MarkAirlineName>Austrian</MarkAirlineName> | ||
+ | <MarkAirlineLogo>http%3A%2F%2FCLIENT_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F2761-b2b2c577490837af7be6f8bece58db7e.svg</MarkAirlineLogo> | ||
+ | <FlightNumber>606</FlightNumber> | ||
+ | <AircraftName>Airbus 319</AircraftName> | ||
<AircraftType>319</AircraftType> | <AircraftType>319</AircraftType> | ||
− | <DepDateTime> | + | <DepDateTime>2018-04-09T06:25:00</DepDateTime> |
− | <ArrDateTime> | + | <ArrDateTime>2018-04-09T08:15:00</ArrDateTime> |
<StopNum>0</StopNum> | <StopNum>0</StopNum> | ||
+ | <StopPoints/> | ||
<BookingCodes> | <BookingCodes> | ||
− | <BookingCode ClassType=" | + | <BookingCode ClassType="business"> |
− | <BookingCode> | + | <BookingCode>P</BookingCode> |
</BookingCode> | </BookingCode> | ||
</BookingCodes> | </BookingCodes> | ||
− | <FlightTime> | + | <FlightTime>170</FlightTime> |
− | <TimeZone Departure=" | + | <RemainingSeats>5</RemainingSeats> |
+ | <TimeZone Departure="3" Arrival="2"/> | ||
<ETicket>true</ETicket> | <ETicket>true</ETicket> | ||
+ | <isCharter>false</isCharter> | ||
+ | <BaggageAllowances> | ||
+ | <BaggageAllowance> | ||
+ | <PassengerType>ADT</PassengerType> | ||
+ | <Value>2</Value> | ||
+ | <Measurement>pc</Measurement> | ||
+ | </BaggageAllowance> | ||
+ | </BaggageAllowances> | ||
</Segment> | </Segment> | ||
<Segment SegNum="2" SegGroupNum="0"> | <Segment SegNum="2" SegGroupNum="0"> | ||
− | <DepAirp CodeType="IATA"> | + | <SupplierCode/> |
+ | <DepAirp CodeType="IATA" Name="Вена">VIE</DepAirp> | ||
<DepTerminal/> | <DepTerminal/> | ||
− | <ArrAirp CodeType="IATA">CDG</ArrAirp> | + | <ArrAirp CodeType="IATA" Name="Шарль Де Голль, Париж">CDG</ArrAirp> |
− | <ArrTerminal/> | + | <ArrTerminal>2D</ArrTerminal> |
− | <OpAirline> | + | <OpAirline>OS</OpAirline> |
− | <MarkAirline> | + | <OpAirlineName>Austrian</OpAirlineName> |
− | <FlightNumber> | + | <OpAirlineLogo>http%3A%2F%2FCLIENT_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F2761-b2b2c577490837af7be6f8bece58db7e.svg</OpAirlineLogo> |
+ | <MarkAirline>OS</MarkAirline> | ||
+ | <MarkAirlineName>Austrian</MarkAirlineName> | ||
+ | <MarkAirlineLogo>http%3A%2F%2FCLIENT_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F2761-b2b2c577490837af7be6f8bece58db7e.svg</MarkAirlineLogo> | ||
+ | <FlightNumber>413</FlightNumber> | ||
+ | <AircraftName>Аэробус 320</AircraftName> | ||
<AircraftType>320</AircraftType> | <AircraftType>320</AircraftType> | ||
− | <DepDateTime> | + | <DepDateTime>2018-04-09T10:55:00</DepDateTime> |
− | <ArrDateTime> | + | <ArrDateTime>2018-04-09T13:05:00</ArrDateTime> |
<StopNum>0</StopNum> | <StopNum>0</StopNum> | ||
+ | <StopPoints/> | ||
<BookingCodes> | <BookingCodes> | ||
− | <BookingCode ClassType=" | + | <BookingCode ClassType="business"> |
− | <BookingCode> | + | <BookingCode>P</BookingCode> |
</BookingCode> | </BookingCode> | ||
</BookingCodes> | </BookingCodes> | ||
− | <FlightTime> | + | <FlightTime>130</FlightTime> |
− | <TimeZone Departure=" | + | <RemainingSeats>5</RemainingSeats> |
+ | <TimeZone Departure="2" Arrival="2"/> | ||
<ETicket>true</ETicket> | <ETicket>true</ETicket> | ||
+ | <isCharter>false</isCharter> | ||
+ | <BaggageAllowances> | ||
+ | <BaggageAllowance> | ||
+ | <PassengerType>ADT</PassengerType> | ||
+ | <Value>2</Value> | ||
+ | <Measurement>pc</Measurement> | ||
+ | </BaggageAllowance> | ||
+ | </BaggageAllowances> | ||
</Segment> | </Segment> | ||
<Segment SegNum="3" SegGroupNum="1"> | <Segment SegNum="3" SegGroupNum="1"> | ||
− | <DepAirp CodeType="IATA">CDG</DepAirp> | + | <SupplierCode/> |
− | <DepTerminal/> | + | <DepAirp CodeType="IATA" Name="Шарль Де Голль, Париж">CDG</DepAirp> |
− | <ArrAirp CodeType="IATA"> | + | <DepTerminal>2D</DepTerminal> |
+ | <ArrAirp CodeType="IATA" Name="Вена">VIE</ArrAirp> | ||
<ArrTerminal/> | <ArrTerminal/> | ||
− | <OpAirline> | + | <OpAirline>OS</OpAirline> |
− | <MarkAirline> | + | <OpAirlineName>Austrian</OpAirlineName> |
− | <FlightNumber> | + | <OpAirlineLogo>http%3A%2F%2FCLIENT_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F2761-b2b2c577490837af7be6f8bece58db7e.svg</OpAirlineLogo> |
− | <AircraftType> | + | <MarkAirline>OS</MarkAirline> |
− | <DepDateTime> | + | <MarkAirlineName>Austrian</MarkAirlineName> |
− | <ArrDateTime> | + | <MarkAirlineLogo>http%3A%2F%2FCLIENT_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F2761-b2b2c577490837af7be6f8bece58db7e.svg</MarkAirlineLogo> |
+ | <FlightNumber>416</FlightNumber> | ||
+ | <AircraftName>Airbus 321</AircraftName> | ||
+ | <AircraftType>321</AircraftType> | ||
+ | <DepDateTime>2018-04-16T16:55:00</DepDateTime> | ||
+ | <ArrDateTime>2018-04-16T18:55:00</ArrDateTime> | ||
<StopNum>0</StopNum> | <StopNum>0</StopNum> | ||
+ | <StopPoints/> | ||
<BookingCodes> | <BookingCodes> | ||
− | <BookingCode ClassType=" | + | <BookingCode ClassType="business"> |
− | <BookingCode> | + | <BookingCode>P</BookingCode> |
</BookingCode> | </BookingCode> | ||
</BookingCodes> | </BookingCodes> | ||
− | <FlightTime> | + | <FlightTime>120</FlightTime> |
− | <TimeZone Departure=" | + | <RemainingSeats>5</RemainingSeats> |
+ | <TimeZone Departure="2" Arrival="2"/> | ||
<ETicket>true</ETicket> | <ETicket>true</ETicket> | ||
+ | <isCharter>false</isCharter> | ||
+ | <BaggageAllowances> | ||
+ | <BaggageAllowance> | ||
+ | <PassengerType>ADT</PassengerType> | ||
+ | <Value>2</Value> | ||
+ | <Measurement>pc</Measurement> | ||
+ | </BaggageAllowance> | ||
+ | </BaggageAllowances> | ||
</Segment> | </Segment> | ||
<Segment SegNum="4" SegGroupNum="1"> | <Segment SegNum="4" SegGroupNum="1"> | ||
− | < | + | <SupplierCode/> |
− | < | + | <DepAirp CodeType="IATA" Name="Вена">VIE</DepAirp> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<DepTerminal/> | <DepTerminal/> | ||
− | <ArrAirp CodeType="IATA"> | + | <ArrAirp CodeType="IATA" Name="Домодедово, Москва">DME</ArrAirp> |
<ArrTerminal/> | <ArrTerminal/> | ||
− | <OpAirline> | + | <OpAirline>OS</OpAirline> |
− | <MarkAirline> | + | <OpAirlineName>Austrian</OpAirlineName> |
− | <FlightNumber> | + | <OpAirlineLogo>http%3A%2F%2FCLIENT_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F2761-b2b2c577490837af7be6f8bece58db7e.svg</OpAirlineLogo> |
+ | <MarkAirline>OS</MarkAirline> | ||
+ | <MarkAirlineName>Austrian</MarkAirlineName> | ||
+ | <MarkAirlineLogo>http%3A%2F%2FCLIENT_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F2761-b2b2c577490837af7be6f8bece58db7e.svg</MarkAirlineLogo> | ||
+ | <FlightNumber>605</FlightNumber> | ||
+ | <AircraftName>Airbus 319</AircraftName> | ||
<AircraftType>319</AircraftType> | <AircraftType>319</AircraftType> | ||
− | <DepDateTime> | + | <DepDateTime>2018-04-16T20:40:00</DepDateTime> |
− | <ArrDateTime> | + | <ArrDateTime>2018-04-17T00:25:00</ArrDateTime> |
<StopNum>0</StopNum> | <StopNum>0</StopNum> | ||
+ | <StopPoints/> | ||
<BookingCodes> | <BookingCodes> | ||
− | <BookingCode ClassType=" | + | <BookingCode ClassType="business"> |
− | <BookingCode> | + | <BookingCode>P</BookingCode> |
</BookingCode> | </BookingCode> | ||
</BookingCodes> | </BookingCodes> | ||
<FlightTime>165</FlightTime> | <FlightTime>165</FlightTime> | ||
− | < | + | <RemainingSeats>5</RemainingSeats> |
− | + | <TimeZone Departure="2" Arrival="3"/> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <TimeZone Departure=" | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<ETicket>true</ETicket> | <ETicket>true</ETicket> | ||
+ | <isCharter>false</isCharter> | ||
+ | <BaggageAllowances> | ||
+ | <BaggageAllowance> | ||
+ | <PassengerType>ADT</PassengerType> | ||
+ | <Value>2</Value> | ||
+ | <Measurement>pc</Measurement> | ||
+ | </BaggageAllowance> | ||
+ | </BaggageAllowances> | ||
</Segment> | </Segment> | ||
</Segments> | </Segments> | ||
− | <PricingInfo Refundable=" | + | <PricingInfo Refundable="false"> |
<PassengerFare Type="ADT" Quantity="2"> | <PassengerFare Type="ADT" Quantity="2"> | ||
− | <BaseFare Currency="EUR" Amount=" | + | <TravellerRef xsi:nil="true"/> |
− | <EquiveFare Currency=" | + | <BaseFare Currency="EUR" Amount="154"/> |
− | <TotalFare Currency=" | + | <EquiveFare Currency="USD" Amount="190"/> |
+ | <TotalFare Currency="USD" Amount="608.81"/> | ||
<Taxes> | <Taxes> | ||
− | <Tax CurCode=" | + | <Tax CurCode="USD" TaxCode="YQI" Amount="52.9"/> |
− | <Tax CurCode=" | + | <Tax CurCode="USD" TaxCode="YQI" Amount="52.9"/> |
− | <Tax CurCode=" | + | <Tax CurCode="USD" TaxCode="YQI" Amount="52.9"/> |
− | <Tax CurCode=" | + | <Tax CurCode="USD" TaxCode="YQI" Amount="52.9"/> |
− | <Tax CurCode=" | + | <Tax CurCode="USD" TaxCode="YRI" Amount="19.7"/> |
− | <Tax CurCode=" | + | <Tax CurCode="USD" TaxCode="AT" Amount="10.3"/> |
− | <Tax CurCode=" | + | <Tax CurCode="USD" TaxCode="AT" Amount="10.3"/> |
− | <Tax CurCode=" | + | <Tax CurCode="USD" TaxCode="ZY" Amount="23"/> |
− | <Tax CurCode=" | + | <Tax CurCode="USD" TaxCode="ZY" Amount="23"/> |
− | <Tax CurCode=" | + | <Tax CurCode="USD" TaxCode="FR" Amount="10"/> |
− | <Tax CurCode=" | + | <Tax CurCode="USD" TaxCode="FR7" Amount="15.3"/> |
− | <Tax CurCode=" | + | <Tax CurCode="USD" TaxCode="IZ" Amount="55.5"/> |
− | <Tax CurCode=" | + | <Tax CurCode="USD" TaxCode="QX" Amount="14.5"/> |
+ | <Tax CurCode="USD" TaxCode="RI" Amount="9.31"/> | ||
+ | <Tax CurCode="USD" TaxCode="RI2" Amount="9"/> | ||
+ | <Tax CurCode="USD" TaxCode="UH" Amount="7.3"/> | ||
</Taxes> | </Taxes> | ||
− | <Tariffs/> | + | <Tariffs> |
− | <FareCalc>MOW | + | <Tariff Code="P13BXXE1" SegNum="1"> |
− | <LastTicketDateTime> | + | <FareFamilies/> |
+ | </Tariff> | ||
+ | <Tariff Code="P13BXXE1" SegNum="2"> | ||
+ | <FareFamilies/> | ||
+ | </Tariff> | ||
+ | <Tariff Code="P13BXXE1" SegNum="3"> | ||
+ | <FareFamilies/> | ||
+ | </Tariff> | ||
+ | <Tariff Code="P13BXXE1" SegNum="4"> | ||
+ | <FareFamilies/> | ||
+ | </Tariff> | ||
+ | </Tariffs> | ||
+ | <FareCalc>MOW OS X/VIE OS PAR95.15OS X/VIE OS MOW95.15NUC190.30END ROE0.809166</FareCalc> | ||
+ | <LastTicketDateTime>2018-04-09T05:55:00</LastTicketDateTime> | ||
</PassengerFare> | </PassengerFare> | ||
</PricingInfo> | </PricingInfo> | ||
<Commission/> | <Commission/> | ||
− | <Charges Currency="RUB"> | + | <Charges Currency="RUB">660.91</Charges> |
− | + | <TotalPrice Currency="RUB">70070</TotalPrice> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <TotalPrice Currency="RUB"> | ||
</Flight> | </Flight> | ||
......... | ......... | ||
Строка 928: | Строка 829: | ||
</div> | </div> | ||
− | == Сложный маршрут == | + | === Сложный маршрут === |
− | Пример сложного маршрута: Прага | + | Пример сложного маршрута: Прага — Москва — Милан — Мадрид, 1 взрослый, 1 младенец, эконом класс. '''Выдача с именами авиакомпаний, воздушных судов, аэропортов.''' |
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
Строка 937: | Строка 838: | ||
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> | ||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights"> | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights"> | ||
− | + | <soapenv:Header/> | |
− | + | <soapenv:Body> | |
− | + | <ver:search> | |
− | + | <RequestBin> | |
− | + | <Request> | |
− | + | <SearchFlights LinkOnly="false"> | |
− | + | <ODPairs Type="CR" Direct="false" AroundDates="0"> | |
− | + | <!--Zero or more repetitions:--> | |
− | + | <ODPair> | |
− | + | <DepDate>2018-04-09</DepDate> | |
− | + | <DepAirp CodeType="IATA">PRG</DepAirp> | |
− | + | <ArrAirp CodeType="IATA">MOW</ArrAirp> | |
− | + | </ODPair> | |
− | + | <ODPair> | |
− | + | <DepDate>2018-04-16</DepDate> | |
− | + | <DepAirp CodeType="IATA">MOW</DepAirp> | |
− | + | <ArrAirp CodeType="IATA">MIL</ArrAirp> | |
− | + | </ODPair> | |
− | + | <ODPair> | |
− | + | <DepDate>2018-04-23</DepDate> | |
− | + | <DepAirp CodeType="IATA">MIL</DepAirp> | |
− | + | <ArrAirp CodeType="IATA">MAD</ArrAirp> | |
− | + | </ODPair> | |
− | + | </ODPairs> | |
− | + | <Travellers> | |
− | + | <!--Zero or more repetitions:--> | |
− | + | <Traveller Type="ADT" Count="1"/> | |
− | + | <Traveller Type="INF" Count="1"/> | |
− | + | </Travellers> | |
− | + | <Restrictions> | |
− | + | <ClassPref>economy</ClassPref> | |
− | + | <OnlyAvail>false</OnlyAvail> | |
− | + | <AirVPrefs/> | |
− | + | <IncludePrivateFare>false</IncludePrivateFare> | |
− | + | <CurrencyCode>RUB</CurrencyCode> | |
− | + | </Restrictions> | |
− | + | </SearchFlights> | |
− | + | </Request> | |
− | + | <Source> | |
− | + | <ClientId>---</ClientId> | |
− | + | <APIKey>---</APIKey> | |
− | + | <Language>RU</Language> | |
− | + | <Currency>RUB</Currency> | |
− | + | <ShowNames>true</ShowNames> | |
− | + | <EndUserData> | |
− | + | <EndUserIP>---</EndUserIP> | |
− | + | <EndUserBrowserAgent>---</EndUserBrowserAgent> | |
− | </soapenv:Envelope> | + | <RequestOrigin>---</RequestOrigin> |
+ | </EndUserData> | ||
+ | </Source> | ||
+ | </RequestBin> | ||
+ | </ver:search> | ||
+ | </soapenv:Body> | ||
+ | </soapenv:Envelope> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</div> | </div> | ||
Строка 990: | Строка 897: | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
+ | |||
==== Ответ ==== | ==== Ответ ==== | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> | ||
− | <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http:// | + | <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIEN_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
<SOAP-ENV:Body> | <SOAP-ENV:Body> | ||
<ns1:searchResponse> | <ns1:searchResponse> | ||
Строка 999: | Строка 907: | ||
<Response> | <Response> | ||
<SearchFlights> | <SearchFlights> | ||
− | <Flights SearchId=" | + | <Flights SearchId="221998" ResultURL="http%3A%2F%2FCLIEN_DOMAIN%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D221998"> |
− | <Flight FlightId=" | + | <Flight FlightId="1387500001" Nemo2FlightId="142939757060034"> |
− | <WebService> | + | <WebService>AMADEUS</WebService> |
− | <ValCompany/> | + | <ValCompany>SU</ValCompany> |
− | <URL>http%3A%2F% | + | <URL>http%3A%2F%2FCLIEN_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D221998%26flight%3D1387500001</URL> |
<Segments> | <Segments> | ||
<Segment SegNum="1" SegGroupNum="0"> | <Segment SegNum="1" SegGroupNum="0"> | ||
− | <DepAirp CodeType="IATA">PRG</DepAirp> | + | <SupplierCode/> |
− | <DepTerminal/> | + | <DepAirp CodeType="IATA" Name="Прага">PRG</DepAirp> |
− | <ArrAirp CodeType="IATA"> | + | <DepTerminal>1</DepTerminal> |
− | <ArrTerminal/> | + | <ArrAirp CodeType="IATA" Name="Шереметьево, Москва">SVO</ArrAirp> |
− | <OpAirline> | + | <ArrTerminal>E</ArrTerminal> |
− | <MarkAirline> | + | <OpAirline>SU</OpAirline> |
− | <FlightNumber> | + | <OpAirlineName>Аэрофлот</OpAirlineName> |
− | <AircraftType> | + | <OpAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F3869-a73427f1141d3a37e1523c6193140a5d.svg</OpAirlineLogo> |
− | <DepDateTime> | + | <MarkAirline>SU</MarkAirline> |
− | <ArrDateTime> | + | <MarkAirlineName>Аэрофлот</MarkAirlineName> |
+ | <MarkAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F3869-a73427f1141d3a37e1523c6193140a5d.svg</MarkAirlineLogo> | ||
+ | <FlightNumber>2017</FlightNumber> | ||
+ | <AircraftName>Airbus A320 (with Sharklets)</AircraftName> | ||
+ | <AircraftType>32A</AircraftType> | ||
+ | <DepDateTime>2018-04-09T01:00:00</DepDateTime> | ||
+ | <ArrDateTime>2018-04-09T04:30:00</ArrDateTime> | ||
<StopNum>0</StopNum> | <StopNum>0</StopNum> | ||
+ | <StopPoints/> | ||
<BookingCodes> | <BookingCodes> | ||
<BookingCode ClassType="economy"> | <BookingCode ClassType="economy"> | ||
− | <BookingCode> | + | <BookingCode>B</BookingCode> |
</BookingCode> | </BookingCode> | ||
</BookingCodes> | </BookingCodes> | ||
− | <FlightTime> | + | <FlightTime>150</FlightTime> |
− | <TimeZone Departure=" | + | <RemainingSeats>7</RemainingSeats> |
+ | <TimeZone Departure="2" Arrival="3"/> | ||
<ETicket>true</ETicket> | <ETicket>true</ETicket> | ||
+ | <isCharter>false</isCharter> | ||
+ | <BaggageAllowances> | ||
+ | <BaggageAllowance> | ||
+ | <PassengerType>ADT</PassengerType> | ||
+ | <Value>2</Value> | ||
+ | <Measurement>pc</Measurement> | ||
+ | </BaggageAllowance> | ||
+ | </BaggageAllowances> | ||
</Segment> | </Segment> | ||
− | <Segment SegNum="2" SegGroupNum=" | + | <Segment SegNum="2" SegGroupNum="1"> |
− | <DepAirp CodeType="IATA"> | + | <SupplierCode/> |
+ | <DepAirp CodeType="IATA" Name="Домодедово, Москва">DME</DepAirp> | ||
<DepTerminal/> | <DepTerminal/> | ||
− | <ArrAirp CodeType="IATA"> | + | <ArrAirp CodeType="IATA" Name="Мальпенса, Милан">MXP</ArrAirp> |
− | <ArrTerminal/> | + | <ArrTerminal>1</ArrTerminal> |
− | <OpAirline> | + | <OpAirline>I9</OpAirline> |
− | <MarkAirline> | + | <OpAirlineName>Air Italy</OpAirlineName> |
− | <FlightNumber> | + | <OpAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F3670-209dae18965b8f4642531a739b0d28e7.jpg</OpAirlineLogo> |
− | <AircraftType> | + | <MarkAirline>IG</MarkAirline> |
− | <DepDateTime> | + | <MarkAirlineName>Meridiana</MarkAirlineName> |
− | <ArrDateTime> | + | <MarkAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F4667-99e77869a19199f2092673d3d2e58cc7.gif</MarkAirlineLogo> |
+ | <FlightNumber>822</FlightNumber> | ||
+ | <AircraftName>Boeing 737</AircraftName> | ||
+ | <AircraftType>738</AircraftType> | ||
+ | <DepDateTime>2018-04-16T12:20:00</DepDateTime> | ||
+ | <ArrDateTime>2018-04-16T14:55:00</ArrDateTime> | ||
<StopNum>0</StopNum> | <StopNum>0</StopNum> | ||
+ | <StopPoints/> | ||
<BookingCodes> | <BookingCodes> | ||
<BookingCode ClassType="economy"> | <BookingCode ClassType="economy"> | ||
− | <BookingCode> | + | <BookingCode>W</BookingCode> |
</BookingCode> | </BookingCode> | ||
</BookingCodes> | </BookingCodes> | ||
− | <FlightTime> | + | <FlightTime>215</FlightTime> |
− | <TimeZone Departure=" | + | <RemainingSeats>4</RemainingSeats> |
+ | <TimeZone Departure="3" Arrival="2"/> | ||
<ETicket>true</ETicket> | <ETicket>true</ETicket> | ||
+ | <isCharter>false</isCharter> | ||
+ | <BaggageAllowances> | ||
+ | <BaggageAllowance> | ||
+ | <PassengerType>ADT</PassengerType> | ||
+ | <Value>2</Value> | ||
+ | <Measurement>pc</Measurement> | ||
+ | </BaggageAllowance> | ||
+ | </BaggageAllowances> | ||
</Segment> | </Segment> | ||
− | <Segment SegNum="3" SegGroupNum=" | + | <Segment SegNum="3" SegGroupNum="2"> |
− | <DepAirp CodeType="IATA"> | + | <SupplierCode/> |
+ | <DepAirp CodeType="IATA" Name="Линате, Милан">LIN</DepAirp> | ||
<DepTerminal/> | <DepTerminal/> | ||
− | <ArrAirp CodeType="IATA" | + | <ArrAirp CodeType="IATA" Name="Мадрид">MAD</ArrAirp> |
− | + | <ArrTerminal>4</ArrTerminal> | |
− | + | <OpAirline>IB</OpAirline> | |
− | + | <OpAirlineName>Iberia</OpAirlineName> | |
− | + | <OpAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F2895-ddf1fddccc18d7c343a1d84216e3f183.svg</OpAirlineLogo> | |
− | + | <MarkAirline>IG</MarkAirline> | |
− | + | <MarkAirlineName>Meridiana</MarkAirlineName> | |
− | + | <MarkAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F4667-99e77869a19199f2092673d3d2e58cc7.gif</MarkAirlineLogo> | |
− | + | <FlightNumber>9265</FlightNumber> | |
− | + | <AircraftName>Аэробус 320</AircraftName> | |
− | |||
− | |||
− | |||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <OpAirline> | ||
− | < | ||
− | |||
− | |||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <MarkAirline> | ||
− | < | ||
− | |||
− | < | ||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | ||
− | |||
− | |||
<AircraftType>320</AircraftType> | <AircraftType>320</AircraftType> | ||
− | <DepDateTime> | + | <DepDateTime>2018-04-23T07:10:00</DepDateTime> |
− | <ArrDateTime> | + | <ArrDateTime>2018-04-23T09:30:00</ArrDateTime> |
<StopNum>0</StopNum> | <StopNum>0</StopNum> | ||
+ | <StopPoints/> | ||
<BookingCodes> | <BookingCodes> | ||
<BookingCode ClassType="economy"> | <BookingCode ClassType="economy"> | ||
− | <BookingCode> | + | <BookingCode>Y</BookingCode> |
</BookingCode> | </BookingCode> | ||
</BookingCodes> | </BookingCodes> | ||
<FlightTime>140</FlightTime> | <FlightTime>140</FlightTime> | ||
− | <TimeZone Departure=" | + | <RemainingSeats>9</RemainingSeats> |
+ | <TimeZone Departure="2" Arrival="2"/> | ||
<ETicket>true</ETicket> | <ETicket>true</ETicket> | ||
+ | <isCharter>false</isCharter> | ||
+ | <BaggageAllowances> | ||
+ | <BaggageAllowance> | ||
+ | <PassengerType>ADT</PassengerType> | ||
+ | <Value>1</Value> | ||
+ | <Measurement>pc</Measurement> | ||
+ | </BaggageAllowance> | ||
+ | </BaggageAllowances> | ||
</Segment> | </Segment> | ||
</Segments> | </Segments> | ||
<PricingInfo Refundable="false"> | <PricingInfo Refundable="false"> | ||
<PassengerFare Type="ADT" Quantity="1"> | <PassengerFare Type="ADT" Quantity="1"> | ||
− | <BaseFare Currency=" | + | <TravellerRef xsi:nil="true"/> |
− | <EquiveFare Currency=" | + | <BaseFare Currency="KZT" Amount="544092"/> |
− | <TotalFare Currency=" | + | <EquiveFare Currency="KZT" Amount="544092"/> |
+ | <TotalFare Currency="KZT" Amount="631024"/> | ||
<Taxes> | <Taxes> | ||
− | <Tax CurCode=" | + | <Tax CurCode="KZT" TaxCode="XT" Amount="86932"/> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</Taxes> | </Taxes> | ||
− | <Tariffs | + | <Tariffs> |
− | + | <Tariff Code="BFO" SegNum="1"> | |
− | + | <FareFamilies/> | |
− | + | </Tariff> | |
− | + | <Tariff Code="WLPREDME" SegNum="2"> | |
− | + | <FareFamilies/> | |
− | + | </Tariff> | |
− | + | <Tariff Code="YFLEX" SegNum="3"> | |
− | + | <FareFamilies/> | |
− | + | </Tariff> | |
− | + | </Tariffs> | |
− | + | <FareCalc/> | |
− | + | <LastTicketDateTime>2018-04-03T23:59:00</LastTicketDateTime> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | ||
− | </ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | ||
− | </ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | ||
− | </ | ||
− | </ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <FareCalc | ||
− | <LastTicketDateTime> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</PassengerFare> | </PassengerFare> | ||
</PricingInfo> | </PricingInfo> | ||
<Commission/> | <Commission/> | ||
− | <Charges Currency="RUB"> | + | <Charges Currency="RUB">330.66</Charges> |
− | <TotalPrice Currency="RUB"> | + | <TotalPrice Currency="RUB">112935</TotalPrice> |
</Flight> | </Flight> | ||
......... | ......... | ||
Строка 1541: | Строка 1069: | ||
== См. также == | == См. также == | ||
− | *[[Агентский | + | *[[Агентский API Авиабилеты]] |
− | |||
− | |||
− | |||
− | |||
− | |||
[[Категория:Интеграция]] | [[Категория:Интеграция]] | ||
+ | [[Категория:Агентский API]] |
Текущая версия на 16:10, 8 октября 2020
Содержание
Подключение
Это сервис внутри Nemo, который позволяет получить результаты поиска.
Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе «Настройки системы» ⇨ «Интеграция» ⇨ «Nemo (SOAP API)».
После добавления пользователя, ему будут присвоены Номер (ClientId) и API ключ клиента, которые нужно использовать для подключения.
WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=SearchFlights
Общий формат запроса / ответа поиска
Запрос
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights">
2 <soapenv:Header/>
3 <soapenv:Body>
4 <ver:search>
5 <RequestBin>
6 <Request>
7 <SearchFlights LinkOnly="?">
8 <!--LinkOnly — Позволяет управлять выдачей результатов. true — вернуть только ссылку на результаты поиска,
9 без перелётов (занимает меньше времени), false — полная выдача, ссылки и перелёты.-->
10 <ODPairs Type="?" Direct="?" AroundDates="?">
11 <!--Type — тип перелёта, возможные значения: OW — туда, RT — туда-обратно, CR — сложный маршрут. Для перелета
12 туда-обратно или сложного маршрута необходимо добавить еще один или несколько тэгов ODPair, примеры далее-->
13 <!--Direct — искать только прямые перелёты, возможные значения: true/false-->
14 <!--AroundDates — поиск по окружным датам, количество дней +/- от даты заезда/возвращения, значения: 0, 1, 3.
15 Применим только для типов перелёта в одну сторону(OW) и туда-обратно(RT)-->
16 <!--Zero or more repetitions:-->
17 <ODPair>
18 <DepDate>?</DepDate>
19 <!--DepDate — дата вылета, в формате ГГГГ-MM-ДД-->
20 <DepAirp CodeType="IATA">?</DepAirp>
21 <!--DepAirp — аэропорт вылета, IATA код-->
22 <!--Optional:-->
23 <DepAltAirports>
24 <!--DepAltAirports— альтернативные аэропорты вылета-->
25 <!--Once or more repetitions:-->
26 <AltAirport CodeType="IATA">?</AltAirport>
27 <!--AltAirport — альтернативный аэропорт, IATA код-->
28 </DepAltAirports>
29 <ArrAirp CodeType="IATA">?</ArrAirp>
30 <!--ArrAirp — аэропорт прилёта, IATA код-->
31 <!--Optional:-->
32 <ArrAltAirports>
33 <!--ArrAltAirports— альтернативные аэропорты прилета-->
34 <!--Once or more repetitions:-->
35 <AltAirport CodeType="IATA">?</AltAirport>
36 <!--AltAirport — альтернативный аэропорт, IATA код-->
37 </ArrAltAirports>
38 </ODPair>
39 </ODPairs>
40 <Travellers>
41 <!--Zero or more repetitions:-->
42 <Traveller Type="?" Count="?"/>
43 <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети,
44 INF — младенцы, INS — младенцы с местом-->
45 <!--Count — количество пассажиров-->
46 </Travellers>
47 <Restrictions>
48 <ClassPref>?</ClassPref> <!--необязательный-->
49 <!--ClassPref — предпочитаемый класс поиска, возможные значения: economy, business, first.
50 Если не заполнять, то будет произведен поиск всех классов-->
51 <AirVPrefs>
52 <!--Zero or more repetitions:-->
53 <AirVPref Code="?" Include="?" Type="IATA"/> <!--необязательный-->
54 <!--Code — код авиакомпании, SU, FV и т.п.-->
55 <!--Include — включить или исключить авиакомпанию из результатов: true — включить, false — исключить-->
56 </AirVPrefs>
57 <IncludePrivateFare>?</IncludePrivateFare> <!--необязательный-->
58 <!--IncludePrivateFare — искать цены для агентства, если true — то включаем приватные, false — публичные-->
59 <CurrencyCode>?</CurrencyCode> <!--необязательный-->
60 <!--CurrencyCode — код валюты, например: RUB, EUR-->
61 <MaxResultCount>?</MaxResultCount> <!--необязательный-->
62 <!--MaxResultCount — желаемое количество результатов поиска, значение передается в ГРС-->
63 <PriceRefundType>?</PriceRefundType> <!--необязательный-->
64 <!--PriceRefundType — выбор возвратности тарифов, допустимые значения (если в запросе не указывать PriceRefundType вообще, то в поисковой выдаче будут тарифы, как и при указании значения AnyLowest):-->
65 <!--Refundable — в поисковой выдаче будут только возвратные тарифы-->
66 <!--AnyLowest — в поисковой выдаче будут только самые дешевые тарифы (по умолчанию)-->
67 <!--Both — совокупность поисковых выдач поиска возвратных тарифов и самых дешевых-->
68
69 </Restrictions>
70 <UTMSource>?</UTMSource> <!--необязательный-->
71 <!--UTMSource — название источника метрики заведенного в настройках-->
72 <DeviceId> <!--необязательный-->
73 <Type>?</Type>
74 <!--Type — Тип мобильного устройства (apple/android)-->
75 <Token>?</Token>
76 <!--Token — Токен мобильного устройства-->
77 </DeviceId>
78 </SearchFlights>
79 </Request>
80 <Source>
81 <ClientId>?</ClientId>
82 <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе
83 "Администрирование" ? "Веб-служба. Авторизация".-->
84 <APIKey>?</APIKey>
85 <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе
86 "Администрирование" ? "Веб-служба. Авторизация".-->
87 <Language>?</Language>
88 <!--Language — язык, например: RU-->
89 <Currency>?</Currency>
90 <!-- Currency — валюта, например: RUB, EUR-->
91 <ShowNames>?</ShowNames>
92 <!-- ShowNames — отображение названий аэропортов, авиакомпаний и воздушных судов: true - отображать, false - не отображать. Возвращает значение на том языке, который был указан в запросе. Для RU - русский вариант, для UKR, EN, ES - латинский вариант. Опциональный элемент. -->
93 <EndUserData>
94 <!--Блок с данными о конечном пользователе, необязательный, но необходим при при использовании запросов поиска и бронирования для поставщика TravelFusion-->
95 <EndUserIP>123.123.123.123</EndUserIP>
96 <!--IP адрес пользователя-->
97 <EndUserBrowserAgent>firefox</EndUserBrowserAgent>
98 <!--Браузер пользователя-->
99 <RequestOrigin>Russia-nemo.travel</RequestOrigin>
100 <!--Страна и домен, с которого пользователь совершает поиск/бронирование-->
101 </EndUserData>
102 </Source>
103 </RequestBin>
104 </ver:search>
105 </soapenv:Body>
106 </soapenv:Envelope>
Ответ
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
2 <SOAP-ENV:Body>
3 <ns1:searchResponse>
4 <ResponseBin>
5 <Response>
6 <SearchFlights>
7 <Flights SearchId="?" ResultURL="?">
8 <!--SearchId — ID процесса поиска в Nemo 1.0-->
9 <!--ResultURL — ссылка на страницу просмотра результатов на сайте агентства-->
10 <Flight FlightId="?" Nemo2FlightId="?">
11 <!--FlightId — Id перелёта в системе Nemo (1.0) -->
12 <!--Nemo2FlightId — Id перелёта в системе Nemo (2.0)-->
13 <WebService>?</WebService>
14 <!--WebService — поставщик перелёта-->
15 <ValCompany>?</ValCompany>
16 <!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA-->
17 <URL>?</URL>
18 <!--URL — ссылка на бронирование конкретного перелета-->
19 <Segments>
20 <Segment SegNum="?" SegGroupNum="?">
21 <!--SegNum — номер сегмента в перелёте-->
22 <!--SegGroupNum – номер плеча перелёта-->
23 <DepAirp CodeType="IATA" Name="?">?</DepAirp>
24 <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва или SVO — Шереметьево. Name - название аэропорта отправления-->
25 <DepTerminal>?</DepTerminal>
26 <!--DepTerminal — терминал пункта отправления, если пустое значение,
27 то в аэропорту всего 1 терминал-->
28 <ArrAirp CodeType="IATA" Name="?">?</ArrAirp>
29 <!--ArrAirp — аэропорт прибытия. Name - название аэропорта прибытия-->
30 <ArrTerminal>?</ArrTerminal>
31 <!--ArrTerminal — терминал пункта прибытия, если пустое значение,
32 то в аэропорту всего 1 терминал-->
33 <OpAirline>?</OpAirline>
34 <!--OpAirline — авиакомпания перевозчик, например: SU — Аэрофлот-->
35 <OpAirlineName>?</OpAirlineName>
36 <!--OpAirlineName — название авиакомпании перевозчика, например: Аэрофлот - Российские авиалинии -->
37 <OpAirlineLogo>?</OpAirlineLogo>
38 <!-- OpAirlineLogo — ссылка на изображение логотипа авиакомпании -->
39 <MarkAirline>?</MarkAirline>
40 <!--MarkAirline — авиакомпания, продающая перелёт-->
41 <MarkAirlineName>?</MarkAirlineName>
42 <!--MarkAirlineName — название авиакомпании, продающей перелёт-->
43 <MarkAirlineLogo>?</MarkAirlineLogo>
44 <!-- MarkAirlineLogo — ссылка на изображение логотипа авиакомпании -->
45 <FlightNumber>?</FlightNumber>
46 <!--FlightNumber — номер рейса-->
47 <AircraftName>?</AircraftName>
48 <!--AircraftName — название воздушного судна. Например: Airbus 320-->
49 <AircraftType>?</AircraftType>
50 <!--AircraftType — тип воздушного судна, код-->
51 <DepDateTime>?</DepDateTime>
52 <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
53 <ArrDateTime>?</ArrDateTime>
54 <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
55 <StopNum>?</StopNum>
56 <!--StopNum — количество остановок-->
57 <StopPoints>
58 <!--StopPoints — информация о технических остановках, если они есть-->
59 <StopPoint>
60 <AirportCode>?</AirportCode>
61 <!--AirportCode — код аэропорта остановки, трех символьный iata код-->
62 <UTC>?</UTC>
63 <!--UTC — сдвиг часового пояса аэропорта-->
64 <ArrDateTime>?</ArrDateTime>
65 <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
66 <DepDateTime>?</DepDateTime>
67 <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
68 </StopPoint>
69 </StopPoints>
70 <BookingCodes>
71 <BookingCode ClassType="?">
72 <!--ClassType — класс перелета, например: economy-->
73 <BookingCode>?</BookingCode>
74 <!--BookingCode — код класса бронирования, у разных авиакомпаний один и тот же класс
75 может записываться разными литерами, например: L. Возвращает информацию о классе перелета определенного сегмента.-->
76 </BookingCode>
77 </BookingCodes>
78 <FlightTime>?</FlightTime>
79 <!--FlightTime — время перелёта в минутах-->
80 <RemainingSeats>?</RemainingSeats>
81 <!--RemainingSeats — количетсво свободных мест для данного класса перелёта-->
82 <TimeZone Departure="?" Arrival="?"/>
83 <!--Departure временная зона аэропорта отправления-->
84 <!--Arrival — временная зона аэропорта прибытия-->
85 <ETicket>?</ETicket>
86 <!--ETicket — признак электронного билета, значения: true / false-->
87 <isCharter>?</isCharter>
88 <!--isCharter — признак чартерного перелета, значения: true / false-->
89 <BaggageAllowances>
90 <!--BaggageAllowances — информация о багаже-->
91 <BaggageAllowance>
92 <PassengerType>?</PassengerType>
93 <!--PassengerType — тип пассажира, соответстует типу пассижира в PricingInfo -->
94 <Value>?</Value>
95 <!--Value — количество-->
96 <Measurement>?</Measurement>
97 <!--Measurement — мера измерения: kg — килограмм, pc — багажное место, lb — фунт-->
98 </BaggageAllowance>
99 </BaggageAllowances>
100 </Segment>
101 </Segments>
102 <PricingInfo Refundable="?">
103 <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно-->
104 <PassengerFare Type="?" Quantity="?">
105 <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети,
106 INF — младенцы, INS — младенцы с местом-->
107 <!--Quantity — количество пассажиров данного типа-->
108 <TravellerRef/>
109 <!--Ссылка на пассажиров, к которым относится данный тариф-->
110 <BaseFare Currency="?" Amount="?"/>
111 <!--BaseFare — базовая стоимость, в базовой валюте. Currency — код валюты, Amount — значение цены-->
112 <EquiveFare Currency="?" Amount="?"/>
113 <!--EquiveFare — базовая стоимость, в эквивалентной валюте(валюте продажи).
114 Currency — код валюты, Amount — значение цены-->
115 <TotalFare Currency="?" Amount="?"/>
116 <!--TotalFare — суммарная стоимость перелета за тип пассажира, в эквивалентной валюте.
117 Currency — код валюты, Amount — значение цены-->
118 <Taxes>
119 <Tax CurCode="?" TaxCode="?" Amount="?"/>
120 <!--CurCode — код валюты, TaxCode — код таксы, Amount — сумма таксы-->
121 </Taxes>
122 <Tariffs>
123 <Tariff Code="?" SegNum="?"/>
124 <!--Code — код тарифа, SegNum — номер сегмента, к которому применён тариф-->
125 <FareFamilies>
126 <!--FareFamilies - наличие данного параметра у сегмента, означает, что у а\к заведены семейства тарифов-->
127 <FullName>?</FullName>
128 <!--FullName - название тарифа, который принадлежит семейству тарифов, у сегмента-->
129 </FareFamilies>
130 </Tariff>
131 </Tariffs>
132 <FareCalc>?</FareCalc>
133 <!--FareCalc — строка расчёта цены-->
134 <LastTicketDateTime>?</LastTicketDateTime>
135 <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС по московскому времени. Если включена настройка "Применение временной зоны - Для расчетов таймлимитов в агентском API", дата и время таймлимита будут переведены во временную зону пользователя. При отключенной настройке по умолчанию дата и время будут в Московском часовом поясе.-->
136 </PassengerFare>
137 </PricingInfo>
138 <Commission/>
139 <Charges Currency="?">?</Charges>
140 <!--Charges — сборы, Currency — код валюты-->
141 <TotalPrice Currency="?">?</TotalPrice>
142 <!--TotalPrice — итоговая цена, Currency — код валюты-->
143 </Flight>
144 <Flight>...</Flight>
145 ....................
146 <Flight>...</Flight>
147 </Flights>
148 <Errors>
149 <Error Code="?">
150 <!--Code — код ошибки в системе Nemo-->
151 <ServiceErrorMessage>?</ServiceErrorMessage>
152 <!--ServiceErrorMessage — сообщение об ошибке полученное от веб-сервиса поставщика-->
153 <Message>?</Message>
154 <!--Message — сообщение об ошибке от системы Nemo-->
155 </Error>
156 </Errors>
157 </SearchFlights>
158 </Response>
159 </ResponseBin>
160 </ns1:searchResponse>
161 </SOAP-ENV:Body>
162 </SOAP-ENV:Envelope>
В ссылках на просмотр страницы результата поиска и на бронирование конкретного перелета, домен агентства/субагентства определяется следующим образом:
- Если текущий домен агентства/субагентства есть в настройках (Управление сайтом ⇨ Домены и протоколы ⇨ Доменное имя сайта для загрузки настроек), то этот домен используется в ссылках.
- Если текущего домена нет в настройках, то используется первый домен из настроек.
- Если в настройках не прописано ни одного домена, то используется текущий домен.
На поиск действуют ограничения заданные в настройках агентства, в частности ограничения по пассажирам и ограничение ближайшей разрешенной даты поиска билетов.
- Если дата поиска меньше ближайшей разрешенной даты для поиска билетов, то выводится сообщение об ошибке Invalid search param: Неверная дата вылета: слишком близкая
- Если количество взрослых пассажиров превышает допустимое ограничение - Invalid search param: Слишком много взрослых
- Если количество детей в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много детей
- Если количество младенцев в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантов
- Если количество младенцев с местом в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантов
Примечание:
Если в запросе поиска указать PriceRefundType = “Both”, то для всех ГРС кроме Sabre будет отправляться 2 запроса. Если количество доп. цен в БФМ запросе в Сейбре больше 10, то и в нем будет 2 запроса. Количество доп. цен в запросе зависит от:
- Настроек прайсинга по альтернативным J типам в пакете реквизитов;
- Количества запрошенных классов перелетов;
- Количества запрошенных типов пассажиров;
- Настройки "Дополнительно запросить только публичные тарифы" в применявшемся правила маршрутизатора.
Примеры использования
Односторонний перелет
Пример одностороннего перелета: Москва — Санкт-Петербург, 1 взрослый, эконом класс, предпочитаемая авиакомпания — ЮТэйр.
Запрос
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIEN_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights">
2 <soapenv:Header/>
3 <soapenv:Body>
4 <ver:search>
5 <RequestBin>
6 <Request>
7 <SearchFlights LinkOnly="false">
8 <ODPairs Type="OW" Direct="false" AroundDates="0">
9 <!--Zero or more repetitions:-->
10 <ODPair>
11 <DepDate>2018-04-09</DepDate>
12 <DepAirp CodeType="IATA">MOW</DepAirp>
13 <ArrAirp CodeType="IATA">LED</ArrAirp>
14 </ODPair>
15 </ODPairs>
16 <Travellers>
17 <!--Zero or more repetitions:-->
18 <Traveller Type="ADT" Count="1"/>
19 </Travellers>
20 <Restrictions>
21 <ClassPref>economy</ClassPref>
22 <OnlyAvail>false</OnlyAvail>
23 <AirVPrefs>
24 <!--Zero or more repetitions:-->
25 <AirVPref Code="UT" Include="true" Type="IATA"/>
26 </AirVPrefs>
27 <IncludePrivateFare>false</IncludePrivateFare>
28 <CurrencyCode>RUB</CurrencyCode>
29 </Restrictions>
30 </SearchFlights>
31 </Request>
32 <Source>
33 <ClientId>---</ClientId>
34 <APIKey>---</APIKey>
35 <Language>RU</Language>
36 <Currency>RUB</Currency>
37 <ShowNames>true</ShowNames>
38 <EndUserData>
39 <EndUserIP>---</EndUserIP>
40 <EndUserBrowserAgent>---</EndUserBrowserAgent>
41 <RequestOrigin>---</RequestOrigin>
42 </EndUserData>
43 </Source>
44 </RequestBin>
45 </ver:search>
46 </soapenv:Body>
47 </soapenv:Envelope>
Ответ
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIEN_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
2 <SOAP-ENV:Body>
3 <ns1:searchResponse>
4 <ResponseBin>
5 <Response>
6 <SearchFlights>
7 <Flights SearchId="221980" ResultURL="http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D221968 ">
8 <Flight FlightId="1387380004" Nemo2FlightId="142939413030003">
9 <WebService>AMADEUS</WebService>
10 <ValCompany>UT</ValCompany>
11 <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D221980%26flight%3D1387380004</URL>
12 <Segments>
13 <Segment SegNum="1" SegGroupNum="0">
14 <SupplierCode/>
15 <DepAirp CodeType="IATA" Name="Внуково, Москва">VKO</DepAirp>
16 <DepTerminal>A</DepTerminal>
17 <ArrAirp CodeType="IATA" Name="Санкт-Петербург, Пулково">LED</ArrAirp>
18 <ArrTerminal>1</ArrTerminal>
19 <OpAirline>UT</OpAirline>
20 <OpAirlineName>ЮТэйр</OpAirlineName>
21 <OpAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F5700-ca202ff9af392fb5ad923722eb5455f6.svg</OpAirlineLogo>
22 <MarkAirline>UT</MarkAirline>
23 <MarkAirlineName>ЮТэйр</MarkAirlineName>
24 <MarkAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F5700-ca202ff9af392fb5ad923722eb5455f6.svg</MarkAirlineLogo>
25 <FlightNumber>369</FlightNumber>
26 <AircraftName>Boeing 737</AircraftName>
27 <AircraftType>735</AircraftType>
28 <DepDateTime>2018-04-09T10:35:00</DepDateTime>
29 <ArrDateTime>2018-04-09T11:55:00</ArrDateTime>
30 <StopNum>0</StopNum>
31 <StopPoints/>
32 <BookingCodes>
33 <BookingCode ClassType="economy">
34 <BookingCode>H</BookingCode>
35 </BookingCode>
36 </BookingCodes>
37 <FlightTime>80</FlightTime>
38 <RemainingSeats>9</RemainingSeats>
39 <TimeZone Departure="3" Arrival="3"/>
40 <ETicket>true</ETicket>
41 <isCharter>false</isCharter>
42 <BaggageAllowances>
43 <BaggageAllowance>
44 <PassengerType>ADT</PassengerType>
45 <Value/>
46 <Measurement>kg</Measurement>
47 </BaggageAllowance>
48 </BaggageAllowances>
49 </Segment>
50 </Segments>
51 <PricingInfo Refundable="false">
52 <PassengerFare Type="ADT" Quantity="1">
53 <TravellerRef xsi:nil="true"/>
54 <BaseFare Currency="KZT" Amount="7329"/>
55 <EquiveFare Currency="KZT" Amount="7329"/>
56 <TotalFare Currency="KZT" Amount="19702"/>
57 <Taxes>
58 <Tax CurCode="KZT" TaxCode="XT" Amount="12373"/>
59 </Taxes>
60 <Tariffs>
61 <Tariff Code="HLTOW" SegNum="1">
62 <FareFamilies>
63 <FullName>Лайт</FullName>
64 </FareFamilies>
65 </Tariff>
66 </Tariffs>
67 <FareCalc/>
68 <LastTicketDateTime>2018-04-03T23:59:00</LastTicketDateTime>
69 </PassengerFare>
70 </PricingInfo>
71 <Commission/>
72 <Charges Currency="RUB">2851.23</Charges>
73 <TotalPrice Currency="RUB">6367</TotalPrice>
74 </Flight>
75 <Flight FlightId="1387380005" Nemo2FlightId="142939413020000">
76 <WebService>SIRENA2000</WebService>
77 <ValCompany>UT</ValCompany>
78 <URL>http%3A%2F%2FCLIEN_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D221980%26flight%3D1387380005</URL>
79 <Segments>
80 <Segment SegNum="1" SegGroupNum="0">
81 <SupplierCode/>
82 <DepAirp CodeType="IATA" Name="Внуково, Москва">VKO</DepAirp>
83 <DepTerminal>A</DepTerminal>
84 <ArrAirp CodeType="IATA" Name="Санкт-Петербург, Пулково">LED</ArrAirp>
85 <ArrTerminal>1</ArrTerminal>
86 <OpAirline>UT</OpAirline>
87 <OpAirlineName>ЮТэйр</OpAirlineName>
88 <OpAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F5700-ca202ff9af392fb5ad923722eb5455f6.svg</OpAirlineLogo>
89 <MarkAirline>UT</MarkAirline>
90 <MarkAirlineName>ЮТэйр</MarkAirlineName>
91 <MarkAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F5700-ca202ff9af392fb5ad923722eb5455f6.svg</MarkAirlineLogo>
92 <FlightNumber>369</FlightNumber>
93 <AircraftName>Boeing 737</AircraftName>
94 <AircraftType>735</AircraftType>
95 <DepDateTime>2018-04-09T10:35:00</DepDateTime>
96 <ArrDateTime>2018-04-09T11:55:00</ArrDateTime>
97 <StopNum>0</StopNum>
98 <StopPoints/>
99 <BookingCodes>
100 <BookingCode ClassType="economy">
101 <BookingCode>K</BookingCode>
102 </BookingCode>
103 </BookingCodes>
104 <FlightTime>80</FlightTime>
105 <RemainingSeats>9</RemainingSeats>
106 <TimeZone Departure="3" Arrival="3"/>
107 <ETicket>true</ETicket>
108 <isCharter>false</isCharter>
109 <BaggageAllowances>
110 <BaggageAllowance>
111 <PassengerType>ADT</PassengerType>
112 <Value>0</Value>
113 <Measurement>kg</Measurement>
114 </BaggageAllowance>
115 </BaggageAllowances>
116 </Segment>
117 </Segments>
118 <PricingInfo Refundable="false">
119 <PassengerFare Type="ADT" Quantity="1">
120 <TravellerRef xsi:nil="true"/>
121 <BaseFare Currency="RUB" Amount="805"/>
122 <EquiveFare Currency="RUB" Amount="805"/>
123 <TotalFare Currency="RUB" Amount="4647"/>
124 <Taxes>
125 <Tax CurCode="RUB" TaxCode="SA" Amount="300"/>
126 <Tax CurCode="RUB" TaxCode="YQ" Amount="1300"/>
127 <Tax CurCode="RUB" TaxCode="ZZ" Amount="185"/>
128 <Tax CurCode="RUB" TaxCode="AG" Amount="500"/>
129 <Tax CurCode="RUB" TaxCode="RI" Amount="1557"/>
130 </Taxes>
131 <Tariffs>
132 <Tariff Code="LLTOW" SegNum="1">
133 <FareFamilies>
134 <FullName>Лайт</FullName>
135 </FareFamilies>
136 </Tariff>
137 </Tariffs>
138 <FareCalc/>
139 <LastTicketDateTime>2018-04-09T10:35:00</LastTicketDateTime>
140 </PassengerFare>
141 </PricingInfo>
142 <Commission/>
143 <Charges Currency="RUB">2851</Charges>
144 <TotalPrice Currency="RUB">7498</TotalPrice>
145 </Flight>
146 .........
147 <Flight>...</Flight>
148 </Flights>
149 <Errors xsi:nil="true"/>
150 </SearchFlights>
151 </Response>
152 </ResponseBin>
153 </ns1:searchResponse>
154 </SOAP-ENV:Body>
155 </SOAP-ENV:Envelope>
Перелет туда-обратно
Пример перелета туда-обратно: Москва — Париж, 2 взрослых, бизнес класс. Выдача с именами авиакомпаний, воздушных судов, аэропортов.
Запрос
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights">
2 <soapenv:Header/>
3 <soapenv:Body>
4 <ver:search>
5 <RequestBin>
6 <Request>
7 <SearchFlights LinkOnly="false">
8 <ODPairs Type="RT" Direct="false" AroundDates="0">
9 <!--Zero or more repetitions:-->
10 <ODPair>
11 <DepDate>2018-04-09</DepDate>
12 <DepAirp CodeType="IATA">MOW</DepAirp>
13 <ArrAirp CodeType="IATA">PAR</ArrAirp>
14 </ODPair>
15 <ODPair>
16 <DepDate>2018-04-16</DepDate>
17 <DepAirp CodeType="IATA">PAR</DepAirp>
18 <ArrAirp CodeType="IATA">MOW</ArrAirp>
19 </ODPair>
20 </ODPairs>
21 <Travellers>
22 <!--Zero or more repetitions:-->
23 <Traveller Type="ADT" Count="2"/>
24 </Travellers>
25 <Restrictions>
26 <ClassPref>business</ClassPref>
27 <OnlyAvail>false</OnlyAvail>
28 <AirVPrefs/>
29 <IncludePrivateFare>false</IncludePrivateFare>
30 <CurrencyCode>RUB</CurrencyCode>
31 </Restrictions>
32 </SearchFlights>
33 </Request>
34 <Source>
35 <ClientId>---</ClientId>
36 <APIKey>---</APIKey>
37 <Language>RU</Language>
38 <Currency>RUB</Currency>
39 <ShowNames>true</ShowNames>
40 <EndUserData>
41 <EndUserIP>---</EndUserIP>
42 <EndUserBrowserAgent>---</EndUserBrowserAgent>
43 <RequestOrigin>---</RequestOrigin>
44 </EndUserData>
45 </Source>
46 </RequestBin>
47 </ver:search>
48 </soapenv:Body>
49 </soapenv:Envelope>
Ответ
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIEN_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
2 <SOAP-ENV:Body>
3 <ns1:searchResponse>
4 <ResponseBin>
5 <Response>
6 <SearchFlights>
7 <Flights SearchId="221983" ResultURL="http%3A%2F%2FCLIEN_DOMAIN%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D221983">
8 <Flight FlightId="1387400001" Nemo2FlightId="142939437030005">
9 <WebService>SABRE</WebService>
10 <ValCompany>OS</ValCompany>
11 <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D221983%26flight%3D1387400001</URL>
12 <Segments>
13 <Segment SegNum="1" SegGroupNum="0">
14 <SupplierCode/>
15 <DepAirp CodeType="IATA" Name="Домодедово, Москва">DME</DepAirp>
16 <DepTerminal/>
17 <ArrAirp CodeType="IATA" Name="Вена">VIE</ArrAirp>
18 <ArrTerminal/>
19 <OpAirline>OS</OpAirline>
20 <OpAirlineName>Austrian</OpAirlineName>
21 <OpAirlineLogo>http%3A%2F%2FCLIENT_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F2761-b2b2c577490837af7be6f8bece58db7e.svg</OpAirlineLogo>
22 <MarkAirline>OS</MarkAirline>
23 <MarkAirlineName>Austrian</MarkAirlineName>
24 <MarkAirlineLogo>http%3A%2F%2FCLIENT_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F2761-b2b2c577490837af7be6f8bece58db7e.svg</MarkAirlineLogo>
25 <FlightNumber>606</FlightNumber>
26 <AircraftName>Airbus 319</AircraftName>
27 <AircraftType>319</AircraftType>
28 <DepDateTime>2018-04-09T06:25:00</DepDateTime>
29 <ArrDateTime>2018-04-09T08:15:00</ArrDateTime>
30 <StopNum>0</StopNum>
31 <StopPoints/>
32 <BookingCodes>
33 <BookingCode ClassType="business">
34 <BookingCode>P</BookingCode>
35 </BookingCode>
36 </BookingCodes>
37 <FlightTime>170</FlightTime>
38 <RemainingSeats>5</RemainingSeats>
39 <TimeZone Departure="3" Arrival="2"/>
40 <ETicket>true</ETicket>
41 <isCharter>false</isCharter>
42 <BaggageAllowances>
43 <BaggageAllowance>
44 <PassengerType>ADT</PassengerType>
45 <Value>2</Value>
46 <Measurement>pc</Measurement>
47 </BaggageAllowance>
48 </BaggageAllowances>
49 </Segment>
50 <Segment SegNum="2" SegGroupNum="0">
51 <SupplierCode/>
52 <DepAirp CodeType="IATA" Name="Вена">VIE</DepAirp>
53 <DepTerminal/>
54 <ArrAirp CodeType="IATA" Name="Шарль Де Голль, Париж">CDG</ArrAirp>
55 <ArrTerminal>2D</ArrTerminal>
56 <OpAirline>OS</OpAirline>
57 <OpAirlineName>Austrian</OpAirlineName>
58 <OpAirlineLogo>http%3A%2F%2FCLIENT_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F2761-b2b2c577490837af7be6f8bece58db7e.svg</OpAirlineLogo>
59 <MarkAirline>OS</MarkAirline>
60 <MarkAirlineName>Austrian</MarkAirlineName>
61 <MarkAirlineLogo>http%3A%2F%2FCLIENT_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F2761-b2b2c577490837af7be6f8bece58db7e.svg</MarkAirlineLogo>
62 <FlightNumber>413</FlightNumber>
63 <AircraftName>Аэробус 320</AircraftName>
64 <AircraftType>320</AircraftType>
65 <DepDateTime>2018-04-09T10:55:00</DepDateTime>
66 <ArrDateTime>2018-04-09T13:05:00</ArrDateTime>
67 <StopNum>0</StopNum>
68 <StopPoints/>
69 <BookingCodes>
70 <BookingCode ClassType="business">
71 <BookingCode>P</BookingCode>
72 </BookingCode>
73 </BookingCodes>
74 <FlightTime>130</FlightTime>
75 <RemainingSeats>5</RemainingSeats>
76 <TimeZone Departure="2" Arrival="2"/>
77 <ETicket>true</ETicket>
78 <isCharter>false</isCharter>
79 <BaggageAllowances>
80 <BaggageAllowance>
81 <PassengerType>ADT</PassengerType>
82 <Value>2</Value>
83 <Measurement>pc</Measurement>
84 </BaggageAllowance>
85 </BaggageAllowances>
86 </Segment>
87 <Segment SegNum="3" SegGroupNum="1">
88 <SupplierCode/>
89 <DepAirp CodeType="IATA" Name="Шарль Де Голль, Париж">CDG</DepAirp>
90 <DepTerminal>2D</DepTerminal>
91 <ArrAirp CodeType="IATA" Name="Вена">VIE</ArrAirp>
92 <ArrTerminal/>
93 <OpAirline>OS</OpAirline>
94 <OpAirlineName>Austrian</OpAirlineName>
95 <OpAirlineLogo>http%3A%2F%2FCLIENT_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F2761-b2b2c577490837af7be6f8bece58db7e.svg</OpAirlineLogo>
96 <MarkAirline>OS</MarkAirline>
97 <MarkAirlineName>Austrian</MarkAirlineName>
98 <MarkAirlineLogo>http%3A%2F%2FCLIENT_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F2761-b2b2c577490837af7be6f8bece58db7e.svg</MarkAirlineLogo>
99 <FlightNumber>416</FlightNumber>
100 <AircraftName>Airbus 321</AircraftName>
101 <AircraftType>321</AircraftType>
102 <DepDateTime>2018-04-16T16:55:00</DepDateTime>
103 <ArrDateTime>2018-04-16T18:55:00</ArrDateTime>
104 <StopNum>0</StopNum>
105 <StopPoints/>
106 <BookingCodes>
107 <BookingCode ClassType="business">
108 <BookingCode>P</BookingCode>
109 </BookingCode>
110 </BookingCodes>
111 <FlightTime>120</FlightTime>
112 <RemainingSeats>5</RemainingSeats>
113 <TimeZone Departure="2" Arrival="2"/>
114 <ETicket>true</ETicket>
115 <isCharter>false</isCharter>
116 <BaggageAllowances>
117 <BaggageAllowance>
118 <PassengerType>ADT</PassengerType>
119 <Value>2</Value>
120 <Measurement>pc</Measurement>
121 </BaggageAllowance>
122 </BaggageAllowances>
123 </Segment>
124 <Segment SegNum="4" SegGroupNum="1">
125 <SupplierCode/>
126 <DepAirp CodeType="IATA" Name="Вена">VIE</DepAirp>
127 <DepTerminal/>
128 <ArrAirp CodeType="IATA" Name="Домодедово, Москва">DME</ArrAirp>
129 <ArrTerminal/>
130 <OpAirline>OS</OpAirline>
131 <OpAirlineName>Austrian</OpAirlineName>
132 <OpAirlineLogo>http%3A%2F%2FCLIENT_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F2761-b2b2c577490837af7be6f8bece58db7e.svg</OpAirlineLogo>
133 <MarkAirline>OS</MarkAirline>
134 <MarkAirlineName>Austrian</MarkAirlineName>
135 <MarkAirlineLogo>http%3A%2F%2FCLIENT_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F2761-b2b2c577490837af7be6f8bece58db7e.svg</MarkAirlineLogo>
136 <FlightNumber>605</FlightNumber>
137 <AircraftName>Airbus 319</AircraftName>
138 <AircraftType>319</AircraftType>
139 <DepDateTime>2018-04-16T20:40:00</DepDateTime>
140 <ArrDateTime>2018-04-17T00:25:00</ArrDateTime>
141 <StopNum>0</StopNum>
142 <StopPoints/>
143 <BookingCodes>
144 <BookingCode ClassType="business">
145 <BookingCode>P</BookingCode>
146 </BookingCode>
147 </BookingCodes>
148 <FlightTime>165</FlightTime>
149 <RemainingSeats>5</RemainingSeats>
150 <TimeZone Departure="2" Arrival="3"/>
151 <ETicket>true</ETicket>
152 <isCharter>false</isCharter>
153 <BaggageAllowances>
154 <BaggageAllowance>
155 <PassengerType>ADT</PassengerType>
156 <Value>2</Value>
157 <Measurement>pc</Measurement>
158 </BaggageAllowance>
159 </BaggageAllowances>
160 </Segment>
161 </Segments>
162 <PricingInfo Refundable="false">
163 <PassengerFare Type="ADT" Quantity="2">
164 <TravellerRef xsi:nil="true"/>
165 <BaseFare Currency="EUR" Amount="154"/>
166 <EquiveFare Currency="USD" Amount="190"/>
167 <TotalFare Currency="USD" Amount="608.81"/>
168 <Taxes>
169 <Tax CurCode="USD" TaxCode="YQI" Amount="52.9"/>
170 <Tax CurCode="USD" TaxCode="YQI" Amount="52.9"/>
171 <Tax CurCode="USD" TaxCode="YQI" Amount="52.9"/>
172 <Tax CurCode="USD" TaxCode="YQI" Amount="52.9"/>
173 <Tax CurCode="USD" TaxCode="YRI" Amount="19.7"/>
174 <Tax CurCode="USD" TaxCode="AT" Amount="10.3"/>
175 <Tax CurCode="USD" TaxCode="AT" Amount="10.3"/>
176 <Tax CurCode="USD" TaxCode="ZY" Amount="23"/>
177 <Tax CurCode="USD" TaxCode="ZY" Amount="23"/>
178 <Tax CurCode="USD" TaxCode="FR" Amount="10"/>
179 <Tax CurCode="USD" TaxCode="FR7" Amount="15.3"/>
180 <Tax CurCode="USD" TaxCode="IZ" Amount="55.5"/>
181 <Tax CurCode="USD" TaxCode="QX" Amount="14.5"/>
182 <Tax CurCode="USD" TaxCode="RI" Amount="9.31"/>
183 <Tax CurCode="USD" TaxCode="RI2" Amount="9"/>
184 <Tax CurCode="USD" TaxCode="UH" Amount="7.3"/>
185 </Taxes>
186 <Tariffs>
187 <Tariff Code="P13BXXE1" SegNum="1">
188 <FareFamilies/>
189 </Tariff>
190 <Tariff Code="P13BXXE1" SegNum="2">
191 <FareFamilies/>
192 </Tariff>
193 <Tariff Code="P13BXXE1" SegNum="3">
194 <FareFamilies/>
195 </Tariff>
196 <Tariff Code="P13BXXE1" SegNum="4">
197 <FareFamilies/>
198 </Tariff>
199 </Tariffs>
200 <FareCalc>MOW OS X/VIE OS PAR95.15OS X/VIE OS MOW95.15NUC190.30END ROE0.809166</FareCalc>
201 <LastTicketDateTime>2018-04-09T05:55:00</LastTicketDateTime>
202 </PassengerFare>
203 </PricingInfo>
204 <Commission/>
205 <Charges Currency="RUB">660.91</Charges>
206 <TotalPrice Currency="RUB">70070</TotalPrice>
207 </Flight>
208 .........
209 <Flight>...</Flight>
210 </Flights>
211 <Errors xsi:nil="true"/>
212 </SearchFlights>
213 </Response>
214 </ResponseBin>
215 </ns1:searchResponse>
216 </SOAP-ENV:Body>
217 </SOAP-ENV:Envelope>
Сложный маршрут
Пример сложного маршрута: Прага — Москва — Милан — Мадрид, 1 взрослый, 1 младенец, эконом класс. Выдача с именами авиакомпаний, воздушных судов, аэропортов.
Запрос
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights">
2 <soapenv:Header/>
3 <soapenv:Body>
4 <ver:search>
5 <RequestBin>
6 <Request>
7 <SearchFlights LinkOnly="false">
8 <ODPairs Type="CR" Direct="false" AroundDates="0">
9 <!--Zero or more repetitions:-->
10 <ODPair>
11 <DepDate>2018-04-09</DepDate>
12 <DepAirp CodeType="IATA">PRG</DepAirp>
13 <ArrAirp CodeType="IATA">MOW</ArrAirp>
14 </ODPair>
15 <ODPair>
16 <DepDate>2018-04-16</DepDate>
17 <DepAirp CodeType="IATA">MOW</DepAirp>
18 <ArrAirp CodeType="IATA">MIL</ArrAirp>
19 </ODPair>
20 <ODPair>
21 <DepDate>2018-04-23</DepDate>
22 <DepAirp CodeType="IATA">MIL</DepAirp>
23 <ArrAirp CodeType="IATA">MAD</ArrAirp>
24 </ODPair>
25 </ODPairs>
26 <Travellers>
27 <!--Zero or more repetitions:-->
28 <Traveller Type="ADT" Count="1"/>
29 <Traveller Type="INF" Count="1"/>
30 </Travellers>
31 <Restrictions>
32 <ClassPref>economy</ClassPref>
33 <OnlyAvail>false</OnlyAvail>
34 <AirVPrefs/>
35 <IncludePrivateFare>false</IncludePrivateFare>
36 <CurrencyCode>RUB</CurrencyCode>
37 </Restrictions>
38 </SearchFlights>
39 </Request>
40 <Source>
41 <ClientId>---</ClientId>
42 <APIKey>---</APIKey>
43 <Language>RU</Language>
44 <Currency>RUB</Currency>
45 <ShowNames>true</ShowNames>
46 <EndUserData>
47 <EndUserIP>---</EndUserIP>
48 <EndUserBrowserAgent>---</EndUserBrowserAgent>
49 <RequestOrigin>---</RequestOrigin>
50 </EndUserData>
51 </Source>
52 </RequestBin>
53 </ver:search>
54 </soapenv:Body>
55 </soapenv:Envelope>
Ответ
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIEN_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
2 <SOAP-ENV:Body>
3 <ns1:searchResponse>
4 <ResponseBin>
5 <Response>
6 <SearchFlights>
7 <Flights SearchId="221998" ResultURL="http%3A%2F%2FCLIEN_DOMAIN%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D221998">
8 <Flight FlightId="1387500001" Nemo2FlightId="142939757060034">
9 <WebService>AMADEUS</WebService>
10 <ValCompany>SU</ValCompany>
11 <URL>http%3A%2F%2FCLIEN_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D221998%26flight%3D1387500001</URL>
12 <Segments>
13 <Segment SegNum="1" SegGroupNum="0">
14 <SupplierCode/>
15 <DepAirp CodeType="IATA" Name="Прага">PRG</DepAirp>
16 <DepTerminal>1</DepTerminal>
17 <ArrAirp CodeType="IATA" Name="Шереметьево, Москва">SVO</ArrAirp>
18 <ArrTerminal>E</ArrTerminal>
19 <OpAirline>SU</OpAirline>
20 <OpAirlineName>Аэрофлот</OpAirlineName>
21 <OpAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F3869-a73427f1141d3a37e1523c6193140a5d.svg</OpAirlineLogo>
22 <MarkAirline>SU</MarkAirline>
23 <MarkAirlineName>Аэрофлот</MarkAirlineName>
24 <MarkAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F3869-a73427f1141d3a37e1523c6193140a5d.svg</MarkAirlineLogo>
25 <FlightNumber>2017</FlightNumber>
26 <AircraftName>Airbus A320 (with Sharklets)</AircraftName>
27 <AircraftType>32A</AircraftType>
28 <DepDateTime>2018-04-09T01:00:00</DepDateTime>
29 <ArrDateTime>2018-04-09T04:30:00</ArrDateTime>
30 <StopNum>0</StopNum>
31 <StopPoints/>
32 <BookingCodes>
33 <BookingCode ClassType="economy">
34 <BookingCode>B</BookingCode>
35 </BookingCode>
36 </BookingCodes>
37 <FlightTime>150</FlightTime>
38 <RemainingSeats>7</RemainingSeats>
39 <TimeZone Departure="2" Arrival="3"/>
40 <ETicket>true</ETicket>
41 <isCharter>false</isCharter>
42 <BaggageAllowances>
43 <BaggageAllowance>
44 <PassengerType>ADT</PassengerType>
45 <Value>2</Value>
46 <Measurement>pc</Measurement>
47 </BaggageAllowance>
48 </BaggageAllowances>
49 </Segment>
50 <Segment SegNum="2" SegGroupNum="1">
51 <SupplierCode/>
52 <DepAirp CodeType="IATA" Name="Домодедово, Москва">DME</DepAirp>
53 <DepTerminal/>
54 <ArrAirp CodeType="IATA" Name="Мальпенса, Милан">MXP</ArrAirp>
55 <ArrTerminal>1</ArrTerminal>
56 <OpAirline>I9</OpAirline>
57 <OpAirlineName>Air Italy</OpAirlineName>
58 <OpAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F3670-209dae18965b8f4642531a739b0d28e7.jpg</OpAirlineLogo>
59 <MarkAirline>IG</MarkAirline>
60 <MarkAirlineName>Meridiana</MarkAirlineName>
61 <MarkAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F4667-99e77869a19199f2092673d3d2e58cc7.gif</MarkAirlineLogo>
62 <FlightNumber>822</FlightNumber>
63 <AircraftName>Boeing 737</AircraftName>
64 <AircraftType>738</AircraftType>
65 <DepDateTime>2018-04-16T12:20:00</DepDateTime>
66 <ArrDateTime>2018-04-16T14:55:00</ArrDateTime>
67 <StopNum>0</StopNum>
68 <StopPoints/>
69 <BookingCodes>
70 <BookingCode ClassType="economy">
71 <BookingCode>W</BookingCode>
72 </BookingCode>
73 </BookingCodes>
74 <FlightTime>215</FlightTime>
75 <RemainingSeats>4</RemainingSeats>
76 <TimeZone Departure="3" Arrival="2"/>
77 <ETicket>true</ETicket>
78 <isCharter>false</isCharter>
79 <BaggageAllowances>
80 <BaggageAllowance>
81 <PassengerType>ADT</PassengerType>
82 <Value>2</Value>
83 <Measurement>pc</Measurement>
84 </BaggageAllowance>
85 </BaggageAllowances>
86 </Segment>
87 <Segment SegNum="3" SegGroupNum="2">
88 <SupplierCode/>
89 <DepAirp CodeType="IATA" Name="Линате, Милан">LIN</DepAirp>
90 <DepTerminal/>
91 <ArrAirp CodeType="IATA" Name="Мадрид">MAD</ArrAirp>
92 <ArrTerminal>4</ArrTerminal>
93 <OpAirline>IB</OpAirline>
94 <OpAirlineName>Iberia</OpAirlineName>
95 <OpAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F2895-ddf1fddccc18d7c343a1d84216e3f183.svg</OpAirlineLogo>
96 <MarkAirline>IG</MarkAirline>
97 <MarkAirlineName>Meridiana</MarkAirlineName>
98 <MarkAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F4667-99e77869a19199f2092673d3d2e58cc7.gif</MarkAirlineLogo>
99 <FlightNumber>9265</FlightNumber>
100 <AircraftName>Аэробус 320</AircraftName>
101 <AircraftType>320</AircraftType>
102 <DepDateTime>2018-04-23T07:10:00</DepDateTime>
103 <ArrDateTime>2018-04-23T09:30:00</ArrDateTime>
104 <StopNum>0</StopNum>
105 <StopPoints/>
106 <BookingCodes>
107 <BookingCode ClassType="economy">
108 <BookingCode>Y</BookingCode>
109 </BookingCode>
110 </BookingCodes>
111 <FlightTime>140</FlightTime>
112 <RemainingSeats>9</RemainingSeats>
113 <TimeZone Departure="2" Arrival="2"/>
114 <ETicket>true</ETicket>
115 <isCharter>false</isCharter>
116 <BaggageAllowances>
117 <BaggageAllowance>
118 <PassengerType>ADT</PassengerType>
119 <Value>1</Value>
120 <Measurement>pc</Measurement>
121 </BaggageAllowance>
122 </BaggageAllowances>
123 </Segment>
124 </Segments>
125 <PricingInfo Refundable="false">
126 <PassengerFare Type="ADT" Quantity="1">
127 <TravellerRef xsi:nil="true"/>
128 <BaseFare Currency="KZT" Amount="544092"/>
129 <EquiveFare Currency="KZT" Amount="544092"/>
130 <TotalFare Currency="KZT" Amount="631024"/>
131 <Taxes>
132 <Tax CurCode="KZT" TaxCode="XT" Amount="86932"/>
133 </Taxes>
134 <Tariffs>
135 <Tariff Code="BFO" SegNum="1">
136 <FareFamilies/>
137 </Tariff>
138 <Tariff Code="WLPREDME" SegNum="2">
139 <FareFamilies/>
140 </Tariff>
141 <Tariff Code="YFLEX" SegNum="3">
142 <FareFamilies/>
143 </Tariff>
144 </Tariffs>
145 <FareCalc/>
146 <LastTicketDateTime>2018-04-03T23:59:00</LastTicketDateTime>
147 </PassengerFare>
148 </PricingInfo>
149 <Commission/>
150 <Charges Currency="RUB">330.66</Charges>
151 <TotalPrice Currency="RUB">112935</TotalPrice>
152 </Flight>
153 .........
154 <Flight>...</Flight>
155 </Flights>
156 <Errors xsi:nil="true"/>
157 </SearchFlights>
158 </Response>
159 </ResponseBin>
160 </ns1:searchResponse>
161 </SOAP-ENV:Body>
162 </SOAP-ENV:Envelope>