Мастер-Тур:Работа с методами веб-сервисов

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

Статья находится на стадии разработки.

Содержание

Введение

Обзор

Краткое описание, что такое web-сервиса и для чего они нужны

В этой статье собрана краткая информация по веб-сервисам ПК "Мастер-Тур", а так же существующим в них методам. Кроме того, в статье собраны ссылки на статьи с более полным описаниям работы веб-сервисов.

Установка

Для установки Веб-сервисов нужно создать директорию сервиса (название директории можно найти в соответствующем разделе или в статьях, ссылка на которые есть в соответствующих разделах) в каталоге c:/inetpub/wwwroot/MasterWeb и выложить туда распакованные файлы из архива, содержащего файлы веб-сервиса. Название архива для каждого из веб-сервисов можно найти в соответствующем разделе или в статьях, ссылка на которые есть в соответствующих разделах.

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

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

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

  • 1. Зайти в Пуск (Start) – Настройки (Settings) – Панель управления (Control Panel)


875.PNG

  • 2. В открывшемся окне выбрать Администрирование (Administrative Tools)


876.PNG

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


877.PNG

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


878.PNG

  • 5. В открывшемся окне, в закладке Directory нужно нажать кнопку «Create», а затем кнопку «ОК»


879.PNG

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

В файле web.config, расположенном в папке WebServices пропишите необходимые параметры подключения (курсивом выделены значения, которые необходимо ввести). Строка подключения к базе данных ПК «Мастер-Тур»:

  • 1. <add key = "connectionString" value = "Data Source=ip-адрес сервера базы данных ПК Мастер-тур;Initial Catalog=название базы данных ПК Мастер-тур;User ID=логин пользователя ПК Мастер-тур;Password=пароль пользователя ПК Мастер-тур"/>
  • 2. <add key = "connectionStringShort" value = "Data Source=ip-адрес сервера базы данных ПК Мастер-Тур;Initial Catalog=название базы данных ПК Мастер-Тур;"/>

Список существующих веб-сервисов

Поисковый сервис (Search)

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

Архив для установки - mw-megatecwebservices-2007.2.XX.XXXX.zip.

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

После установки «Поисковый сервис» доступен по адресу http://ip-адрес сервера Мастер-Веб/WebServices/Search.asmx.

Метод Search.DoSearch

Метод Search.DoSearch позволяет осуществлять поиск туров - Метод Search.DoSearch

Метод DoSearch обладает параметрами:

  • SearchFilter filter – объект класса, описывающего критерии подбора тура
  • int pageNumber – порядковый номер запрашиваемой страницы
  • SearchParams searchParams – объект класса, описывающего параметры подбора тура

Сервис возвращает объект класса SearchResult, содержащий коллекцию объектов класса SearchResultItem.

TourML

Сервис по оплате путевок внешними системами (сервис для интеграции с платежной системой, прием наличных через платежный терминал, FinanceService)

Данный модуль предназначен для проверки заявки и проведения платежа через платежную систему в базу туроператора(Сервис для интеграции с платежной системой). Модуль совместим со следующими платежными системами:

  • TourPay
  • Контакт
  • Лидер

Архив для установки - mw-finance-2007.2.XX.XXXX.zip.

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

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

Метод GetUserToken

Метод GetUserToken возвращает строку - идентификатор аутентификации, который используется для подтверждения авторизации при вызове методов веб-сервисов - Метод GetUserToken.

Сигнатура метода - public TokenResult GetUserToken(string userLogin, string userPassword)

Принимаемые методом параметры:

  • userLogin - имя пользователя;
  • userPassword - пароль.

Возвращаемые значения - метод возвращает результат своей работы в виде класса TokenResult. Корректность результата проверяется значением поля ErrorCode данного класса:

  • 0 - результат корректный;
  • 2 – внутренняя ошибка;
  • 5 - неправильный логин или пароль.

Описание класса приведено ниже:

public class TokenResult
 {
     public int ErrorCode;
     public string Token;
 }
 

где

  • ErrorCode - код результата;
  • Token - идентификатор аутентификации.

