Веб-служба поиска авиабилетов: различия между версиями
(→Запрос) |
(→Ответ) |
||
Строка 379: | Строка 379: | ||
<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%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid% | + | <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" Name=" | + | <SupplierCode/> |
− | <DepTerminal/> | + | <DepAirp CodeType="IATA" Name="Внуково, Москва">VKO</DepAirp> |
− | <ArrAirp CodeType="IATA" Name=" | + | <DepTerminal>A</DepTerminal> |
− | <ArrTerminal/> | + | <ArrAirp CodeType="IATA" Name="Санкт-Петербург, Пулково">LED</ArrAirp> |
− | <OpAirline> | + | <ArrTerminal>1</ArrTerminal> |
− | <OpAirlineName> | + | <OpAirline>UT</OpAirline> |
− | <MarkAirline> | + | <OpAirlineName>ЮТэйр</OpAirlineName> |
− | <MarkAirlineName> | + | <OpAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%3A8080%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F5700-ca202ff9af392fb5ad923722eb5455f6.svg</OpAirlineLogo> |
− | <FlightNumber> | + | <MarkAirline>UT</MarkAirline> |
− | <AircraftName> | + | <MarkAirlineName>ЮТэйр</MarkAirlineName> |
− | <AircraftType> | + | <MarkAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%3A8080%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F5700-ca202ff9af392fb5ad923722eb5455f6.svg</MarkAirlineLogo> |
− | <DepDateTime> | + | <FlightNumber>369</FlightNumber> |
− | <ArrDateTime> | + | <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> |
<RemainingSeats>9</RemainingSeats> | <RemainingSeats>9</RemainingSeats> | ||
− | <TimeZone Departure=" | + | <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%3A8080%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> |
− | < | + | <OpAirline>UT</OpAirline> |
− | < | + | <OpAirlineName>ЮТэйр</OpAirlineName> |
− | < | + | <OpAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%3A8080%2FguideStatic%2Fimages%2Fcarrier%2Flogotype%2F5700-ca202ff9af392fb5ad923722eb5455f6.svg</OpAirlineLogo> |
− | < | + | <MarkAirline>UT</MarkAirline> |
− | < | + | <MarkAirlineName>ЮТэйр</MarkAirlineName> |
− | < | + | <MarkAirlineLogo>http%3A%2F%2FCLIEN_DOMAIN%3A8080%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> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <AircraftType> | ||
− | <DepDateTime> | ||
− | <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> | ||
− | <RemainingSeats> | + | <RemainingSeats>9</RemainingSeats> |
− | <TimeZone Departure=" | + | <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"> | ||
− | < | + | <TravellerRef xsi:nil="true"/> |
− | < | + | <BaseFare Currency="RUB" Amount="805"/> |
− | + | <EquiveFare Currency="RUB" Amount="805"/> | |
− | + | <TotalFare Currency="RUB" Amount="4647"/> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <EquiveFare Currency="RUB" Amount=" | ||
− | <TotalFare Currency="RUB" Amount=" | ||
<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"> | |
− | <LastTicketDateTime> | + | <FareFamilies> |
+ | <FullName>Лайт</FullName> | ||
+ | </FareFamilies> | ||
+ | </Tariff> | ||
+ | </Tariffs> | ||
+ | <FareCalc/> | ||
+ | <LastTicketDateTime>2018-04-09T10:35:00</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> | ||
......... | ......... |
Версия 11:39, 2 апреля 2018
Содержание
Подключение
Это сервис внутри Nemo, который позволяет получить результаты поиска.
Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе «Администрирование» ⇨ «Веб-служба. Авторизация».
После добавления пользователя, ему будут присвоены Номер (ClientId) и API ключ клиента, которые нужно использовать для подключения.
WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=SearchFlights
Общий формат запроса / ответа поиска
Запрос
Ответ
В ссылках на просмотр страницы результата поиска и на бронирование конкретного перелета, домен агентства/субагентства определяется следующим образом:
- Если текущий домен агентства/субагентства есть в настройках (Администрирование ⇨ Настройки агентства ⇨ Доменное имя сайта для загрузки настроек), то этот домен используется в ссылках.
- Если текущего домена нет в настройках, то используется первый домен из настроек.
- Если в настройках не прописано ни одного домена, то используется текущий домен.
На поиск действуют ограничения заданные в настройках агентства, в частности ограничения по пассажирам и ограничение ближайшей разрешенной даты поиска билетов.
- Если дата поиска меньше ближайшей разрешенной даты для поиска билетов, то выводится сообщение об ошибке Invalid search param: Неверная дата вылета: слишком близкая
- Если количество взрослых пассажиров превышает допустимое ограничение - Invalid search param: Слишком много взрослых
- Если количество детей в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много детей
- Если количество младенцев в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантов
- Если количество младенцев с местом в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантов
Примечание:
Если в запросе поиска указать PriceRefundType = “Both”, то для всех ГРС кроме Sabre будет отправляться 2 запроса. Если количество доп. цен в БФМ запросе в Сейбре больше 10, то и в нем будет 2 запроса. Количество доп. цен в запросе зависит от:
- Настроек прайсинга по альтернативным J типам в пакете реквизитов;
- Количества запрошенных классов перелетов;
- Количества запрошенных типов пассажиров;
- Настройки "Дополнительно запросить только публичные тарифы" в применявшемся правила маршрутизатора.
Примеры использования
Односторонний перелет
Пример одностороннего перелета: Москва — Мадрид, 1 взрослый, 1 ребенок, эконом класс, предпочитаемая авиакомпания — Аэрофлот.
Запрос
Ответ
Перелет туда-обратно
Пример перелета туда-обратно: Москва — Париж, 2 взрослых, бизнес класс. Выдача с именами авиакомпаний, воздушных судов, аэропортов.
Запрос
Ответ
Сложный маршрут
Пример сложного маршрута: Прага — Москва — Милан — Мадрид, 1 взрослый, 1 младенец, эконом класс. Выдача с именами авиакомпаний, воздушных судов, аэропортов.