Мастер-Тур:Работа с методами веб-сервисов
Статья находится на стадии разработки.
Содержание
- 1 Введение
- 2 Список существующих веб-сервисов
- 2.1 Поисковый сервис (Search)
- 2.2 TourML
- 2.3 Сервис по оплате путевок внешними системами (сервис для интеграции с платежной системой, прием наличных через платежный терминал, FinanceService)
- 2.4 MasterTourFacade
- 2.5 Сервис по работе с курсами валют (Rates)
- 2.6 Сервис по работе с заявками (BookingManager)
- 2.7 Мастер-Web: Способы аутентификации
- 2.8 Сервис для отправки запроса на аннуляцию путевки (AnnulateService)
- 2.9 WsAuthorization
- 2.10 Сервис поиска авиабилетов (TicketSearchService)
- 2.11 Сервис по проверке наличия мест (CheckQuotesService)
- 2.12 Распределенный поиск (ComplexTourService)
- 2.13 Сервис для шифрования строковых значений (EncryptionService)
- 2.14 Сервис по загрузке поисковых фильтров (FilterBindingService)
- 2.15 HotelInfoService
- 2.16 CalculateReservation
- 2.17 ServiceProvider
- 2.18 Сервис для получения информации по турам (FullTourInfoService)
- 2.19 AddCostLogic
- 2.20 AdminService
- 2.21 ApplicationsLog
- 2.22 CalculatePriceListDynamic
- 2.23 DictionaryService
- 2.24 QuotaLogic
- 2.25 TourMarginLogic
- 2.26 UserService
Введение
Обзор
Краткое описание, что такое web-сервиса и для чего они нужны
В этой статье собрана краткая информация по веб-сервисам ПК "Мастер-Тур", а так же существующим в них методам. Кроме того, в статье собраны ссылки на статьи с более полным описаниям работы веб-сервисов.
Установка
Для установки Веб-сервисов нужно создать директорию сервиса (название директории можно найти в соответствующем разделе или в статьях, ссылка на которые есть в соответствующих разделах) в каталоге c:/inetpub/wwwroot/MasterWeb и выложить туда распакованные файлы из архива, содержащего файлы веб-сервиса. Название архива для каждого из веб-сервисов можно найти в соответствующем разделе или в статьях, ссылка на которые есть в соответствующих разделах.
В управлении IIS необходимо создать виртуальный каталог для этой папки.
Создание виртуального каталога
По умолчанию корневым каталогом IIS является C:/Inetpub/wwwroot. Для создания виртуального каталога для приложения находящегося в этом каталоге нужно выполнить следующие действия:
- 1. Зайти в Пуск (Start) – Настройки (Settings) – Панель управления (Control Panel)
- 2. В открывшемся окне выбрать Администрирование (Administrative Tools)
- 3. Запустить Internet Information Services (IIS) Manager
- 4. В открывшемся дереве каталогов выбрать Web Sites – Default Web Site. В открывшемся списке найти папку, для которой нужно создать виртуальный каталог, кликнуть по ней правой кнопкой мыши и зайти в Свойства (Properties)
- 5. В открывшемся окне, в закладке Directory нужно нажать кнопку «Create», а затем кнопку «ОК»
Подключение к базе данных ПК «Мастер-Тур»
В файле 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
Параметры, принимаемые методом:
- 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
- TourCosts
- AccomodationType – тип размещения
- Cost – стоимость
- Currency – валюта
- ServicesCosts
- ServiceCost
- ServiceName – назавние услуги
- Cost – стоимость услуги
- Currency – валюта
- TransportKey – ключ транспорта (-1, если услуга не подразумевает схему размещения в транспорте)
- ServiceID – идентификационный номер услуги
- ServiceCost
Метод 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
- BusPlanCell
Метод GetTours
Параметры, принимаемые методом:
- token
- beginDate - дата, начиная с которой выбирать туры (дата создания тура), в формате «yyyy-MM-dd»
Возвращаемое значение:
- ArrayOfTourInfo
- TourInfo
- TourID – идентификационный номер тура
- Name – название тура
- TypeID – идентификационный номер типа тура
- URL – url страницы с описанием тура
- CreatedDate – дата создания тура (формат «yyyy-MM-ddThh:mm:ss»)
- ValidFrom – действителен с
- ValidTo – дейстивтелен по
- Code – код тура
- CountryID – идентификационный номер страны
- TourInfo
Метод GetTourTypes
Параметры, принимаемые методом:
- token
Возвращаемое значение:
- ArrayOfTourType
- TourType
- TourTypeID – идентификационный номер типа тура
- Name – название типа тура
- TourType
Метод GetCountries
Параметры, принимаемые методом:
- token
Возвращаемое значение:
- ArrayOfCountry
- Country
- CountryID – идентификационный номер страны
- Name – название страны
- Country
AddCostLogic
Данный модуль предназначен для расчета доплаты из очереди расчета доплат (ДЦ) - AddCostLogic.
AdminService
Данный модуль предназначен для проверки принадлежности пользователя к роли - AdminService.
ApplicationsLog
Данный модуль предназначен для реализация метода логирования в базе данных - ApplicationsLog.
CalculatePriceListDynamic
Данный модуль предназначен для запуска расчета прайс-листа - CalculatePriceListDynamic.
DictionaryService
Данный модуль предназначен для работы со справочниками стран - DictionaryService.
QuotaLogic
Данный модуль предназначен для работы с квотами - QuotaLogic.
TourMarginLogic
Данный модуль предназначен для расчета наценок из очереди (ДЦ) - TourMarginLogic.
UserService
Данный модуль предназначен для работы с пользователями - UserService.