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

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
(Выгрузка списка городов (ActualizeCities))
Строка 335: Строка 335:
  
 
===Выгрузка списка городов (ActualizeCities)===
 
===Выгрузка списка городов (ActualizeCities)===
Метод возвращает список всех доступных городов по определенной стране.
+
Метод возвращает список всех доступных городов по определенному городу отправления и стране прибытия.
 
* Формат запроса:
 
* Формат запроса:
 
** .../TourSearchOwin/ActualizeCities?
 
** .../TourSearchOwin/ActualizeCities?
Строка 373: Строка 373:
 
</TD></TR></TABLE>
 
</TD></TR></TABLE>
 
</div></div><br />
 
</div></div><br />
 
 
 
 
 
 
 
 
  
 
==Загрузка справочников==
 
==Загрузка справочников==

Версия 09:44, 21 февраля 2018

Статья находится на стадии разработки.

Версия статьи от 21-02-2018.

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


Введение

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

Установка

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

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

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

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

  • Формат запроса:
    • .../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

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)

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

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

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

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)

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

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

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

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,
      "LittlePercent": null,
      "LittlePlace": 10,
      "LittleAnd": 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,
      "LittlePercent": 99,
      "LittlePlace": 5,
      "LittleAnd": false,
      "IsPartnerBasedOn": false,
      "Control": 1
   }
]


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

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

  • Формат запроса:
    • .../TourSearchOwin/departureCities?
  • Принимаемые параметры:
    • нет принимаемых параметров
  • Возвращаемый результат:
    • Key – идентификатор города
    • Name – название города
Пример

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

http://localhost:9000/TourSearchOwin/departureCities

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

[
      {
      "Key": -1,
      "Name": "Без перелета"
   },
      {
      "Key": 312,
      "Name": "Астрахань"
   },
      {
      "Key": 1,
      "Name": "Москва"
   }
]


Выгрузка списка стран (Destination)

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

  • Формат запроса:
    • .../TourSearchOwin/Destination?
  • Принимаемые параметры ( * – обязательный):
    • pageNumber – номер страницы ???
    • term * – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
    • showAll – ??? (true/false)
    • departureCities * – идентификатор города отправления (из контроллера .../TourSearchOwin/departureCities?)
  • Возвращаемый результат:
    • Name – название страны
    • Key – идентификатор страны
    • DestinationType – ??? (всегда возвращается в JSON = 1, в xml = country)
Пример

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

http://localhost:9000/TourSearchOwin/Destination?pageNumber=1&term=&showAll=false&departureCities=1

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

[
      {
      "Name": "Болгария",
      "Key": 359,
      "DestinationType": 1
   },
      {
      "Name": "Индия",
      "Key": 26,
      "DestinationType": 1
   },
      {
      "Name": "Финляндия",
      "Key": 64,
      "DestinationType": 1
   }
]


Выгрузка списка городов (ActualizeCities)

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

  • Формат запроса:
    • .../TourSearchOwin/ActualizeCities?
  • Принимаемые параметры ( * – обязательный):
    • cityKeys * – идентификатор города отправления (полученный из метода .../TourSearchOwin/departureCities?)
    • Key * – идентификатор страны прибытия (полученный из метода .../TourSearchOwin/Destination?)
    • Name * – название страны прибытия (полученный из метода .../TourSearchOwin/Destination?)
    • term * – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой)
  • Возвращаемый результат:
    • Key – идентификатор города
    • Name – название города
Пример

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

http://localhost:9000/TourSearchOwin/ActualizeCities?cityKeys=1&Key=90&Name=Австрия&term=

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

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


Загрузка справочников

Выгрузка списка категорий отелей (GetHotelCategories)

Метод возвращает список категорий отелей (примеры: 3*, 4*, Apts и т.д.).

  • Формат запроса:
    •  ?action=GetHotelCategories
  • Принимаемые параметры:
    • id – идентификатор категории отеля (опциональный, передача в запрос нескольких id не обрабатывается, в этом случае возвращаются все результаты. Если указан, то запрашивается только одна запись)
  • Возвращаемый результат:
    • id – идентификатор категории отеля
    • name – название категории отеля
Пример

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

http://localhost:9000/TourSearchOwin/searchApi?action=GetHotelCategories

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

