Web-сервисы: Сервис поиска и бронирования авиабилетов — различия между версиями

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
 
(не показана 31 промежуточная версия 3 участников)
Строка 1: Строка 1:
 
Версия статьи от {{REVISIONDAY}}-{{REVISIONMONTH}}-{{REVISIONYEAR}}.
 
Версия статьи от {{REVISIONDAY}}-{{REVISIONMONTH}}-{{REVISIONYEAR}}.
  
==О программе==
+
<table style="background-color:#ffffcc;color:black" border="1" cellpadding="10" cellspacing="0">
 +
<tr>
 +
<td>
 +
Более ранние версии:<br />
 +
[http://wiki.megatec.ru/index.php?title=Web-сервисы:_Сервис_поиска_и_бронирования_авиабилетов&oldid=16178 До версии ПК «Мастер-Web» 2009.2.20.31 включительно]<br />
 +
</td>
 +
</tr>
 +
</table>
 +
<br /><br>
  
Данный модуль предназначен для поиска и подбора данных по рейсам, проверки их стоимости и наличия мест.
+
==Введение==
 +
 
 +
Проблема любого туроператора – продажа горящих билетов на свои чартеры и регулярные рейсы. Сервис дает возможность открыть еще один канал продаж через внешние системы бронирования авиабилетов. В настоящее время (июнь 2016) с этим сервисом может работать консолидатор по продаже авиабилетов [http://www.avia-centr.ru/index Авиа Центр].  
  
 
==Установка==
 
==Установка==
Строка 29: Строка 39:
 
===Подключение к базе данных ПК «Мастер-Тур»===
 
===Подключение к базе данных ПК «Мастер-Тур»===
  
В файле web.config, расположенном в папке wsAviaSearch, в которую установлен web-сервис «Сервис поиска авиабилетов», пропишите необходимые параметры подключения (курсивом выделены значения, которые необходимо ввести).
+
В файле web.config, расположенном в папке wsAviaSearch, в которую установлен web-сервис «Сервис поиска авиабилетов», пропишите необходимые параметры подключения (<span style="color:red">красным цветом</span> выделены значения, которые необходимо ввести).
Строка подключения к базе данных ПК «Мастер-Тур»:
+
Строка подключения к базе данных ПК «Мастер-Тур»:<br />
<add key = "connectionString" value = "Data Source=''ip-адрес сервера базы данных
+
<code><add key = "connectionString" value = "Data Source=<span style="color:red">ip-адрес сервера базы данных ПК «Мастер-Тур»</span>;Initial Catalog=<span style="color:red">название базы данных ПК «Мастер-Тур</span>;User ID=<span style="color:red">логин пользователя ПК «Мастер-Тур»</span>;Password=<span style="color:red">пароль пользователя ПК «Мастер-Тур»</span>"/></code>
ПК Мастер-тур'';Initial Catalog=''название базы данных ПК Мастер-тур'';User ID=
 
''логин пользователя ПК Мастер-тур'';Password=''пароль пользователя ПК Мастер-тур"''/>
 
  
 
==Настройка==
 
==Настройка==
  
После установки «Сервис поиска авиабилетов» доступен по адресу: http://''ip-адрес сервера Мастер-Веб/wsAviaSearch/TicketSerachService.asmx'' (обращение к сервису происходит из javascript с передачей параметров в формате JSON)
+
После установки «Сервис поиска авиабилетов» доступен по адресу: http://''ip-адрес сервера Мастер-Веб/wsAviaSearch/TicketSearchService.asmx''.
  
==Подготовка данных==
+
===Настройки в файле WEB.CONFIG===
===Сигнатура вызова===
+
Дополнительные настройки, задаваемые в файле web.config, находящемся в папке wsAviaSearch позволяют задать дополнительные условия для отображения и проверки данных.
====TicketSearchService.asmx/GetArrivalCities====
+
 
 +
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse"
 +
 
 +
|- style="background-color:#F2F2F2"
 +
 
 +
! width="2%" | №
 +
! width="28%" | Описание
 +
! width="35%" | Значение
 +
! width="35%" | Настройка
 +
 
 +
|- style="vertical-align:text-top"
 +
| 1
 +
| Проверка агентской квоты
 +
|
 +
* '''true''' или '''отсутствие настройки''' — квоты разделяются на агентские/общие
 +
* '''false''' — агентские квоты игнорируются, проверяется только общая квота
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="checkAgentQuotesEnabled" value="false" />
 +
</syntaxhighlight>
  
        /// <summary>
+
|- style="vertical-align:text-top"
        /// Метод возвращает все города/аэропорты прибытия для заданного города или страны вылета.
+
| 2
        /// </summary>
+
| Проверка общей квоты, если закончились места в агентской
        /// <param name="token">Строка авторизации на сервисе</param>
+
|
        /// <param name="jsFlightSearchFilter">JSON-строка установленного формата. Для работы этого метода
+
* '''true''' или '''отсутствие настройки''' — если агентская квота закончилась, то проверяется общая квота
            должен быть задан либо город, либо страна вылета.</param>
+
* '''false''' — если агентская квота закончилась, общая не проверяется
        /// <param name="callback">Имя js-функции, вызываемой в результате работы сервиса</param>
+
| <syntaxhighlight lang="xml" enclose="div">
        [WebMethod]
+
<add key="checkAgentAndCommonQuote" value="false" />
        public void GetArrivalCities(string token, string jsFlightSearchFilter, string callback)
+
</syntaxhighlight>
  
jsFlightSearchFilter может принимать параметры:
+
|- style="vertical-align:text-top"
* ctfrom – ключ города вылета
+
| 3
* ctto – ключ города прилёта
+
| Настройка, определяющая необходимость проверки пакета перелетов в туре при подборе рейсов в корзинах
* cnfrom – ключ страны вылета(всегда приоритетней, чем ctfrom)
+
При проверке наличия мест у услуги Авиаперелет данная настройка [[Мастер-Web:Установка_и_настройка#Таблица взаимодействия настроек|взаимодействует]] с настройкой '''checkAllPartnersQuota'''.
* cnto - ключ страны прилёта(всегда приоритетней, чем ctto)
+
|
 +
* '''true''' или '''отсутствие настройки''' — подбирать рейс только из пакета, указанного в туре
 +
* '''false''' — производить подбор рейса из любого пакета
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="checkFlightPacket" value="true" />
 +
</syntaxhighlight>
  
====TicketSearchService.asmx/GetBackFlightDates====
+
|- style="vertical-align:text-top"
 +
| 4
 +
| Проверка квот без продолжительности после того, как заканчиваются квоты на продолжительность
 +
|
 +
* '''true''' или '''отсутствие настройки''' — проверять квоты без продолжительности после того, как закончатся квоты на продолжительность
 +
* '''false''' — не проверять квоты без продолжительности
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="checkNoLongQuota" value="true" />
 +
</syntaxhighlight>
  
        /// <summary>
+
|- style="vertical-align:text-top"
        /// Метод возвращает даты обратных перелётов.
+
| 5
        /// </summary>
+
| Наличие мест, отображаемое при наступлении релиз-периода
        /// <param name="token">Строка авторизации на сервисе</param>
+
|
        /// <param name="jsFlightSearchFilter">JSON-строка установленного формата. Для работы этого метода
+
* '''request''' — запрос
            должны быть заданы либо город, либо страна вылета и прилёта, а также дата прямого рейса.</param>
+
* '''no''' — нет
        /// <param name="callback">Имя js-функции, вызываемой в результате работы сервиса</param>
+
| <syntaxhighlight lang="xml" enclose="div">
        [WebMethod]
+
<add key="expiredReleaseQuoteResult" value="request" />
        public void GetBackFlightDates(string token, string jsFlightSearchFilter, string callback)
+
</syntaxhighlight>
  
jsFlightSearchFilter может принимать параметры:
+
|- style="vertical-align:text-top"
* ctfrom – ключ города вылета
+
| 6
* ctto – ключ города прилёта
+
| Настройка, позволяющая осуществлять проверку наличия мест в квотах от любого партнера вне зависимости от того, какой партнер предоставляет цену.
* cnfrom – ключ страны вылета(всегда приоритетней, чем ctfrom)
+
При проверке наличия мест у услуги Авиаперелет данная настройка [[Мастер-Web:Установка_и_настройка#Таблица взаимодействия настроек|взаимодействует]] с настройкой '''checkFlightPacket'''.
* cnto - ключ страны прилёта(всегда приоритетней, чем ctto)
+
|
* tdate – дата вылета
+
* '''true''' — осуществлять проверку наличия мест от любого партнера
 +
* '''false''' или '''отсутствие настройки''' — проверка наличия мест осуществляется только по партнеру, предоставляющему цену
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="checkAllPartnersQuota" value="false" />
 +
</syntaxhighlight>
  
====TicketSearchService.asmx/GetDepartureCities====
+
|- style="vertical-align:text-top"
 +
| 7
 +
| Отображение '''наличия мест''' (на [[Мастер-Тур:Квоты|квотируемые услуги]]) в экранах в случае, '''если закончились свободные места в квоте'''.
 +
|
 +
* '''no''' — «СТОП» (нет квот);
 +
* '''request''' — «Запрос» (места по запросу);
 +
* '''отсутствие настройки''' — «СТОП».
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="noPlacesQuoteResult" value="no" />
 +
</syntaxhighlight>
  
        /// <summary>
+
|- style="vertical-align:text-top"
        /// Метод возвращает все возможные города/аэропорты вылета.  
+
| 8
        /// </summary>
+
| Отображение наличия мест в экранах, '''если релиз-период = 0'''.
        /// <param name="token">Строка авторизации на сервисе</param>
+
|
        /// <param name="callback">Имя js-функции, вызываемой в результате работы сервиса</param>
+
* '''true''' — отображается «Запрос», даже если в квоте еще есть свободные места
        [WebMethod]
+
* '''false''' или '''отсутствие настройки''' — отображается статус в соответствии с обычными правилами
        public void GetDepartureCities(string token, string callback)
+
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="setRequestIfReleaseIsZero" value="true" />
 +
</syntaxhighlight>
  
jsFlightSearchFilter может принимать параметры:
+
|- style="vertical-align:text-top"
* ctfrom – ключ города вылета
+
| 9
* ctto – ключ города прилёта
+
| Отображение наличия мест в экранах, '''если релиз-период = 0'''.
* cnfrom – ключ страны вылета(всегда приоритетней, чем ctfrom)
+
|
* cnto - ключ страны прилёта(всегда приоритетней, чем ctto)
+
* '''true''' — отображается «Запрос», даже если в квоте еще есть свободные места
 +
* '''false''' или '''отсутствие настройки''' — отображается статус в соответствии с обычными правилами
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="setRequestIfReleaseIsZero" value="false" />
 +
</syntaxhighlight>
  
====TicketSearchService.asmx/GetFlights====
+
|- style="vertical-align:text-top"
 +
| 10
 +
| Настройка, определяющая '''валюту''', в которой будет '''совершаться бронирование'''.
 +
| '''Код валюты''' (поле '''RA_CODE''' из таблицы <code>'''[Rates]'''</code>).
 +
'''Пересчет стоимости''' авиаперелета происходит по '''[[Мастер-Тур:Справочники#Планируемые кросс-курсы валют|планируемому курсу]]''' на '''дату предоставления услуги'''.
 +
Если настройка '''не задана''', то по умолчанию бронирование происходит в '''[[Мастер-Тур:Справочники#Список Валют|национальной валюте]]'''.
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key ="AviaBookingCurrency" value="$" />
 +
</syntaxhighlight>
  
        /// <summary>
+
|- style="vertical-align:text-top"
        /// Метод возвращает перелёты по заданным параметрам.
+
| 11
        /// </summary>
+
| '''Ключи тарифов''' на авиаперелет для '''размещения «Младенец»''' ('''Infant''').
        /// <param name="token">Строка авторизации на сервисе</param>
+
Настройка используется для подмены услуги перелета для туристов с типом возраста Infant.
        /// <param name="jsFlightSearchFilter">JSON-строка установленного формата. Для работы этого метода
+
| '''Ключи тарифов''' через запятую (поле '''AS_KEY''' из таблицы <code>'''[AirService]'''</code>).
            должны быть заданы либо город, либо страна вылета и прилёта, а также даты прямого и обратного рейсов(для RT).</param>
+
| <syntaxhighlight lang="xml" enclose="div">
        /// <param name="callback">Имя js-функции, вызываемой в результате работы сервиса</param>
+
<add key="infantCharterClasses" value="109" />
        [WebMethod]
+
</syntaxhighlight>
        public void GetFlights(string token, string jsFlightSearchFilter, string callback)
 
  
jsFlightSearchFilter может принимать параметры:
+
|- style="vertical-align:text-top"
* ctfrom – ключ города вылета
+
| 12
* ctto – ключ города прилёта
+
| Задание '''[[Мастер-Тур:Работа с путевкой#Механизм изменения статуса путевки|статуса заявки]]''' в ПК «Мастер-Тур», забронированной через '''метод бронирования''' ПК «Мастер-Web».
* cnfrom – ключ страны вылета(всегда приоритетней, чем ctfrom)
+
|
* cnto - ключ страны прилёта(всегда приоритетней, чем ctto)
+
* '''web''' — статус '''Web-турагент''';
* tdate – дата вылета
+
* '''wait''' — статус '''Wait-лист''';
* bdate – дата прилёта
+
* '''отсутствие параметра''' или пустое значение''' — '''стандартный''' статус в ПК «Мастер-Тур».
* agkey – ключ партнёра для которого будут искаться перелёты
+
Подробнее см. [[Мастер-Тур:Работа с путевкой#Механизм изменения статуса путевки|Механизм изменения статуса путевки]].
* cur – ISO-код валюты
+
| <syntaxhighlight lang="xml" enclose="div">
* class – код класса перелёта
+
<add key="orderStatus" value="web" />
* ityFromName – название города вылета
+
</syntaxhighlight>
* cityFromCode – код города вылета
 
* airportFromCode – код аэропорта вылета
 
* countryFromName – название страны вылета
 
* countryFromCode – код страны вылета
 
* cityToName - название города прилёта
 
* cityToCode – код города прилёта
 
* airportToCode – код аэропорта прилёта
 
* countryToName – название страны прилёта
 
* countryToCode – код страны прилёта
 
* charterClass – класс перелёта(прямой рейс)
 
* airlineKey – ключ авиакомпании(прямой рейс)
 
* airlineCode – код авиакомпании(прямой рейс)
 
* airlineName – название авиакомпании(прямой рейс)
 
* charterNumber – номер рейса(прямой рейс)
 
* charterTime – время рейса(прямой рейс)
 
* airlineBackKey – ключ авиакомпании(обратный рейс)
 
* airlineBackCode - код авиакомпании(обратный рейс)
 
* airlineBackName – название авиакомпании(обратный рейс)
 
* charterBackNumber - номер рейса(обратный рейс)
 
* charterBackTime – время рейса(обратный рейс)
 
* charterBackClass – класс перелёта(обратный рейс)
 
* charterToQuote – код квоты прямого перелёта. Принимает следующие значения(обычно бывают только первые 3, остальные на всякий случай)
 
            Yes = 1,
 
            No = 2,
 
            Request = 4,
 
            None = 0,
 
            AFew = 3,
 
            OnlyAgent = 6,
 
            NoFlight = 5,
 
            All = 7,
 
            NotChecked = 10
 
* charterBackQuote – код квоты обратного перелёта. Принимает те же значения, что и charterToQuote.
 
* dateTo – дата прямого перелёта
 
* dateBack – дата обратного перелёта
 
* cost – цена(может быть дробной)
 
* rate – код валюты
 
* url – ссылка на бронирование, имеет вид reservation.aspx?{параметры}, причём кол-во туристов для бронирования по умолчанию передаётся turistCount=1
 
  
====TicketSearchService.asmx/GetStraightFlightDates====
+
|- style="vertical-align:text-top"
 +
|13
 +
| Определение '''[[Мастер-Тур:Квоты|квотируемых услуг]]''' в турах.
 +
| '''Ключ услуги''', на которую нужно ''учитывать квоты'' в прайс-листе, при выводе конечного статуса наличия мест на тур.
 +
В случае когда '''несколько''' услуг являются квотируемыми, ключи '''перечисляются через запятую''').
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="quotedServices" value="1,3" />
 +
</syntaxhighlight>
  
        /// <summary>
+
|- style="vertical-align:text-top"
        /// Метод возвращает даты прямых перелётов.
+
|14
        /// </summary>
+
| Настройка, выводящая количество мест в квоте на прямой и обратный перелет в методе [[Web-сервисы: Сервис поиска и бронирования авиабилетов#Метод «GetFlights»|GetFlights]].
        /// <param name="token">Строка авторизации на сервисе</param>
+
|
        /// <param name="jsFlightSearchFilter">JSON-строка установленного формата. Для работы этого метода
+
* '''true''' - возвращается параметр ''PlacesCountTo'' и ''PlacesCountBack''
            должны быть заданы либо город, либо страна вылета и прилёта.</param>
+
* '''false''' или '''отсутствие настройки''' - параметр ''PlacesCountTo'' и ''PlacesCountBack'' не возвращается
        /// <param name="callback">Имя js-функции, вызываемой в результате работы сервиса</param>
+
| <syntaxhighlight lang="xml" enclose="div">
        [WebMethod]
+
<add key="showPlacesCount" value="true"/>
        public void GetStraightFlightDates(string token, string jsFlightSearchFilter, string callback)
+
</syntaxhighlight>
 +
|- style="vertical-align:text-top"
  
jsFlightSearchFilter может принимать параметры:
+
|}
* ctfrom – ключ города вылета
 
* ctto – ключ города прилёта
 
* cnfrom – ключ страны вылета(всегда приоритетней, чем ctfrom)
 
* cnto - ключ страны прилёта(всегда приоритетней, чем ctto)
 
  
===Формат возвращаемых данных===
+
==Подготовка данных==
====TicketSearchService.asmx/GetArrivalCities====
+
===Выставление туров в интернет===
 +
====Требования по подготовке данных в ПК «Мастер-тур»====
  
[{"CountryKey":90,"CountryCode":"AT","CountryName":"Австрия","CityKey":275,"CityCode":"AUS","CityName":"Арльберг","AirportCode":"AL","AirportName":"Аэропорт AL"}]
+
В целях избежания ошибок в процессе бронирования предварительно должны быть корректно заполнены соответствующие справочники в ПК «Мастер-Тур».
 +
{| class="wikitable"
 +
|-
 +
! Справочник в ПК «Мастер-Тур»
 +
! Вносимые данные
 +
! Примечание
 +
|-
 +
| Авиаперелеты
 +
| Расписание авиарейсов
 +
| Необходимо для подбора авиаперелетов при выборе направления
 +
|-
 +
| Трансферы
 +
| Город, к которому привязан трансфер;<br />место отправки и прибытия
 +
| Пример: ''трансфер Анталья - Сиде'' должен быть привязан к городу ''Анталья'', ''трансфер Сиде-Анталья'' должен быть привязан к городу ''Сиде''. Место отправки и прибытия – это текстовые поля. Их заполнение необходимо для правильного отображения курортов при выборе трансферов.
 +
|-
 +
|}
  
====TicketSearchService.asmx/GetBackFlightDates====
+
===Выставление туров в систему on-line бронирования===
 +
====Формирование тура в ПК «Мастер-Тур»====
 +
# В [[Мастер-Тур:Конструктор_туров|конструкторе туров]] отдельно создаются туры для перелетов в оба конца и для перелетов только в один конец.
 +
#* Услуги, входящие в туры, привязаны к ''отдельному пакету''.<br />[[Файл: am_711.png|Состав пакетов для туров]]
 +
#* У тура проставлены ''[[Мастер-Тур:Конструктор_туров#Даты туров|даты заезда]]''.
 +
#* ''Трансферы'' заводятся в этих же турах. Без перелета трансфер забронировать нельзя.
 +
#* ''Обратный перелет'' заводится на любой день кроме первого дня тура.
 +
# Заведены ''цены на услуги''.
 +
#* Если в туре перелет ''в один конец'': только вылет или только возврат, то заводить цены на продолжительность необязательно.
 +
#* Если в туре и на прямой, и на обратный перелеты, то цены заводятся ''на продолжительности''.<br />[[Файл: am_712.png|Цена услуги в пакете]]
  
[{"dt":"15.12.2010"},{"dt":"16.12.2010"},{"dt":"17.12.2010"}]
+
====Выставление тура в Интернет в ПК «Мастер-Web»====
 +
В ПК «Мастер-Web» существует возможность выставления для продажи необсчитанных туров в системе online-бронирования авиабилетов. Делается это в [[Мастер-Web:Руководство пользователя. Администрирование ПК Мастер-Web|Системе администрирования ПК «Мастер-Web»]] (<code>'''<nowiki>http://ip-адрес сервера Мастер-Веб/MasterWebStandard/Admin</nowiki>'''</code>).
  
====TicketSearchService.asmx/GetDepartureCities====
+
[[Файл:am_713.png|Система администрирования ПК «Мастер-Web»]]
  
[{"CountryKey":90,"CountryCode":"AT","CountryName":"Австрия","CityKey":275,"CityCode":"AUS","CityName":"Арльберг","AirportCode":"AL","AirportName":"Аэропорт AL"}]
+
Войти в систему администрирования можно под именем (логином) и паролем пользователя ПК Мастер-Тур, если это не ограничено настройками системы (см. инструкции по установке и настройке ПК «Мастер-Web»).
 +
Выберите раздел Выставить тур в Интернет. В загрузившемся экране с помощью фильтра найдите нужный тур и нажмите на ссылку Изменить слева от названия тура в ПК Мастер-Тур. Загрузится экран Тур для выставления тура в Интернет.
  
====TicketSearchService.asmx/GetFlights====
+
В данном экране необходимо поставить галку «<font style="color:red">Разрешить бронирование без пароля</font>», а затем сохранить изменения,
 +
после чего тур попадет в систему бронирования авиабилетов. (Галка появляется при добавлении настройки ''anonymousUserKey''
 +
в [[Мастер-Web:Установка_и_настройка#Настройки в файле WEB.CONFIG системы администрирования|файле web.config Cистемы администрирования]].)
  
[{"cityFromName":"Москва","cityFromCode":"MOW","countryFromName":"Россия","countryFromCode":"RU","cityToName":"Арльберг",
+
[[Файл: am_714.png|x500px|Разрешить бронирование без пароля]]
"cityToCode":"AUS","airportToCode":"AL","countryToName":"Австрия","countryToCode":"AT","airportFromCode":"VKO",
 
"charterToQuote":4,"airlineKey":2,"airlineName":"Атлант Союз","airlineCode":"3G","charterNumber":"1010","charterTime":"00:00","charterClass":"Y","charterBackQuote":4,
 
"airlineBackKey":2,"airlineBackName":"Атлант Союз","airlineBackCode":"3G","charterBackNumber":"1011","charterBackTime":"11:10","charterBackClass":"Y",
 
"dateTo":"17.12.2010","dateBack":"24.12.2010","cost":200,"rate":"$","url":"reservation.aspx?chTo=528&chBack=529&tourDate=2010-12-17&backDate=2010-12-24&charterClass=89&turistCount=1"}]
 
     
 
====TicketSearchService.asmx/GetStraightFlightDates====
 
  
[{"dt":"24.11.2010"},{"dt":"25.11.2010"},{"dt":"26.11.2010"}]
+
По каждому направлению «Город вылета-Страна-Город прилета» может быть не более 3х туров,  
 +
выставленных для надстройки «Бронирование авиабилетов».  
 +
Из этих трех туров только один тур может быть  «Туда-Обратно», только один «Только туда» и только один «Рейс только обратно».
  
 
==Работа в системе==
 
==Работа в системе==
===Пример вызова===
+
  [[Файл: am_064.png|left|Полезная информация]] <BR>
====Пример JSON-запроса к сервису====
+
Сервис принимает токен авторизации. '''Токен''' можно получить через [[Web-сервисы: Сервис для авторизации|'''сервис авторизации''']].
 +
<br />
 +
 
 +
 
 +
===Метод «GetArrivalCities» ===
 +
Метод возвращает все города/аэропорты прибытия для заданного города или страны вылета.
 +
====Сигнатура метода====
 +
<code>public AirportInfo[] GetArrivalCities(string token, int cityFromKey, int countryFromKey)</code>
 +
====Описание принимаемых методом параметров====
 +
* '''token''' - идентификатор аутентификации;
 +
* '''cityFromKey''' - город вылета;
 +
* '''countryFromKey''' - страна вылета.
 +
====Возвращаемые значения====
 +
Метод возвращает результат своей работы в виде элементов массива '''AirportInfo[]'''.
 +
* '''CountryKey''' - ключ страны прилета; 
 +
* '''CountryCode''' - код страны прилета; 
 +
* '''CountryName''' - название страны; 
 +
* '''CityKey''' - ключ города прилёта; 
 +
* '''CityCode''' - код города прилёта; 
 +
* '''CityName''' - название города прилёта; 
 +
* '''AirportCode''' - код аэропорта прилёта;
 +
* '''AirportName''' - название аэропорта.
 +
 
 +
===Метод «GetBackFlightDates»===
 +
Метод возвращает даты обратных перелётов.
 +
====Сигнатура метода====
 +
<code>public DateTime[] GetBackFlightDates(string token, int cityToKey, int countryToKey, int cityFromKey, int countryFromKey, DateTime tourDate)</code>
 +
====Описание принимаемых методом параметров====
 +
* '''token''' - идентификатор аутентификации;
 +
* '''cityToKey''' - город прилёта;
 +
* '''countryToKey''' - страна прилёта;
 +
* '''cityFromKey''' - город вылета;
 +
* '''countryFromKey''' - страна вылета;
 +
* '''tourDate''' - дата вылета.
 +
====Возвращаемые значения====
 +
Метод возвращает результат своей работы в виде элементов массива '''DateTime[]'''.
 +
* '''dateTime''' - дата обратного перелёта.
 +
 
 +
===Метод «GetFlightTransferCities»===
 +
Метод возвращает список мест прибытия трансфера, до которых возможен трансфер из указанного города или страны прилёта.
 +
====Сигнатура метода====
 +
<code>public string[] GetFlightTransferCities(string token, int cityToKey, int countryToKey, int cityFromKey, int countryFromKey, bool oneWay)</code>
 +
====Описание принимаемых методом параметров====
 +
* '''token''' - идентификатор аутентификации;
 +
* '''cityToKey''' - город прилёта;
 +
* '''countryToKey''' - страна прилёта;
 +
* '''cityFromKey''' - город вылета;
 +
* '''countryFromKey''' - страна вылета;
 +
* '''oneWay''' - признак того, что перелет в одну сторону.
 +
====Возвращаемые значения====
 +
Метод возвращает результат своей работы в виде элементов массива '''string[]'''.
 +
* '''String''' - название места прибытия трансфера.
 +
 
 +
===Метод «GetDepartureCities»===
 +
Метод возвращает все возможные города/аэропорты вылета.
 +
====Сигнатура метода====
 +
<code>public AirportInfo[] GetDepartureCities(string token)</code>
 +
====Описание принимаемых методом параметров====
 +
* '''token''' - идентификатор аутентификации.
 +
====Возвращаемые значения====
 +
Метод возвращает результат своей работы в виде элементов массива '''AirportInfo[]'''.
 +
* '''CountryKey''' - ключ страны прилёта; 
 +
* '''CountryCode''' - код страны прилёта; 
 +
* '''CountryName''' - название страны прилёта; 
 +
* '''CityKey''' - ключ города прилёта; 
 +
* '''CityCode''' - код города прилёта; 
 +
* '''CityName''' - название города прилёта; 
 +
* '''AirportCode''' - код аэропорта прилёта;
 +
* '''AirportName''' - название аэропорта прилёта.
 +
 
 +
===Метод «GetFlights»===
 +
Метод возвращает перелёты по заданным параметрам. Подбор тура в одну сторону происходит, если не задана дата возвращения или совпадает с датой вылета.
 +
У прямого и обратного перелета должен совпадать AirlineCode.
 +
====Сигнатура метода====
 +
<code>public FlightTour[] GetFlights(string token, FlightSearchFilter searchFilter)</code>
 +
====Описание принимаемых методом параметров====
 +
* '''token''' - идентификатор аутентификации;
 +
* '''CountryToKey''' - ключ страны прилёта;
 +
* '''CountryFromKey''' - ключ страны вылета;
 +
* '''CityFromKey''' - ключ города вылета;
 +
* '''CityToKey''' - ключ города прилёта;
 +
* '''TourDate''' - дата вылета;
 +
* '''DateBack''' - дата прилёта;
 +
* '''AgentKey''' - ключ партнёра, для которого будут искаться перелёты;
 +
* '''RateISOCode''' - ISO-код валюты;
 +
* '''CharterClass''' -  код класса перелёта;
 +
* '''TransferTo''' - название места прибытия трансфера, полученное методом [[Web-сервисы: Сервис поиска и бронирования авиабилетов#Метод «GetFlightTransferCities»|'''«GetFlightTransferCities»''']].
 +
 
 +
====Возвращаемые значения====
 +
Метод возвращает результат своей работы в виде элементов массива '''FlightTour[]'''.
 +
* '''AirlineBackCode''' - код авиакомпании (обратный рейс);
 +
* '''AirlineBackKey''' - ключ авиакомпании (обратный рейс);
 +
* '''AirlineBackName''' - название авиакомпании (обратный рейс);
 +
* '''AirlineCode''' -  код авиакомпании(прямой рейс);
 +
* '''AirlineKey''' -  ключ авиакомпании(прямой рейс);
 +
* '''AirlineName''' - название авиакомпании(прямой рейс);
 +
* '''AirportFromCode''' - код аэропорта вылета;
 +
* '''AirportToCode''' - код аэропорта прилёта;
 +
* '''CharterBackClass''' -  класс перелёта(обратный рейс);
 +
* '''CharterBackClassKey''' - ключ класса перелёта(обратный рейс);
 +
* '''CharterBackKey''' – ключ чартера перелёта (обратный рейс);
 +
* '''CharterBackPartnerKey''' – ключ партнера перелёта(обратный рейс);
 +
* '''CharterBackNumber''' -  номер рейса(обратный рейс);
 +
* '''CharterBackQuote''' - код квоты (обратный рейс). Возвращает следующие значения:
 +
**Yes = 1,
 +
**No = 2,
 +
**Request = 4,
 +
**None = 0,
 +
**AFew = 3,
 +
**OnlyAgent = 6,
 +
**NoFlight = 5,
 +
**All = 7,
 +
**NotChecked = 10
 +
* '''CharterBackTime''' -  время отправления рейса(обратный рейс);
 +
* '''CharterBackTimeArr''' - время прибытия рейса(обратный рейс);
 +
* '''CharterClass''' - класс перелёта(прямой рейс);
 +
* '''CharterClassKey''' - ключ класса перелёта(прямой рейс);
 +
* '''CharterKey''' – ключ чартера перелета(прямой рейс);
 +
* '''CharterPartnerKey''' – ключ партнера перелета(прямой рейс);
 +
* '''CharterNumber''' -  номер рейса(прямой рейс);
 +
* '''CharterTime''' - время отправления рейса(прямой рейс);
 +
* '''CharterTimeArr''' - время прибытия рейса(прямой рейс);
 +
* '''CharterToQuote''' - код квоты прямого перелёта. Возвращает те же значения, что и charterBackQuote.
 +
* '''CityFromCode''' - код города вылета;
 +
* '''CityFromName''' - название города вылета;
 +
* '''CityToCode''' - код города прилёта;
 +
* '''CityToName''' - название города прилёта;
 +
* '''Cost''' - цена(может быть дробной);
 +
* '''CountryFromCode''' - код страны вылета;
 +
* '''CountryFromName''' - название страны вылета;
 +
* '''CountryToCode''' - код страны прилёта;
 +
* '''CountryToName''' - название страны прилёта;
 +
* '''DateBack''' - дата обратного перелёта (строго в формате dd.mm.yyyy);
 +
* '''DateTo''' - дата прямого перелёта (строго в формате dd.mm.yyyy);
 +
* '''Rate''' - код валюты;
 +
* '''Url''' - ссылка на бронирование;
 +
* '''Transfers''' - ключи трансферов в туре;
 +
* '''PlacesCountTo''' - количество мест в квоте на прямой перелет (возвращается только при включенной настройке [[Web-сервисы: Сервис поиска и бронирования авиабилетов#Настройки в файле WEB.CONFIG|ShowPlacesCount]])
 +
** -1 - квоты не заведены
 +
** 0 - места закончились или стоит Stop-Sale
 +
* '''PlacesCountBack''' - количество мест в квоте на обратный перелет. Возвращает те же значения, что и PlacesCountTo (возвращается только при включенной настройке [[Web-сервисы: Сервис поиска и бронирования авиабилетов#Настройки в файле WEB.CONFIG|ShowPlacesCount]]).
 +
 
 +
===Метод «GetStraightFlightDates»===
 +
Метод возвращает даты прямых перелётов.
 +
====Сигнатура метода====
 +
<code>public DateTime[] GetStraightFlightDates(string token, int cityToKey, int countryToKey, int cityFromKey, int countryFromKey)</code>
 +
====Описание принимаемых методом параметров====
 +
* '''token''' - идентификатор аутентификации;
 +
* '''CityToKey''' - ключ города прилёта;
 +
* '''CountryToKey''' - ключ страны прилёта;
 +
* '''CityFromKey''' - ключ города вылета;
 +
* '''CountryFromKey''' - ключ страны вылета.
 +
====Возвращаемые значения====
 +
Метод возвращает результат своей работы в виде элементов массива '''DateTime[]'''.
 +
* '''dateTime''' - дата прямого перелёта.
 +
 
 +
===Метод «CreateReservation»===
 +
Метод осуществляет бронирование тура.
 +
====Сигнатура метода====
 +
<code>public ReservationResult CreateReservation(string token, FlightTour flightTour, List<Tourist> tourists, ReservationParameters parameters)</code>
 +
====Описание принимаемых методом параметров====
 +
* '''token''' - идентификатор аутентификации;
 +
Метод принимает значения элемента массива '''FlightTour[]''', который возвращает метод [[Web-сервисы: Сервис поиска и бронирования авиабилетов#Метод «GetFlights»|'''«GetFlights»''']], а также значения элемента(ов) массива Tourists:
 +
* '''tourists''' - количество туристов (Пример: "length=1" - 1 турист);
 +
* '''IsMain''' - главный турист. Возможные значения:
 +
** True - главный турист;
 +
** False - не главный турист;
 +
* '''FirstName''' - имя туриста;
 +
* '''LastName'''- фамилия туриста
 +
* '''SecondName''' - отчество туриста
 +
* '''BirthDate''' - дата рождения
 +
* '''PassportSeries''' - серия паспорта
 +
* '''PassportNumber''' - номер паспорта
 +
* '''PassportIssuedBy''' - кем выдан паспорт
 +
* '''PassportIssueDate''' - дата выдачи паспорта
 +
* '''PassportEndDate''' - дата окончания действия паспорта
 +
* '''Sex''' - пол туриста. Возможные значения:
 +
** Male - мужской;
 +
** Female - женский.
 +
* '''AgeType''' - тип возраста туриста. Возможные значения:
 +
** Adult - взрослый;
 +
** Child - ребёнок;
 +
** Infant - младенец.
 +
* '''PassportType''' - тип паспорта туриста. Возможные значения:
 +
** International - загран. паспорт;
 +
** National - общегражданский паспорт.
 +
Параметры бронирования путёвки:
 +
* '''PartnerKey''' - ключ партнера к которому будет привязана путевка;
 +
* '''DupUserKey''' - ключ представителя партнера;
 +
* '''MainMenAddress''' - адрес главного туриста по путевке;
 +
* '''MainMenComment''' - комментарий к главному туристу по путёвке;
 +
* '''MainMenEmail''' - электронная почта главного туриста по путёвке;
 +
* '''MainMenFullName''' - ФИО главного туриста по путёвке;
 +
* '''MainMenPassport''' - паспортные данные главного туриста по путёвке;
 +
* '''MainMenPhone''' - контактный номер главного туриста по путёвке;
 +
* '''IsCalculateOnly''' - возможные значения:
 +
** True - произвести только расчёт путёвки;
 +
** False - рассчитать и забронировать путёвку.
 +
 
 +
====Возвращаемые значения====
 +
* '''Brutto''' - стоимость путевки;
 +
* '''DiscountPercent''' - процент скидки;
 +
* '''DiscountSum''' - сумма скидки;
 +
* '''Rate''' - валюта путевки;
 +
* '''DogovorCode''' - код созданной путевки;
 +
* '''ErrorCode''' - код ошибки;
 +
* '''ErrorMessage''' - текст ошибки.
  
'''callback:'''
+
Корректность результата проверяется значением поля ''ErrorCode'' и ''ErrorMessage'':
jsonp1277981564108 <br>
+
* 0 – нет ошибок;
'''jsFlightSearchFilter:'''
+
* 50 – нет туристов;
{"flightSearchParams":{"ctto":275, "cnfrom":460,"bdate":"2010-12-15"}}
+
* 51 – некорректная дата рождения туриста;
 +
* 52 – указана пустая или слишком длинная фамилия туриста;
 +
* 53 – указано пустое или слишком длинное имя туриста;
 +
* 54 – указано слишком длинное отчество туриста;
 +
* 55 – некорректная дата выдачи паспорта;
 +
* 56 – некорректная дата окончания срока действия паспорта;
 +
* 57 – некорректная серия паспорта (слишком длинная);
 +
* 58 – Некорректный номер паспорта (слишком длинный);
 +
* 100 – не указана дата начала тура;
 +
* 200 – не найден тур для чартеров;
 +
* 300 – не найдены цены для чартеров;
 +
* 400 – отсутствуют квот для чартеров;
 +
* 500 – невозможно произвести бронирование;
 +
* 600 – неизвестная ошибка, подробности в логе;
 +
* 700 – ошибка отправки почты, путёвка создана.
  
[[Category:Мастер-Web_Дополнительные_модули]]
+
[[Category:Web-сервисы]]
[[Category:Мастер-Тур_Веб-сервисы]]
 

Текущая версия на 14:16, 23 января 2018

Версия статьи от 23-01-2018.

Более ранние версии:
До версии ПК «Мастер-Web» 2009.2.20.31 включительно



Содержание

Введение

Проблема любого туроператора – продажа горящих билетов на свои чартеры и регулярные рейсы. Сервис дает возможность открыть еще один канал продаж через внешние системы бронирования авиабилетов. В настоящее время (июнь 2016) с этим сервисом может работать консолидатор по продаже авиабилетов Авиа Центр.

Установка

Для установки Сервиса поиска авиабилетов нужно создать отдельную директорию, например, wsaviasearch (далее в примерах будет использоваться данное название каталога) в корневом каталоге IIS (по умолчанию c:/inetpub/wwwroot) и выложить туда распакованные файлы из архива mw-ws-aviasearch-2009.2.XX.XXXX.zip.

В управлении IIS необходимо создать виртуальный каталог для папки wsAviaSearch.

Создание виртуального каталога

По умолчанию корневым каталогом IIS является C:/Inetpub/wwwroot. Для создания виртуального каталога для приложения находящегося в этом каталоге нужно выполнить следующие действия:

1. Зайти в Пуск (Start) – Панель управления (Control Panel) – Администрирование (Administrative Tools).

Ls0217.png

2. Запустить Internet Information Services (IIS) Manager.

Ls0218.png

3. В открывшемся дереве каталогов выбрать сайты (Web Sites) – Default Web Site (либо другой сайт, на который планируется установить приложение). В открывшемся списке найти папку, для которой нужно создать виртуальный каталог, кликнуть по ней правой кнопкой мыши и выбрать пункт «Преобразовать в приложение».

Ls0219.png

Подключение к базе данных ПК «Мастер-Тур»

В файле web.config, расположенном в папке wsAviaSearch, в которую установлен web-сервис «Сервис поиска авиабилетов», пропишите необходимые параметры подключения (красным цветом выделены значения, которые необходимо ввести). Строка подключения к базе данных ПК «Мастер-Тур»:
<add key = "connectionString" value = "Data Source=ip-адрес сервера базы данных ПК «Мастер-Тур»;Initial Catalog=название базы данных ПК «Мастер-Тур;User ID=логин пользователя ПК «Мастер-Тур»;Password=пароль пользователя ПК «Мастер-Тур»"/>

Настройка

После установки «Сервис поиска авиабилетов» доступен по адресу: http://ip-адрес сервера Мастер-Веб/wsAviaSearch/TicketSearchService.asmx.

Настройки в файле WEB.CONFIG

Дополнительные настройки, задаваемые в файле web.config, находящемся в папке wsAviaSearch позволяют задать дополнительные условия для отображения и проверки данных.

Описание Значение Настройка
1 Проверка агентской квоты
  • true или отсутствие настройки — квоты разделяются на агентские/общие
  • false — агентские квоты игнорируются, проверяется только общая квота
<add key="checkAgentQuotesEnabled" value="false" />
2 Проверка общей квоты, если закончились места в агентской
  • true или отсутствие настройки — если агентская квота закончилась, то проверяется общая квота
  • false — если агентская квота закончилась, общая не проверяется
<add key="checkAgentAndCommonQuote" value="false" />
3 Настройка, определяющая необходимость проверки пакета перелетов в туре при подборе рейсов в корзинах

При проверке наличия мест у услуги Авиаперелет данная настройка взаимодействует с настройкой checkAllPartnersQuota.

  • true или отсутствие настройки — подбирать рейс только из пакета, указанного в туре
  • false — производить подбор рейса из любого пакета
<add key="checkFlightPacket" value="true" />
4 Проверка квот без продолжительности после того, как заканчиваются квоты на продолжительность
  • true или отсутствие настройки — проверять квоты без продолжительности после того, как закончатся квоты на продолжительность
  • false — не проверять квоты без продолжительности
<add key="checkNoLongQuota" value="true" />
5 Наличие мест, отображаемое при наступлении релиз-периода
  • request — запрос
  • no — нет
<add key="expiredReleaseQuoteResult" value="request" />
6 Настройка, позволяющая осуществлять проверку наличия мест в квотах от любого партнера вне зависимости от того, какой партнер предоставляет цену.

При проверке наличия мест у услуги Авиаперелет данная настройка взаимодействует с настройкой checkFlightPacket.

  • true — осуществлять проверку наличия мест от любого партнера
  • false или отсутствие настройки — проверка наличия мест осуществляется только по партнеру, предоставляющему цену
<add key="checkAllPartnersQuota" value="false" />
7 Отображение наличия мест (на квотируемые услуги) в экранах в случае, если закончились свободные места в квоте.
  • no — «СТОП» (нет квот);
  • request — «Запрос» (места по запросу);
  • отсутствие настройки — «СТОП».
<add key="noPlacesQuoteResult" value="no" />
8 Отображение наличия мест в экранах, если релиз-период = 0.
  • true — отображается «Запрос», даже если в квоте еще есть свободные места
  • false или отсутствие настройки — отображается статус в соответствии с обычными правилами
<add key="setRequestIfReleaseIsZero" value="true" />
9 Отображение наличия мест в экранах, если релиз-период = 0.
  • true — отображается «Запрос», даже если в квоте еще есть свободные места
  • false или отсутствие настройки — отображается статус в соответствии с обычными правилами
<add key="setRequestIfReleaseIsZero" value="false" />
10 Настройка, определяющая валюту, в которой будет совершаться бронирование. Код валюты (поле RA_CODE из таблицы [Rates]).

Пересчет стоимости авиаперелета происходит по планируемому курсу на дату предоставления услуги. Если настройка не задана, то по умолчанию бронирование происходит в национальной валюте.

<add key ="AviaBookingCurrency" value="$" />
11 Ключи тарифов на авиаперелет для размещения «Младенец» (Infant).

Настройка используется для подмены услуги перелета для туристов с типом возраста Infant.

Ключи тарифов через запятую (поле AS_KEY из таблицы [AirService]).
<add key="infantCharterClasses" value="109" />
12 Задание статуса заявки в ПК «Мастер-Тур», забронированной через метод бронирования ПК «Мастер-Web».
  • web — статус Web-турагент;
  • wait — статус Wait-лист;
  • отсутствие параметра или пустое значениестандартный статус в ПК «Мастер-Тур».

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

<add key="orderStatus" value="web" />
13 Определение квотируемых услуг в турах. Ключ услуги, на которую нужно учитывать квоты в прайс-листе, при выводе конечного статуса наличия мест на тур.

В случае когда несколько услуг являются квотируемыми, ключи перечисляются через запятую).

<add key="quotedServices" value="1,3" />
14 Настройка, выводящая количество мест в квоте на прямой и обратный перелет в методе GetFlights.
  • true - возвращается параметр PlacesCountTo и PlacesCountBack
  • false или отсутствие настройки - параметр PlacesCountTo и PlacesCountBack не возвращается
<add key="showPlacesCount" value="true"/>

Подготовка данных

Выставление туров в интернет

Требования по подготовке данных в ПК «Мастер-тур»

В целях избежания ошибок в процессе бронирования предварительно должны быть корректно заполнены соответствующие справочники в ПК «Мастер-Тур».

Справочник в ПК «Мастер-Тур» Вносимые данные Примечание
Авиаперелеты Расписание авиарейсов Необходимо для подбора авиаперелетов при выборе направления
Трансферы Город, к которому привязан трансфер;
место отправки и прибытия
Пример: трансфер Анталья - Сиде должен быть привязан к городу Анталья, трансфер Сиде-Анталья должен быть привязан к городу Сиде. Место отправки и прибытия – это текстовые поля. Их заполнение необходимо для правильного отображения курортов при выборе трансферов.

Выставление туров в систему on-line бронирования

Формирование тура в ПК «Мастер-Тур»

  1. В конструкторе туров отдельно создаются туры для перелетов в оба конца и для перелетов только в один конец.
    • Услуги, входящие в туры, привязаны к отдельному пакету.
      Состав пакетов для туров
    • У тура проставлены даты заезда.
    • Трансферы заводятся в этих же турах. Без перелета трансфер забронировать нельзя.
    • Обратный перелет заводится на любой день кроме первого дня тура.
  2. Заведены цены на услуги.
    • Если в туре перелет в один конец: только вылет или только возврат, то заводить цены на продолжительность необязательно.
    • Если в туре и на прямой, и на обратный перелеты, то цены заводятся на продолжительности.
      Цена услуги в пакете

Выставление тура в Интернет в ПК «Мастер-Web»

В ПК «Мастер-Web» существует возможность выставления для продажи необсчитанных туров в системе online-бронирования авиабилетов. Делается это в Системе администрирования ПК «Мастер-Web» (http://ip-адрес сервера Мастер-Веб/MasterWebStandard/Admin).

Система администрирования ПК «Мастер-Web»

Войти в систему администрирования можно под именем (логином) и паролем пользователя ПК Мастер-Тур, если это не ограничено настройками системы (см. инструкции по установке и настройке ПК «Мастер-Web»). Выберите раздел Выставить тур в Интернет. В загрузившемся экране с помощью фильтра найдите нужный тур и нажмите на ссылку Изменить слева от названия тура в ПК Мастер-Тур. Загрузится экран Тур для выставления тура в Интернет.

В данном экране необходимо поставить галку «Разрешить бронирование без пароля», а затем сохранить изменения,
после чего тур попадет в систему бронирования авиабилетов. (Галка появляется при добавлении настройки anonymousUserKey
в файле web.config Cистемы администрирования.)

Разрешить бронирование без пароля

По каждому направлению «Город вылета-Страна-Город прилета» может быть не более 3х туров, 
выставленных для надстройки «Бронирование авиабилетов». 
Из этих трех туров только один тур может быть  «Туда-Обратно», только один «Только туда» и только один «Рейс только обратно».

Работа в системе

Полезная информация


Сервис принимает токен авторизации. Токен можно получить через сервис авторизации.



Метод «GetArrivalCities»

Метод возвращает все города/аэропорты прибытия для заданного города или страны вылета.

Сигнатура метода

public AirportInfo[] GetArrivalCities(string token, int cityFromKey, int countryFromKey)

Описание принимаемых методом параметров

  • token - идентификатор аутентификации;
  • cityFromKey - город вылета;
  • countryFromKey - страна вылета.

Возвращаемые значения

Метод возвращает результат своей работы в виде элементов массива AirportInfo[].

  • CountryKey - ключ страны прилета;
  • CountryCode - код страны прилета;
  • CountryName - название страны;
  • CityKey - ключ города прилёта;
  • CityCode - код города прилёта;
  • CityName - название города прилёта;
  • AirportCode - код аэропорта прилёта;
  • AirportName - название аэропорта.

Метод «GetBackFlightDates»

Метод возвращает даты обратных перелётов.

Сигнатура метода

public DateTime[] GetBackFlightDates(string token, int cityToKey, int countryToKey, int cityFromKey, int countryFromKey, DateTime tourDate)

Описание принимаемых методом параметров

  • token - идентификатор аутентификации;
  • cityToKey - город прилёта;
  • countryToKey - страна прилёта;
  • cityFromKey - город вылета;
  • countryFromKey - страна вылета;
  • tourDate - дата вылета.

Возвращаемые значения

Метод возвращает результат своей работы в виде элементов массива DateTime[].

  • dateTime - дата обратного перелёта.

Метод «GetFlightTransferCities»

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

Сигнатура метода

public string[] GetFlightTransferCities(string token, int cityToKey, int countryToKey, int cityFromKey, int countryFromKey, bool oneWay)

Описание принимаемых методом параметров

  • token - идентификатор аутентификации;
  • cityToKey - город прилёта;
  • countryToKey - страна прилёта;
  • cityFromKey - город вылета;
  • countryFromKey - страна вылета;
  • oneWay - признак того, что перелет в одну сторону.

Возвращаемые значения

Метод возвращает результат своей работы в виде элементов массива string[].

  • String - название места прибытия трансфера.

Метод «GetDepartureCities»

Метод возвращает все возможные города/аэропорты вылета.

Сигнатура метода

public AirportInfo[] GetDepartureCities(string token)

Описание принимаемых методом параметров

  • token - идентификатор аутентификации.

Возвращаемые значения

Метод возвращает результат своей работы в виде элементов массива AirportInfo[].

  • CountryKey - ключ страны прилёта;
  • CountryCode - код страны прилёта;
  • CountryName - название страны прилёта;
  • CityKey - ключ города прилёта;
  • CityCode - код города прилёта;
  • CityName - название города прилёта;
  • AirportCode - код аэропорта прилёта;
  • AirportName - название аэропорта прилёта.

Метод «GetFlights»

Метод возвращает перелёты по заданным параметрам. Подбор тура в одну сторону происходит, если не задана дата возвращения или совпадает с датой вылета.

У прямого и обратного перелета должен совпадать AirlineCode.

Сигнатура метода

public FlightTour[] GetFlights(string token, FlightSearchFilter searchFilter)

Описание принимаемых методом параметров

  • token - идентификатор аутентификации;
  • CountryToKey - ключ страны прилёта;
  • CountryFromKey - ключ страны вылета;
  • CityFromKey - ключ города вылета;
  • CityToKey - ключ города прилёта;
  • TourDate - дата вылета;
  • DateBack - дата прилёта;
  • AgentKey - ключ партнёра, для которого будут искаться перелёты;
  • RateISOCode - ISO-код валюты;
  • CharterClass - код класса перелёта;
  • TransferTo - название места прибытия трансфера, полученное методом «GetFlightTransferCities».

Возвращаемые значения

Метод возвращает результат своей работы в виде элементов массива FlightTour[].

  • AirlineBackCode - код авиакомпании (обратный рейс);
  • AirlineBackKey - ключ авиакомпании (обратный рейс);
  • AirlineBackName - название авиакомпании (обратный рейс);
  • AirlineCode - код авиакомпании(прямой рейс);
  • AirlineKey - ключ авиакомпании(прямой рейс);
  • AirlineName - название авиакомпании(прямой рейс);
  • AirportFromCode - код аэропорта вылета;
  • AirportToCode - код аэропорта прилёта;
  • CharterBackClass - класс перелёта(обратный рейс);
  • CharterBackClassKey - ключ класса перелёта(обратный рейс);
  • CharterBackKey – ключ чартера перелёта (обратный рейс);
  • CharterBackPartnerKey – ключ партнера перелёта(обратный рейс);
  • CharterBackNumber - номер рейса(обратный рейс);
  • CharterBackQuote - код квоты (обратный рейс). Возвращает следующие значения:
    • Yes = 1,
    • No = 2,
    • Request = 4,
    • None = 0,
    • AFew = 3,
    • OnlyAgent = 6,
    • NoFlight = 5,
    • All = 7,
    • NotChecked = 10
  • CharterBackTime - время отправления рейса(обратный рейс);
  • CharterBackTimeArr - время прибытия рейса(обратный рейс);
  • CharterClass - класс перелёта(прямой рейс);
  • CharterClassKey - ключ класса перелёта(прямой рейс);
  • CharterKey – ключ чартера перелета(прямой рейс);
  • CharterPartnerKey – ключ партнера перелета(прямой рейс);
  • CharterNumber - номер рейса(прямой рейс);
  • CharterTime - время отправления рейса(прямой рейс);
  • CharterTimeArr - время прибытия рейса(прямой рейс);
  • CharterToQuote - код квоты прямого перелёта. Возвращает те же значения, что и charterBackQuote.
  • CityFromCode - код города вылета;
  • CityFromName - название города вылета;
  • CityToCode - код города прилёта;
  • CityToName - название города прилёта;
  • Cost - цена(может быть дробной);
  • CountryFromCode - код страны вылета;
  • CountryFromName - название страны вылета;
  • CountryToCode - код страны прилёта;
  • CountryToName - название страны прилёта;
  • DateBack - дата обратного перелёта (строго в формате dd.mm.yyyy);
  • DateTo - дата прямого перелёта (строго в формате dd.mm.yyyy);
  • Rate - код валюты;
  • Url - ссылка на бронирование;
  • Transfers - ключи трансферов в туре;
  • PlacesCountTo - количество мест в квоте на прямой перелет (возвращается только при включенной настройке ShowPlacesCount)
    • -1 - квоты не заведены
    • 0 - места закончились или стоит Stop-Sale
  • PlacesCountBack - количество мест в квоте на обратный перелет. Возвращает те же значения, что и PlacesCountTo (возвращается только при включенной настройке ShowPlacesCount).

Метод «GetStraightFlightDates»

Метод возвращает даты прямых перелётов.

Сигнатура метода

public DateTime[] GetStraightFlightDates(string token, int cityToKey, int countryToKey, int cityFromKey, int countryFromKey)

Описание принимаемых методом параметров

  • token - идентификатор аутентификации;
  • CityToKey - ключ города прилёта;
  • CountryToKey - ключ страны прилёта;
  • CityFromKey - ключ города вылета;
  • CountryFromKey - ключ страны вылета.

Возвращаемые значения

Метод возвращает результат своей работы в виде элементов массива DateTime[].

  • dateTime - дата прямого перелёта.

Метод «CreateReservation»

Метод осуществляет бронирование тура.

Сигнатура метода

public ReservationResult CreateReservation(string token, FlightTour flightTour, List<Tourist> tourists, ReservationParameters parameters)

Описание принимаемых методом параметров

  • token - идентификатор аутентификации;

Метод принимает значения элемента массива FlightTour[], который возвращает метод «GetFlights», а также значения элемента(ов) массива Tourists:

  • tourists - количество туристов (Пример: "length=1" - 1 турист);
  • IsMain - главный турист. Возможные значения:
    • True - главный турист;
    • False - не главный турист;
  • FirstName - имя туриста;
  • LastName- фамилия туриста
  • SecondName - отчество туриста
  • BirthDate - дата рождения
  • PassportSeries - серия паспорта
  • PassportNumber - номер паспорта
  • PassportIssuedBy - кем выдан паспорт
  • PassportIssueDate - дата выдачи паспорта
  • PassportEndDate - дата окончания действия паспорта
  • Sex - пол туриста. Возможные значения:
    • Male - мужской;
    • Female - женский.
  • AgeType - тип возраста туриста. Возможные значения:
    • Adult - взрослый;
    • Child - ребёнок;
    • Infant - младенец.
  • PassportType - тип паспорта туриста. Возможные значения:
    • International - загран. паспорт;
    • National - общегражданский паспорт.

Параметры бронирования путёвки:

  • PartnerKey - ключ партнера к которому будет привязана путевка;
  • DupUserKey - ключ представителя партнера;
  • MainMenAddress - адрес главного туриста по путевке;
  • MainMenComment - комментарий к главному туристу по путёвке;
  • MainMenEmail - электронная почта главного туриста по путёвке;
  • MainMenFullName - ФИО главного туриста по путёвке;
  • MainMenPassport - паспортные данные главного туриста по путёвке;
  • MainMenPhone - контактный номер главного туриста по путёвке;
  • IsCalculateOnly - возможные значения:
    • True - произвести только расчёт путёвки;
    • False - рассчитать и забронировать путёвку.

Возвращаемые значения

  • Brutto - стоимость путевки;
  • DiscountPercent - процент скидки;
  • DiscountSum - сумма скидки;
  • Rate - валюта путевки;
  • DogovorCode - код созданной путевки;
  • ErrorCode - код ошибки;
  • ErrorMessage - текст ошибки.

Корректность результата проверяется значением поля ErrorCode и ErrorMessage:

  • 0 – нет ошибок;
  • 50 – нет туристов;
  • 51 – некорректная дата рождения туриста;
  • 52 – указана пустая или слишком длинная фамилия туриста;
  • 53 – указано пустое или слишком длинное имя туриста;
  • 54 – указано слишком длинное отчество туриста;
  • 55 – некорректная дата выдачи паспорта;
  • 56 – некорректная дата окончания срока действия паспорта;
  • 57 – некорректная серия паспорта (слишком длинная);
  • 58 – Некорректный номер паспорта (слишком длинный);
  • 100 – не указана дата начала тура;
  • 200 – не найден тур для чартеров;
  • 300 – не найдены цены для чартеров;
  • 400 – отсутствуют квот для чартеров;
  • 500 – невозможно произвести бронирование;
  • 600 – неизвестная ошибка, подробности в логе;
  • 700 – ошибка отправки почты, путёвка создана.