Метод CheckReservation

Метод CheckReservation предназначен для проверки наличия заявки в базе данных и определения ее стоимости - Метод CheckReservation.

Сигнатура метода - public AmountSum CheckReservation(string userToken, string dgCode)

Принимаемые методом параметры:

  • userToken - идентификатор аутентификации, полученный при вызове метода GetUserToken;
  • dgCode - строковая переменная, представляющая собой код проверяемой путевки.

Возвращаемые значения - метод возвращает результат своей работы в виде класса AmountSum. Корректность результата проверяется значением поля ErrorCode данного класса:

  • 0 – результат корректный, в полях возвращены корректные значения;
  • 1 – заявка не найдена в БД;
  • 2 – внутренняя ошибка;
  • 3 - заявка была аннулирована;
  • 4 - путевка уже оплачена;
  • 6 - некорректный или устаревший идентификатор аутентификации(token).

Ниже приводится описание класса.

public class AmountSum
    {
        public double Amount
        public string RateCode
        public double NationalCurrencyPrice
        public string NationalRateCode
        public int ErrorCode
        public int FilialKey
        public DateTime BeginTourDate
        public DateTime EndTourDate
    }
  • Amount - сумма к оплате в валюте тура;
  • RateCode - iso-код валюты тура;
  • NationalCurrencyPrice - сумма к оплате в национальной валюте;
  • NationalRateCode - iso-код национальной валюты;
  • ErrorCode - код результата;
  • FilialKey - ключ филиала, который создал заявку;
  • BeginTourDate - дата начала тура;
  • EndTourDate - дата окончания тура.

Метод CreatePayment

Метод CreatePayment предназначен для создания платежа по путевке в финансовом блоке ПК Мастер-Тур - Метод CreatePayment.

Сигнатура метода - public int CreatePayment(string userToken, DateTime date, Decimal sum, string currencyIsoCode, string reservationCode, string paymentId)

Принимаемые методом параметры:

  • userToken - идентификатор аутентифкации;
  • date – дата проведения платежа;
  • sum – сумма платежа;
  • currencyIsoCode – ISO-код валюты, в которой осуществляется платеж;
  • reservationCode – номер путевки;
  • paymentId – идентификатор платежа во внешней системе.

Возвращаемые значения - метод возвращает целочисленное значение обозначающее результат выполнения операции:

  • 0 – операция выполнена успешно, платеж проведен;
  • 1 – заявка не найдена в БД;
  • 2 – внутренняя ошибка при создании платежа;
  • 3 - заявка была аннулирована;
  • 4 - путевка уже оплачена;
  • 6 - некорректный или устаревший идентификатор аутентификации(token).

При этом в БД создается платеж по выбранной путевке.

MasterTourFacade

Сервис по работе с курсами валют (Rates)

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

Архив для установки - mw-megatecwebservices-2007.2.XX.XXXX.zip.

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

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

Метод GetCourse

Метод GetCourse служит для получения кросс-курса валют - Метод GetCourse.

Для получения результата необходимо передать следующие значения:

  • «rateCodeFrom» - код валюты, кросс-курс которой нужно вывести
  • «rateCodeTo» - код валюты 2
  • «exchangeDate» - дата, на которую необходимо взять курсы валют.

Результаты возвращаются в виде xml-файлов.

Метод Exchange

Метод Exchange служит для пересчета стоимости из одной валюты в другую - Метод Exchange.

Для получения результата необходимо передать следующие значения:

  • «cost» - сумма или стоимость, которую нужно пересчитать
  • «rateCodeFrom» - код валюты, из которой нужно произвести конвертацию
  • «rateCodeTo» - код валюты, в которую необходимо конвертировать стоимость
  • «exchangeDate» - дата, на которую необходимо взять курсы валют.

Результаты возвращаются в виде xml-файлов.

Метод GetNationalCourse

Метод GetNationalCourse служит для получения курса валюты - Метод GetNationalCourse.

Для получения результата необходимо передать следующие значения:

  • «rateCode - код валюты, курс которой нужно получить
  • «exchangeDate» - дата, на которую необходимо взять курс валют.

