Web-сервисы: Сервис поиска и бронирования авиабилетов

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

Версия статьи от 13-05-2016.

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



Содержание

Введение

Данный модуль предназначен для поиска и подбора данных по рейсам, проверки их стоимости и наличия мест, а также для бронирования тура.

Установка

Для установки Сервиса поиска авиабилетов нужно создать отдельную директорию, например, 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.

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

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

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

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

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

Выставление туров в систему 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 - время рейса(обратный рейс);
  • CharterClass - класс перелёта(прямой рейс);
  • CharterClassKey - ключ класса перелёта(прямой рейс);
  • CharterKey – ключ чартера перелета(прямой рейс);
  • CharterPartnerKey – ключ партнера перелета(прямой рейс);
  • CharterNumber - номер рейса(прямой рейс);
  • CharterTime - время рейса(прямой рейс);
  • 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 – ошибка отправки почты, путёвка создана.