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

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
(Подключение к базе данных ПК «Мастер-Тур»)
(Возвращаемые значения)
Строка 360: Строка 360:
 
**All = 7,
 
**All = 7,
 
**NotChecked = 10
 
**NotChecked = 10
* '''CharterBackTime''' -  время рейса(обратный рейс);
+
* '''CharterBackTime''' -  время отправления рейса(обратный рейс);
 +
* '''CharterBackTimeArr''' - время прибытия рейса(обратный рейс);
 
* '''CharterClass''' - класс перелёта(прямой рейс);
 
* '''CharterClass''' - класс перелёта(прямой рейс);
 
* '''CharterClassKey''' - ключ класса перелёта(прямой рейс);
 
* '''CharterClassKey''' - ключ класса перелёта(прямой рейс);
Строка 366: Строка 367:
 
* '''CharterPartnerKey''' – ключ партнера перелета(прямой рейс);
 
* '''CharterPartnerKey''' – ключ партнера перелета(прямой рейс);
 
* '''CharterNumber''' -  номер рейса(прямой рейс);
 
* '''CharterNumber''' -  номер рейса(прямой рейс);
* '''CharterTime''' - время рейса(прямой рейс);
+
* '''CharterTime''' - время отправления рейса(прямой рейс);
 +
* '''CharterTimeArr''' - время прибытия рейса(прямой рейс);
 
* '''CharterToQuote''' - код квоты прямого перелёта. Возвращает те же значения, что и charterBackQuote.
 
* '''CharterToQuote''' - код квоты прямого перелёта. Возвращает те же значения, что и charterBackQuote.
 
* '''CityFromCode''' - код города вылета;
 
* '''CityFromCode''' - код города вылета;

Версия 10:40, 18 мая 2017

Версия статьи от 18-05-2017.

Более ранние версии:
До версии ПК «Мастер-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" />

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

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

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

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

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

Выставление туров в систему 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»

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

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

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 - ключи трансферов в туре.

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