Результаты возвращаются в виде xml-файлов.

Метод GetNationalCourseToday

Метод GetNationalCourseToday служит для получения курса валюты на текущую дату - Метод GetNationalCourseToday.

Для получения результата необходимо передать следующие значения:

  • «rateCode - код валюты, курс которой нужно получить

Результаты возвращаются в виде xml-файлов.

Метод GetNationalRateCode

Метод GetNationalRateCode служит для получения кода национальной валюты - Метод GetNationalRateCode.

Данный метод не принимает параметров.

Результаты возвращаются в виде xml-файлов.

Сервис по работе с заявками (BookingManager)

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

Архив для установки - mw-megatecwebservices-2007.2.XX.XXXX.zip.

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

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

Метод GetChangedBookings

Метод GetChangedBookings служит для формирования списка путевок, по которым были произведены изменения за заданный период - Метод GetChangedBookings.

Сигнатура метода - List<SimpleDogovor> GetChangedBookings(DateTime dateFrom, DateTime dateTo)

Параметры, принимаемые методом:

  • dateFrom - дата, начиная с которой ищутся изменения;
  • dateTo - дата, заканчивая которой ищутся изменения.

Возвращаемое значение - коллекция путевок представленных классом SimpleDogovor

Метод VerifyBookingChanges

Метод VerifyBookingChanges служит для определения, были ли произведены изменения по конкретной путевке Метод VerifyBookingChanges.

Сигнатура метода - bool VerifyBookingChanges(int dogovorKey, DateTime dateFrom, DateTime dateTo)

Параметры, принимаемые методом:

  • dogovorKey – ключ путевки, по которой определяется наличие изменений;
  • dateFrom - дата, начиная с которой ищутся изменения;
  • dateTo - дата, заканчивая которой ищутся изменения.

Возвращаемое значение - булевая переменная, определяющая, были ли произведены изменения по путевке за указанный период.

Мастер-Web: Способы аутентификации

Аутентификация – это процедура, проверяющая, имеет ли пользователь с предъявленным идентификатором право на доступ к ресурсу - Способы аутентификации.

Метод Authenticate

При аутентификации через Web-сервис используется метод Authenticate (Метод Authenticate). В этом случае передаются параметры:

  • userName – логин;
  • password – пароль.

При проверке соответствия имени и пароля пользователя возвращается булевское значение: true – в случае успешной аутентификации, в противном случае false.

Сервис для отправки запроса на аннуляцию путевки (AnnulateService)

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

Архив для установки - mw-annulation-2007.2.XX.XXXX.zip.

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

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

Метод SendAnnulate

Метод SendAnnulate предоставляет возможность отправлять заявку на аннуляцию путевки от имени on-line пользователя указанного в параметрах вызова метода - Метод SendAnnulate.

Сигнатура метода - string SendAnnulate(string code, string login, string password)

Параметры, принимаемые методом:

  • code - строковая переменная, представляющая собой код предлагаемой к аннуляции путевки;
  • login - строковая переменная, представляющая собой логин пользователя, от имени которого отправляется заявка на аннуляцию;
  • password - строковая переменная, представляющая собой пароль для доступа в систему on-line бронирования пользователя, от имени которого отправляется заявка на аннуляцию.

Возвращаемые значения - метод возвращает результат своей работы в виде строкового значения. Возможны следующие значения:

  • Вам запретили доступ к системе.
  • Вы ввели неправильный пароль \ Попробуйте еще раз. Обратите внимание, не включен ли у Вас Caps Lock \ и на каком языке Вы вводите пароль.
  • Договор с туроператором не заключен или его действие закончилось!
  • Путевка {0} не найдена!
  • Неверно задан пользователь!
  • У указанного пользователя нет прав на аннуляцию заданной путевки!
  • Запрос на аннулирование заявки {0} по стране {1} успешно отослан.
  • Ошибка. Не удалось отправить запрос.

WsAuthorization

Сервис поиска авиабилетов (TicketSearchService)

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

Архив для установки - mw-ws-aviasearch-2009.2.XX.XXXX.zip.

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

