ПОДПИСЫВАЙТЕСЬ НА НАШ ТЕЛЕГРАМ-КАНАЛ @nemo_travel_official

Веб-служба поиска авиабилетов: различия между версиями

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
(Односторонний перелет)
(Сложный маршрут)
Строка 832: Строка 832:
 
<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:Header/>
  <soapenv:Body>
+
      <soapenv:Body>
      <ver:search>
+
          <ver:search>
        <RequestBin>
+
            <RequestBin>
            <Request>
+
                <Request>
              <SearchFlights LinkOnly="false">
+
                  <SearchFlights LinkOnly="false">
                  <ODPairs Type="CR" Direct="false" AroundDates="0">
+
                      <ODPairs Type="CR" Direct="false" AroundDates="0">
                    <!--Zero or more repetitions:-->
+
                        <!--Zero or more repetitions:-->
                    <ODPair>
+
                        <ODPair>
                        <DepDate>2014-12-20</DepDate>
+
                            <DepDate>2018-04-09</DepDate>
                        <DepAirp CodeType="IATA">PRG</DepAirp>
+
                            <DepAirp CodeType="IATA">PRG</DepAirp>
                        <ArrAirp CodeType="IATA">MOW</ArrAirp>
+
                            <ArrAirp CodeType="IATA">MOW</ArrAirp>
                    </ODPair>
+
                        </ODPair>
                      <ODPair>
+
                          <ODPair>
                        <DepDate>2014-12-23</DepDate>
+
                            <DepDate>2018-04-16</DepDate>
                        <DepAirp CodeType="IATA">MOW</DepAirp>
+
                            <DepAirp CodeType="IATA">MOW</DepAirp>
                        <ArrAirp CodeType="IATA">MIL</ArrAirp>
+
                            <ArrAirp CodeType="IATA">MIL</ArrAirp>
                    </ODPair>
+
                        </ODPair>
                    <ODPair>
+
                        <ODPair>
                        <DepDate>2014-12-27</DepDate>
+
                            <DepDate>2018-04-23</DepDate>
                        <DepAirp CodeType="IATA">MIL</DepAirp>
+
                            <DepAirp CodeType="IATA">MIL</DepAirp>
                        <ArrAirp CodeType="IATA">MAD</ArrAirp>
+
                            <ArrAirp CodeType="IATA">MAD</ArrAirp>
                    </ODPair>
+
                        </ODPair>
                  </ODPairs>
+
                      </ODPairs>
                  <Travellers>
+
                      <Travellers>
                    <!--Zero or more repetitions:-->
+
                        <!--Zero or more repetitions:-->
                    <Traveller Type="ADT" Count="1"/>
+
                        <Traveller Type="ADT" Count="1"/>
                    <Traveller Type="INF" Count="1"/>
+
                        <Traveller Type="INF" Count="1"/>
                  </Travellers>
+
                      </Travellers>
                  <Restrictions>
+
                      <Restrictions>
                    <ClassPref>economy</ClassPref>
+
                        <ClassPref>economy</ClassPref>
                    <OnlyAvail>false</OnlyAvail>
+
                        <OnlyAvail>false</OnlyAvail>
                    <AirVPrefs/>
+
                        <AirVPrefs/>
                    <IncludePrivateFare>false</IncludePrivateFare>
+
                        <IncludePrivateFare>false</IncludePrivateFare>
                    <CurrencyCode>RUB</CurrencyCode>
+
                        <CurrencyCode>RUB</CurrencyCode>
                  </Restrictions>
+
                      </Restrictions>
              </SearchFlights>
+
                  </SearchFlights>
            </Request>
+
                </Request>
            <Source>
+
                <Source>
              <ClientId>134</ClientId>
+
                  <ClientId>---</ClientId>
              <APIKey>93632C10DA299034C03D742FB160C2D6</APIKey>
+
                  <APIKey>---</APIKey>
              <Language>RU</Language>
+
                  <Language>RU</Language>
              <Currency>RUB</Currency>
+
                  <Currency>RUB</Currency>
              <ShowNames>true</ShowNames>
+
                  <ShowNames>true</ShowNames>
            </Source>
+
                </Source>
        </RequestBin>
+
            </RequestBin>
      </ver:search>
+
          </ver:search>
  </soapenv:Body>
+
      </soapenv:Body>
</soapenv:Envelope>
+
    </soapenv:Envelope>
 
</syntaxhighlight>
 
</syntaxhighlight>
 
</div>
 
</div>

Версия 12:24, 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 взрослый, эконом класс, предпочитаемая авиакомпания — ЮТэйр.

развернуть

Запрос

развернуть

Ответ

Перелет туда-обратно

Пример перелета туда-обратно: Москва — Париж, 2 взрослых, бизнес класс. Выдача с именами авиакомпаний, воздушных судов, аэропортов.

развернуть

Запрос

развернуть

Ответ

Сложный маршрут

Пример сложного маршрута: Прага — Москва — Милан — Мадрид, 1 взрослый, 1 младенец, эконом класс. Выдача с именами авиакомпаний, воздушных судов, аэропортов.

развернуть

Запрос

развернуть

Ответ

См. также