{
   "version": "1.0",
   "hotelCategories":    [
            {
         "id": 59,
         "name": "5*"
      },
            {
         "id": 58,
         "name": "4*"
      },
            {
         "id": 57,
         "name": "3*"
      }
   ]
}


Выгрузка списка отелей (GetHotels)

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

  • Формат запроса:
    •  ?action=GetHotels
  • Принимаемые параметры:
    • id – идентификатор отеля (опциональный, передача в запрос нескольких id не обрабатывается, в этом случае возвращаются все результаты. Если указан, то запрашивается только одна запись)
  • Возвращаемый результат:
    • id – идентификатор отеля
    • name – название отеля
    • hotelCategoryId – идентификатор категории отеля
    • resortId – идентификатор города, в котором расположен отель
Пример

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

http://localhost:9000/TourSearchOwin/searchApi?action=GetHotels

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

{
   "version": "1.0",
   "hotels":    [
            {
         "id": 672,
         "name": "'Opal",
         "hotelCategoryId": 59,
         "resortId": 0
      },
            {
         "id": 106,
         "name": "OPERA LAFAYETTE",
         "hotelCategoryId": 23,
         "resortId": 42
      },
            {
         "id": 683,
         "name": "Altstadt Vienna",
         "hotelCategoryId": 23,
         "resortId": 0
      },
            {
         "id": 702,
         "name": "Albatros",
         "hotelCategoryId": 57,
         "resortId": 0
      },
            {
         "id": 709,
         "name": "Am Brilliantengrund",
         "hotelCategoryId": 23,
         "resortId": 40
      },
            {
         "id": 2362,
         "name": "Gastehaus Franz Riml",
         "hotelCategoryId": 58,
         "resortId": 0
      }            
   ]
}


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

Метод возвращает список видов питания (примеры: HB, BB, без питания и т.д.).

  • Формат запроса:
    •  ?action=GetMeals
  • Принимаемые параметры:
    • id – идентификатор вида питания (опциональный, передача в запрос нескольких id не обрабатывается, в этом случае возвращаются все результаты. Если указан, то запрашивается только одна запись)
  • Возвращаемый результат:
    • id – идентификатор вида питания
    • name – название вида питания
Пример

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

http://localhost:9000/TourSearchOwin/searchApi?action=GetMeals

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

{
   "version": "1.0",
   "meals":    [
            {
         "id": 1,
         "name": "Пансион"
      },
            {
         "id": 2,
         "name": "Полупансион"
      },
            {
         "id": 4,
         "name": "Завтрак буфет"
      },
            {
         "id": 11,
         "name": "Шведский стол"
      }
   ]
}


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

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

  • Формат запроса:
    •  ?action=GetCurrencies
  • Принимаемые параметры:
    • id – идентификатор валюты (опциональный, передача в запрос нескольких id не обрабатывается, в этом случае возвращаются все результаты. Если указан, то запрашивается только одна запись)
  • Возвращаемый результат:
    • id – идентификатор валюты
    • name – название валюты
Пример

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

http://localhost:9000/TourSearchOwin/searchApi?action=GetCurrencies

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

{
   "version": "1.0",
   "currencies":    [
            {
         "id": 1,
         "name": "USD"
      },
            {
         "id": 2,
         "name": "EUR"
      },
            {
         "id": 3,
         "name": "RUR"
      },
            {
         "id": 9,
         "name": "UAH"
      }
   ]
}



Выгрузка курсов валют (GetCurrencyRates)

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

  • Формат запроса:
    •  ?action=GetCurrencyRates
  • Принимаемые параметры:
    • нет принимаемых параметров
  • Возвращаемый результат:
    • baseCurrencyId – идентификатор национальной валюты
    • currencyId – идентификатор валюты, курс которой приводится
    • rate – курс валюты (отношение currencyId к baseCurrencyId)
Пример

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

http://localhost:9000/TourSearchOwin/searchApi?action=GetCurrencyRates

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

{
   "version": "1.0",
   "currencyRates":    [
            {
         "baseCurrencyId": 2,
         "currencyId": 1,
         "rate": 65.256054
      },
            {
         "baseCurrencyId": 2,
         "currencyId": 3,
         "rate": 71.168955
      }
   ]
}