После установки «Сервис поиска авиабилетов» доступен по адресу: http://ip-адрес сервера Мастер-Веб/wsAviaSearch/TicketSerachService.asmx (обращение к сервису происходит из javascript с передачей параметров в формате JSON).

Метод GetArrivalCities

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

Метод GetBackFlightDates

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

Метод GetDepartureCities

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

Метод GetFlights

Метод возвращает перелёты по заданным параметрам - Метод GetFlights.

Метод GetStraightFlightDates

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

Пример вызова

callback: jsonp1277981564108
jsFlightSearchFilter: {"flightSearchParams":{"ctto":275, "cnfrom":460,"bdate":"2010-12-15"}}

Сервис по проверке наличия мест (CheckQuotesService)

Модуль «Сервис проверки наличия мест» предназначен как для проверки квот на одну конкретную услугу, так и на совокупность услуг - Сервис по проверке наличия мест.

Архив для установки - mw-ws-checkquotes-2007.2.XX.XXXX.zip.

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

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

Метод CheckQuotes

Метод позволяет осуществить проверку квот на совокупность услуг - Метод CheckQuotes

Сигнатура метода - public QuotaResult.Status CheckQuotes(List<Megatec.Travel.Entities.Service>services, DateTime tourDate, int tourDuration, int currentUserKey)

Параметры, принимаемые методом:

  • services - коллекция услуг, на которые необходимо проверить квоты
  • tourDate - дата начала тура
  • tourDuration - продолжительность тура
  • currentUserKey - ключ агентства в таблице партнеров

Распределенный поиск (ComplexTourService)

Модуль «Распределенный поиск» предназначен для отображения в едином поисковом модуле как своих, так и сторонних предложений. Модуль позволяет осуществлять поиск и бронирование туров от различных туроператоров в одном приложении ПК Мастер-Web - Распределенный поиск.

Сервис для шифрования строковых значений (EncryptionService)

Данный модуль предназначен для шифрования и дешифрации строковых значений - Сервис для шифрования строковых значений.

Архив для установки - mw-encryptionservice-2007.2.XX.XXXX.zip.

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

После установки «Сервис для шифрования строковых значений» доступен по адресу: http://ip- адрес сервера Мастер-Веб/EncryptionService/EncryptionService.asmx.

Метод EncryptString

Данный метод предоставляет возможность шифрации строкового значения методом, используемым в продуктах Мастер-Тур и Мастер-Веб - Метод EncryptString.

Сигнатура метода string EncryptString(string source)

Параметры, принимаемые методом:

  • source - строковое значение, подвергаемое шифрование

Возвращаемое значение - метод возвращает строку, представляющую собой зашифрованный вид полученного на вход значения.

Метод DecryptString

Данный метод предоставляет возможность дешифровки строкового значения, ранее зашифрованного методом, используемым в продуктах Мастер-Тур и Мастер-Веб - Метод DecryptString.

Сигнатура метода - string DecryptString(string source)

Параметры, принимаемые методом:

  • source - строковое значение подвергаемое дешифровке

Возвращаемое значение - метод возвращает строку, представляющую собой исходное значение полученной на вход зашифрованной строки.

Сервис по загрузке поисковых фильтров (FilterBindingService)

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

Архив для установки - mw-filterbinding-2007.2.XX.XXXX.zip.

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

После установки «Сервис по загрузке поисковых фильтров» доступен по адресу:

  • http://ip- адрес сервера Мастер-Веб/FilterBinding/FilterBindingService.asmx (обращение к сервису происходит путем передачи ему SOAP-сообщения)
  • http://ip- адрес сервера Мастер-Веб/FilterBinding/FilterBindingScriptService.asmx (обращение к сервису происходит из javascript с передачей параметров в формате JSON)

Метод GetFilter

Сигнатура метода - public HybridArrayDictionary<SchemeNodeBase, IList> GetFilter(List<SchemeNodeBase> nodes, SchemeNode changedNode, BindType bindType)

HotelInfoService

CalculateReservation

ServiceProvider

