Мастер-Тур(15):API для разработки поиска авиабилетов — различия между версиями
[досмотренная версия] | [досмотренная версия] |
Biryukov (обсуждение | вклад) |
Biryukov (обсуждение | вклад) |
||
Строка 426: | Строка 426: | ||
** '''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?'') |
* Возвращаемый результат: | * Возвращаемый результат: | ||
** массив дат | ** массив дат | ||
Строка 447: | Строка 447: | ||
</div></div><br /> | </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, то каждое значение необходимо передавать отдельным параметром. | ||
+ | ** '''CurrencyName *''' – код валюты | ||
+ | ** '''AviaQuota *''' – информация о квотах на авиаперелет (значения параметров: ''"1"'' — фильтр "Есть", ''"5"'' — фильтр "Есть+запрос", ''"7"'' — фильтр "Все") | ||
+ | ** '''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''' – ключ класса авиаперелета (дополнительный фильтр) | ||
+ | |||
+ | * Возвращаемый результат: | ||
+ | ** '''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/20180908? | ||
+ | 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 /> | ||
Версия 15:58, 28 августа 2018
Версия статьи от 28-08-2018.
Поддерживаемые версии ПК «Мастер-Тур»: |
Содержание
- 1 Введение
- 2 Установка
- 3 Список методов
- 3.1 Авторизация (Token)
- 3.2 Выгрузка настроек службы поиска (Settings)
- 3.3 Выгрузка списка валют (Currency)
- 3.4 Выгрузка квотируемых услуг системы (QuotedServices)
- 3.5 Выгрузка городов отправления (twoway)
- 3.6 Выгрузка списка стран прибытия (twoway)
- 3.7 Выгрузка списка городов прибытия (twoway)
- 3.8 Выгрузка актуальных дат вылета (twoway)
- 3.9 Выгрузка актуальных дат возврата (twoway)
- 3.10 Поиск авиабилетов
Введение
Данный 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 – максимальное количество продолжительностей, которое будет обрабатываться в клиенте поиска
Вызов метода 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
}
]
|
Выгрузка городов отправления (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?
- Принимаемые параметры ( * – обязательный):
- 1 * – идентификатор города отправления (из контроллера .../TourSearchOwin/individuals/avia/twoway/departures?)
- Возвращаемый результат:
- 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/departures/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/departures/dates/1/35/20180830?
Возвращаемый результат метода (в формате JSON) ["30.08.2018",
"31.08.2018",
"01.09.2018",
"02.09.2018",]
|
Поиск авиабилетов
Метод поиска авиабилетов использует множество параметров для поиска и фильтрации авиабилетов. Метод возвращает варианты перелетов в порядке возрастания цены.
- Формат запроса:
- 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" — фильтр "Все")
- 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 – ключ класса авиаперелета (дополнительный фильтр)
- Возвращаемый результат:
- 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 – название
- Tariff – информация о тарифе перелета
- FlightSetting – внутренняя информация о перелете из программы туров
- ServiceId – идентификатор класса услуги (внутренняя информация из программы туров)
- PatternId – идентификатор паттерна услуги (внутренняя информация из программы туров)
- FlightId – идентификатор перелета (внутренняя информация из программы туров)
- FlightSourceMode – локальный или удаленный перелет (внутренняя информация из программы туров)
- Id – идентификатор базового шаблона услуги (внутренняя информация из программы туров)
- SvKey – ключ типа услуги
- IsSubCode1 – признак наличия доп. описания 1
- IsSubCode2 – признак наличия доп. описания 2
- IsPartnerBasedOn – признак услуга с приоритетным подбором поставщика
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- BeginDateTime – дата предоставления услуги
- IsHooded – признак скрытая услуга
- IsDeleted – признак удаляемая услуга
- IsNotCalculate – признак не рассчитываемая услуга
- PacketId – ключ пакета
- Index – порядковый номер услуги
- DepartureCity – город отправления
- NotRouteServices – не используется
- MinCostServicesComposition – массив состав услуг минимальной цены
- Key – ключ
- TemplateId – идентификатор шаблона
- PatternId – идентификатор вкладки
- SettingId – идентификатор услуги
- Value – значение
- ServiceType – тип услуги
- Code – ключ услуги
- SubCode1 – доп. описание 1
- SubCode2 – доп. описание 2
- PacketId – пакет услуги
- PartnerId – партнер услуги
- CountryId – страна услуги
- CityId – город услуги
- Day – день предоставления услуги
- DurationInNight – продолжительность услуги в ночах
- Key – ключ
- 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 – флаг включен/выключен
- notCombineDifferentAirlineRule – объект не скрещивать авиакомпании
- 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 –
- notCombineDifferentAirlineRule –
- XmlSettings – xml
- Type –
- TourDurations –
- TourDates –
- HotelCities – не используется
- ' –
- HotelResorts – не используется
- ' –
- HotelCategories – не используется
- ' –
- Hotels – не используется
- ' –
- Pansions – не используется
- ' –
- Airlines – авиакомпании в дополнительных фильтрах
- ' –
- FlightTariffs – класс перелета в дополнительных фильтрах
- ' –
- DepartureCities – города вылета в дополнительных фильтрах
- ' –
- DepartureAirports – аэропорты вылета в дополнительных фильтрах
- ' –
- ArrivalCities – города прибытия в дополнительных фильтрах
- ' –
- ArrivalAirports – аэропорты прибытия в дополнительных фильтрах
- ' –
- HotelTypes – не используется
- ' –
- HotelCities – не используется
- TourTypes – типы тура
Вызов метода 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": []
}
}
|