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

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
 
(не показаны 24 промежуточные версии 3 участников)
Строка 1: Строка 1:
<br /><span style="color:#FF0000;font-size:120%">Данный модуль не поддерживается.</span><br />
 
 
Версия статьи от {{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 Авиа Центр].  
  
 
==Установка==
 
==Установка==
Строка 30: Строка 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''.
+
После установки «Сервис поиска авиабилетов» доступен по адресу: http://''ip-адрес сервера Мастер-Веб/wsAviaSearch/TicketSearchService.asmx''.
 +
 
 +
===Настройки в файле WEB.CONFIG===
 +
Дополнительные настройки, задаваемые в файле web.config, находящемся в папке wsAviaSearch позволяют задать дополнительные условия для отображения и проверки данных.
 +
 
 +
{| 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>
 +
 
 +
|- style="vertical-align:text-top"
 +
| 2
 +
| Проверка общей квоты, если закончились места в агентской
 +
|
 +
* '''true''' или '''отсутствие настройки''' — если агентская квота закончилась, то проверяется общая квота
 +
* '''false''' — если агентская квота закончилась, общая не проверяется
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="checkAgentAndCommonQuote" value="false" />
 +
</syntaxhighlight>
 +
 
 +
|- style="vertical-align:text-top"
 +
| 3
 +
| Настройка, определяющая необходимость проверки пакета перелетов в туре при подборе рейсов в корзинах
 +
При проверке наличия мест у услуги Авиаперелет данная настройка [[Мастер-Web:Установка_и_настройка#Таблица взаимодействия настроек|взаимодействует]] с настройкой '''checkAllPartnersQuota'''.
 +
|
 +
* '''true''' или '''отсутствие настройки''' — подбирать рейс только из пакета, указанного в туре
 +
* '''false''' — производить подбор рейса из любого пакета
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="checkFlightPacket" value="true" />
 +
</syntaxhighlight>
 +
 
 +
|- style="vertical-align:text-top"
 +
| 4
 +
| Проверка квот без продолжительности после того, как заканчиваются квоты на продолжительность
 +
|
 +
* '''true''' или '''отсутствие настройки''' — проверять квоты без продолжительности после того, как закончатся квоты на продолжительность
 +
* '''false''' — не проверять квоты без продолжительности
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="checkNoLongQuota" value="true" />
 +
</syntaxhighlight>
 +
 
 +
|- style="vertical-align:text-top"
 +
| 5
 +
| Наличие мест, отображаемое при наступлении релиз-периода
 +
|
 +
* '''request''' — запрос
 +
* '''no''' — нет
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="expiredReleaseQuoteResult" value="request" />
 +
</syntaxhighlight>
 +
 
 +
|- style="vertical-align:text-top"
 +
| 6
 +
| Настройка, позволяющая осуществлять проверку наличия мест в квотах от любого партнера вне зависимости от того, какой партнер предоставляет цену.
 +
При проверке наличия мест у услуги Авиаперелет данная настройка [[Мастер-Web:Установка_и_настройка#Таблица взаимодействия настроек|взаимодействует]] с настройкой '''checkFlightPacket'''.
 +
|
 +
* '''true''' — осуществлять проверку наличия мест от любого партнера
 +
* '''false''' или '''отсутствие настройки''' — проверка наличия мест осуществляется только по партнеру, предоставляющему цену
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="checkAllPartnersQuota" value="false" />
 +
</syntaxhighlight>
 +
 
 +
|- style="vertical-align:text-top"
 +
| 7
 +
| Отображение '''наличия мест''' (на [[Мастер-Тур:Квоты|квотируемые услуги]]) в экранах в случае, '''если закончились свободные места в квоте'''.
 +
|
 +
* '''no''' — «СТОП» (нет квот);
 +
* '''request''' — «Запрос» (места по запросу);
 +
* '''отсутствие настройки''' — «СТОП».
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="noPlacesQuoteResult" value="no" />
 +
</syntaxhighlight>
 +
 
 +
|- style="vertical-align:text-top"
 +
| 8
 +
| Отображение наличия мест в экранах, '''если релиз-период = 0'''.
 +
|
 +
* '''true''' — отображается «Запрос», даже если в квоте еще есть свободные места
 +
* '''false''' или '''отсутствие настройки''' — отображается статус в соответствии с обычными правилами
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="setRequestIfReleaseIsZero" value="true" />
 +
</syntaxhighlight>
 +
 
 +
|- style="vertical-align:text-top"
 +
| 9
 +
| Отображение наличия мест в экранах, '''если релиз-период = 0'''.
 +
|
 +
* '''true''' — отображается «Запрос», даже если в квоте еще есть свободные места
 +
* '''false''' или '''отсутствие настройки''' — отображается статус в соответствии с обычными правилами
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="setRequestIfReleaseIsZero" value="false" />
 +
</syntaxhighlight>
 +
 
 +
|- style="vertical-align:text-top"
 +
| 10
 +
| Настройка, определяющая '''валюту''', в которой будет '''совершаться бронирование'''.
 +
| '''Код валюты''' (поле '''RA_CODE''' из таблицы <code>'''[Rates]'''</code>).
 +
'''Пересчет стоимости''' авиаперелета происходит по '''[[Мастер-Тур:Справочники#Планируемые кросс-курсы валют|планируемому курсу]]''' на '''дату предоставления услуги'''.
 +
Если настройка '''не задана''', то по умолчанию бронирование происходит в '''[[Мастер-Тур:Справочники#Список Валют|национальной валюте]]'''.
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key ="AviaBookingCurrency" value="$" />
 +
</syntaxhighlight>
 +
 
 +
|- style="vertical-align:text-top"
 +
| 11
 +
| '''Ключи тарифов''' на авиаперелет для '''размещения «Младенец»''' ('''Infant''').
 +
Настройка используется для подмены услуги перелета для туристов с типом возраста Infant.
 +
| '''Ключи тарифов''' через запятую (поле '''AS_KEY''' из таблицы <code>'''[AirService]'''</code>).
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="infantCharterClasses" value="109" />
 +
</syntaxhighlight>
 +
 
 +
|- style="vertical-align:text-top"
 +
| 12
 +
| Задание '''[[Мастер-Тур:Работа с путевкой#Механизм изменения статуса путевки|статуса заявки]]''' в ПК «Мастер-Тур», забронированной через '''метод бронирования''' ПК «Мастер-Web».
 +
|
 +
* '''web''' — статус '''Web-турагент''';
 +
* '''wait''' — статус '''Wait-лист''';
 +
* '''отсутствие параметра''' или пустое значение''' — '''стандартный''' статус в ПК «Мастер-Тур».
 +
Подробнее см. [[Мастер-Тур:Работа с путевкой#Механизм изменения статуса путевки|Механизм изменения статуса путевки]].
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="orderStatus" value="web" />
 +
</syntaxhighlight>
 +
 
 +
|- style="vertical-align:text-top"
 +
|13
 +
| Определение '''[[Мастер-Тур:Квоты|квотируемых услуг]]''' в турах.
 +
| '''Ключ услуги''', на которую нужно ''учитывать квоты'' в прайс-листе, при выводе конечного статуса наличия мест на тур.
 +
В случае когда '''несколько''' услуг являются квотируемыми, ключи '''перечисляются через запятую''').
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="quotedServices" value="1,3" />
 +
</syntaxhighlight>
 +
 
 +
|- style="vertical-align:text-top"
 +
|14
 +
| Настройка, выводящая количество мест в квоте на прямой и обратный перелет в методе [[Web-сервисы: Сервис поиска и бронирования авиабилетов#Метод «GetFlights»|GetFlights]].
 +
|
 +
* '''true''' - возвращается параметр ''PlacesCountTo'' и ''PlacesCountBack''
 +
* '''false''' или '''отсутствие настройки''' - параметр ''PlacesCountTo'' и ''PlacesCountBack'' не возвращается
 +
| <syntaxhighlight lang="xml" enclose="div">
 +
<add key="showPlacesCount" value="true"/>
 +
</syntaxhighlight>
 +
|- style="vertical-align:text-top"
 +
 
 +
|}
 +
 
 
==Подготовка данных==
 
==Подготовка данных==
 
===Выставление туров в интернет===
 
===Выставление туров в интернет===
====Требования по подготовке данных в ПК Мастер-тур====
+
====Требования по подготовке данных в ПК «Мастер-тур»====
  
 
В целях избежания ошибок в процессе бронирования предварительно должны быть корректно заполнены соответствующие справочники в ПК «Мастер-Тур».
 
В целях избежания ошибок в процессе бронирования предварительно должны быть корректно заполнены соответствующие справочники в ПК «Мастер-Тур».
Строка 59: Строка 225:
 
  |-
 
  |-
 
  |}
 
  |}
 +
 
===Выставление туров в систему on-line бронирования===
 
===Выставление туров в систему on-line бронирования===
 
====Формирование тура в ПК «Мастер-Тур»====
 
====Формирование тура в ПК «Мастер-Тур»====
Строка 75: Строка 242:
 
[[Файл:am_713.png|Система администрирования ПК «Мастер-Web»]]
 
[[Файл:am_713.png|Система администрирования ПК «Мастер-Web»]]
  
Войти в систему администрирования можно под именем (логином) и паролем пользователя ПК Мастер-Тур, если это не ограничено настройками системы (см. инструкции по установке и настройке ПК «Мастер- Web»).
+
Войти в систему администрирования можно под именем (логином) и паролем пользователя ПК Мастер-Тур, если это не ограничено настройками системы (см. инструкции по установке и настройке ПК «Мастер-Web»).
 
Выберите раздел Выставить тур в Интернет. В загрузившемся экране с помощью фильтра найдите нужный тур и нажмите на ссылку Изменить слева от названия тура в ПК Мастер-Тур. Загрузится экран Тур для выставления тура в Интернет.
 
Выберите раздел Выставить тур в Интернет. В загрузившемся экране с помощью фильтра найдите нужный тур и нажмите на ссылку Изменить слева от названия тура в ПК Мастер-Тур. Загрузится экран Тур для выставления тура в Интернет.
  
Строка 90: Строка 257:
 
==Работа в системе==
 
==Работа в системе==
 
   [[Файл: am_064.png|left|Полезная информация]] <BR>  
 
   [[Файл: am_064.png|left|Полезная информация]] <BR>  
  Сервис принимает токен авторизации. '''Токен''' можно получить через [[Мастер-Web:Дополнительный модуль Сервис для авторизации|'''сервис авторизации''']].
+
  Сервис принимает токен авторизации. '''Токен''' можно получить через [[Web-сервисы: Сервис для авторизации|'''сервис авторизации''']].
 
<br />
 
<br />
  
Строка 127: Строка 294:
 
Метод возвращает результат своей работы в виде элементов массива '''DateTime[]'''.  
 
Метод возвращает результат своей работы в виде элементов массива '''DateTime[]'''.  
 
* '''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»===
 
===Метод «GetDepartureCities»===
Строка 146: Строка 328:
  
 
===Метод «GetFlights»===
 
===Метод «GetFlights»===
Метод возвращает перелёты по заданным параметрам.
+
Метод возвращает перелёты по заданным параметрам. Подбор тура в одну сторону происходит, если не задана дата возвращения или совпадает с датой вылета.
 +
У прямого и обратного перелета должен совпадать AirlineCode.
 
====Сигнатура метода====
 
====Сигнатура метода====
 
<code>public FlightTour[] GetFlights(string token, FlightSearchFilter searchFilter)</code>
 
<code>public FlightTour[] GetFlights(string token, FlightSearchFilter searchFilter)</code>
Строка 160: Строка 343:
 
* '''RateISOCode''' - ISO-код валюты;
 
* '''RateISOCode''' - ISO-код валюты;
 
* '''CharterClass''' -  код класса перелёта;
 
* '''CharterClass''' -  код класса перелёта;
* '''TransferTo''' - трансфер.
+
* '''TransferTo''' - название места прибытия трансфера, полученное методом [[Web-сервисы: Сервис поиска и бронирования авиабилетов#Метод «GetFlightTransferCities»|'''«GetFlightTransferCities»''']].
 +
 
 
====Возвращаемые значения====
 
====Возвращаемые значения====
 
Метод возвращает результат своей работы в виде элементов массива '''FlightTour[]'''.
 
Метод возвращает результат своей работы в виде элементов массива '''FlightTour[]'''.
Строка 172: Строка 356:
 
* '''AirportToCode''' - код аэропорта прилёта;
 
* '''AirportToCode''' - код аэропорта прилёта;
 
* '''CharterBackClass''' -  класс перелёта(обратный рейс);
 
* '''CharterBackClass''' -  класс перелёта(обратный рейс);
 +
* '''CharterBackClassKey''' - ключ класса перелёта(обратный рейс);
 +
* '''CharterBackKey''' – ключ чартера перелёта (обратный рейс);
 +
* '''CharterBackPartnerKey''' – ключ партнера перелёта(обратный рейс);
 
* '''CharterBackNumber''' -  номер рейса(обратный рейс);
 
* '''CharterBackNumber''' -  номер рейса(обратный рейс);
 
* '''CharterBackQuote''' - код квоты (обратный рейс). Возвращает следующие значения:
 
* '''CharterBackQuote''' - код квоты (обратный рейс). Возвращает следующие значения:
          Yes = 1,
+
**Yes = 1,
          No = 2,
+
**No = 2,
          Request = 4,
+
**Request = 4,
          None = 0,
+
**None = 0,
          AFew = 3,
+
**AFew = 3,
          OnlyAgent = 6,  
+
**OnlyAgent = 6,  
          NoFlight = 5,
+
**NoFlight = 5,
          All = 7,
+
**All = 7,
          NotChecked = 10
+
**NotChecked = 10
* '''CharterBackTime''' -  время рейса(обратный рейс);
+
* '''CharterBackTime''' -  время отправления рейса(обратный рейс);
 +
* '''CharterBackTimeArr''' - время прибытия рейса(обратный рейс);
 
* '''CharterClass''' - класс перелёта(прямой рейс);
 
* '''CharterClass''' - класс перелёта(прямой рейс);
 +
* '''CharterClassKey''' - ключ класса перелёта(прямой рейс);
 +
* '''CharterKey''' – ключ чартера перелета(прямой рейс);
 +
* '''CharterPartnerKey''' – ключ партнера перелета(прямой рейс);
 
* '''CharterNumber''' -  номер рейса(прямой рейс);
 
* '''CharterNumber''' -  номер рейса(прямой рейс);
* '''CharterTime''' - время рейса(прямой рейс);
+
* '''CharterTime''' - время отправления рейса(прямой рейс);
 +
* '''CharterTimeArr''' - время прибытия рейса(прямой рейс);
 
* '''CharterToQuote''' - код квоты прямого перелёта. Возвращает те же значения, что и charterBackQuote.
 
* '''CharterToQuote''' - код квоты прямого перелёта. Возвращает те же значения, что и charterBackQuote.
 
* '''CityFromCode''' - код города вылета;
 
* '''CityFromCode''' - код города вылета;
Строка 197: Строка 389:
 
* '''CountryToCode''' - код страны прилёта;
 
* '''CountryToCode''' - код страны прилёта;
 
* '''CountryToName''' - название страны прилёта;
 
* '''CountryToName''' - название страны прилёта;
* '''DateBack''' - дата обратного перелёта;
+
* '''DateBack''' - дата обратного перелёта (строго в формате dd.mm.yyyy);
* '''DateTo''' - дата прямого перелёта;
+
* '''DateTo''' - дата прямого перелёта (строго в формате dd.mm.yyyy);
 
* '''Rate''' - код валюты;
 
* '''Rate''' - код валюты;
* '''Url''' - ссылка на бронирование.
+
* '''Url''' - ссылка на бронирование;
 +
* '''Transfers''' - ключи трансферов в туре;
 +
* '''PlacesCountTo''' - количество мест в квоте на прямой перелет (возвращается только при включенной настройке [[Web-сервисы: Сервис поиска и бронирования авиабилетов#Настройки в файле WEB.CONFIG|ShowPlacesCount]])
 +
** -1 - квоты не заведены
 +
** 0 - места закончились или стоит Stop-Sale
 +
* '''PlacesCountBack''' - количество мест в квоте на обратный перелет. Возвращает те же значения, что и PlacesCountTo (возвращается только при включенной настройке [[Web-сервисы: Сервис поиска и бронирования авиабилетов#Настройки в файле WEB.CONFIG|ShowPlacesCount]]).
  
 
===Метод «GetStraightFlightDates»===
 
===Метод «GetStraightFlightDates»===
Строка 212: Строка 409:
 
* '''CityFromKey''' - ключ города вылета;
 
* '''CityFromKey''' - ключ города вылета;
 
* '''CountryFromKey''' - ключ страны вылета.
 
* '''CountryFromKey''' - ключ страны вылета.
 
 
====Возвращаемые значения====
 
====Возвращаемые значения====
 
Метод возвращает результат своей работы в виде элементов массива '''DateTime[]'''.
 
Метод возвращает результат своей работы в виде элементов массива '''DateTime[]'''.
 
* '''dateTime''' - дата прямого перелёта.
 
* '''dateTime''' - дата прямого перелёта.
  
[[Category:Мастер-Web_Дополнительные_модули]]
+
===Метод «CreateReservation»===
[[Category:Мастер-Тур_Веб-сервисы]]
+
Метод осуществляет бронирование тура.
 +
====Сигнатура метода====
 +
<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''' - текст ошибки.
 +
 
 +
Корректность результата проверяется значением поля ''ErrorCode'' и ''ErrorMessage'':
 +
* 0 – нет ошибок;
 +
* 50 – нет туристов;
 +
* 51 – некорректная дата рождения туриста;
 +
* 52 – указана пустая или слишком длинная фамилия туриста;
 +
* 53 – указано пустое или слишком длинное имя туриста;
 +
* 54 – указано слишком длинное отчество туриста;
 +
* 55 – некорректная дата выдачи паспорта;
 +
* 56 – некорректная дата окончания срока действия паспорта;
 +
* 57 – некорректная серия паспорта (слишком длинная);
 +
* 58 – Некорректный номер паспорта (слишком длинный);
 +
* 100 – не указана дата начала тура;
 +
* 200 – не найден тур для чартеров;
 +
* 300 – не найдены цены для чартеров;
 +
* 400 – отсутствуют квот для чартеров;
 +
* 500 – невозможно произвести бронирование;
 +
* 600 – неизвестная ошибка, подробности в логе;
 +
* 700 – ошибка отправки почты, путёвка создана.
 +
 
 +
[[Category:Web-сервисы]]

Текущая версия на 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 – ошибка отправки почты, путёвка создана.