Сервис для получения информации по турам (FullTourInfoService)

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

Архив для установки - mw-ws-tourinfo-2007.2.XX.XXXX.zip.

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

После установки «Сервис для получения информации по турам» доступен по адресу: http://ip- адрес сервера Мастер-Веб/TourInfo/FullTourInfoService.asmx.

Метод GetTourInfo

Метод GetTourInfo

Параметры, принимаемые методом:

  • token
  • tourKey - идентификационный номер тура
  • beginDate Значение - дата начиная с которой выдавать информацию, в формате «yyyy-MM-dd»

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

  • ExtendedTourInfo
    • TourID – идентификационный номер тура
    • Name – название тура
    • TypeID – идентификационный номер типа тура
    • URL – url страницы с описанием тура
    • CreatedDate – дата создания тура (формат «yyyy-MM-ddThh:mm:ss»)
    • ValidFrom – действителен с
    • ValidTo – дейстивтелен по
    • Code – код тура
    • CountryID – идентификационный номер страны
    • TourByDateInfos
      • TourByDateInfo
  • Date – дата заезда
  • TourCosts
    • TourCosts
      • TourCost
  • AccomodationType – тип размещения
  • Cost – стоимость
  • Currency – валюта
  • ServicesCosts
    • ServiceCost
      • ServiceName – назавние услуги
      • Cost – стоимость услуги
      • Currency – валюта
      • TransportKey – ключ транспорта (-1, если услуга не подразумевает схему размещения в транспорте)
      • ServiceID – идентификационный номер услуги

Метод GetBusyBusPlan

Метод GetBusyBusPlan

Параметры, принимаемые методом:

  • token
  • tourKey - идентификационный номер тура
  • tourDate - дата начиная с которой выдавать информацию, в формате «yyyy-MM-dd»

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

  • BusPlan
    • TransportKey – идентификационный номер траспортного средства
    • Title – название транспортного средства
    • AreasCount – количество зон (автобусов)
    • RowsCount – количество рядов
    • ColumnsCount – количество мест в ряду
    • Cells
      • BusPlanCell
        • Row – горизонтальная составляющая координаты места
        • Column – вертикальная составляющая координаты места
        • Area – зона (номер автобуса)
        • BusPlanCellType – тип места (None, Comment - комментарий, Gangway – проход, Seat – пассажирское место)
        • IsUsed – true – место занято, иначе - false

Метод GetTours

Метод GetTours

Параметры, принимаемые методом:

  • token
  • beginDate - дата, начиная с которой выбирать туры (дата создания тура), в формате «yyyy-MM-dd»

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

  • ArrayOfTourInfo
    • TourInfo
      • TourID – идентификационный номер тура
      • Name – название тура
      • TypeID – идентификационный номер типа тура
      • URL – url страницы с описанием тура
      • CreatedDate – дата создания тура (формат «yyyy-MM-ddThh:mm:ss»)
      • ValidFrom – действителен с
      • ValidTo – дейстивтелен по
      • Code – код тура
      • CountryID – идентификационный номер страны

Метод GetTourTypes

Метод GetTourTypes

Параметры, принимаемые методом:

  • token

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

  • ArrayOfTourType
    • TourType
      • TourTypeID – идентификационный номер типа тура
      • Name – название типа тура

Метод GetCountries

Метод GetCountries

Параметры, принимаемые методом:

  • token

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

  • ArrayOfCountry
    • Country
      • CountryID – идентификационный номер страны
      • Name – название страны

AddCostLogic

Данный модуль предназначен для расчета доплаты из очереди расчета доплат (ДЦ) - AddCostLogic.

AdminService

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

ApplicationsLog

Данный модуль предназначен для реализация метода логирования в базе данных - ApplicationsLog.

CalculatePriceListDynamic

Данный модуль предназначен для запуска расчета прайс-листа - CalculatePriceListDynamic.

DictionaryService

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

QuotaLogic

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

TourMarginLogic

Данный модуль предназначен для расчета наценок из очереди (ДЦ) - TourMarginLogic.

UserService

Данный модуль предназначен для работы с пользователями - UserService.