Поиск туров (GetTours)

Метод поиска туров использует множество параметров для поиска и фильтрации туров. Метод возвращает наиболее дешевые предложения, найденные по предоставленным параметрам и сгруппированные по отелям в порядке возрастания цены. Количество туров в выдаче регулируется параметром count.

  • Формат запроса:
    •  ?action=GetTours&count=int&countryId=int&departCityId=int&dateFrom=date&dateTo=date&adults=int&kids=int&nightsMin=int&nightsMax=int&currencyId=int
  • Принимаемые параметры ( * – обязательный):
    • offerId – уникальный идентификатор ранее найденного предложения. В случае, если данный параметр задан, все остальные параметры не обязательны и не принимаются в расчет, метод возвращает одну запись.
    • count * – максимальное количество предложений в выдаче.
    • countryId * – идентификатор страны.
    • departCityId * – идентификатор города вылета.
    • dateFrom * – начальная дата в диапазоне дат вылета в формате dd.MM.yyyy (пример: 31.12.2016).
    • dateTo * – конечная дата в диапазоне дат вылета в формате dd.MM.yyyy (пример: 31.12.2016).
    • adults * – количество взрослых.
    • kids * – количество детей.
    • kidsAges – количество полных лет каждому ребёнку, передается в виде строки, перечисление через запятую (пример: 3,6).
    • nightsMin * – минимальное количество дней в туре.
    • nightsMax * – максимальное количество дней в туре.
    • resorts – идентификаторы городов, перечисление через запятую.
    • hotelCategories – идентификаторы категорий отелей, перечисление через запятую.
    • hotels – идентификаторы отелей, перечисление через запятую.
    • meals – идентификаторы видов питания, перечисление через запятую.
    • currencyId * – валюта, в которой будут выданы цены, а также валюта для входящих параметров priceMin и priceMax (если они есть).
    • priceMin – Цена тура от.
    • priceMax – Цена тура до.
    • hotelIsNotInStop – при значении 1 в результатах не должно быть отелей в стопе (отели со статусом «под запрос» допустимы). При значении 0 в результат должны попадать как отели в стопе, так и отели с наличием мест и с местами по запросу.
    • ticketsIncluded * – при значении 1 в результатах должны быть только туры с включенной стоимостью перелета («только отель» недопустимы). При значении 0 в результат должны попадать как туры без перелета, так и туры с перелетом.
    • hasTickets – при значении 1 в результатах должны быть туры только с реальным наличием билетов в перелете (не должно быть туров со стопом на перелете, перелеты со статусом «под запрос» недопустимы). При значении 0 в результат должны попадать как туры без билетов на рейс, так и туры с наличием билетов и с билетами по запросу.
    • excludeUsualTours – при значении 1 из результатов должны быть исключены туры, являющиеся обычными турами (не являющиеся многоотельными). При значении 0 или отсутствии данного параметра такие туры должны быть включены в результат.
    • excludeCombined – при значении 1 из результатов должны быть исключены туры, являющиеся многоотельными. При значении 0 или отсутствии данного параметра такие туры должны быть включены в результат.
    • showToursWithoutHotels – при значении 1 в результатах поиска вместе с обычными турами должны подбираться туры без проживания (без услуги отель в составе тура). При значении 0 или отсутствии данного параметра такие туры должны быть исключены из результата поиска. Параметр обрабатывается, начиная с релиза 15.2.
  • Возвращаемый результат ( * – обязательный):
    • offerId * – уникальный идентификатор предложения, по которому в дальнейшем можно провести актуализацию тура.
    • tourName * – название программы тура.
    • hotelId * – идентификатор отеля.
    • hotelUrl – ссылка на страницу с описанием отеля.
    • resortId * – идентификатор города, в котором расположен отель.
    • hotelCategoryId * – идентификатор категории отеля.
    • mealId * – идентификатор вида питания.
    • htPlaceName * – название типа размещения в номере (примеры: 2 ADL + 1 CH (2-12), 2 ADL + INF).
    • roomTypeName – название категории номера (примеры: standard, deluxe, family, deluxe super ocean view).
    • tourDate * – дата начала тура в формате dd.MM.yyyy (пример: 31.12.2016).
    • tourEndDate – дата окончания тура (дата прилета) в формате dd.MM.yyyy (пример: 31.12.2016).
    • nights * – продолжительность тура в днях.
    • price * – цена тура в валюте, которая была указана во входном параметре currencyId.
    • hotelIsInStop * – наличие мест в отеле, допустимы значения: 0 – есть места, 1 – нет мест, 2 – запрос.
    • ticketsIncluded * – включена ли стоимость билетов в стоимость тура, допустимы значения: 0 – не включена (тур только отель), 1 – включена (пакетный тур).
    • hasEconomTicketsDpt * – наличие билетов эконом класса на место отдыха, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута ticketsIncluded = 0 значение данного параметра будет проигнорировано. Группы перелетов задаются в настройке flightTariffGroups.
    • hasEconomTicketsRtn * – наличие обратных билетов эконом класса, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута ticketsIncluded = 0 значение данного параметра будет проигнорировано. Группы перелетов задаются в настройке flightTariffGroups.
    • hasBusinessTicketsDpt * – наличие билетов бизнес класса на место отдыха, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута ticketsIncluded = 0 значение данного параметра будет проигнорировано. Группы перелетов задаются в настройке flightTariffGroups.
    • hasBusinessTicketsRtn * – наличие обратных билетов бизнес класса, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута ticketsIncluded = 0 значение данного параметра будет проигнорировано. Группы перелетов задаются в настройке flightTariffGroups.
    • tourUrl * – ссылка на корзину (при переходе по которой можно забронировать тур).
    • spoUrl – ссылка на описание тура (указывается в программе тура).
    • fewPlacesInHotel – числовое значение мест в отеле. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
    • fewTicketsDptY – числовое значение мест прямого перелета эконом класса. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
    • fewTicketsRtnY – числовое значение мест обратного перелета эконом класса. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
    • fewTicketsDptB – числовое значение мест прямого перелета бизнес класса. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
    • fewTicketsRtnB – числовое значение мест обратного перелета бизнес класса. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
    • flags – если тур многоотельный, возвращается код 1024. Во всех остальных случаях возвращается 0.
    • description – указывается информация о проживании. Если тур многоотельный, то указывается информация обо всех отелях в туре (пример: 1 н., Resort1, Hotel1, Standard, BB; 3 н., Resort2, Hotel2, Standard, BB; 2 н., Resort3, Hotel3, Standard, BB).
    • receivingParty – параметр не обрабатывается.
    • earlyBookingValidTill – параметр не обрабатывается.
