Мастер-Тур:Работа с методами веб-сервисов
Статья находится на стадии разработки.
Содержание
- 1 Введение
- 2 Список существующих web-сервисов
- 2.1 Поисковый сервис (Search)
- 2.2 AddCostLogic
- 2.3 AdminService
- 2.4 ApplicationsLog
- 2.5 CalculatePriceListDynamic
- 2.6 DictionaryService
- 2.7 QuotaLogic
- 2.8 TourMarginLogic
- 2.9 UserService
- 2.10 TourML
- 2.11 Сервис по оплате путевок внешними системами (сервис для интеграции с платежной системой, прием наличных через платежный терминал, FinanceService)
- 2.12 MasterTourFacade
- 2.13 Сервис по работе с курсами валют (Rates)
- 2.14 Сервис по работе с заявками (BookingManager)
- 2.15 Мастер-Web: Способы аутентификации
- 2.16 AnnulateService
- 2.17 WsAuthorization
- 2.18 Сервис поиска авиабилетов (TicketSearchService)
- 2.19 Сервис по проверке наличия мест (CheckQuotesService)
- 2.20 Распределенный поиск (ComplexTourService)
- 2.21 Сервис для шифрования строковых значений (EncryptionService)
- 2.22 Сервис по загрузке поисковых фильтров (FilterBindingService)
- 2.23 HotelInfoService
- 2.24 CalculateReservation
- 2.25 ServiceProvider
- 2.26 Сервис для получения информации по турам (FullTourInfoService)
Введение
Обзор
Краткое описание, что такое web-сервиса и для чего они нужны
В этой статье собрана краткая информация по веб сервисам ПК "Мастер-Тур", а так же существующим в них методам. Кроме того в статье собраны ссылки на статьи с более полным описаниям работы Веб-сервисов.
Установка
Общее описание установки web-сервисов. Тонкости, отличительные особенности и т.д.
Для установки Веб-сервисов нужно создать директорию WebServices в каталоге c:/inetpub/wwwroot/MasterWeb и выложить туда распакованные файлы из архива, содержащего файлы веб-сервиса. Название архива для каждого из веб-сервисов можно найти в соответствующем разделе или в статьях, ссылка на которые есть в соответствующих архивах.
В управлении IIS необходимо создать виртуальный каталог для папки WebServices.
Создание виртуального каталога
По умолчанию корневым каталогом 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= название базы данных ПК Мастер-Тур;"/>
Список существующих web-сервисов
Поисковый сервис (Search)
Данный модуль предназначен для осуществления поиска и подбора туров из внешних приложений - Поисковый сервис.
Метод Search.DoSearch
Метод Search.DoSearch позволяет осуществлять поиск туров - Метод Search.DoSearch
Метод DoSearch обладает параметрами:
- SearchFilter filter – объект класса, описывающего критерии подбора тура
- int pageNumber – порядковый номер запрашиваемой страницы
- SearchParams searchParams – объект класса, описывающего параметры подбора тура
Сервис возвращает объект класса SearchResult, содержащий коллекцию объектов класса SearchResultItem.
AddCostLogic
AdminService
ApplicationsLog
CalculatePriceListDynamic
DictionaryService
QuotaLogic
TourMarginLogic
UserService
TourML
Сервис по оплате путевок внешними системами (сервис для интеграции с платежной системой, прием наличных через платежный терминал, FinanceService)
Данный модуль предназначен для проверки заявки и проведения платежа через платежную систему в базу туроператора(Сервис для интеграции с платежной системой). Модуль совместим со следующими платежными системами:
- TourPay
- Контакт
- Лидер
Метод GetUserToken
Метод GetUserToken возвращает строку - идентификатор аутентификации, который используется для подтверждения авторизации при вызове методов web-сервисов - Метод 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)
Данный модуль предназначен для работы с курсами валют - Сервис по работе с курсами валют.
Метод 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)
Данный модуль предназначен для работы с заявками, в которых были произведены изменения - Сервис по работе с заявками.
Метод 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
Данный модуль предназначен для отправки запроса на аннуляцию путевки из сторонних приложений - Сервис для отправки запроса на аннуляцию путевки.
Метод 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)
Данный модуль предназначен для поиска и подбора данных по рейсам, проверки их стоимости и наличия мест - Сервис поиска авиабилетов.
После установки «Сервис поиска авиабилетов» доступен по адресу: 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)
Модуль «Сервис проверки наличия мест» предназначен как для проверки квот на одну конкретную услугу, так и на совокупность услуг - Сервис по проверке наличия мест.
Метод 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)
Данный модуль предназначен для шифрования и дешифрации строковых значений - Сервис для шифрования строковых значений.
Метод EncryptString
Данный метод предоставляет возможность шифрации строкового значения методом, используемым в продуктах Мастер-Тур и Мастер-Веб - Метод EncryptString.
Сигнатура метода string EncryptString(string source)
Параметры, принимаемые методом:
- source - строковое значение, подвергаемое шифрование
Возвращаемое значение - метод возвращает строку, представляющую собой зашифрованный вид полученного на вход значения.
Метод DecryptString
Данный метод предоставляет возможность дешифровки строкового значения, ранее зашифрованного методом, используемым в продуктах Мастер-Тур и Мастер-Веб - Метод DecryptString.
Сигнатура метода - string DecryptString(string source)
Параметры, принимаемые методом:
- source - строковое значение подвергаемое дешифровке
Возвращаемое значение - метод возвращает строку, представляющую собой исходное значение полученной на вход зашифрованной строки.
Сервис по загрузке поисковых фильтров (FilterBindingService)
Данный модуль предназначен для формирования поискового фильтра, т.е. позволяет при изменении какого-либо из критериев отбора туров определить возможные значения зависимых от него критериев - Сервис по загрузке поисковых фильтров.
Метод GetFilter
Сигнатура метода - public HybridArrayDictionary<SchemeNodeBase, IList> GetFilter(List<SchemeNodeBase> nodes, SchemeNode changedNode, BindType bindType)
HotelInfoService
CalculateReservation
ServiceProvider
Сервис для получения информации по турам (FullTourInfoService)
Данный модуль предназначен для получения информации по списку рассчитанных туров, их типам, а также детализации рассчитанных цен - Сервис для получения информации по турам.
Метод 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
- TourCosts
- AccomodationType – тип размещения
- Cost – стоимость
- Currency – валюта
- ServicesCosts
- ServiceCost
- ServiceName – назавние услуги
- Cost – стоимость услуги
- Currency – валюта
- TransportKey – ключ транспорта (-1, если услуга не подразумевает схему размещения в транспорте)
- ServiceID – идентификационный номер услуги
- ServiceCost
Метод 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
- BusPlanCell
Метод GetTours
Метод 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
Метод GetTourTypes Параметры, принимаемые методом:
- token
Возвращаемое значение:
- ArrayOfTourType
- TourType
- TourTypeID – идентификационный номер типа тура
- Name – название типа тура
- TourType
Метод GetCountries
Метод GetCountries Параметры, принимаемые методом:
- token
Возвращаемое значение:
- ArrayOfCountry
- Country
- CountryID – идентификационный номер страны
- Name – название страны
- Country