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

Материал из Megatec
Перейти к: навигация, поиск
[непроверенная версия][непроверенная версия]
м (Подключение к базе данных ПК «Мастер-Тур»)
(Работа в системе)
Строка 126: Строка 126:
 
Метод возвращает результат своей работы в виде элементов массива '''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»===
Строка 171: Строка 186:
 
* '''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''' -  время рейса(обратный рейс);
 
* '''CharterClass''' - класс перелёта(прямой рейс);
 
* '''CharterClass''' - класс перелёта(прямой рейс);
 +
* '''CharterClassKey''' - ключ класса перелёта(прямой рейс);
 +
* '''CharterKey''' – ключ чартера перелета(прямой рейс);
 +
* '''CharterPartnerKey''' – ключ партнера перелета(прямой рейс);
 
* '''CharterNumber''' -  номер рейса(прямой рейс);
 
* '''CharterNumber''' -  номер рейса(прямой рейс);
 
* '''CharterTime''' - время рейса(прямой рейс);
 
* '''CharterTime''' - время рейса(прямой рейс);
Строка 196: Строка 217:
 
* '''CountryToCode''' - код страны прилёта;
 
* '''CountryToCode''' - код страны прилёта;
 
* '''CountryToName''' - название страны прилёта;
 
* '''CountryToName''' - название страны прилёта;
* '''DateBack''' - дата обратного перелёта;
+
* '''DateBack''' - дата обратного перелёта (строго в формате dd.mm.yyyy);
* '''DateTo''' - дата прямого перелёта;
+
* '''DateTo''' - дата прямого перелёта (строго в формате dd.mm.yyyy);
 
* '''Rate''' - код валюты;
 
* '''Rate''' - код валюты;
* '''Url''' - ссылка на бронирование.
+
* '''Url''' - ссылка на бронирование;
 +
* '''Transfers''' - ключи трансферов в туре.
  
 
===Метод «GetStraightFlightDates»===
 
===Метод «GetStraightFlightDates»===
Строка 211: Строка 233:
 
* '''CityFromKey''' - ключ города вылета;
 
* '''CityFromKey''' - ключ города вылета;
 
* '''CountryFromKey''' - ключ страны вылета.
 
* '''CountryFromKey''' - ключ страны вылета.
 
 
====Возвращаемые значения====
 
====Возвращаемые значения====
 
Метод возвращает результат своей работы в виде элементов массива '''DateTime[]'''.
 
Метод возвращает результат своей работы в виде элементов массива '''DateTime[]'''.
 
* '''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''' - текст ошибки.
 +
 +
Корректность результата проверяется значением поля ''ErrorCode'' и ''ErrorMessage'':
 +
* 0 – нет ошибок;
 +
* 50 – нет туристов;
 +
* 51 – некорректная дата рождения туриста;
 +
* 52 – указана пустая или слишком длинная фамилия туриста;
 +
* 53 – указано пустое или слишком длинное имя туриста;
 +
* 54 – указано слишком длинное отчество туриста;
 +
* 55 – некорректная дата выдачи паспорта;
 +
* 56 – некорректная дата окончания срока действия паспорта;
 +
* 57 – некорректная серия паспорта (слишком длинная);
 +
* 58 – Некорректный номер паспорта (слишком длинный);
 +
* 100 – не указана дата начала тура;
 +
* 200 – не найден тур для чартеров;
 +
* 300 – не найдены цены для чартеров;
 +
* 400 – отсутствуют квот для чартеров;
 +
* 500 – невозможно произвести бронирование;
 +
* 600 – неизвестная ошибка, подробности в логе;
 +
* 700 – ошибка отправки почты, путёвка создана.

Версия 16:34, 12 мая 2016


Данный модуль не поддерживается.
Версия статьи от 12-05-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/TicketSerachService.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 - трансфер.

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

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