Пример

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

http://localhost:9000/TourSearchOwin/searchApi?action=GetTours&count=20&countryId=22&departCityId=1
&dateFrom=10.08.2016&dateTo=10.08.2016&ticketsIncluded=0&adults=2&kids=0&nightsMin=7&nightsMax=7&currencyId=1

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

{
   "version": "1.0",
   "tours": [   {
      "offerId": 256,
      "tourName": "Тур в Португалии_авиа",
      "hotelId": 3239,
      "hotelUrl": "www.tophotels.com/NapHotel",
      "resortId": 45,
      "hotelCategoryId": 64,
      "mealId": 38,
      "htPlaceName": "2 Adult",
      "roomTypeName": "Sea View",
      "tourDate": "10.08.2016",
      "tourEndDate": "17.08.2016",
      "nights": 7,
      "price": 1036,
      "hotelIsInStop": 2,
      "ticketsIncluded": 1,
      "hasEconomTicketsDpt": 1,
      "hasEconomTicketsRtn": 2,
      "hasBusinessTicketsDpt": 0,
      "hasBusinessTicketsRtn": 1,
      "tourUrl": "http://localhost/TourSearchClient/Basket?departureCities=1&destination=1_22&tour=161&date=10.08.16&duration=8&hotelScheme=1_7_3239_221_10760
&adultCount=2&hotelQuota=7&aviaQuota=7&serviceDescriptions=2_1_586_89_1_22_33_221_10760_1_0,
1_3_3239_1148_38_22_33_221_10760_1_7,3_1_587_89_33_460_1_221_10760_8_0&currency=USD",
      "fewPlacesInHotel": 5,
      "fewTicketsDptY": 8,
      "fewTicketsRtnY": 8,
      "fewTicketsDptB": null,
      "fewTicketsRtnB": null,
      "spoUrl": "wiki.megatec.ru",
      "flags": 0,
      "description": "5 н., Порту, 3* Paradisos, Standart, BB",
      "receivingParty": "",
      "earlyBookingValidTill": ""
   }]
}


