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

Материал из Megatec
Перейти к: навигация, поиск

Версия статьи от 28-12-2018.

Поддерживаемые версии ПК «Мастер-Тур»:
Начиная с релиза 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 – максимальное количество продолжительностей, которое будет обрабатываться в клиенте поиска
Пример

Вызов метода 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 для разработки онлайн поиска и бронирования .

Личные инструменты
Пространства имён

Варианты
Просмотры
Действия
Навигация
Инструменты