Мастер-Тур(15):API для разработки поиска авиабилетов — различия между версиями

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
 
(не показано 10 промежуточных версий 2 участников)
Строка 10: Строка 10:
  
 
==Установка==
 
==Установка==
Для работы с web-сервисом необходимо установить [[Мастер-Тур(15):Установка#Установка службы поиска|службу поиска]].<br />
+
Для работы с web-сервисом необходимо на отдающей стороне установить [[Мастер-Тур(15):Установка#Установка службы поиска|службу поиска]].<br />
 
После установки web-сервис будет доступен по адресу ''<nowiki>http://значение настройки "serviceAddress" в TourSearchOwin/"название метода"</nowiki>'' (пример: ''http://localhost:9000/TourSearchOwin/Settings'')
 
После установки web-сервис будет доступен по адресу ''<nowiki>http://значение настройки "serviceAddress" в TourSearchOwin/"название метода"</nowiki>'' (пример: ''http://localhost:9000/TourSearchOwin/Settings'')
  
Строка 67: Строка 67:
 
** нет принимаемых параметров
 
** нет принимаемых параметров
 
* Возвращаемый результат:
 
* Возвращаемый результат:
** '''ChildAgesSetting''' – регулируется настройкой [[Мастер-Тур(15):Программа туров. Панель администрирования#Общие настройки|максимальный возраст ребенка]] (массив возрастов, при которых турист будет считаться ребенком
+
** '''ChildAgesSetting''' – регулируется настройкой [[Мастер-Тур(15):Программа туров. Настройки|максимальный возраст ребенка]] (массив возрастов, при которых турист будет считаться ребенком
** '''DurationSetting''' – регулируется настройкой [[Мастер-Тур(15):Программа туров. Панель администрирования#Общие настройки|максимальная продолжительность тура]] (массив продолжительностей, доступных в фильтрах для поиска)
+
** '''DurationSetting''' – регулируется настройкой [[Мастер-Тур(15):Программа туров. Настройки|максимальная продолжительность тура]] (массив продолжительностей, доступных в фильтрах для поиска)
 
** '''RoundServiceSetting''' – признак округления цены (количество знаков после запятой)
 
** '''RoundServiceSetting''' – признак округления цены (количество знаков после запятой)
 
** '''CacheReady''' – статус готовности службы поиска к работе (true/false)
 
** '''CacheReady''' – статус готовности службы поиска к работе (true/false)
Строка 89: Строка 89:
 
** '''MaxSearchDatesCountClient''' – максимальное количество дат, которое будет обрабатываться в клиенте поиска
 
** '''MaxSearchDatesCountClient''' – максимальное количество дат, которое будет обрабатываться в клиенте поиска
 
** '''MaxDurationsCountClient''' – максимальное количество продолжительностей, которое будет обрабатываться в клиенте поиска
 
** '''MaxDurationsCountClient''' – максимальное количество продолжительностей, которое будет обрабатываться в клиенте поиска
 +
** '''UseHotelCategoryGlobalCodeInDopFilter''' – использовать глобальные коды категорий отелей в поиске
 +
** '''UsePansionGlobalCodeInDopFilter''' – использовать глобальные коды питаний в поиске
 +
** '''CheckTouristDataInBasket''' – проверять корректность данных туристов
 +
** '''SimpleRegistration''' – упрощенная регистрация частного лица
 +
** '''ShowHotelImagesInSearch''' – показывать описание и изображения отелей в поиске
 +
** '''CacheReadyMessage''' – сообщение о готовности службы поиска или службы расчета актуальных фильтров. Варианты возвращаемых значений:
 +
*** ''<add key="enableActualFilters" value="true" />'' - CacheReady: true = CacheReadyMessage: "Кеш инициализирован"; CacheReady: false = CacheReadyMessage: "Кеш еще не инициализирован"
 +
*** ''<add key="enableActualFilters" value="false" />'' - Служба актуальных фильтров недоступна (выключена, неверно указана ссылка на нее и т.п.) CacheReadyMessage: "Служба актуальных фильтров недоступна"; Служба актуальных фильтров доступна но не готова - CacheReadyMessage: "Кеш службы актуальных фильтров не инициализирован"; Служба актуальных фильтров готова, а основная служба не готова - CacheReadyMessage: "Кеш ещё не инициализирован"; Служба актуальных фильтров готова, и основная служба готова - CacheReadyMessage: "Кеш ещё инициализирован".
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
Строка 288: Строка 296:
 
</div></div><br />
 
</div></div><br />
  
===Выгрузка городов отправления (twoway)===
+
===Поиск авиабилетов в одну сторону (oneway)===
 +
====Выгрузка городов отправления (oneway)====
 
Метод производит выгрузку всех доступных городов отправления.
 
Метод производит выгрузку всех доступных городов отправления.
 
* Формат запроса:
 
* Формат запроса:
** GET .../TourSearchOwin/individuals/avia/twoway/departures?  
+
** GET .../TourSearchOwin/individuals/avia/oneway/departures?
* Принимаемые параметры:
+
* Принимаемые параметры:
** нет принимаемых параметров
+
** нет принимаемых параметров
* Возвращаемый результат:
+
* Возвращаемый результат:
** '''Key''' – ключ города
+
** '''Key''' – ключ города
** '''Name''' – название города
+
** '''Name''' – название города
 
+
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
<div class="mw-collapsible-content">
+
<div class="mw-collapsible-content">
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
+
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
Вызов метода  
+
Вызов метода
<syntaxhighlight lang="java" enclose="div">
+
<syntaxhighlight lang="java" enclose="div">
GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/departures?
+
GET http://localhost:9000/TourSearchOwin/individuals/avia/oneway/departures?
</syntaxhighlight>
+
</syntaxhighlight>
Возвращаемый результат метода (в формате JSON)
+
Возвращаемый результат метода (в формате JSON)
<syntaxhighlight lang="java" enclose="div">
+
<syntaxhighlight lang="java" enclose="div">
[{
+
[{
"Key": 312,
+
"Key": 312,
"Name": "Астрахань"
+
"Name": "Астрахань"
 +
},
 +
{
 +
"Key": 1,
 +
"Name": "Москва"
 +
}]
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Выгрузка списка стран прибытия (oneway)====
 +
Метод производит выгрузку всех доступных направлений.
 +
* Формат запроса:
 +
** GET .../TourSearchOwin/individuals/avia/oneway/arrivals/1/countries?
 +
* Принимаемые параметры ( '''*''' – обязательный):
 +
** '''1 *''' – идентификатор города отправления (из контроллера [[#Выгрузка городов отправления (twoway)|''.../TourSearchOwin/individuals/avia/oneway/departures?'']])
 +
* Возвращаемый результат:
 +
** '''Name''' – название страны
 +
** '''Key''' – ключ страны
 +
** '''DestinationType''' – тип результата (всегда возвращается в JSON = 1, в xml = country)
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:9000/TourSearchOwin/individuals/avia/oneway/arrivals/1/countries?
 +
</syntaxhighlight>
 +
Возвращаемый результат метода (в формате JSON)
 +
<syntaxhighlight lang="java" enclose="div">
 +
[{
 +
"Name": "Австрия",
 +
"Key": 90,
 +
"DestinationType": 1
 +
},
 +
{
 +
"Name": "Индия",
 +
"Key": 26,
 +
"DestinationType": 1
 +
},
 +
{
 +
"Name": "Финляндия",
 +
"Key": 64,
 +
"DestinationType": 1
 +
}]
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Выгрузка списка городов прибытия (oneway)====
 +
Метод возвращает список всех доступных городов по определенному городу отправления и стране прибытия.
 +
* Формат запроса:
 +
** GET .../TourSearchOwin/individuals/avia/oneway/arrivals/1/90?
 +
* Принимаемые параметры ( '''*''' – обязательный):
 +
** '''1 *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/individuals/avia/oneway/departures?'')
 +
** '''90 *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/individuals/avia/oneway/arrivals/1/countries?'')
 +
* Возвращаемый результат:
 +
** '''Key''' – идентификатор города
 +
** '''Name''' – название города
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:9000/TourSearchOwin/individuals/avia/oneway/arrivals/1/90?
 +
</syntaxhighlight>
 +
Возвращаемый результат метода (в формате JSON)
 +
<syntaxhighlight lang="java" enclose="div">
 +
[{
 +
"Key": 35,
 +
"Name": "Вена"
 +
},
 +
{
 +
"Key": 440,
 +
"Name": "Зельден"
 +
}]
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Выгрузка актуальных дат вылета (oneway)====
 +
Метод производит выгрузку доступных дат вылета для поискового запроса.
 +
* Формат запроса:
 +
** GET .../TourSearchOwin/individuals/avia/oneway/departures/dates/1/35?
 +
* Принимаемые параметры ( '''*''' – обязательный):
 +
** '''1 *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/individuals/avia/oneway/departures?'')
 +
** '''35 *''' – идентификатор города прибытия (полученный из метода ''.../TourSearchOwin/individuals/avia/oneway/arrivals/1/90?'')
 +
* Возвращаемый результат:
 +
** массив дат
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:9000/TourSearchOwin/individuals/avia/oneway/departures/dates/1/35?
 +
</syntaxhighlight>
 +
Возвращаемый результат метода (в формате JSON)
 +
<syntaxhighlight lang="java" enclose="div">
 +
["28.08.2018",
 +
"29.08.2018",
 +
"30.08.2018",
 +
"31.08.2018",
 +
"01.09.2018",
 +
"02.09.2018",]
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Поиск авиабилетов (oneway)====
 +
Метод поиска авиабилетов использует множество параметров для поиска и фильтрации авиабилетов. Метод возвращает варианты перелетов в порядке возрастания цены.
 +
* Формат запроса:
 +
** GET .../TourSearchOwin/individuals/avia/1/35/20180830?
 +
* Принимаемые параметры ( '''*''' – обязательный):
 +
** '''1 *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/individuals/avia/oneway/departures?'')
 +
** '''35 *''' – идентификатор города прибытия (полученный из метода ''.../TourSearchOwin/individuals/avia/oneway/arrivals/1/90?'')
 +
** '''20180830 *''' – дата вылета в формате YYYYMMDD (полученная из метода ''.../TourSearchOwin/individuals/avia/oneway/departures/dates/1/35?'')
 +
** '''PageNumber *''' – номер возвращаемой страницы (по умолчанию возвращается 1)
 +
** '''PageSize *''' – количество возвращаемых результатов на одной странице (возвращается 20)
 +
** '''AdultCount *''' – количество взрослых
 +
** '''ChildAges''' – возраст детей. Если детей несколько, и параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
 +
** '''CurrencyName *''' – код валюты
 +
** '''AviaQuota *''' – информация о квотах на авиаперелет (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все")
 +
** '''fromFlexible''' – гибкий поиск (- "x" дней) от текущей даты, "x" в диапазоне от 1 до 3 дней.
 +
** '''toFlexible''' – гибкий поиск (+ "x" дней) от текущей даты, "x" в диапазоне от 1 до 3 дней.
 +
** '''TourKey''' – просмотр нескольких вариантов перелетов по туру, если такие варианты имеются
 +
** '''MinPrice *''' – минимальная цена (по умолчанию не передается)
 +
** '''MaxPrice''' – максимальная цена (по умолчанию не передается)
 +
** '''Airline''' – ключ авиакомпании (дополнительный фильтр)
 +
** '''AirportDeparture''' – ключ аэропорта вылета (дополнительный фильтр)
 +
** '''AirportArrival''' – ключ аэропорта прилета (дополнительный фильтр)
 +
** '''TimeDepartureFrom''' – время отправления с (по умолчанию возвращается 00:00)
 +
** '''TimeDepartureTo''' – время отправления по (по умолчанию возвращается 23:59)
 +
** '''TimeArrivalFrom''' – время прибытия с (по умолчанию возвращается 00:00)
 +
** '''TimeArrivalTo''' – время прибытия по (по умолчанию возвращается 23:59)
 +
** '''ArrivalFlightNoTransfer''' – производить поиск без пересадок в прямом направлении (true/false, по умолчанию false)
 +
** '''DepartureFlightNoTransfer''' – производить поиск без пересадок в обратном направлении (true/false, по умолчанию false)
 +
** '''DepartureFlightNumberTransfer''' – наличие пересадок в прямом направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более)
 +
** '''ArrivalFlightNumberTransfer''' – наличие пересадок в обратном направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более)
 +
** '''Tariff''' – ключ класса авиаперелета (дополнительный фильтр)
 +
** '''CombineAirlines''' — разрешить комбинировать авиаперелеты (дополнительный фильтр). Параметр применяется только при наличии параметра '''airline'''. Обрабатывается начиная с релиза 15.3.
 +
** '''CombineTariffs''' — разрешить комбинировать классы перелета (дополнительный фильтр). Параметр применяется только при наличии параметра '''tariff'''. Обрабатывается начиная с релиза 15.3.
 +
 
 +
* Возвращаемый результат:
 +
** '''CheckMessages''' – сообщения для логики проверки тура (не используется)
 +
** '''Message''' – сообщение об ошибке
 +
*** '''Key''' – код ошибки
 +
*** '''Value''' – сообщение об ошибке
 +
** '''Result''' – результаты поиска
 +
*** '''Key''' – идентификатов программы тура
 +
*** '''Name''' – название программы тура
 +
*** '''TourUrl''' – ссылка на программу тура
 +
*** '''BookingConditions''' – условия бронирования программы туров
 +
*** '''DefaultManagers''' – список ведущих менеджеров
 +
*** '''Manager''' – менеджер по умолчанию
 +
*** '''Branches''' – список филиалов бронирования
 +
*** '''DetermineTheBranchOnCity''' – признак определения филиала в зависимости от города начала поездки
 +
*** '''StartDate''' – дата начала тура
 +
*** '''Duration''' – продолжительность тура (в днях)
 +
*** '''DurationInNight''' – продолжительность тура (в ночах)
 +
*** '''Types''' – идентификатор типа туров
 +
*** '''Cost''' – цена тура
 +
*** '''Rate''' – код валюты тура
 +
*** '''CityDepature''' – город отправления
 +
**** '''Key''' – идентификатор города отправления
 +
**** '''Value''' – название города отправления
 +
*** '''CountryId''' – страна тура
 +
*** '''Services''' – услуги в туре
 +
**** '''DepartureCity''' – город отправления
 +
***** '''Key''' – идентификатор
 +
***** '''Value''' – название
 +
**** '''DepartureCountry''' – страна отправления
 +
***** '''Key''' – идентификатор
 +
***** '''Value''' – название
 +
**** '''ArrivalCity''' – город прибытия
 +
***** '''Key''' – идентификатор
 +
***** '''Value''' – название
 +
**** '''ArrivalCountry''' – страна прибытия
 +
***** '''Key''' – идентификатор
 +
***** '''Value''' – название
 +
**** '''DepartureAirport''' – аэропорт отправления
 +
***** '''Key''' – идентификатор
 +
***** '''Value''' – название
 +
**** '''ArrivalAirport''' – аэропорт прибытия
 +
***** '''Key''' – идентификатор
 +
***** '''Value''' – название
 +
**** '''Airline''' – авиакомпания
 +
***** '''Key''' – идентификатор
 +
***** '''Value''' – название
 +
**** '''Aircraft''' – воздушное судно
 +
***** '''Key''' – идентификатор
 +
***** '''Value''' – название
 +
**** '''Flight''' – рейс
 +
***** '''Key''' – идентификатор
 +
***** '''Value''' – название
 +
**** '''DepartureTime''' – время вылета
 +
**** '''ArrivalTime''' – время прилета
 +
**** '''EndDateTime''' – дата и время прилета
 +
**** '''FlightDetails''' – информация об авиаперелете
 +
***** '''Tariff''' – информация о тарифе перелета
 +
****** '''Key''' – идентификатор
 +
****** '''Code''' – код тарифа
 +
****** '''Name''' – название тарифа
 +
***** '''Cost''' – разница в стоимости с самым дешевым вариантом
 +
***** '''QuotaStatus''' – информация о квоте
 +
****** '''PlacesStatus''' – статус по квотам (есть места / нет мест / под запрос)
 +
****** '''FreePlaces''' – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре '''PlacesStatus'''.
 +
****** '''IsFewPlaces''' – выполнены ли условия, заданные в настройке "Мало": '''true''' – если заданы условия количества мест "Мало" и данные условия выполнены, '''false''' – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
 +
***** '''PartnerId''' – ключ партнера
 +
***** '''ByPax''' – цена за человека (true/false)
 +
***** '''Partner''' – информация о партнере
 +
****** '''Key''' – идентификатор
 +
****** '''Value''' – название
 +
**** '''FlightSetting''' – внутренняя информация о перелете из программы туров
 +
***** '''ServiceId''' – идентификатор класса услуги (внутренняя информация из программы туров)
 +
***** '''PatternId''' – идентификатор паттерна услуги (внутренняя информация из программы туров)
 +
***** '''FlightId''' – идентификатор перелета (внутренняя информация из программы туров)
 +
**** '''FlightSourceMode''' – локальный или удаленный перелет (внутренняя информация из программы туров)
 +
**** '''Id''' – идентификатор базового шаблона услуги (внутренняя информация из программы туров)
 +
**** '''SvKey''' – ключ типа услуги
 +
**** '''IsSubCode1''' – признак наличия доп. описания 1
 +
**** '''IsSubCode2''' – признак наличия доп. описания 2
 +
**** '''IsPartnerBasedOn''' – признак услуга с приоритетным подбором поставщика
 +
**** '''Day''' – день предоставления услуги
 +
**** '''DurationInNight''' – продолжительность услуги в ночах
 +
**** '''BeginDateTime''' – дата предоставления услуги
 +
**** '''IsHooded''' – признак скрытая услуга
 +
**** '''IsDeleted''' – признак удаляемая услуга
 +
**** '''IsNotCalculate''' – признак не рассчитываемая услуга
 +
**** '''PacketId''' – ключ пакета
 +
**** '''Index''' – порядковый номер услуги
 +
*** '''NotRouteServices''' – не используется
 +
*** '''MinCostServicesComposition''' – массив состав услуг минимальной цены
 +
**** '''Key''' – ключ
 +
***** '''TemplateId''' – идентификатор шаблона
 +
***** '''PatternId''' – идентификатор вкладки
 +
***** '''SettingId''' – идентификатор услуги
 +
**** '''Value''' – значение
 +
***** '''ServiceType''' – тип услуги
 +
***** '''Code''' – ключ услуги
 +
***** '''SubCode1''' – доп. описание 1
 +
***** '''SubCode2''' – доп. описание 2
 +
***** '''PacketId''' – пакет услуги
 +
***** '''PartnerId''' – партнер услуги
 +
***** '''CountryId''' – страна услуги
 +
***** '''CityId''' – город услуги
 +
***** '''Day''' – день предоставления услуги
 +
***** '''DurationInNight''' – продолжительность услуги в ночах
 +
*** '''FlightWeight''' –
 +
*** '''LinkingFlightsRules''' – объект правил связывания
 +
**** '''notCombineDifferentAirlineRule''' – объект не скрещивать авиакомпании
 +
***** '''airlines''' – авиакомпании
 +
***** '''flightSettings''' – массив ключей ServiceId, PatternId, FlightId
 +
***** '''enabled''' – флаг включен/выключен
 +
**** '''checkPlusMinus1CharterRule''' – объект Отличие номера рейса на 1
 +
***** '''FlightSettingPairs''' – массив чартеров, для которых это правило будет выполняться
 +
***** '''enabled''' – флаг включен/выключен
 +
**** '''notCombineDifferentTariffGroupRule''' – объект не комбинировать рейсы от разных классов перелетов
 +
***** '''FlightSettings''' – массив ключей ServiceId, PatternId, FlightId
 +
***** '''enabled''' – флаг включен/выключен
 +
**** '''notCombineDifferentPartnerRule''' – объект не комбинировать рейсы от разных партнеров
 +
***** '''FlightSettings''' – массив ключей ServiceId, PatternId, FlightId
 +
***** '''enabled''' – флаг включен/выключен
 +
**** '''departureCityEqualsArrivalCityRule''' – объект Город вылета = городу прилета
 +
***** '''FlightSettingPairs''' – чартеры, для которых это будет выполняться
 +
***** '''enabled''' – флаг включен/выключен
 +
**** '''combineOnlySpecificChartersRule''' – объект не комбинировать различные классы перелетов
 +
***** '''settings''' – массив ключей чартеров CharterIds и ServiceId, PatternId, FlightId
 +
***** '''enabled''' – флаг включен/выключен
 +
*** '''RouteSubVariants''' – не используется
 +
** '''SecondaryFiltersResult''' – результат, если заданы дополнительные фильтры
 +
*** '''TourTypes''' – типы тура
 +
**** '''Id''' –
 +
**** '''Name''' –
 +
**** '''ParentId''' –
 +
**** '''Type''' –
 +
*** '''TourPrograms''' – информация по каждой турпрограмме
 +
**** '''Key''' –
 +
**** '''Name''' –
 +
**** '''TourUrl''' –
 +
**** '''BookingConditions''' –
 +
**** '''IsLandOnly''' –
 +
**** '''IsRestrictMultiHotels''' –
 +
**** '''IsHotelTemplates''' –
 +
**** '''IsRouteServices''' –
 +
**** '''MultiHotelDelta''' –
 +
**** '''Rate''' –
 +
**** '''DateStart''' –
 +
**** '''DateEnd''' –
 +
**** '''Status''' –
 +
***** '''Key''' –
 +
***** '''Value''' –
 +
**** '''Templates''' –
 +
***** '''$id''' –
 +
***** '''$id''' –
 +
**** '''Types''' –
 +
***** '''Id''' –
 +
***** '''Name''' –
 +
***** '''ParentId''' –
 +
***** '''Type''' –
 +
**** '''LinkingFlightsRules''' –
 +
***** '''notCombineDifferentAirlineRule''' –
 +
****** '''airlines''' –
 +
****** '''flightSettings''' –
 +
****** '''enabled''' –
 +
***** '''checkPlusMinus1CharterRule''' –
 +
****** '''FlightSettingPairs''' –
 +
****** '''enabled''' –
 +
***** '''notCombineDifferentTariffGroupRule''' –
 +
****** '''FlightSettings''' –
 +
****** '''enabled''' –
 +
***** '''notCombineDifferentPartnerRule''' –
 +
****** '''FlightSettings''' –
 +
****** '''enabled''' –
 +
***** '''departureCityEqualsArrivalCityRule''' –
 +
****** '''FlightSettingPairs''' –
 +
****** '''enabled''' –
 +
***** '''combineOnlySpecificChartersRule''' –
 +
****** '''settings''' –
 +
****** '''enabled''' –
 +
**** '''XmlSettings''' – xml
 +
**** '''Type''' –
 +
*** '''TourDurations''' –
 +
*** '''TourDates''' –
 +
**** '''HotelCities''' – не используется 
 +
***** '''''' –
 +
**** '''HotelResorts''' – не используется 
 +
***** '''''' –
 +
**** '''HotelCategories''' – не используется
 +
***** '''''' –
 +
**** '''Hotels''' – не используется 
 +
***** '''''' –
 +
**** '''Pansions''' – не используется
 +
***** '''''' –
 +
**** '''Airlines''' – авиакомпании в дополнительных фильтрах
 +
***** '''''' –
 +
**** '''FlightTariffs''' – класс перелета в дополнительных фильтрах
 +
***** '''''' –
 +
**** '''DepartureCities''' – города вылета в дополнительных фильтрах
 +
***** '''''' –
 +
**** '''DepartureAirports''' – аэропорты вылета в дополнительных фильтрах
 +
***** '''''' –
 +
**** '''ArrivalCities''' – города прибытия в дополнительных фильтрах
 +
***** '''''' –
 +
**** '''ArrivalAirports''' – аэропорты прибытия в дополнительных фильтрах
 +
***** '''''' –
 +
**** '''HotelTypes''' – не используется
 +
***** '''''' –
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:9000/TourSearchOwin/individuals/avia/1/35/20180830?
 +
AdultCount=2&AviaQuota=5&CurrencyName=EU&PageNumber=1&PageSize=20&departureFlightNoTransfer=true
 +
</syntaxhighlight>
 +
Возвращаемый результат метода (в формате JSON)
 +
<syntaxhighlight lang="java" enclose="div">
 +
{
 +
"CheckMessages": null,
 +
"Message": {
 +
"Key": 0,
 +
"Value": null
 +
},
 +
"Result": [{
 +
"Key": 100002328,
 +
"Name": "Общая проверка системы_Aviabooking",
 +
"TourUrl": "www.megatec.ru",
 +
"BookingConditions": "<p><strong>Условия бронирования<\/strong><\/p>",
 +
"DefaultManagers": [-1],
 +
"Manager": 128,
 +
"Branches": [1],
 +
"DetermineTheBranchOnCity": false,
 +
"StartDate": "2018-08-30T00:00:00",
 +
"Duration": 10,
 +
"DurationInNight": 9,
 +
"Types": [2],
 +
"Cost": 7.02,
 +
"Rate": "EU",
 +
"CityDepature": {
 +
"Key": 1,
 +
"Value": "Москва"
 +
},
 +
"CountryId": 90,
 +
"Services": [{
 +
"DepartureCity": {
 +
"Key": 1,
 +
"Value": "Москва"
 +
},
 +
"DepartureCountry": {
 +
"Key": 460,
 +
"Value": "Россия"
 +
},
 +
"ArrivalCity": {
 +
"Key": 35,
 +
"Value": "Вена"
 +
},
 +
"ArrivalCountry": {
 +
"Key": 90,
 +
"Value": "Австрия"
 +
},
 +
"DepartureAirport": {
 +
"Key": "DME",
 +
"Value": "Домодедово"
 +
},
 +
"ArrivalAirport": {
 +
"Key": "VIE",
 +
"Value": "Vena"
 +
},
 +
"Airline": {
 +
"Key": "7U",
 +
"Value": "Авиаэнерго"
 +
},
 +
"Aircraft": {
 +
"Key": "727",
 +
"Value": "Boeing"
 +
},
 +
"Flight": {
 +
"Key": 773,
 +
"Value": "111"
 +
},
 +
"DepartureTime": "10:00:00",
 +
"ArrivalTime": "13:00:00",
 +
"EndDateTime": "2018-08-30T13:00:00",
 +
"FlightDetails": [{
 +
"Tariff": {
 +
"Key": 89,
 +
"Code": "Y",
 +
"Name": "Экономический класс"
 +
},
 +
"Cost": 7.02,
 +
"QuotaStatus": {
 +
"PlacesStatus": 4,
 +
"FreePlaces": 0,
 +
"IsFewPlaces": false
 +
},
 +
"PartnerId": 10760,
 +
"ByPax": true,
 +
"Partner": {
 +
"Key": 0,
 +
"Value": null
 +
}
 +
}],
 +
"FlightSetting": {
 +
"ServiceId": 3,
 +
"PatternId": 1,
 +
"FlightId": 1
 +
},
 +
"FlightSourceMode": 1,
 +
"Id": 3,
 +
"SvKey": 1,
 +
"IsSubCode1": true,
 +
"IsSubCode2": false,
 +
"IsPartnerBasedOn": false,
 +
"Day": 1,
 +
"DurationInNight": 0,
 +
"BeginDateTime": "2018-08-30T10:00:00",
 +
"IsHooded": false,
 +
"IsDeleted": false,
 +
"IsNotCalculate": false,
 +
"PacketId": 779,
 +
"Index": 0
 +
},
 +
{
 +
"DepartureCity": {
 +
"Key": 35,
 +
"Value": "Вена"
 +
},
 +
"DepartureCountry": {
 +
"Key": 90,
 +
"Value": "Австрия"
 +
},
 +
"ArrivalCity": {
 +
"Key": 1,
 +
"Value": "Москва"
 +
},
 +
"ArrivalCountry": {
 +
"Key": 460,
 +
"Value": "Россия"
 +
},
 +
"DepartureAirport": {
 +
"Key": "VIE",
 +
"Value": "Vena"
 +
},
 +
"ArrivalAirport": {
 +
"Key": "DME",
 +
"Value": "Домодедово"
 +
},
 +
"Airline": {
 +
"Key": "7U",
 +
"Value": "Авиаэнерго"
 +
},
 +
"Aircraft": {
 +
"Key": "727",
 +
"Value": "Boeing"
 +
},
 +
"Flight": {
 +
"Key": 774,
 +
"Value": "222"
 +
},
 +
"DepartureTime": "15:00:00",
 +
"ArrivalTime": "16:00:00",
 +
"EndDateTime": "2018-09-08T16:00:00",
 +
"FlightDetails": [{
 +
"Tariff": {
 +
"Key": 89,
 +
"Code": "Y",
 +
"Name": "Экономический класс"
 +
},
 +
"Cost": 0,
 +
"QuotaStatus": {
 +
"PlacesStatus": 4,
 +
"FreePlaces": 0,
 +
"IsFewPlaces": false
 +
},
 +
"PartnerId": 10760,
 +
"ByPax": true,
 +
"Partner": {
 +
"Key": 0,
 +
"Value": null
 +
}
 +
}],
 +
"FlightSetting": {
 +
"ServiceId": 4,
 +
"PatternId": 2,
 +
"FlightId": 1
 +
},
 +
"FlightSourceMode": 1,
 +
"Id": 4,
 +
"SvKey": 1,
 +
"IsSubCode1": true,
 +
"IsSubCode2": false,
 +
"IsPartnerBasedOn": false,
 +
"Day": 10,
 +
"DurationInNight": 0,
 +
"BeginDateTime": "2018-09-08T15:00:00",
 +
"IsHooded": false,
 +
"IsDeleted": false,
 +
"IsNotCalculate": false,
 +
"PacketId": 779,
 +
"Index": 1
 +
}],
 +
"NotRouteServices": [],
 +
"MinCostServicesComposition": [{
 +
"Key": {
 +
"TemplateId": 3,
 +
"PatternId": 1,
 +
"SettingId": 1
 +
},
 +
"Value": {
 +
"ServiceType": 1,
 +
"Code": 773,
 +
"SubCode1": 89,
 +
"SubCode2": 1,
 +
"PacketId": 779,
 +
"PartnerId": 10760,
 +
"CountryId": 90,
 +
"CityId": 35,
 +
"Day": 1,
 +
"DurationInNight": 0
 +
}
 +
},
 +
{
 +
"Key": {
 +
"TemplateId": 4,
 +
"PatternId": 2,
 +
"SettingId": 1
 +
},
 +
"Value": {
 +
"ServiceType": 1,
 +
"Code": 774,
 +
"SubCode1": 89,
 +
"SubCode2": 35,
 +
"PacketId": 779,
 +
"PartnerId": 10760,
 +
"CountryId": 460,
 +
"CityId": 1,
 +
"Day": 10,
 +
"DurationInNight": 0
 +
}
 +
}],
 +
"FlightWeight": 2,
 +
"LinkingFlightsRules": {
 +
"notCombineDifferentAirlineRule": {
 +
"airlines": [],
 +
"flightSettings": [],
 +
"enabled": false
 +
},
 +
"checkPlusMinus1CharterRule": {
 +
"FlightSettingPairs": [],
 +
"enabled": false
 +
},
 +
"notCombineDifferentTariffGroupRule": {
 +
"FlightSettings": [],
 +
"enabled": true
 +
},
 +
"notCombineDifferentPartnerRule": {
 +
"FlightSettings": [],
 +
"enabled": false
 +
},
 +
"departureCityEqualsArrivalCityRule": {
 +
"FlightSettingPairs": [],
 +
"enabled": false
 +
},
 +
"combineOnlySpecificChartersRule": {
 +
"settings": [],
 +
"enabled": false
 +
}
 +
},
 +
"RouteSubVariants": [],
 +
"Routes": 1
 +
}],
 +
"SecondaryFiltersResult": {
 +
"TourTypes": [{
 +
"Id": 2,
 +
"Name": "Стандартный тур",
 +
"ParentId": null,
 +
"Type": "TourType"
 +
}],
 +
"TourPrograms": [{
 +
"Key": 100002328,
 +
"Name": "Общая проверка системы_Aviabooking",
 +
"TourUrl": "www.megatec.ru",
 +
"BookingConditions": "<p><strong>Условия бронирования<\/strong><\/p>",
 +
"DefaultManagers": [-1],
 +
"Manager": 128,
 +
"Branches": [1],
 +
"DetermineTheBranchOnCity": false,
 +
"IsLandOnly": false,
 +
"IsRestrictMultiHotels": false,
 +
"IsHotelTemplates": false,
 +
"IsRouteServices": true,
 +
"MultiHotelDelta": 0,
 +
"Rate": "EU",
 +
"DateStart": "2018-06-21T00:00:00Z",
 +
"DateEnd": "2019-05-31T00:00:00Z",
 +
"UpdateDate": null,
 +
"Status": {
 +
"Key": 3,
 +
"Value": "Доступен для продажи"
 +
},
 +
"Templates": [{
 +
"$id": "1"
 +
},
 +
{
 +
"$id": "2"
 +
}],
 +
"Types": [{
 +
"Id": 2,
 +
"Name": "Стандартный тур",
 +
"ParentId": null,
 +
"Type": "TourType"
 +
}],
 +
"LinkingFlightsRules": {
 +
"notCombineDifferentAirlineRule": {
 +
"airlines": [],
 +
"flightSettings": [],
 +
"enabled": false
 +
},
 +
"checkPlusMinus1CharterRule": {
 +
"FlightSettingPairs": [],
 +
"enabled": false
 +
},
 +
"notCombineDifferentTariffGroupRule": {
 +
"FlightSettings": [],
 +
"enabled": true
 +
},
 +
"notCombineDifferentPartnerRule": {
 +
"FlightSettings": [],
 +
"enabled": false
 +
},
 +
"departureCityEqualsArrivalCityRule": {
 +
"FlightSettingPairs": [],
 +
"enabled": false
 +
},
 +
"combineOnlySpecificChartersRule": {
 +
"settings": [],
 +
"enabled": false
 +
}
 +
},
 +
"XmlSettings": "<TourProgram xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">",
 +
"Type": "TourProgram"
 +
}],
 +
"TourDurations": [10],
 +
"TourDates": ["2018-08-30T00:00:00"],
 +
"HotelCities": [],
 +
"HotelResorts": [],
 +
"HotelCategories": [],
 +
"Hotels": [],
 +
"Pansions": [],
 +
"Airlines": [{
 +
"Key": 3,
 +
"Code": "7U",
 +
"Name": "Авиаэнерго",
 +
"NameLat": "en_Авиаэнерго",
 +
"Type": "AirLine"
 +
}],
 +
"FlightTariffs": [{
 +
"Key": 89,
 +
"Code": "Y",
 +
"Name": "Экономический класс",
 +
"NameLat": "Coach economy",
 +
"Group": null,
 +
"Type": "AirService"
 +
}],
 +
"DepartureCities": [{
 +
"key": 1,
 +
"Country": {
 +
"key": 460,
 +
"name": "Россия",
 +
"Code": null,
 +
"CitizenName": "Россия",
 +
"CitizenNameLat": "Russia",
 +
"PassportMinDurCheckFrom": 0,
 +
"CheckINN": true,
 +
"PassportMinDur": null,
 +
"INNName": "ИНН",
 +
"Web": 0,
 +
"WebImage": "",
 +
"WebHTTP": "",
 +
"AnkLang": 0,
 +
"Type": "Country"
 +
},
 +
"name": "Москва",
 +
"Code": "MOW",
 +
"Web": 0,
 +
"RSKey": 0,
 +
"WebImage": null,
 +
"IsDeparture": 1,
 +
"Type": "City"
 +
}],
 +
"DepartureAirports": [{
 +
"Key": 12,
 +
"Code": "DME",
 +
"Name": "Домодедово",
 +
"NameLat": "Домодедово",
 +
"CityKey": 1,
 +
"CountryKey": 460,
 +
"Letter": "D",
 +
"Site": 0,
 +
"Type": "Airport"
 +
}],
 +
"ArrivalCities": [{
 +
"key": 1,
 +
"Country": {
 +
"key": 460,
 +
"name": "Россия",
 +
"Code": null,
 +
"CitizenName": "Россия",
 +
"CitizenNameLat": "Russia",
 +
"PassportMinDurCheckFrom": 0,
 +
"CheckINN": true,
 +
"PassportMinDur": null,
 +
"INNName": "ИНН",
 +
"Web": 0,
 +
"WebImage": "",
 +
"WebHTTP": "",
 +
"AnkLang": 0,
 +
"Type": "Country"
 +
},
 +
"name": "Москва",
 +
"Code": "MOW",
 +
"Web": 0,
 +
"RSKey": 0,
 +
"WebImage": null,
 +
"IsDeparture": 1,
 +
"Type": "City"
 +
}],
 +
"ArrivalAirports": [{
 +
"Key": 12,
 +
"Code": "DME",
 +
"Name": "Домодедово",
 +
"NameLat": "Домодедово",
 +
"CityKey": 1,
 +
"CountryKey": 460,
 +
"Letter": "D",
 +
"Site": 0,
 +
"Type": "Airport"
 +
}],
 +
"HotelTypes": []
 +
}
 +
}
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
===Поиск авиабилетов туда и обратно (twoway)===
 +
====Выгрузка городов отправления (twoway)====
 +
Метод производит выгрузку всех доступных городов отправления.
 +
* Формат запроса:
 +
** GET .../TourSearchOwin/individuals/avia/twoway/departures?  
 +
* Принимаемые параметры:
 +
** нет принимаемых параметров
 +
* Возвращаемый результат:
 +
** '''Key''' – ключ города
 +
** '''Name''' – название города
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода  
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/departures?
 +
</syntaxhighlight>
 +
Возвращаемый результат метода (в формате JSON)
 +
<syntaxhighlight lang="java" enclose="div">
 +
[{
 +
"Key": 312,
 +
"Name": "Астрахань"
 +
},
 +
{
 +
"Key": 1,
 +
"Name": "Москва"
 +
}]
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Выгрузка списка стран прибытия (twoway)====
 +
Метод производит выгрузку всех доступных направлений.
 +
* Формат запроса:
 +
** GET .../TourSearchOwin/individuals/avia/twoway/arrivals/1/countries?
 +
* Принимаемые параметры ( '''*''' – обязательный):
 +
** '''1 *''' – идентификатор города отправления (из контроллера [[#Выгрузка городов отправления (twoway)|''.../TourSearchOwin/individuals/avia/twoway/departures?'']])
 +
* Возвращаемый результат:
 +
** '''Name''' – название страны
 +
** '''Key''' – ключ страны
 +
** '''DestinationType''' – тип результата (всегда возвращается в JSON = 1, в xml = country)
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/arrivals/1/countries?
 +
</syntaxhighlight>
 +
Возвращаемый результат метода (в формате JSON)
 +
<syntaxhighlight lang="java" enclose="div">
 +
[{
 +
"Name": "Австрия",
 +
"Key": 90,
 +
"DestinationType": 1
 
},
 
},
 
{
 
{
"Key": 1,
+
"Name": "Индия",
"Name": "Москва"
+
"Key": 26,
 +
"DestinationType": 1
 +
},
 +
{
 +
"Name": "Финляндия",
 +
"Key": 64,
 +
"DestinationType": 1
 
}]
 
}]
 
</syntaxhighlight>
 
</syntaxhighlight>
Строка 319: Строка 1177:
 
</div></div><br />
 
</div></div><br />
  
===Выгрузка списка стран прибытия (twoway)===
+
====Выгрузка списка городов прибытия (twoway)====
Метод производит выгрузку всех доступных направлений.
+
Метод возвращает список всех доступных городов по определенному городу отправления и стране прибытия.
 
* Формат запроса:
 
* Формат запроса:
** GET .../TourSearchOwin/individuals/avia/twoway/arrivals/1/countries?
+
** GET .../TourSearchOwin/individuals/avia/twoway/arrivals/1/90?
 
* Принимаемые параметры ( '''*''' – обязательный):
 
* Принимаемые параметры ( '''*''' – обязательный):
** '''1 *''' – идентификатор города отправления (из контроллера [[#Выгрузка городов отправления (twoway)|''.../TourSearchOwin/individuals/avia/twoway/departures?'']])
+
** '''1 *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/departures?'')
 +
** '''90 *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/arrivals/1/countries?'')
 
* Возвращаемый результат:
 
* Возвращаемый результат:
** '''Name''' – название страны
+
** '''Key''' – идентификатор города
** '''Key''' – ключ страны
+
** '''Name''' – название города
** '''DestinationType''' – тип результата (всегда возвращается в JSON = 1, в xml = country)
 
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
Строка 335: Строка 1193:
 
Вызов метода  
 
Вызов метода  
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/arrivals/1/countries?
+
GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/arrivals/1/90?
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Возвращаемый результат метода (в формате JSON)
 
Возвращаемый результат метода (в формате JSON)
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
 
[{
 
[{
"Name": "Австрия",
+
"Key": 35,
"Key": 90,
+
"Name": "Вена"
"DestinationType": 1
 
 
},
 
},
 
{
 
{
"Name": "Индия",
+
"Key": 440,
"Key": 26,
+
"Name": "Зельден"
"DestinationType": 1
 
},
 
{
 
"Name": "Финляндия",
 
"Key": 64,
 
"DestinationType": 1
 
 
}]
 
}]
 
</syntaxhighlight>
 
</syntaxhighlight>
Строка 358: Строка 1209:
 
</div></div><br />
 
</div></div><br />
  
===Выгрузка списка городов прибытия (twoway)===
+
====Выгрузка актуальных дат вылета (twoway)====
Метод возвращает список всех доступных городов по определенному городу отправления и стране прибытия.
+
Метод производит выгрузку доступных дат вылета для поискового запроса.
 
* Формат запроса:
 
* Формат запроса:
** GET .../TourSearchOwin/individuals/avia/twoway/arrivals/1/90?
+
** GET .../TourSearchOwin/individuals/avia/twoway/departures/dates/1/35?
 
* Принимаемые параметры ( '''*''' – обязательный):
 
* Принимаемые параметры ( '''*''' – обязательный):
 
** '''1 *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/departures?'')
 
** '''1 *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/departures?'')
** '''90 *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/arrivals/1/countries?'')
+
** '''35 *''' – идентификатор города прибытия (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/arrivals/1/90?'')
 
* Возвращаемый результат:
 
* Возвращаемый результат:
** '''Key''' – идентификатор города
+
** массив дат
** '''Name''' – название города
 
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
Строка 374: Строка 1224:
 
Вызов метода  
 
Вызов метода  
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/arrivals/1/90?
+
GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/departures/dates/1/35?
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Возвращаемый результат метода (в формате JSON)
 
Возвращаемый результат метода (в формате JSON)
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
[{
+
["28.08.2018",
"Key": 35,
+
"29.08.2018",
"Name": "Вена"
+
"30.08.2018",
},
+
"31.08.2018",
{
+
"01.09.2018",
"Key": 440,
+
"02.09.2018",]
"Name": "Зельден"
 
}]
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 
</TD></TR></TABLE>
 
</TD></TR></TABLE>
 
</div></div><br />
 
</div></div><br />
  
===Выгрузка актуальных дат вылета (twoway)===
+
====Выгрузка актуальных дат возврата (twoway)====
Метод производит выгрузку доступных дат вылета для поискового запроса.
+
Метод производит выгрузку доступных дат возврата для поискового запроса.
 
* Формат запроса:
 
* Формат запроса:
** GET .../TourSearchOwin/individuals/avia/twoway/departures/dates/1/35?
+
** GET .../TourSearchOwin/individuals/avia/twoway/arrivals/dates/1/35/20180830?
 
* Принимаемые параметры ( '''*''' – обязательный):
 
* Принимаемые параметры ( '''*''' – обязательный):
 
** '''1 *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/departures?'')
 
** '''1 *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/departures?'')
 
** '''35 *''' – идентификатор города прибытия (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/arrivals/1/90?'')
 
** '''35 *''' – идентификатор города прибытия (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/arrivals/1/90?'')
 +
** '''20180830 *''' – дата вылета в формате YYYYMMDD (полученная из метода ''.../TourSearchOwin/individuals/avia/twoway/departures/dates/1/35?'')
 
* Возвращаемый результат:
 
* Возвращаемый результат:
 
** массив дат
 
** массив дат
Строка 405: Строка 1254:
 
Вызов метода  
 
Вызов метода  
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/departures/dates/1/35?
+
GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/arrivals/dates/1/35/20180830?
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Возвращаемый результат метода (в формате JSON)
 
Возвращаемый результат метода (в формате JSON)
 
<syntaxhighlight lang="java" enclose="div">
 
<syntaxhighlight lang="java" enclose="div">
["28.08.2018",
+
["30.08.2018",
"29.08.2018",
 
"30.08.2018",
 
 
"31.08.2018",
 
"31.08.2018",
 
"01.09.2018",
 
"01.09.2018",
Строка 419: Строка 1266:
 
</div></div><br />
 
</div></div><br />
  
===Выгрузка актуальных дат возврата (twoway)===
+
====Поиск авиабилетов (twoway)====
Метод производит выгрузку доступных дат возврата для поискового запроса.
+
Метод поиска авиабилетов использует множество параметров для поиска и фильтрации авиабилетов. Метод возвращает варианты перелетов в порядке возрастания цены.  
 
* Формат запроса:
 
* Формат запроса:
** GET .../TourSearchOwin/individuals/avia/twoway/departures/dates/1/35/20180830?
+
** GET .../TourSearchOwin/individuals/avia/1/35/20180830/20180912?
 
* Принимаемые параметры ( '''*''' – обязательный):
 
* Принимаемые параметры ( '''*''' – обязательный):
 
** '''1 *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/departures?'')
 
** '''1 *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/departures?'')
 
** '''35 *''' – идентификатор города прибытия (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/arrivals/1/90?'')
 
** '''35 *''' – идентификатор города прибытия (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/arrivals/1/90?'')
 
** '''20180830 *''' – дата вылета в формате YYYYMMDD (полученная из метода ''.../TourSearchOwin/individuals/avia/twoway/departures/dates/1/35?'')
 
** '''20180830 *''' – дата вылета в формате YYYYMMDD (полученная из метода ''.../TourSearchOwin/individuals/avia/twoway/departures/dates/1/35?'')
* Возвращаемый результат:
+
** '''20180912 *''' – дата возврата в формате YYYYMMDD (полученная из метода ''.../TourSearchOwin/individuals/avia/twoway/departures/dates/1/35/20180830?'')
** массив дат
+
** '''PageNumber *''' – номер возвращаемой страницы (по умолчанию возвращается 1)
 
+
** '''PageSize *''' – количество возвращаемых результатов на одной странице (возвращается 20)
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
+
** '''AdultCount *''' – количество взрослых
<div class="mw-collapsible-content">
 
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 
Вызов метода
 
<syntaxhighlight lang="java" enclose="div">
 
GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/departures/dates/1/35/20180830?
 
</syntaxhighlight>
 
Возвращаемый результат метода (в формате JSON)
 
<syntaxhighlight lang="java" enclose="div">
 
["30.08.2018",
 
"31.08.2018",
 
"01.09.2018",
 
"02.09.2018",]
 
</syntaxhighlight>
 
</TD></TR></TABLE>
 
</div></div><br />
 
 
 
 
 
===Поиск авиабилетов===
 
Метод поиска авиабилетов использует множество параметров для поиска и фильтрации авиабилетов. Метод возвращает варианты перелетов в порядке возрастания цены.
 
* Формат запроса:
 
** GET .../TourSearchOwin/individuals/avia/1/35/20180830/20180912?
 
* Принимаемые параметры ( '''*''' – обязательный):
 
** '''1 *''' – идентификатор города отправления (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/departures?'')
 
** '''35 *''' – идентификатор города прибытия (полученный из метода ''.../TourSearchOwin/individuals/avia/twoway/arrivals/1/90?'')
 
** '''20180830 *''' – дата вылета в формате YYYYMMDD (полученная из метода ''.../TourSearchOwin/individuals/avia/twoway/departures/dates/1/35?'')
 
** '''20180912 *''' – дата возврата в формате YYYYMMDD (полученная из метода ''.../TourSearchOwin/individuals/avia/twoway/departures/dates/1/35/20180830?'')
 
** '''PageNumber *''' – номер возвращаемой страницы (по умолчанию возвращается 1)
 
** '''PageSize *''' – количество возвращаемых результатов на одной странице (возвращается 20)
 
** '''AdultCount *''' – количество взрослых
 
 
** '''ChildAges''' – возраст детей. Если детей несколько, и параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
 
** '''ChildAges''' – возраст детей. Если детей несколько, и параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
 
** '''CurrencyName *''' – код валюты
 
** '''CurrencyName *''' – код валюты
 
** '''AviaQuota *''' – информация о квотах на авиаперелет (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все")
 
** '''AviaQuota *''' – информация о квотах на авиаперелет (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все")
 +
** '''fromFlexible''' – гибкий поиск (- "x" дней) от текущей даты, "x" в диапазоне от 1 до 3 дней.
 +
** '''toFlexible''' – гибкий поиск (+ "x" дней) от текущей даты, "x" в диапазоне от 1 до 3 дней.
 +
** '''TourKey''' – просмотр нескольких вариантов перелетов по туру, если такие варианты имеются
 
** '''MinPrice *''' – минимальная цена (по умолчанию не передается)
 
** '''MinPrice *''' – минимальная цена (по умолчанию не передается)
 
** '''MaxPrice''' – максимальная цена (по умолчанию не передается)
 
** '''MaxPrice''' – максимальная цена (по умолчанию не передается)
Строка 477: Строка 1298:
 
** '''ArrivalFlightNumberTransfer''' – наличие пересадок в обратном направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более)
 
** '''ArrivalFlightNumberTransfer''' – наличие пересадок в обратном направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более)
 
** '''Tariff''' – ключ класса авиаперелета (дополнительный фильтр)
 
** '''Tariff''' – ключ класса авиаперелета (дополнительный фильтр)
 +
** '''CombineAirlines''' — разрешить комбинировать авиаперелеты (дополнительный фильтр). Параметр применяется только при наличии параметра '''airline'''. Обрабатывается начиная с релиза 15.3.
 +
** '''CombineTariffs''' — разрешить комбинировать классы перелета (дополнительный фильтр). Параметр применяется только при наличии параметра '''tariff'''. Обрабатывается начиная с релиза 15.3.
  
 
* Возвращаемый результат:
 
* Возвращаемый результат:
Строка 1122: Строка 1945:
 
</div></div><br />
 
</div></div><br />
  
 +
===Отображение авиабилетов в корзине и бронирование===
 +
 +
Отображение авиабилетов в корзине и бронирование производиться стандартным механизмом, описанном в [[Мастер-Тур(15):API для разработки онлайн поиска и бронирования#Выгрузка первоначального варианта в корзину для бронирования (Tour)|API для разработки онлайн поиска и бронирования ]].
 +
 +
==Приложения==
 +
 +
===Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)===
 +
 +
Параметры ''ServiceType'' – это ключ типа услуги, ''Сode'' – ключ услуги, ''SubCode1'' и ''SubCode2'', возвращаемые при API-запросах – это параметры дополнительных описаний двух типов, индивидуальных для каждой услуги.
 +
 +
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" width="1500px"
 +
 +
|- style="background-color:#F2F2F2"
 +
 +
! width="9%" | Ключ типа услуги (ServiceType)
 +
! width="13%" | Наименование типа услуги
 +
! width="13%" | Ключ услуги (Code)
 +
! width="13%" | Доп. описание 1 (SubCode1)
 +
! width="13%" | Таблица БД со значениями SubCode1
 +
! width="13%" | Доп. описание 2 (SubCode2)
 +
! width="13%" | Таблица БД со значениями SubCode2
 +
 +
|- style="vertical-align:text-top"
 +
 +
| 1
 +
| Авиаперелет
 +
| индивидуальный ключ услуги
 +
| Тариф
 +
| AirService
 +
| отсутствует
 +
| отсутствует
 +
 +
|- style="vertical-align:text-top"
 +
 +
| 2
 +
| Трансфер
 +
| индивидуальный ключ услуги
 +
| Вид транспорта
 +
| Transport
 +
| отсутствует
 +
| отсутствует
 +
 +
|- style="vertical-align:text-top"
 +
 +
| 3
 +
| Отель/Круиз
 +
| индивидуальный ключ услуги
 +
| Вид проживания (Тип номера + Категория номера + Тип размещения)
 +
| HotelRooms (Rooms + RoomCategory + Accmdmentype)
 +
| Тип питания
 +
| Pansion
 +
 +
|- style="vertical-align:text-top"
 +
 +
| 4
 +
| Экскурсия
 +
| индивидуальный ключ услуги
 +
| Вид транспорта
 +
| Transport
 +
| отсутствует
 +
| отсутствует
 +
 +
|- style="vertical-align:text-top"
 +
 +
| 5
 +
| Виза
 +
| индивидуальный ключ услуги
 +
| отсутствует
 +
| отсутствует
 +
| отсутствует
 +
| отсутствует
 +
 +
|- style="vertical-align:text-top"
 +
 +
| 6
 +
| Страховка
 +
| индивидуальный ключ услуги
 +
| Доп. описание 1
 +
| AddDescript1
 +
| Доп. описание 2
 +
| AddDescript2
 +
 +
|- style="vertical-align:text-top"
 +
 +
| 8
 +
| Доп услуга в отеле/круизе
 +
| индивидуальный ключ услуги
 +
| Вид проживания (Тип номера + Категория номера + Тип размещения)
 +
| HotelRooms (Rooms + RoomCategory + Accmdmentype)
 +
| Доп. описание 2
 +
| AddDescript2
 +
 +
|- style="vertical-align:text-top"
 +
 +
| 14
 +
| Автобусный переезд
 +
| индивидуальный ключ услуги
 +
| Место посадки
 +
| BusTransferPoints
 +
| Вид транспорта
 +
| Transport
 +
 +
|- style="vertical-align:text-top"
  
 +
| 99
 +
| Любая пользовательская услуга
 +
| индивидуальный ключ услуги
 +
| Доп. описание 1
 +
| AddDescript1
 +
| Доп. описание 2
 +
| AddDescript2
  
 +
|}
  
  
 
[[Category:Мастер-Тур(15)]]
 
[[Category:Мастер-Тур(15)]]

Текущая версия на 15:42, 6 июня 2024

Версия статьи от 6-06-2024.

Поддерживаемые версии ПК «Мастер-Тур»:
Начиная с релиза 15.3


Введение

Данный web-сервис предназначен для разработки собственного поиска авиабилетов на основе API.

Установка

Для работы с web-сервисом необходимо на отдающей стороне установить службу поиска.
После установки web-сервис будет доступен по адресу http://значение настройки "serviceAddress" в TourSearchOwin/"название метода" (пример: http://localhost:9000/TourSearchOwin/Settings)

Список методов

Авторизация (Token)

Метод производит получение авторизационного токена (описание стандарта).

  • Формат запроса:
    • POST .../TourSearchOwin/Token?
  • Принимаемые параметры POST запроса ( * – обязательный):
    • grant_type * – password
    • username * – логин представителя партнера
    • password * – пароль представителя партнера
  • Возвращаемый результат:
    • access_token – токен
    • token_type – тип токена
    • expires_in – код
    • userKey – ключ пользователя
    • .issued – дата получения
    • .expires – дата действия до
Пример

Вызов метода Token

POST http://localhost:9000/TourSearchOwin/Token HTTP/1.1
Content-Type: application/x-www-form-urlencoded

grant_type=password&username=test&password=1

Возвращаемый результат метода TransportPlan (в формате JSON)

{
	"access_token": "AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAdsCC8X7m9E-2bg0-uS0VfgAAAAAAAAADZgAAwAAAA-
EqAAAAAASAAACgAAAAEAAAAO4S-VrqBhQuhqliqrAKKfIgAQAAn-gfgP-rYjk-Krr1Ck2A-IGCw6FBhamUOzFxgTtk1hR-
GLMryFIH8VK5GmHdHubZWj4S7XcazGL1Kn5-VlbiYdW2ZVWpYlk638aV-XS2kpZ9YrKgViiM_x8RH5TPo4-
9LhE7V-SjiB_CP_qs58DRKcyohq3Tz9QaiFgH1Ko7O2XKjTBG7SHyQPDPYjaqg9kDxmzq0UcIT6Fm4YkDxmm9-
CW7u3cEFWcpiqKOc2VvZFKPPHc07uDOO4w9FXPhpXZwOqrJBxzhbr73RuhzPs_e-hgxKaIlsMaK5b0v5ReAMy1kuY0ebXA",",
	"token_type": "bearer",
	"expires_in": 1209599,
	"userKey": "333",
	".issued": "Thu, 05 Apr 2018 12:05:31 GMT",
	".expires": "Thu, 19 Apr 2018 12:05:31 GMT"
}


Выгрузка настроек службы поиска (Settings)

Метод производит выгрузку настроек службы поиска.

  • Формат запроса:
    • GET .../TourSearchOwin/Settings?
  • Принимаемые параметры:
    • нет принимаемых параметров
  • Возвращаемый результат:
    • ChildAgesSetting – регулируется настройкой максимальный возраст ребенка (массив возрастов, при которых турист будет считаться ребенком
    • DurationSetting – регулируется настройкой максимальная продолжительность тура (массив продолжительностей, доступных в фильтрах для поиска)
    • RoundServiceSetting – признак округления цены (количество знаков после запятой)
    • CacheReady – статус готовности службы поиска к работе (true/false)
    • EnableFiterTree – устаревшая настройка, будет убрана (по умолчанию всегда false)
    • EnableActualFilters – включены ли актуальные фильтры (true/false)
    • CorrectLicense – проверка лицензии (true/false)
    • CorrectLicenseMessage – сообщение, если проверка лицензии не прошла
    • IsCorrectUser – проверка наличия пользователя в таблице Userlist, под которым запущена служба поиска (true/false)
    • IsShowCitizenAuthTourist – настройка запрашивать гражданство при регистрации частного лица (true/false)
    • IsShowFewCountPlaces – настройка отображения числового значения оставшихся мест, когда достигнуто значение «Мало» (true/false)
    • IsShowBusTransferPlaces – использовать фильтр наличие мест на автобусный переезд в поиске (true/false)
    • UseBusSeatChecks – план рассадки автобусного переезда (0 – не отображать, 1 – отображать без проверки, 2 – отображать с проверкой)
    • UseTransferSeatChecks – план рассадки трансфера (0 – не отображать, 1 – отображать без проверки, 2 – отображать с проверкой)
    • IsShowFiltersByCity – отображать фильтр по городам на главной странице поиска (true/false)
    • CheckRealCourses – включена ли проверка курсов реальных валют при поиске (true/false)
    • CommonImagesFolderPath – путь к папке для хранения изображений
    • UseApplyFiltersButton – отображать кнопку «Применить фильтры» (true/false)
    • AutoSearchFiltersTimeout – задержка между выбором дополнительных фильтров и выводом результатов (в секундах)
    • UseFastSearchAlgoritm – использовать быстрый алгоритм поиска (true/false)
    • MaxSearchDatesCountClient – максимальное количество дат, которое будет обрабатываться в клиенте поиска
    • MaxDurationsCountClient – максимальное количество продолжительностей, которое будет обрабатываться в клиенте поиска
    • UseHotelCategoryGlobalCodeInDopFilter – использовать глобальные коды категорий отелей в поиске
    • UsePansionGlobalCodeInDopFilter – использовать глобальные коды питаний в поиске
    • CheckTouristDataInBasket – проверять корректность данных туристов
    • SimpleRegistration – упрощенная регистрация частного лица
    • ShowHotelImagesInSearch – показывать описание и изображения отелей в поиске
    • CacheReadyMessage – сообщение о готовности службы поиска или службы расчета актуальных фильтров. Варианты возвращаемых значений:
      • <add key="enableActualFilters" value="true" /> - CacheReady: true = CacheReadyMessage: "Кеш инициализирован"; CacheReady: false = CacheReadyMessage: "Кеш еще не инициализирован"
      • <add key="enableActualFilters" value="false" /> - Служба актуальных фильтров недоступна (выключена, неверно указана ссылка на нее и т.п.) CacheReadyMessage: "Служба актуальных фильтров недоступна"; Служба актуальных фильтров доступна но не готова - CacheReadyMessage: "Кеш службы актуальных фильтров не инициализирован"; Служба актуальных фильтров готова, а основная служба не готова - CacheReadyMessage: "Кеш ещё не инициализирован"; Служба актуальных фильтров готова, и основная служба готова - CacheReadyMessage: "Кеш ещё инициализирован".
Пример

Вызов метода Settings

GET http://localhost:9000/TourSearchOwin/Settings

Возвращаемый результат метода Settings (в формате JSON)

{
   "ChildAgesSetting":    [
      1, 
      2,
      3,
      4,
      5,
      6,
      7,
      8,
      9,
      10,
      11,
      12,
      13,
      14,
      15,
      16
   ],
   "DurationSetting":    [
      1,
      2,
      3,
      4,
      5,
      6,
      7,
      8,
      9,
      10,
      11,
      12,
      13,
      14,
      15,
      16,
      17,
      18,
      19,
      20
   ],
   "RoundServiceSetting": 2,
   "CacheReady": true,
   "EnableFiterTree": false,
   "EnableActualFilters": true,
   "CorrectLicense": true,
   "CorrectLicenseMessage": "0deb1f882da1ec6301c961780507a180",
   "IsCorrectUser": true,
   "IsShowCitizenAuthTourist": true,
   "IsShowFewCountPlaces": true,
   "IsShowBusTransferPlaces": true,
   "UseBusSeatChecks": 1,
   "UseTransferSeatChecks": 2,
   "IsShowFiltersByCity": true,
   "CheckRealCourses": true,
   "CommonImagesFolderPath": "\\\\server\\Icons",
   "UseApplyFiltersButton": false,
   "AutoSearchFiltersTimeout": 1,
   "UseFastSearchAlgoritm": true,
   "MaxSearchDatesCountClient": 10,
   "MaxDurationsCountClient": 14
}


Выгрузка списка валют (Currency)

Метод возвращает список используемых валют.

  • Формат запроса:
    • GET .../TourSearchOwin/Currency
  • Принимаемые параметры:
    • нет принимаемых параметров
  • Возвращаемый результат:
    • Code – код валюты
    • Name – наименование валюты
    • IsMain – признак валюты «Главная»
    • IsNational – признак валюты «Национальная»
    • IsoCode – ISO код валюты
    • Key – идентификатор валюты
    • IsShowInSearch – признак показывать ли валюту в поиске
Пример

Вызов метода Currency

GET http://localhost:9000/TourSearchOwin/Currency

Возвращаемый результат метода Currency (в формате JSON)

[
      {
      "Code": "EU",
      "Name": "Euro",
      "IsMain": false,
      "IsNational": false,
      "IsoCode": "EUR",
      "Key": 2,
      "IsShowInSearch": true
   },
      {
      "Code": "рб",
      "Name": "Рубль",
      "IsMain": false,
      "IsNational": true,
      "IsoCode": "RUR",
      "Key": 14,
      "IsShowInSearch": true
   },
      {
      "Code": "$",
      "Name": "US Dollar",
      "IsMain": true,
      "IsNational": false,
      "IsoCode": "USD",
      "Key": 1,
      "IsShowInSearch": true
   }
]


Выгрузка квотируемых услуг системы (QuotedServices)

Метод производит выгрузку услуг с признаком «Квотируемая»

  • Формат запроса:
    • GET .../TourSearchOwin/QuotedServices
  • Принимаемые параметры:
    • нет принимаемых параметров
  • Возвращаемый результат:
    • Key – идентификатор услуги
    • Code – код услуги
    • Name – наименование услуги (русский)
    • NameLat – наименование услуги (английский)
    • IsDuration – наличие продолжительности у услуги
    • IsCity – наличие города у услуги
    • IsSubCode1 – признак наличия SubCode1 у услуги (вид проживания у отеля, тариф у авиаперелета)
    • IsSubCode2 – признак наличия SubCode2 у услуги (тип питания у отеля)
    • Quoted – признак квотируемости услуги
    • CheckGeoPoint – наличие геоточек у услуги
    • IsRoute – признак маршрутной услуги
    • IsPartnerBasedOn – признак сопоставления партнера услуги в зависимости от отеля
    • Control – идентификатор статуса услуги
Пример

Вызов метода QuotedServices

GET http://localhost:9000/TourSearchOwin/QuotedServices

Возвращаемый результат метода QuotedServices (в формате JSON)

[
      {
      "Key": 1,
      "Code": "А_П",
      "Name": "Авиаперелет",
      "NameLat": "Flight",
      "IsDuration": false,
      "IsCity": true,
      "IsSubCode1": true,
      "IsSubCode2": false,
      "Quoted": true,
      "CheckGeoPoint": true,
      "IsRoute": true,
      "IsPartnerBasedOn": false,
      "Control": 1
   },
      {
      "Key": 3,
      "Code": "HOTEL",
      "Name": "Отель/Круиз",
      "NameLat": "Hotel/Cruise",
      "IsDuration": true,
      "IsCity": true,
      "IsSubCode1": true,
      "IsSubCode2": true,
      "Quoted": true,
      "CheckGeoPoint": true,
      "IsRoute": true,
      "IsPartnerBasedOn": false,
      "Control": 1
   }
]


Поиск авиабилетов в одну сторону (oneway)

Выгрузка городов отправления (oneway)

Метод производит выгрузку всех доступных городов отправления.

  • Формат запроса:
    • GET .../TourSearchOwin/individuals/avia/oneway/departures?
  • Принимаемые параметры:
    • нет принимаемых параметров
  • Возвращаемый результат:
    • Key – ключ города
    • Name – название города
Пример

Вызов метода

GET http://localhost:9000/TourSearchOwin/individuals/avia/oneway/departures?

Возвращаемый результат метода (в формате JSON)

[{
	"Key": 312,
	"Name": "Астрахань"
},
{
	"Key": 1,
	"Name": "Москва"
}]


Выгрузка списка стран прибытия (oneway)

Метод производит выгрузку всех доступных направлений.

  • Формат запроса:
    • GET .../TourSearchOwin/individuals/avia/oneway/arrivals/1/countries?
  • Принимаемые параметры ( * – обязательный):
  • Возвращаемый результат:
    • Name – название страны
    • Key – ключ страны
    • DestinationType – тип результата (всегда возвращается в JSON = 1, в xml = country)
Пример

Вызов метода

GET http://localhost:9000/TourSearchOwin/individuals/avia/oneway/arrivals/1/countries?

Возвращаемый результат метода (в формате JSON)

[{
	"Name": "Австрия",
	"Key": 90,
	"DestinationType": 1
},
{
	"Name": "Индия",
	"Key": 26,
	"DestinationType": 1
},
{
	"Name": "Финляндия",
	"Key": 64,
	"DestinationType": 1
}]


Выгрузка списка городов прибытия (oneway)

Метод возвращает список всех доступных городов по определенному городу отправления и стране прибытия.

  • Формат запроса:
    • GET .../TourSearchOwin/individuals/avia/oneway/arrivals/1/90?
  • Принимаемые параметры ( * – обязательный):
    • 1 * – идентификатор города отправления (полученный из метода .../TourSearchOwin/individuals/avia/oneway/departures?)
    • 90 * – идентификатор страны прибытия (полученный из метода .../TourSearchOwin/individuals/avia/oneway/arrivals/1/countries?)
  • Возвращаемый результат:
    • Key – идентификатор города
    • Name – название города
Пример

Вызов метода

GET http://localhost:9000/TourSearchOwin/individuals/avia/oneway/arrivals/1/90?

Возвращаемый результат метода (в формате JSON)

[{
	"Key": 35,
	"Name": "Вена"
},
{
	"Key": 440,
	"Name": "Зельден"
}]


Выгрузка актуальных дат вылета (oneway)

Метод производит выгрузку доступных дат вылета для поискового запроса.

  • Формат запроса:
    • GET .../TourSearchOwin/individuals/avia/oneway/departures/dates/1/35?
  • Принимаемые параметры ( * – обязательный):
    • 1 * – идентификатор города отправления (полученный из метода .../TourSearchOwin/individuals/avia/oneway/departures?)
    • 35 * – идентификатор города прибытия (полученный из метода .../TourSearchOwin/individuals/avia/oneway/arrivals/1/90?)
  • Возвращаемый результат:
    • массив дат
Пример

Вызов метода

GET http://localhost:9000/TourSearchOwin/individuals/avia/oneway/departures/dates/1/35?

Возвращаемый результат метода (в формате JSON)

["28.08.2018",
"29.08.2018",
"30.08.2018",
"31.08.2018",
"01.09.2018",
"02.09.2018",]


Поиск авиабилетов (oneway)

Метод поиска авиабилетов использует множество параметров для поиска и фильтрации авиабилетов. Метод возвращает варианты перелетов в порядке возрастания цены.

  • Формат запроса:
    • GET .../TourSearchOwin/individuals/avia/1/35/20180830?
  • Принимаемые параметры ( * – обязательный):
    • 1 * – идентификатор города отправления (полученный из метода .../TourSearchOwin/individuals/avia/oneway/departures?)
    • 35 * – идентификатор города прибытия (полученный из метода .../TourSearchOwin/individuals/avia/oneway/arrivals/1/90?)
    • 20180830 * – дата вылета в формате YYYYMMDD (полученная из метода .../TourSearchOwin/individuals/avia/oneway/departures/dates/1/35?)
    • PageNumber * – номер возвращаемой страницы (по умолчанию возвращается 1)
    • PageSize * – количество возвращаемых результатов на одной странице (возвращается 20)
    • AdultCount * – количество взрослых
    • ChildAges – возраст детей. Если детей несколько, и параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
    • CurrencyName * – код валюты
    • AviaQuota * – информация о квотах на авиаперелет (значения параметров: "1" — фильтр "Есть", "5" — фильтр "Есть+запрос", "7" — фильтр "Все")
    • fromFlexible – гибкий поиск (- "x" дней) от текущей даты, "x" в диапазоне от 1 до 3 дней.
    • toFlexible – гибкий поиск (+ "x" дней) от текущей даты, "x" в диапазоне от 1 до 3 дней.
    • TourKey – просмотр нескольких вариантов перелетов по туру, если такие варианты имеются
    • MinPrice * – минимальная цена (по умолчанию не передается)
    • MaxPrice – максимальная цена (по умолчанию не передается)
    • Airline – ключ авиакомпании (дополнительный фильтр)
    • AirportDeparture – ключ аэропорта вылета (дополнительный фильтр)
    • AirportArrival – ключ аэропорта прилета (дополнительный фильтр)
    • TimeDepartureFrom – время отправления с (по умолчанию возвращается 00:00)
    • TimeDepartureTo – время отправления по (по умолчанию возвращается 23:59)
    • TimeArrivalFrom – время прибытия с (по умолчанию возвращается 00:00)
    • TimeArrivalTo – время прибытия по (по умолчанию возвращается 23:59)
    • ArrivalFlightNoTransfer – производить поиск без пересадок в прямом направлении (true/false, по умолчанию false)
    • DepartureFlightNoTransfer – производить поиск без пересадок в обратном направлении (true/false, по умолчанию false)
    • DepartureFlightNumberTransfer – наличие пересадок в прямом направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более)
    • ArrivalFlightNumberTransfer – наличие пересадок в обратном направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более)
    • Tariff – ключ класса авиаперелета (дополнительный фильтр)
    • CombineAirlines — разрешить комбинировать авиаперелеты (дополнительный фильтр). Параметр применяется только при наличии параметра airline. Обрабатывается начиная с релиза 15.3.
    • CombineTariffs — разрешить комбинировать классы перелета (дополнительный фильтр). Параметр применяется только при наличии параметра tariff. Обрабатывается начиная с релиза 15.3.
  • Возвращаемый результат:
    • CheckMessages – сообщения для логики проверки тура (не используется)
    • Message – сообщение об ошибке
      • Key – код ошибки
      • Value – сообщение об ошибке
    • Result – результаты поиска
      • Key – идентификатов программы тура
      • Name – название программы тура
      • TourUrl – ссылка на программу тура
      • BookingConditions – условия бронирования программы туров
      • DefaultManagers – список ведущих менеджеров
      • Manager – менеджер по умолчанию
      • Branches – список филиалов бронирования
      • DetermineTheBranchOnCity – признак определения филиала в зависимости от города начала поездки
      • StartDate – дата начала тура
      • Duration – продолжительность тура (в днях)
      • DurationInNight – продолжительность тура (в ночах)
      • Types – идентификатор типа туров
      • Cost – цена тура
      • Rate – код валюты тура
      • CityDepature – город отправления
        • Key – идентификатор города отправления
        • Value – название города отправления
      • CountryId – страна тура
      • Services – услуги в туре
        • DepartureCity – город отправления
          • Key – идентификатор
          • Value – название
        • DepartureCountry – страна отправления
          • Key – идентификатор
          • Value – название
        • ArrivalCity – город прибытия
          • Key – идентификатор
          • Value – название
        • ArrivalCountry – страна прибытия
          • Key – идентификатор
          • Value – название
        • DepartureAirport – аэропорт отправления
          • Key – идентификатор
          • Value – название
        • ArrivalAirport – аэропорт прибытия
          • Key – идентификатор
          • Value – название
        • Airline – авиакомпания
          • Key – идентификатор
          • Value – название
        • Aircraft – воздушное судно
          • Key – идентификатор
          • Value – название
        • Flight – рейс
          • Key – идентификатор
          • Value – название
        • DepartureTime – время вылета
        • ArrivalTime – время прилета
        • EndDateTime – дата и время прилета
        • FlightDetails – информация об авиаперелете
          • Tariff – информация о тарифе перелета
            • Key – идентификатор
            • Code – код тарифа
            • Name – название тарифа
          • Cost – разница в стоимости с самым дешевым вариантом
          • QuotaStatus – информация о квоте
            • PlacesStatus – статус по квотам (есть места / нет мест / под запрос)
            • FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
            • IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
          • PartnerId – ключ партнера
          • ByPax – цена за человека (true/false)
          • Partner – информация о партнере
            • Key – идентификатор
            • Value – название
        • FlightSetting – внутренняя информация о перелете из программы туров
          • ServiceId – идентификатор класса услуги (внутренняя информация из программы туров)
          • PatternId – идентификатор паттерна услуги (внутренняя информация из программы туров)
          • FlightId – идентификатор перелета (внутренняя информация из программы туров)
        • FlightSourceMode – локальный или удаленный перелет (внутренняя информация из программы туров)
        • Id – идентификатор базового шаблона услуги (внутренняя информация из программы туров)
        • SvKey – ключ типа услуги
        • IsSubCode1 – признак наличия доп. описания 1
        • IsSubCode2 – признак наличия доп. описания 2
        • IsPartnerBasedOn – признак услуга с приоритетным подбором поставщика
        • Day – день предоставления услуги
        • DurationInNight – продолжительность услуги в ночах
        • BeginDateTime – дата предоставления услуги
        • IsHooded – признак скрытая услуга
        • IsDeleted – признак удаляемая услуга
        • IsNotCalculate – признак не рассчитываемая услуга
        • PacketId – ключ пакета
        • Index – порядковый номер услуги
      • NotRouteServices – не используется
      • MinCostServicesComposition – массив состав услуг минимальной цены
        • Key – ключ
          • TemplateId – идентификатор шаблона
          • PatternId – идентификатор вкладки
          • SettingId – идентификатор услуги
        • Value – значение
          • ServiceType – тип услуги
          • Code – ключ услуги
          • SubCode1 – доп. описание 1
          • SubCode2 – доп. описание 2
          • PacketId – пакет услуги
          • PartnerId – партнер услуги
          • CountryId – страна услуги
          • CityId – город услуги
          • Day – день предоставления услуги
          • DurationInNight – продолжительность услуги в ночах
      • FlightWeight
      • LinkingFlightsRules – объект правил связывания
        • notCombineDifferentAirlineRule – объект не скрещивать авиакомпании
          • airlines – авиакомпании
          • flightSettings – массив ключей ServiceId, PatternId, FlightId
          • enabled – флаг включен/выключен
        • checkPlusMinus1CharterRule – объект Отличие номера рейса на 1
          • FlightSettingPairs – массив чартеров, для которых это правило будет выполняться
          • enabled – флаг включен/выключен
        • notCombineDifferentTariffGroupRule – объект не комбинировать рейсы от разных классов перелетов
          • FlightSettings – массив ключей ServiceId, PatternId, FlightId
          • enabled – флаг включен/выключен
        • notCombineDifferentPartnerRule – объект не комбинировать рейсы от разных партнеров
          • FlightSettings – массив ключей ServiceId, PatternId, FlightId
          • enabled – флаг включен/выключен
        • departureCityEqualsArrivalCityRule – объект Город вылета = городу прилета
          • FlightSettingPairs – чартеры, для которых это будет выполняться
          • enabled – флаг включен/выключен
        • combineOnlySpecificChartersRule – объект не комбинировать различные классы перелетов
          • settings – массив ключей чартеров CharterIds и ServiceId, PatternId, FlightId
          • enabled – флаг включен/выключен
      • RouteSubVariants – не используется
    • SecondaryFiltersResult – результат, если заданы дополнительные фильтры
      • TourTypes – типы тура
        • Id
        • Name
        • ParentId
        • Type
      • TourPrograms – информация по каждой турпрограмме
        • Key
        • Name
        • TourUrl
        • BookingConditions
        • IsLandOnly
        • IsRestrictMultiHotels
        • IsHotelTemplates
        • IsRouteServices
        • MultiHotelDelta
        • Rate
        • DateStart
        • DateEnd
        • Status
          • Key
          • Value
        • Templates
          • $id
          • $id
        • Types
          • Id
          • Name
          • ParentId
          • Type
        • LinkingFlightsRules
          • notCombineDifferentAirlineRule
            • airlines
            • flightSettings
            • enabled
          • checkPlusMinus1CharterRule
            • FlightSettingPairs
            • enabled
          • notCombineDifferentTariffGroupRule
            • FlightSettings
            • enabled
          • notCombineDifferentPartnerRule
            • FlightSettings
            • enabled
          • departureCityEqualsArrivalCityRule
            • FlightSettingPairs
            • enabled
          • combineOnlySpecificChartersRule
            • settings
            • enabled
        • XmlSettings – xml
        • Type
      • TourDurations
      • TourDates
        • HotelCities – не используется
          • '
        • HotelResorts – не используется
          • '
        • HotelCategories – не используется
          • '
        • Hotels – не используется
          • '
        • Pansions – не используется
          • '
        • Airlines – авиакомпании в дополнительных фильтрах
          • '
        • FlightTariffs – класс перелета в дополнительных фильтрах
          • '
        • DepartureCities – города вылета в дополнительных фильтрах
          • '
        • DepartureAirports – аэропорты вылета в дополнительных фильтрах
          • '
        • ArrivalCities – города прибытия в дополнительных фильтрах
          • '
        • ArrivalAirports – аэропорты прибытия в дополнительных фильтрах
          • '
        • HotelTypes – не используется
          • '
Пример

Вызов метода

GET http://localhost:9000/TourSearchOwin/individuals/avia/1/35/20180830?
AdultCount=2&AviaQuota=5&CurrencyName=EU&PageNumber=1&PageSize=20&departureFlightNoTransfer=true

Возвращаемый результат метода (в формате JSON)

{
	"CheckMessages": null,
	"Message": {
		"Key": 0,
		"Value": null
	},
	"Result": [{
		"Key": 100002328,
		"Name": "Общая проверка системы_Aviabooking",
		"TourUrl": "www.megatec.ru",
		"BookingConditions": "<p><strong>Условия бронирования<\/strong><\/p>",
		"DefaultManagers": [-1],
		"Manager": 128,
		"Branches": [1],
		"DetermineTheBranchOnCity": false,
		"StartDate": "2018-08-30T00:00:00",
		"Duration": 10,
		"DurationInNight": 9,
		"Types": [2],
		"Cost": 7.02,
		"Rate": "EU",
		"CityDepature": {
			"Key": 1,
			"Value": "Москва"
		},
		"CountryId": 90,
		"Services": [{
			"DepartureCity": {
				"Key": 1,
				"Value": "Москва"
			},
			"DepartureCountry": {
				"Key": 460,
				"Value": "Россия"
			},
			"ArrivalCity": {
				"Key": 35,
				"Value": "Вена"
			},
			"ArrivalCountry": {
				"Key": 90,
				"Value": "Австрия"
			},
			"DepartureAirport": {
				"Key": "DME",
				"Value": "Домодедово"
			},
			"ArrivalAirport": {
				"Key": "VIE",
				"Value": "Vena"
			},
			"Airline": {
				"Key": "7U",
				"Value": "Авиаэнерго"
			},
			"Aircraft": {
				"Key": "727",
				"Value": "Boeing"
			},
			"Flight": {
				"Key": 773,
				"Value": "111"
			},
			"DepartureTime": "10:00:00",
			"ArrivalTime": "13:00:00",
			"EndDateTime": "2018-08-30T13:00:00",
			"FlightDetails": [{
				"Tariff": {
					"Key": 89,
					"Code": "Y",
					"Name": "Экономический класс"
				},
				"Cost": 7.02,
				"QuotaStatus": {
					"PlacesStatus": 4,
					"FreePlaces": 0,
					"IsFewPlaces": false
				},
				"PartnerId": 10760,
				"ByPax": true,
				"Partner": {
					"Key": 0,
					"Value": null
				}
			}],
			"FlightSetting": {
				"ServiceId": 3,
				"PatternId": 1,
				"FlightId": 1
			},
			"FlightSourceMode": 1,
			"Id": 3,
			"SvKey": 1,
			"IsSubCode1": true,
			"IsSubCode2": false,
			"IsPartnerBasedOn": false,
			"Day": 1,
			"DurationInNight": 0,
			"BeginDateTime": "2018-08-30T10:00:00",
			"IsHooded": false,
			"IsDeleted": false,
			"IsNotCalculate": false,
			"PacketId": 779,
			"Index": 0
		},
		{
			"DepartureCity": {
				"Key": 35,
				"Value": "Вена"
			},
			"DepartureCountry": {
				"Key": 90,
				"Value": "Австрия"
			},
			"ArrivalCity": {
				"Key": 1,
				"Value": "Москва"
			},
			"ArrivalCountry": {
				"Key": 460,
				"Value": "Россия"
			},
			"DepartureAirport": {
				"Key": "VIE",
				"Value": "Vena"
			},
			"ArrivalAirport": {
				"Key": "DME",
				"Value": "Домодедово"
			},
			"Airline": {
				"Key": "7U",
				"Value": "Авиаэнерго"
			},
			"Aircraft": {
				"Key": "727",
				"Value": "Boeing"
			},
			"Flight": {
				"Key": 774,
				"Value": "222"
			},
			"DepartureTime": "15:00:00",
			"ArrivalTime": "16:00:00",
			"EndDateTime": "2018-09-08T16:00:00",
			"FlightDetails": [{
				"Tariff": {
					"Key": 89,
					"Code": "Y",
					"Name": "Экономический класс"
				},
				"Cost": 0,
				"QuotaStatus": {
					"PlacesStatus": 4,
					"FreePlaces": 0,
					"IsFewPlaces": false
				},
				"PartnerId": 10760,
				"ByPax": true,
				"Partner": {
					"Key": 0,
					"Value": null
				}
			}],
			"FlightSetting": {
				"ServiceId": 4,
				"PatternId": 2,
				"FlightId": 1
			},
			"FlightSourceMode": 1,
			"Id": 4,
			"SvKey": 1,
			"IsSubCode1": true,
			"IsSubCode2": false,
			"IsPartnerBasedOn": false,
			"Day": 10,
			"DurationInNight": 0,
			"BeginDateTime": "2018-09-08T15:00:00",
			"IsHooded": false,
			"IsDeleted": false,
			"IsNotCalculate": false,
			"PacketId": 779,
			"Index": 1
		}],
		"NotRouteServices": [],
		"MinCostServicesComposition": [{
			"Key": {
				"TemplateId": 3,
				"PatternId": 1,
				"SettingId": 1
			},
			"Value": {
				"ServiceType": 1,
				"Code": 773,
				"SubCode1": 89,
				"SubCode2": 1,
				"PacketId": 779,
				"PartnerId": 10760,
				"CountryId": 90,
				"CityId": 35,
				"Day": 1,
				"DurationInNight": 0
			}
		},
		{
			"Key": {
				"TemplateId": 4,
				"PatternId": 2,
				"SettingId": 1
			},
			"Value": {
				"ServiceType": 1,
				"Code": 774,
				"SubCode1": 89,
				"SubCode2": 35,
				"PacketId": 779,
				"PartnerId": 10760,
				"CountryId": 460,
				"CityId": 1,
				"Day": 10,
				"DurationInNight": 0
			}
		}],
		"FlightWeight": 2,
		"LinkingFlightsRules": {
			"notCombineDifferentAirlineRule": {
				"airlines": [],
				"flightSettings": [],
				"enabled": false
			},
			"checkPlusMinus1CharterRule": {
				"FlightSettingPairs": [],
				"enabled": false
			},
			"notCombineDifferentTariffGroupRule": {
				"FlightSettings": [],
				"enabled": true
			},
			"notCombineDifferentPartnerRule": {
				"FlightSettings": [],
				"enabled": false
			},
			"departureCityEqualsArrivalCityRule": {
				"FlightSettingPairs": [],
				"enabled": false
			},
			"combineOnlySpecificChartersRule": {
				"settings": [],
				"enabled": false
			}
		},
		"RouteSubVariants": [],
		"Routes": 1
	}],
	"SecondaryFiltersResult": {
		"TourTypes": [{
			"Id": 2,
			"Name": "Стандартный тур",
			"ParentId": null,
			"Type": "TourType"
		}],
		"TourPrograms": [{
			"Key": 100002328,
			"Name": "Общая проверка системы_Aviabooking",
			"TourUrl": "www.megatec.ru",
			"BookingConditions": "<p><strong>Условия бронирования<\/strong><\/p>",
			"DefaultManagers": [-1],
			"Manager": 128,
			"Branches": [1],
			"DetermineTheBranchOnCity": false,
			"IsLandOnly": false,
			"IsRestrictMultiHotels": false,
			"IsHotelTemplates": false,
			"IsRouteServices": true,
			"MultiHotelDelta": 0,
			"Rate": "EU",
			"DateStart": "2018-06-21T00:00:00Z",
			"DateEnd": "2019-05-31T00:00:00Z",
			"UpdateDate": null,
			"Status": {
				"Key": 3,
				"Value": "Доступен для продажи"
			},
			"Templates": [{
				"$id": "1"
			},
			{
				"$id": "2"
			}],
			"Types": [{
				"Id": 2,
				"Name": "Стандартный тур",
				"ParentId": null,
				"Type": "TourType"
			}],
			"LinkingFlightsRules": {
				"notCombineDifferentAirlineRule": {
					"airlines": [],
					"flightSettings": [],
					"enabled": false
				},
				"checkPlusMinus1CharterRule": {
					"FlightSettingPairs": [],
					"enabled": false
				},
				"notCombineDifferentTariffGroupRule": {
					"FlightSettings": [],
					"enabled": true
				},
				"notCombineDifferentPartnerRule": {
					"FlightSettings": [],
					"enabled": false
				},
				"departureCityEqualsArrivalCityRule": {
					"FlightSettingPairs": [],
					"enabled": false
				},
				"combineOnlySpecificChartersRule": {
					"settings": [],
					"enabled": false
				}
			},
			"XmlSettings": "<TourProgram xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">",
			"Type": "TourProgram"
		}],
		"TourDurations": [10],
		"TourDates": ["2018-08-30T00:00:00"],
		"HotelCities": [],
		"HotelResorts": [],
		"HotelCategories": [],
		"Hotels": [],
		"Pansions": [],
		"Airlines": [{
			"Key": 3,
			"Code": "7U",
			"Name": "Авиаэнерго",
			"NameLat": "en_Авиаэнерго",
			"Type": "AirLine"
		}],
		"FlightTariffs": [{
			"Key": 89,
			"Code": "Y",
			"Name": "Экономический класс",
			"NameLat": "Coach economy",
			"Group": null,
			"Type": "AirService"
		}],
		"DepartureCities": [{
			"key": 1,
			"Country": {
				"key": 460,
				"name": "Россия",
				"Code": null,
				"CitizenName": "Россия",
				"CitizenNameLat": "Russia",
				"PassportMinDurCheckFrom": 0,
				"CheckINN": true,
				"PassportMinDur": null,
				"INNName": "ИНН",
				"Web": 0,
				"WebImage": "",
				"WebHTTP": "",
				"AnkLang": 0,
				"Type": "Country"
			},
			"name": "Москва",
			"Code": "MOW",
			"Web": 0,
			"RSKey": 0,
			"WebImage": null,
			"IsDeparture": 1,
			"Type": "City"
		}],
		"DepartureAirports": [{
			"Key": 12,
			"Code": "DME",
			"Name": "Домодедово",
			"NameLat": "Домодедово",
			"CityKey": 1,
			"CountryKey": 460,
			"Letter": "D",
			"Site": 0,
			"Type": "Airport"
		}],
		"ArrivalCities": [{
			"key": 1,
			"Country": {
				"key": 460,
				"name": "Россия",
				"Code": null,
				"CitizenName": "Россия",
				"CitizenNameLat": "Russia",
				"PassportMinDurCheckFrom": 0,
				"CheckINN": true,
				"PassportMinDur": null,
				"INNName": "ИНН",
				"Web": 0,
				"WebImage": "",
				"WebHTTP": "",
				"AnkLang": 0,
				"Type": "Country"
			},
			"name": "Москва",
			"Code": "MOW",
			"Web": 0,
			"RSKey": 0,
			"WebImage": null,
			"IsDeparture": 1,
			"Type": "City"
		}],
		"ArrivalAirports": [{
			"Key": 12,
			"Code": "DME",
			"Name": "Домодедово",
			"NameLat": "Домодедово",
			"CityKey": 1,
			"CountryKey": 460,
			"Letter": "D",
			"Site": 0,
			"Type": "Airport"
		}],
		"HotelTypes": []
	}
}


Поиск авиабилетов туда и обратно (twoway)

Выгрузка городов отправления (twoway)

Метод производит выгрузку всех доступных городов отправления.

  • Формат запроса:
    • GET .../TourSearchOwin/individuals/avia/twoway/departures?
  • Принимаемые параметры:
    • нет принимаемых параметров
  • Возвращаемый результат:
    • Key – ключ города
    • Name – название города
Пример

Вызов метода

GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/departures?

Возвращаемый результат метода (в формате JSON)

[{
	"Key": 312,
	"Name": "Астрахань"
},
{
	"Key": 1,
	"Name": "Москва"
}]


Выгрузка списка стран прибытия (twoway)

Метод производит выгрузку всех доступных направлений.

  • Формат запроса:
    • GET .../TourSearchOwin/individuals/avia/twoway/arrivals/1/countries?
  • Принимаемые параметры ( * – обязательный):
  • Возвращаемый результат:
    • Name – название страны
    • Key – ключ страны
    • DestinationType – тип результата (всегда возвращается в JSON = 1, в xml = country)
Пример

Вызов метода

GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/arrivals/1/countries?

Возвращаемый результат метода (в формате JSON)

[{
	"Name": "Австрия",
	"Key": 90,
	"DestinationType": 1
},
{
	"Name": "Индия",
	"Key": 26,
	"DestinationType": 1
},
{
	"Name": "Финляндия",
	"Key": 64,
	"DestinationType": 1
}]


Выгрузка списка городов прибытия (twoway)

Метод возвращает список всех доступных городов по определенному городу отправления и стране прибытия.

  • Формат запроса:
    • GET .../TourSearchOwin/individuals/avia/twoway/arrivals/1/90?
  • Принимаемые параметры ( * – обязательный):
    • 1 * – идентификатор города отправления (полученный из метода .../TourSearchOwin/individuals/avia/twoway/departures?)
    • 90 * – идентификатор страны прибытия (полученный из метода .../TourSearchOwin/individuals/avia/twoway/arrivals/1/countries?)
  • Возвращаемый результат:
    • Key – идентификатор города
    • Name – название города
Пример

Вызов метода

GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/arrivals/1/90?

Возвращаемый результат метода (в формате JSON)

[{
	"Key": 35,
	"Name": "Вена"
},
{
	"Key": 440,
	"Name": "Зельден"
}]


Выгрузка актуальных дат вылета (twoway)

Метод производит выгрузку доступных дат вылета для поискового запроса.

  • Формат запроса:
    • GET .../TourSearchOwin/individuals/avia/twoway/departures/dates/1/35?
  • Принимаемые параметры ( * – обязательный):
    • 1 * – идентификатор города отправления (полученный из метода .../TourSearchOwin/individuals/avia/twoway/departures?)
    • 35 * – идентификатор города прибытия (полученный из метода .../TourSearchOwin/individuals/avia/twoway/arrivals/1/90?)
  • Возвращаемый результат:
    • массив дат
Пример

Вызов метода

GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/departures/dates/1/35?

Возвращаемый результат метода (в формате JSON)

["28.08.2018",
"29.08.2018",
"30.08.2018",
"31.08.2018",
"01.09.2018",
"02.09.2018",]


Выгрузка актуальных дат возврата (twoway)

Метод производит выгрузку доступных дат возврата для поискового запроса.

  • Формат запроса:
    • GET .../TourSearchOwin/individuals/avia/twoway/arrivals/dates/1/35/20180830?
  • Принимаемые параметры ( * – обязательный):
    • 1 * – идентификатор города отправления (полученный из метода .../TourSearchOwin/individuals/avia/twoway/departures?)
    • 35 * – идентификатор города прибытия (полученный из метода .../TourSearchOwin/individuals/avia/twoway/arrivals/1/90?)
    • 20180830 * – дата вылета в формате YYYYMMDD (полученная из метода .../TourSearchOwin/individuals/avia/twoway/departures/dates/1/35?)
  • Возвращаемый результат:
    • массив дат
Пример

Вызов метода

GET http://localhost:9000/TourSearchOwin/individuals/avia/twoway/arrivals/dates/1/35/20180830?

Возвращаемый результат метода (в формате JSON)

["30.08.2018",
"31.08.2018",
"01.09.2018",
"02.09.2018",]


Поиск авиабилетов (twoway)

Метод поиска авиабилетов использует множество параметров для поиска и фильтрации авиабилетов. Метод возвращает варианты перелетов в порядке возрастания цены.

  • Формат запроса:
    • GET .../TourSearchOwin/individuals/avia/1/35/20180830/20180912?
  • Принимаемые параметры ( * – обязательный):
    • 1 * – идентификатор города отправления (полученный из метода .../TourSearchOwin/individuals/avia/twoway/departures?)
    • 35 * – идентификатор города прибытия (полученный из метода .../TourSearchOwin/individuals/avia/twoway/arrivals/1/90?)
    • 20180830 * – дата вылета в формате YYYYMMDD (полученная из метода .../TourSearchOwin/individuals/avia/twoway/departures/dates/1/35?)
    • 20180912 * – дата возврата в формате YYYYMMDD (полученная из метода .../TourSearchOwin/individuals/avia/twoway/departures/dates/1/35/20180830?)
    • PageNumber * – номер возвращаемой страницы (по умолчанию возвращается 1)
    • PageSize * – количество возвращаемых результатов на одной странице (возвращается 20)
    • AdultCount * – количество взрослых
    • ChildAges – возраст детей. Если детей несколько, и параметры передаются через url, то каждое значение необходимо передавать отдельным параметром.
    • CurrencyName * – код валюты
    • AviaQuota * – информация о квотах на авиаперелет (значения параметров: "1" — фильтр "Есть", "5" — фильтр "Есть+запрос", "7" — фильтр "Все")
    • fromFlexible – гибкий поиск (- "x" дней) от текущей даты, "x" в диапазоне от 1 до 3 дней.
    • toFlexible – гибкий поиск (+ "x" дней) от текущей даты, "x" в диапазоне от 1 до 3 дней.
    • TourKey – просмотр нескольких вариантов перелетов по туру, если такие варианты имеются
    • MinPrice * – минимальная цена (по умолчанию не передается)
    • MaxPrice – максимальная цена (по умолчанию не передается)
    • Airline – ключ авиакомпании (дополнительный фильтр)
    • AirportDeparture – ключ аэропорта вылета (дополнительный фильтр)
    • AirportArrival – ключ аэропорта прилета (дополнительный фильтр)
    • TimeDepartureFrom – время отправления с (по умолчанию возвращается 00:00)
    • TimeDepartureTo – время отправления по (по умолчанию возвращается 23:59)
    • TimeArrivalFrom – время прибытия с (по умолчанию возвращается 00:00)
    • TimeArrivalTo – время прибытия по (по умолчанию возвращается 23:59)
    • ArrivalFlightNoTransfer – производить поиск без пересадок в прямом направлении (true/false, по умолчанию false)
    • DepartureFlightNoTransfer – производить поиск без пересадок в обратном направлении (true/false, по умолчанию false)
    • DepartureFlightNumberTransfer – наличие пересадок в прямом направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более)
    • ArrivalFlightNumberTransfer – наличие пересадок в обратном направлении (1 – одна пересадка, 2 – две пересадки и более, 3 – одна пересадка совместно с двумя пересадками и более)
    • Tariff – ключ класса авиаперелета (дополнительный фильтр)
    • CombineAirlines — разрешить комбинировать авиаперелеты (дополнительный фильтр). Параметр применяется только при наличии параметра airline. Обрабатывается начиная с релиза 15.3.
    • CombineTariffs — разрешить комбинировать классы перелета (дополнительный фильтр). Параметр применяется только при наличии параметра tariff. Обрабатывается начиная с релиза 15.3.
  • Возвращаемый результат:
    • CheckMessages – сообщения для логики проверки тура (не используется)
    • Message – сообщение об ошибке
      • Key – код ошибки
      • Value – сообщение об ошибке
    • Result – результаты поиска
      • Key – идентификатов программы тура
      • Name – название программы тура
      • TourUrl – ссылка на программу тура
      • BookingConditions – условия бронирования программы туров
      • DefaultManagers – список ведущих менеджеров
      • Manager – менеджер по умолчанию
      • Branches – список филиалов бронирования
      • DetermineTheBranchOnCity – признак определения филиала в зависимости от города начала поездки
      • StartDate – дата начала тура
      • Duration – продолжительность тура (в днях)
      • DurationInNight – продолжительность тура (в ночах)
      • Types – идентификатор типа туров
      • Cost – цена тура
      • Rate – код валюты тура
      • CityDepature – город отправления
        • Key – идентификатор города отправления
        • Value – название города отправления
      • CountryId – страна тура
      • Services – услуги в туре
        • DepartureCity – город отправления
          • Key – идентификатор
          • Value – название
        • DepartureCountry – страна отправления
          • Key – идентификатор
          • Value – название
        • ArrivalCity – город прибытия
          • Key – идентификатор
          • Value – название
        • ArrivalCountry – страна прибытия
          • Key – идентификатор
          • Value – название
        • DepartureAirport – аэропорт отправления
          • Key – идентификатор
          • Value – название
        • ArrivalAirport – аэропорт прибытия
          • Key – идентификатор
          • Value – название
        • Airline – авиакомпания
          • Key – идентификатор
          • Value – название
        • Aircraft – воздушное судно
          • Key – идентификатор
          • Value – название
        • Flight – рейс
          • Key – идентификатор
          • Value – название
        • DepartureTime – время вылета
        • ArrivalTime – время прилета
        • EndDateTime – дата и время прилета
        • FlightDetails – информация об авиаперелете
          • Tariff – информация о тарифе перелета
            • Key – идентификатор
            • Code – код тарифа
            • Name – название тарифа
          • Cost – разница в стоимости с самым дешевым вариантом
          • QuotaStatus – информация о квоте
            • PlacesStatus – статус по квотам (есть места / нет мест / под запрос)
            • FreePlaces – количество свободных мест, если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест". Иначе возвращается 0. Если в данном параметре 0, то руководствоваться следует значением, полученном в параметре PlacesStatus.
            • IsFewPlaces – выполнены ли условия, заданные в настройке "Мало": true – если заданы условия количества мест "Мало" и данные условия выполнены, false – если не заданы условия количества мест "Мало" или они заданы, но не выполнены.
          • PartnerId – ключ партнера
          • ByPax – цена за человека (true/false)
          • Partner – информация о партнере
            • Key – идентификатор
            • Value – название
        • FlightSetting – внутренняя информация о перелете из программы туров
          • ServiceId – идентификатор класса услуги (внутренняя информация из программы туров)
          • PatternId – идентификатор паттерна услуги (внутренняя информация из программы туров)
          • FlightId – идентификатор перелета (внутренняя информация из программы туров)
        • FlightSourceMode – локальный или удаленный перелет (внутренняя информация из программы туров)
        • Id – идентификатор базового шаблона услуги (внутренняя информация из программы туров)
        • SvKey – ключ типа услуги
        • IsSubCode1 – признак наличия доп. описания 1
        • IsSubCode2 – признак наличия доп. описания 2
        • IsPartnerBasedOn – признак услуга с приоритетным подбором поставщика
        • Day – день предоставления услуги
        • DurationInNight – продолжительность услуги в ночах
        • BeginDateTime – дата предоставления услуги
        • IsHooded – признак скрытая услуга
        • IsDeleted – признак удаляемая услуга
        • IsNotCalculate – признак не рассчитываемая услуга
        • PacketId – ключ пакета
        • Index – порядковый номер услуги
      • NotRouteServices – не используется
      • MinCostServicesComposition – массив состав услуг минимальной цены
        • Key – ключ
          • TemplateId – идентификатор шаблона
          • PatternId – идентификатор вкладки
          • SettingId – идентификатор услуги
        • Value – значение
          • ServiceType – тип услуги
          • Code – ключ услуги
          • SubCode1 – доп. описание 1
          • SubCode2 – доп. описание 2
          • PacketId – пакет услуги
          • PartnerId – партнер услуги
          • CountryId – страна услуги
          • CityId – город услуги
          • Day – день предоставления услуги
          • DurationInNight – продолжительность услуги в ночах
      • FlightWeight
      • LinkingFlightsRules – объект правил связывания
        • notCombineDifferentAirlineRule – объект не скрещивать авиакомпании
          • airlines – авиакомпании
          • flightSettings – массив ключей ServiceId, PatternId, FlightId
          • enabled – флаг включен/выключен
        • checkPlusMinus1CharterRule – объект Отличие номера рейса на 1
          • FlightSettingPairs – массив чартеров, для которых это правило будет выполняться
          • enabled – флаг включен/выключен
        • notCombineDifferentTariffGroupRule – объект не комбинировать рейсы от разных классов перелетов
          • FlightSettings – массив ключей ServiceId, PatternId, FlightId
          • enabled – флаг включен/выключен
        • notCombineDifferentPartnerRule – объект не комбинировать рейсы от разных партнеров
          • FlightSettings – массив ключей ServiceId, PatternId, FlightId
          • enabled – флаг включен/выключен
        • departureCityEqualsArrivalCityRule – объект Город вылета = городу прилета
          • FlightSettingPairs – чартеры, для которых это будет выполняться
          • enabled – флаг включен/выключен
        • combineOnlySpecificChartersRule – объект не комбинировать различные классы перелетов
          • settings – массив ключей чартеров CharterIds и ServiceId, PatternId, FlightId
          • enabled – флаг включен/выключен
      • RouteSubVariants – не используется
    • SecondaryFiltersResult – результат, если заданы дополнительные фильтры
      • TourTypes – типы тура
        • Id
        • Name
        • ParentId
        • Type
      • TourPrograms – информация по каждой турпрограмме
        • Key
        • Name
        • TourUrl
        • BookingConditions
        • IsLandOnly
        • IsRestrictMultiHotels
        • IsHotelTemplates
        • IsRouteServices
        • MultiHotelDelta
        • Rate
        • DateStart
        • DateEnd
        • Status
          • Key
          • Value
        • Templates
          • $id
          • $id
        • Types
          • Id
          • Name
          • ParentId
          • Type
        • LinkingFlightsRules
          • notCombineDifferentAirlineRule
            • airlines
            • flightSettings
            • enabled
          • checkPlusMinus1CharterRule
            • FlightSettingPairs
            • enabled
          • notCombineDifferentTariffGroupRule
            • FlightSettings
            • enabled
          • notCombineDifferentPartnerRule
            • FlightSettings
            • enabled
          • departureCityEqualsArrivalCityRule
            • FlightSettingPairs
            • enabled
          • combineOnlySpecificChartersRule
            • settings
            • enabled
        • XmlSettings – xml
        • Type
      • TourDurations
      • TourDates
        • HotelCities – не используется
          • '
        • HotelResorts – не используется
          • '
        • HotelCategories – не используется
          • '
        • Hotels – не используется
          • '
        • Pansions – не используется
          • '
        • Airlines – авиакомпании в дополнительных фильтрах
          • '
        • FlightTariffs – класс перелета в дополнительных фильтрах
          • '
        • DepartureCities – города вылета в дополнительных фильтрах
          • '
        • DepartureAirports – аэропорты вылета в дополнительных фильтрах
          • '
        • ArrivalCities – города прибытия в дополнительных фильтрах
          • '
        • ArrivalAirports – аэропорты прибытия в дополнительных фильтрах
          • '
        • HotelTypes – не используется
          • '
Пример

Вызов метода

GET http://localhost:9000/TourSearchOwin/individuals/avia/1/35/20180830/20180908?
AdultCount=2&AviaQuota=5&CurrencyName=EU&PageNumber=1&PageSize=20&departureFlightNoTransfer=true

Возвращаемый результат метода (в формате JSON)

{
	"CheckMessages": null,
	"Message": {
		"Key": 0,
		"Value": null
	},
	"Result": [{
		"Key": 100002328,
		"Name": "Общая проверка системы_Aviabooking",
		"TourUrl": "www.megatec.ru",
		"BookingConditions": "<p><strong>Условия бронирования<\/strong><\/p>",
		"DefaultManagers": [-1],
		"Manager": 128,
		"Branches": [1],
		"DetermineTheBranchOnCity": false,
		"StartDate": "2018-08-30T00:00:00",
		"Duration": 10,
		"DurationInNight": 9,
		"Types": [2],
		"Cost": 7.02,
		"Rate": "EU",
		"CityDepature": {
			"Key": 1,
			"Value": "Москва"
		},
		"CountryId": 90,
		"Services": [{
			"DepartureCity": {
				"Key": 1,
				"Value": "Москва"
			},
			"DepartureCountry": {
				"Key": 460,
				"Value": "Россия"
			},
			"ArrivalCity": {
				"Key": 35,
				"Value": "Вена"
			},
			"ArrivalCountry": {
				"Key": 90,
				"Value": "Австрия"
			},
			"DepartureAirport": {
				"Key": "DME",
				"Value": "Домодедово"
			},
			"ArrivalAirport": {
				"Key": "VIE",
				"Value": "Vena"
			},
			"Airline": {
				"Key": "7U",
				"Value": "Авиаэнерго"
			},
			"Aircraft": {
				"Key": "727",
				"Value": "Boeing"
			},
			"Flight": {
				"Key": 773,
				"Value": "111"
			},
			"DepartureTime": "10:00:00",
			"ArrivalTime": "13:00:00",
			"EndDateTime": "2018-08-30T13:00:00",
			"FlightDetails": [{
				"Tariff": {
					"Key": 89,
					"Code": "Y",
					"Name": "Экономический класс"
				},
				"Cost": 7.02,
				"QuotaStatus": {
					"PlacesStatus": 4,
					"FreePlaces": 0,
					"IsFewPlaces": false
				},
				"PartnerId": 10760,
				"ByPax": true,
				"Partner": {
					"Key": 0,
					"Value": null
				}
			}],
			"FlightSetting": {
				"ServiceId": 3,
				"PatternId": 1,
				"FlightId": 1
			},
			"FlightSourceMode": 1,
			"Id": 3,
			"SvKey": 1,
			"IsSubCode1": true,
			"IsSubCode2": false,
			"IsPartnerBasedOn": false,
			"Day": 1,
			"DurationInNight": 0,
			"BeginDateTime": "2018-08-30T10:00:00",
			"IsHooded": false,
			"IsDeleted": false,
			"IsNotCalculate": false,
			"PacketId": 779,
			"Index": 0
		},
		{
			"DepartureCity": {
				"Key": 35,
				"Value": "Вена"
			},
			"DepartureCountry": {
				"Key": 90,
				"Value": "Австрия"
			},
			"ArrivalCity": {
				"Key": 1,
				"Value": "Москва"
			},
			"ArrivalCountry": {
				"Key": 460,
				"Value": "Россия"
			},
			"DepartureAirport": {
				"Key": "VIE",
				"Value": "Vena"
			},
			"ArrivalAirport": {
				"Key": "DME",
				"Value": "Домодедово"
			},
			"Airline": {
				"Key": "7U",
				"Value": "Авиаэнерго"
			},
			"Aircraft": {
				"Key": "727",
				"Value": "Boeing"
			},
			"Flight": {
				"Key": 774,
				"Value": "222"
			},
			"DepartureTime": "15:00:00",
			"ArrivalTime": "16:00:00",
			"EndDateTime": "2018-09-08T16:00:00",
			"FlightDetails": [{
				"Tariff": {
					"Key": 89,
					"Code": "Y",
					"Name": "Экономический класс"
				},
				"Cost": 0,
				"QuotaStatus": {
					"PlacesStatus": 4,
					"FreePlaces": 0,
					"IsFewPlaces": false
				},
				"PartnerId": 10760,
				"ByPax": true,
				"Partner": {
					"Key": 0,
					"Value": null
				}
			}],
			"FlightSetting": {
				"ServiceId": 4,
				"PatternId": 2,
				"FlightId": 1
			},
			"FlightSourceMode": 1,
			"Id": 4,
			"SvKey": 1,
			"IsSubCode1": true,
			"IsSubCode2": false,
			"IsPartnerBasedOn": false,
			"Day": 10,
			"DurationInNight": 0,
			"BeginDateTime": "2018-09-08T15:00:00",
			"IsHooded": false,
			"IsDeleted": false,
			"IsNotCalculate": false,
			"PacketId": 779,
			"Index": 1
		}],
		"NotRouteServices": [],
		"MinCostServicesComposition": [{
			"Key": {
				"TemplateId": 3,
				"PatternId": 1,
				"SettingId": 1
			},
			"Value": {
				"ServiceType": 1,
				"Code": 773,
				"SubCode1": 89,
				"SubCode2": 1,
				"PacketId": 779,
				"PartnerId": 10760,
				"CountryId": 90,
				"CityId": 35,
				"Day": 1,
				"DurationInNight": 0
			}
		},
		{
			"Key": {
				"TemplateId": 4,
				"PatternId": 2,
				"SettingId": 1
			},
			"Value": {
				"ServiceType": 1,
				"Code": 774,
				"SubCode1": 89,
				"SubCode2": 35,
				"PacketId": 779,
				"PartnerId": 10760,
				"CountryId": 460,
				"CityId": 1,
				"Day": 10,
				"DurationInNight": 0
			}
		}],
		"FlightWeight": 2,
		"LinkingFlightsRules": {
			"notCombineDifferentAirlineRule": {
				"airlines": [],
				"flightSettings": [],
				"enabled": false
			},
			"checkPlusMinus1CharterRule": {
				"FlightSettingPairs": [],
				"enabled": false
			},
			"notCombineDifferentTariffGroupRule": {
				"FlightSettings": [],
				"enabled": true
			},
			"notCombineDifferentPartnerRule": {
				"FlightSettings": [],
				"enabled": false
			},
			"departureCityEqualsArrivalCityRule": {
				"FlightSettingPairs": [],
				"enabled": false
			},
			"combineOnlySpecificChartersRule": {
				"settings": [],
				"enabled": false
			}
		},
		"RouteSubVariants": [],
		"Routes": 1
	}],
	"SecondaryFiltersResult": {
		"TourTypes": [{
			"Id": 2,
			"Name": "Стандартный тур",
			"ParentId": null,
			"Type": "TourType"
		}],
		"TourPrograms": [{
			"Key": 100002328,
			"Name": "Общая проверка системы_Aviabooking",
			"TourUrl": "www.megatec.ru",
			"BookingConditions": "<p><strong>Условия бронирования<\/strong><\/p>",
			"DefaultManagers": [-1],
			"Manager": 128,
			"Branches": [1],
			"DetermineTheBranchOnCity": false,
			"IsLandOnly": false,
			"IsRestrictMultiHotels": false,
			"IsHotelTemplates": false,
			"IsRouteServices": true,
			"MultiHotelDelta": 0,
			"Rate": "EU",
			"DateStart": "2018-06-21T00:00:00Z",
			"DateEnd": "2019-05-31T00:00:00Z",
			"UpdateDate": null,
			"Status": {
				"Key": 3,
				"Value": "Доступен для продажи"
			},
			"Templates": [{
				"$id": "1"
			},
			{
				"$id": "2"
			}],
			"Types": [{
				"Id": 2,
				"Name": "Стандартный тур",
				"ParentId": null,
				"Type": "TourType"
			}],
			"LinkingFlightsRules": {
				"notCombineDifferentAirlineRule": {
					"airlines": [],
					"flightSettings": [],
					"enabled": false
				},
				"checkPlusMinus1CharterRule": {
					"FlightSettingPairs": [],
					"enabled": false
				},
				"notCombineDifferentTariffGroupRule": {
					"FlightSettings": [],
					"enabled": true
				},
				"notCombineDifferentPartnerRule": {
					"FlightSettings": [],
					"enabled": false
				},
				"departureCityEqualsArrivalCityRule": {
					"FlightSettingPairs": [],
					"enabled": false
				},
				"combineOnlySpecificChartersRule": {
					"settings": [],
					"enabled": false
				}
			},
			"XmlSettings": "<TourProgram xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">",
			"Type": "TourProgram"
		}],
		"TourDurations": [10],
		"TourDates": ["2018-08-30T00:00:00"],
		"HotelCities": [],
		"HotelResorts": [],
		"HotelCategories": [],
		"Hotels": [],
		"Pansions": [],
		"Airlines": [{
			"Key": 3,
			"Code": "7U",
			"Name": "Авиаэнерго",
			"NameLat": "en_Авиаэнерго",
			"Type": "AirLine"
		}],
		"FlightTariffs": [{
			"Key": 89,
			"Code": "Y",
			"Name": "Экономический класс",
			"NameLat": "Coach economy",
			"Group": null,
			"Type": "AirService"
		}],
		"DepartureCities": [{
			"key": 1,
			"Country": {
				"key": 460,
				"name": "Россия",
				"Code": null,
				"CitizenName": "Россия",
				"CitizenNameLat": "Russia",
				"PassportMinDurCheckFrom": 0,
				"CheckINN": true,
				"PassportMinDur": null,
				"INNName": "ИНН",
				"Web": 0,
				"WebImage": "",
				"WebHTTP": "",
				"AnkLang": 0,
				"Type": "Country"
			},
			"name": "Москва",
			"Code": "MOW",
			"Web": 0,
			"RSKey": 0,
			"WebImage": null,
			"IsDeparture": 1,
			"Type": "City"
		}],
		"DepartureAirports": [{
			"Key": 12,
			"Code": "DME",
			"Name": "Домодедово",
			"NameLat": "Домодедово",
			"CityKey": 1,
			"CountryKey": 460,
			"Letter": "D",
			"Site": 0,
			"Type": "Airport"
		}],
		"ArrivalCities": [{
			"key": 1,
			"Country": {
				"key": 460,
				"name": "Россия",
				"Code": null,
				"CitizenName": "Россия",
				"CitizenNameLat": "Russia",
				"PassportMinDurCheckFrom": 0,
				"CheckINN": true,
				"PassportMinDur": null,
				"INNName": "ИНН",
				"Web": 0,
				"WebImage": "",
				"WebHTTP": "",
				"AnkLang": 0,
				"Type": "Country"
			},
			"name": "Москва",
			"Code": "MOW",
			"Web": 0,
			"RSKey": 0,
			"WebImage": null,
			"IsDeparture": 1,
			"Type": "City"
		}],
		"ArrivalAirports": [{
			"Key": 12,
			"Code": "DME",
			"Name": "Домодедово",
			"NameLat": "Домодедово",
			"CityKey": 1,
			"CountryKey": 460,
			"Letter": "D",
			"Site": 0,
			"Type": "Airport"
		}],
		"HotelTypes": []
	}
}


Отображение авиабилетов в корзине и бронирование

Отображение авиабилетов в корзине и бронирование производиться стандартным механизмом, описанном в API для разработки онлайн поиска и бронирования .

Приложения

Приложение 1: параметры услуги (ServiceType, Code, SubCode1, SubCode2)

Параметры ServiceType – это ключ типа услуги, Сode – ключ услуги, SubCode1 и SubCode2, возвращаемые при API-запросах – это параметры дополнительных описаний двух типов, индивидуальных для каждой услуги.

Ключ типа услуги (ServiceType) Наименование типа услуги Ключ услуги (Code) Доп. описание 1 (SubCode1) Таблица БД со значениями SubCode1 Доп. описание 2 (SubCode2) Таблица БД со значениями SubCode2
1 Авиаперелет индивидуальный ключ услуги Тариф AirService отсутствует отсутствует
2 Трансфер индивидуальный ключ услуги Вид транспорта Transport отсутствует отсутствует
3 Отель/Круиз индивидуальный ключ услуги Вид проживания (Тип номера + Категория номера + Тип размещения) HotelRooms (Rooms + RoomCategory + Accmdmentype) Тип питания Pansion
4 Экскурсия индивидуальный ключ услуги Вид транспорта Transport отсутствует отсутствует
5 Виза индивидуальный ключ услуги отсутствует отсутствует отсутствует отсутствует
6 Страховка индивидуальный ключ услуги Доп. описание 1 AddDescript1 Доп. описание 2 AddDescript2
8 Доп услуга в отеле/круизе индивидуальный ключ услуги Вид проживания (Тип номера + Категория номера + Тип размещения) HotelRooms (Rooms + RoomCategory + Accmdmentype) Доп. описание 2 AddDescript2
14 Автобусный переезд индивидуальный ключ услуги Место посадки BusTransferPoints Вид транспорта Transport
99 Любая пользовательская услуга индивидуальный ключ услуги Доп. описание 1 AddDescript1 Доп. описание 2 AddDescript2