Актуализация тура (ActualizeTour)

Метод служит для получения окончательной цены тура (со всеми обязательными доплатами и сборами), списка включенных в стоимость тура услуг, а также вариантов перелета, возможных дополнительных услуг и доплат по ним. Метод должен возвращать цену самой дешевой конфигурации запрашиваемого предложения. Для корректной работы метода необходимо, чтобы offerId был уникален для предложений с разным составом группы туристов, даже в случае если все прочие параметры предложений совпадают.

  • Формат запроса:
    •  ?action=ActualizeTour
  • Принимаемые параметры ( * – обязательный):
    • offerId * – уникальный идентификатор ранее найденного предложения.
    • currencyId * – валюта, в которой рассчитывается цена и доплаты.
  • Возвращаемый результат ( * – обязательный):
    • price * – актуализированная цена тура в валюте, которая была указана во входном параметре currencyId.
    • ticketsIsIncluded * – включена ли стоимость билетов в стоимость тура, допустимы значения: 0 – не включена (тур только отель), 1 – включена (пакетный тур).
    • hotelIsInStop – наличие мест в отеле, допустимы значения: 0 – есть места, 1 – нет мест, 2 – запрос.
    • hasEconomTicketsDpt * – наличие билетов эконом класса на место отдыха, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута ticketsIncluded = 0 значение данного параметра будет проигнорировано.
    • hasEconomTicketsRtn * – наличие обратных билетов эконом класса, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута ticketsIncluded = 0 значение данного параметра будет проигнорировано.
    • hasBusinessTicketsDpt * – наличие билетов бизнес класса на место отдыха, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута ticketsIncluded = 0 значение данного параметра будет проигнорировано.
    • hasBusinessTicketsRtn * – наличие обратных билетов бизнес класса, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. При значении атрибута ticketsIncluded = 0 значение данного параметра будет проигнорировано.
    • fewPlacesInHotel – числовое значение мест в отеле. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
    • fewEconomTicketsDpt – числовое значение мест прямого перелета эконом класса. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
    • fewEconomTicketsRtn – числовое значение мест обратного перелета эконом класса. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
    • fewBusinessTicketsDpt – числовое значение мест прямого перелета бизнес класса. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
    • fewBusinessTicketsRtn – числовое значение мест обратного перелета бизнес класса. По умолчанию поле возвращается с пустым значением. Если удовлетворяются условия, заданные в настройке "Мало", но не включена настройка "Отображать числовое значение оставшихся мест" в панели администрирования, то возвращается значение «-1». Если удовлетворяются условия, заданные в настройке "Мало" и включена настройка "Отображать числовое значение оставшихся мест", то возвращается числовое значение того количества мест, которое осталось.
    • tourUrl – ссылка на корзину (при переходе по которой можно забронировать тур).
    • services – список услуг, которые могут быть в туре
      • id * – идентификатор услуги, уникальный в рамках данного предложения.
      • type * – Тип услуги. Может принимать одно из следующих значений:
        • HotelInfo – отель
        • Insurance – страховка
        • DptTransport – перелет туда
        • RtnTransport – перелет обратно
        • MidDptTransport – промежуточный перелет туда (при пересадке)
        • MidRtnTransport – промежуточный перелет обратно (при пересадке)
        • AdditionalService – дополнительная услуга
        • Transfer – трансфер
        • Excursion – экскурсия
        • Visa – виза
      • name * – наименование услуги
      • isIncluded * – включена ли данная услуга в стоимость текущей конфигурации тура, допустимы значения: 0 – не включена, 1 – включена.
      • description – описание услуги в произвольной форме (не обрабатывается).
      • surcharge – стоимость услуги.
      • flightCompatibleIds – совместимые перелеты. Идентификаторы услуг перелетов, представленных в секции services, которые могут применяться совместно с текущей услугой перелета. Для перелета туда заполняется id перелетов обратно и наоборот. Применяется и является обязательным только для услуг типа: DptTransport, RtnTransport, MidDptTransport, MidRtnTransport.
      • flightClass – класс перелета. Группы перелетов для классов задаются в настройке flightTariffGroups. Применяется и является обязательным только для услуг типа: DptTransport, RtnTransport, MidDptTransport, MidRtnTransport. Может принимать одно из следующих значений:
        • ECONOM – эконом
        • BUSINESS – бизнес
      • flightAvailability – наличие билетов, допустимы значения: 0 – нет мест, 1 есть места, 2 – запрос. Применяется и является обязательным только для услуг типа: DptTransport, RtnTransport, MidDptTransport, MidRtnTransport.
      • flightPlacesCount – параметр не обрабатывается, всегда возвращается -1.
      • flightAirportFrom – код аэропорта вылета. Применяется и является обязательным только для услуг типа: DptTransport, RtnTransport, MidDptTransport, MidRtnTransport.
      • flightAirportTo – код аэропорта прилета. Применяется и является обязательным только для услуг типа: DptTransport, RtnTransport, MidDptTransport, MidRtnTransport.
      • flightNum – код авиакомпании и номер рейса. Применяется и является обязательным только для услуг типа: DptTransport, RtnTransport.
      • flightAirline – код авиакомпании. Применяется только для услуг типа: DptTransport, RtnTransport, MidDptTransport, MidRtnTransport.
      • flightStartDateTime – Дата и время вылета в формате dd.MM.yyyy HH:mm (пример: 31.12.2016 14:30). Применяется только для услуг типа: DptTransport, RtnTransport, MidDptTransport, MidRtnTransport.
      • flightEndDateTime – Дата и время прилета в формате dd.MM.yyyy HH:mm (пример: 31.12.2016 14:30). Применяется только для услуг типа: DptTransport, RtnTransport, MidDptTransport, MidRtnTransport.
      • flightAircraft – тип самолета. Применяется только для услуг типа: DptTransport, RtnTransport, MidDptTransport, MidRtnTransport.
Пример

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

http://localhost:9000/TourSearchOwin/searchApi?action=ActualizeTour&offerID=256&currencyId=1

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

{
   "version": "1.0",
   "actualizedTour":    {
      "price": 1036,
      "ticketsIsIncluded": 1,
      "hotelIsInStop": 2,
      "hasEconomTicketsDpt": 1,
      "hasEconomTicketsRtn": 2,
      "hasBusinessTicketsDpt": 0,
      "hasBusinessTicketsRtn": 1,
      "fewPlacesInHotel": 5,
      "fewEconomTicketsDpt": 8,
      "fewEconomTicketsRtn": 8,
      "fewBusinessTicketsDpt": null,
      "fewBusinessTicketsRtn": null,
      "tourUrl": "http://localhost/TourSearchClient/Basket?departureCities=1&destination=1_22&tour=161&date=10.08.16&duration=8&hotelScheme=1_7_3239_221_10760
&adultCount=2&hotelQuota=7&aviaQuota=7&serviceDescriptions=2_1_586_89_1_22_33_221_10760_1_0,
1_3_3239_1148_38_22_33_221_10760_1_7,3_1_587_89_33_460_1_221_10760_8_0&currency=USD",
      "services":       [
                  {
            "id": 0,
            "type": "DptTransport",
            "name": "А_П::Москва/Лиссабон/3G001, DME-LUS, 11:00-13:00/Y Экономический класс",
            "isIncluded": 1,
            "description": "",
            "surcharge": 100,
            "flightCompatibleIds": "2",
            "flightClass": "ECONOM",
            "flightAvailability": 1,
            "flightPlacesCount": -1,
            "flightAirportFrom": "DME",
            "flightAirportTo": "LUS",
            "flightNum": "3G 001",
            "flightAirline": "3G",
            "flightStartDateTime": "10.08.2016 11:00",
            "flightEndDateTime": "10.08.2016 13:00",
            "flightAircraft": "310"
         },
                  {
            "id": 1,
            "type": "HotelInfo",
            "name": "HOTEL::Лиссабон/Отель в Лиссабоне-4,7 ночей/Double(Sea View),2 Adult/TT NewP",
            "isIncluded": 1,
            "description": "",
            "surcharge": 836,
            "flightCompatibleIds": null,
            "flightClass": null,
            "flightAvailability": -1,
            "flightPlacesCount": -1,
            "flightAirportFrom": null,
            "flightAirportTo": null,
            "flightNum": null,
            "flightAirline": null,
            "flightStartDateTime": null,
            "flightEndDateTime": null,
            "flightAircraft": null
         },
                  {
            "id": 2,
            "type": "RtnTransport",
            "name": "А_П::Лиссабон/Москва/3G002, LUS-DME, 20:00-21:00/Y Экономический класс",
            "isIncluded": 1,
            "description": "",
            "surcharge": 100,
            "flightCompatibleIds": "0",
            "flightClass": "ECONOM",
            "flightAvailability": 2,
            "flightPlacesCount": -1,
            "flightAirportFrom": "LUS",
            "flightAirportTo": "DME",
            "flightNum": "3G 002",
            "flightAirline": "3G",
            "flightStartDateTime": "17.08.2016 20:00",
            "flightEndDateTime": "17.08.2016 21:00",
            "flightAircraft": "310"
         }
      ]
   }
}


Проверка туриста (checkTourist)

Метод служит для получения информации о путевке по номеру путевки и номеру паспорта туриста.

  • Формат запроса:
    • /checkTourist
  • Принимаемые параметры ( * – обязательный):
    • dogovorNumber * – номер путевки.
    • passport * – номер паспорта туриста (заграничного или общегражданского).
  • Возвращаемый результат:
    • isDogovortrue, если путевка найдена по номеру путевки, false, если не найдена.
    • isAnnulatedtrue, если путевка аннулирована, false, если не аннулирована.
    • dogovorStatus – статус путевки
    • isPaytrue, если путевка полностью оплачена, false, если не оплачена или оплачена частично.
    • dogovorDateBegin – дата начала заезда.
    • dogovorDateEnd – дата окончания заезда.
    • dogovorDateCreate – дата создания путевки.
    • isTouristDogovorCreatetrue, если турист (по номеру паспорта) является главным туристом в путевке.
    • services – набор услуг в путевке.
      • svKey – код класса услуги.
      • code – код услуги.
      • subCode1 – код доп. описания 1 услуги.
      • subCode2 – код доп. описания 2 услуги.
      • name – название услуги.
    • touristInfo – информация о главном туристе.
      • lastname – фамилия туриста (рус).
      • firstname – имя туриста (рус).
      • surname – отчество туриста.
      • address – адрес (индекс, город, улица, дом, квартира).
      • postcode – индекс.
      • city – город.
      • street – улица.
      • home – дом.
      • roomNumber – квартира.
Пример

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

http://localhost:9000/TourSearchOwin/checkTourist?dogovorNumber=AU25120001&passport=1234567

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

{
   "isDogovor": true,
   "isAnnulated": false,
   "dogovorStatus": "ОК",
   "isPay": true,
   "dogovorDateBegin": "05.02.2018", 
   "dogovorDateEnd": "12.02.2018",
   "dogovorDateCreate": "01.02.2018",
   "isTouristDogovorCreate": true,
   "services":    [
            {
         "svKey": "1",
         "code": "1088",
         "subCode1": "147",
         "subCode2": "35",
         "name": "А_П::Вена/Москва/SU2353, VIE-SVO, 18:05-22:40/NSU Экономический класс"
      },
            {
         "svKey": "3",
         "code": "698",
         "subCode1": "46200",
         "subCode2": "1",
         "name": "HOTEL::Вена/Graben-1*,5 ночей/DBL(Standart ),2Ad/FB Полный пансион"
      },
            {
         "svKey": "1",
         "code": "1087",
         "subCode1": "147",
         "subCode2": "1",
         "name": "А_П::Москва/Вена/SU2352, SVO-VIE, 16:20-17:05/NSU Экономический класс"
      }
   ],
   "touristInfo":    {
      "lastname": "Ivanov",
      "firstname": "Ivan",
      "surname": "Ivanovich",
      "address": "123456, г. Москва, ул. Ленина, д. 1, кв. 15",
      "postcode": "123456",
      "city": "Москва",
      "street": "Ленина",
      "home": "1",
      "roomNumber": "15"
   }
}