Суточный кеш (xml) — различия между версиями

Материал из wiki.Sletat.ru
Перейти к: навигация, поиск
(Новая страница: «== Описание сервиса == Сервис предназначен для выгрузки кеша туров проекта Слетать.ру в б…»)
 
(Полностью удалено содержимое страницы)
 
(не показано 13 промежуточных версий этого же участника)
Строка 1: Строка 1:
−
== Описание сервиса ==
 
  
−
Сервис предназначен для выгрузки кеша туров проекта Слетать.ру в базу данных клиента. Раз в час система подготавливает сжатые алгоритмом GZIP XML-пакеты с новыми турами, по одному пакету на каждое направление ото всех туроператоров. Веб-сервис предоставляет метод для получения списка подготовленных пакетов. API выгрузки кеша – это стандартный веб-сервис, предоставляющий WSDL-документ с описанием всех методов и типов данных. Версия, выпущенная на момент написания настоящего документа, работает только по протоколу HTTP. Для большей совместимости с различными клиентами сервис основан на SOAP версии 1.1. Взаимодействие с сервисом возможно одним из двух способов:
 
−
* Как с обычным веб-сервисом посредством SOAP запросов, WSDL доступен.
 
−
* Как с сервисом WCF (Windows Communication Foundation) — самый простой способ, если клиент под .NET Framework 3.5 или выше. Логика обработки запросов не зависит от способа работы с сервисом. При передаче строк и XML-пакетов используется кодировка UTF-8. Сервис не требует сессий при работе с ним, и все методы не зависят друг от друга с точки зрения очередности вызова. Таким образом, очередность вызова методов диктуется реализуемым алгоритмом для работы с поисковым сервисом.
 
−
 
−
{| class="standard"
 
−
| style="background-color:silver" |Внимание! Сервис требует авторизации. Для работы используйте логин и пароль от личного кабинета на сайте sletat.ru.
 
−
|}
 
−
 
−
{| class="standard"
 
−
| style="background-color:silver" |Все описанные ниже методы возвращают информацию только при наличии дополнительной лицензии для доступа к Отельной базе. По всем вопросам обращайтесь в службу поддержки по тел. 8(800)700-33-09 (звонок бесплатный для всех регионов России) или по электронной почте info@sletat.ru.
 
−
|}
 
−
 
−
== Подключение к сервису ==
 
−
 
−
Чтобы начать работу с сервисом, зарегистрируйтесь на сайте sletat.ru и получите тестовую лицензию в Службе технической поддержки Слетать.ру по электронному адресу info@sletat.ru. После получения лицензии можно начинать работать с API. Для работы с сервисом вам нужно использовать WSDL документ, который расположен по адресу:
 
−
http://bulk.sletat.ru/main.svc?singleWSDL
 
−
 
−
Современные среды разработки позволяют автоматически создавать все необходимые классы, используя WSDL-документ. Это избавляет разработчика от необходимости работать вручную с SOAP-конвертами.Ниже мы подробно опишем алгоритмы работы с сервисом для клиентов, использующих .NET Framework.
 
−
 
−
=== Клиент на .NET ===
 
−
 
−
Добавьте в проект ссылку на WSDL-документ используя Service Reference (или Web Reference для проектов на .NET 2.0). Теперь ваш проект готов к работе с сервисом. Ниже приведен пример вызова метода для получения списка городов вылета:
 
−
 
−
<source lang="xml">
 
−
 
−
using System; using WcfClient.Gate;namespace WcfClient
 
−
{
 
−
    class Program
 
−
    {
 
−
        static void Main()
 
−
        {
 
−
            // создаём экземпляр обёртки для работы с поисковым сервисом
 
−
            using (var gate = new Soap11GateClient())
 
−
            {
 
−
                // указываем данные для авторизации на сервисе
 
−
                var authInfo = new AuthData() { Login = "********", Password = "********" };
 
−
                // далее нам доступен вызов любых методов сервиса
 
−
                var result = gate.GetFuelSurcharges(authInfo);
 
−
            }
 
−
        }
 
−
    }
 
−
}
 
−
 
−
</source>
 
−
 
−
Не забудьте указать логин и пароль вашей учетной записи на сайте SLETAT.RU. Данные авторизации передаются первым параметром для всех методов сервиса.
 
−
 
−
== Логика работы с сервисом ==
 
−
 
−
Сервис предоставляет метод '''GetPacketList''' для получения списка всех доступных для выгрузки пакетов с турами. Каждый пакет имеет указание на город вылета, страну и туроператора, а также на временной интервал, за который пакет включает туры. Используя список, вы можете загрузить либо все туры, либо туры по интересующим направлениям и туроператорам. Каждый пакет имеет уникальный идентификатор, используя который можно загрузить содержимое пакета. Сервис также предоставляет методы для выгрузки топливных и визовых сборов '''GetFuelSurcharges''' и '''GetVisaSurcharges'''.
 
−
 
−
== Методы ==
 
−
 
−
В этом разделе описаны все методы поискового сервиса. К методам приведены примеры запросов и ответов в SOAP. Все методы требуют авторизации. Информация для авторизации (логин и пароль) передаётся в заголовке SOAP:
 
−
 
−
<source lang="xml">
 
−
 
−
<soap:Envelope xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/
 
−
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 
−
  <soap:Header>
 
−
    <AuthInfo xmlns="urn:SletatRu:DataTypes:AuthData:v1">
 
−
      <Login>********</Login>
 
−
      <Password>********</Password>
 
−
    </AuthInfo>
 
−
  </soap:Header>
 
−
  <soap:Body>
 
−
    ...
 
−
  </soap:Body>
 
−
</soap:Envelope>
 
−
 
−
</source>
 
−
 
−
В примерах SOAP-запросов и ответов, которые приводятся ниже для каждого метода, элемент soap:Header убран для лучшей читаемости документа.
 
−
 
−
=== GetPacketList ===
 
−
 
−
Метод '''GetPacketList''' возвращает список всех пакетов, доступных для загрузки. Сигнатура:
 
−
 
−
PacketInfo[] GetPacketList(DateTime? createDatePoint)
 
−
 
−
'''CreateDatePoint''' – опциональный параметр; если передан, то будут возвращены пакеты, подготовленные после указанной даты. Каждый пакет ответа имеет следующие поля (знаком * здесь и далее отмечены обязательные поля):
 
−
                                       
 
−
{| class="wikitable"
 
−
|-
 
−
|
 
−
Название поля
 
−
|
 
−
Тип
 
−
|
 
−
Описание
 
−
|-
 
−
|
 
−
Id *
 
−
|
 
−
Int32
 
−
|
 
−
Идентификатор пакета.
 
−
|-
 
−
|
 
−
DptCityId *
 
−
|
 
−
Int32
 
−
|
 
−
Идентификатор города вылета.
 
−
|-
 
−
|
 
−
CountryId *
 
−
|
 
−
Int32
 
−
|
 
−
Идентификатор страны.
 
−
|-
 
−
|
 
−
SourceId *
 
−
|
 
−
Int32
 
−
|
 
−
Идентификатор туроператора.
 
−
|-
 
−
|
 
−
DateTimeFrom *
 
−
|
 
−
DateTime
 
−
|
 
−
Начало временного интервала, за который были собраны обновлённые туры (московское время).
 
−
|-
 
−
|
 
−
DateTimeTo *
 
−
|
 
−
DateTime
 
−
|
 
−
Окончание временного интервала, за который были собраны обновлённые туры (московское время).
 
−
|-
 
−
|
 
−
CreateDate *
 
−
|
 
−
DateTime
 
−
|
 
−
Дата и время подготовки пакета (московское время).
 
−
|}
 
−
 
−
=== BulkCacheDownload ===
 
−
 
−
'''BulkCacheDownload''' в интерфейсе сервиса выгрузки кеша является не методом, а отдельным инструментом для загрузки содержимого пакетов по их идентификаторам. Для работы с методом используются HTTP GET-запросы. Использование:
 
−
 
−
http://bulk.sletat.ru/BulkCacheDownload?packetId=[packetId]
 
−
 
−
Параметр '''packetId''' – идентификатор пакета.Ответом является сжатый алгоритмом GZIP XML-пакет, MIME-тип устанавливается application/x-gzip. XML-пакет имеет кодировку UTF-8 и несложную структуру в виде корневого элемента '''tours''' и элементов '''tour''', каждый из которых в атрибутах содержит описание одного тура. Ниже в таблице описаны все атрибуты для элементов '''tour''':
 
−
                                                                                                                                                                                                                                                                                                                         
 
−
{| class="wikitable"
 
−
|-
 
−
|
 
−
Название атрибута
 
−
|
 
−
Тип
 
−
|
 
−
Описание
 
−
|-
 
−
|
 
−
adults *
 
−
|
 
−
Int32
 
−
|
 
−
Количество туристов (взрослых).
 
−
|-
 
−
|
 
−
hasBusinessTicketsDpt
 
−
|
 
−
Int32
 
−
|
 
−
Наличие
 
−
билетов бизнес-класса (туда). Возможные значения: 0 (нет билетов), 1 (есть
 
−
билеты), 2 (под запрос). Если атрибут отсутствует, то этой информации.
 
−
|-
 
−
|
 
−
hasBusinessTicketsRtn
 
−
|
 
−
Int32
 
−
|
 
−
Наличие
 
−
билетов бизнес-класса (обратно). Возможные значения: 0 (нет билетов), 1 (есть билеты), 2 (под запрос). Если атрибут отсутствует, то этой информации нет.
 
−
|-
 
−
|
 
−
ticketsIncluded *
 
−
|
 
−
Int32
 
−
|
 
−
Включает
 
−
ли тур в стоимость перелёт: 0 (не включает) и 1 (включает). Если атрибут отсутствует, то нет такой информации о туре.
 
−
|-
 
−
|
 
−
checkIn *
 
−
|
 
−
String
 
−
|
 
−
Дата вылета в формате dd.MM.yyyy.
 
−
|-
 
−
|
 
−
hasEconomTicketsDpt
 
−
|
 
−
Int32
 
−
|
 
−
Наличие билетов эконом-класса (туда). Возможные значения: 0 (нет билетов), 1 (есть билеты), 2 (под запрос).
 
−
|-
 
−
|
 
−
hasEconomTicketsRtn
 
−
|
 
−
Int32
 
−
|
 
−
Наличие билетов эконом-класса (обратно), возможные значения: 0 (нет билетов), 1 (есть билеты), 2 (под запрос). Если атрибут отсутствует, то этой информации нет.
 
−
|-
 
−
|
 
−
hotelId
 
−
|
 
−
Int32
 
−
|
 
−
Идентификатор отеля. Может отсутствовать, если отель не слинкован.
 
−
|-
 
−
|
 
−
hotelIsInStop
 
−
|
 
−
Int32
 
−
|
 
−
Наличие мест в отеле. Возможные значения: 1 (нет мест), 0 (есть места), 2 (под запрос). Если атрибут отсутствует, то этой информации нет.
 
−
|-
 
−
|
 
−
hotelName *
 
−
|
 
−
String
 
−
|
 
−
Название отеля.
 
−
|-
 
−
|
 
−
htPlaceId
 
−
|
 
−
Int32
 
−
|
 
−
Идентификатор размещения. Атрибут может отсутствовать, если размещение не слинковано.
 
−
|-
 
−
|
 
−
htPlaceName *
 
−
|
 
−
String
 
−
|
 
−
Тип размещения.
 
−
|-
 
−
|
 
−
kids *
 
−
|
 
−
Int32
 
−
|
 
−
Количество туристов (детей).
 
−
|-
 
−
|
 
−
kid1age
 
−
|
 
−
Int32
 
−
|
 
−
Возраст первого ребенка. Атрибут необязательный.
 
−
|-
 
−
|
 
−
kid2age
 
−
|
 
−
Int32
 
−
|
 
−
Возраст второго ребенка. Атрибут необязательный.
 
−
|-
 
−
|
 
−
kid3age
 
−
|
 
−
Int32
 
−
|
 
−
Возраст третьего ребенка. Атрибут необязательный.
 
−
|-
 
−
|
 
−
mealId
 
−
|
 
−
Int32
 
−
|
 
−
Идентификатор типа питания. Может отсутствовать, если тип питания не слинкован.
 
−
|-
 
−
|
 
−
mealName *
 
−
|
 
−
String
 
−
|
 
−
Тип
 
−
питания.
 
−
|-
 
−
|
 
−
nights *
 
−
|
 
−
Int32
 
−
|
 
−
Продолжительность тура, ночей.
 
−
|-
 
−
|
 
−
offerId *
 
−
|
 
−
Int64
 
−
|
 
−
Идентификатор ценового предложения. Используется вместе с sourceId и requestId для актуализации тура и для оформления заказа.
 
−
|-
 
−
|
 
−
price *
 
−
|
 
−
Int32
 
−
|
 
−
Цена тура в запрошенной валюте.
 
−
|-
 
−
|
 
−
currencyId *
 
−
|
 
−
Int32
 
−
|
 
−
Идентификатор валюты к атрибуту price (2 – USD, 3 – EUR, 5 – RUR).
 
−
|-
 
−
|
 
−
requestId
 
−
|
 
−
Int32
 
−
|
 
−
Идентификатор поискового запроса. Используется вместе с sourceId и requestId для актуализации тура и для оформления заказа.
 
−
|-
 
−
|
 
−
townId
 
−
|
 
−
Int32
 
−
|
 
−
Идентификатор курорта. Может отсутствовать, если курорт не слинкован.
 
−
|-
 
−
|
 
−
townName *
 
−
|
 
−
String
 
−
|
 
−
Название курорта.
 
−
|-
 
−
|
 
−
roomId
 
−
|
 
−
Int32
 
−
|
 
−
Идентификатор типа номера. Может отсутствовать, если тип номера не слинкован.
 
−
|-
 
−
|
 
−
roomName *
 
−
|
 
−
String
 
−
|
 
−
Тип номера.
 
−
|-
 
−
|
 
−
sourceId *
 
−
|
 
−
Int32
 
−
|
 
−
Идентификатор туроператора. Значение используется вместе с offerId и requestId для заказа и оформления туров.
 
−
|-
 
−
|
 
−
starId
 
−
|
 
−
Int32
 
−
|
 
−
Идентификатор категории отеля. Может отсутствовать, если категория отеля не слинкована.
 
−
|-
 
−
|
 
−
starName *
 
−
|
 
−
String
 
−
|
 
−
Категория отеля.
 
−
|-
 
−
|
 
−
tourName *
 
−
|
 
−
String
 
−
|
 
−
Название тура. Может быть пустым, если туроператор не предоставляет таких данных.
 
−
|-
 
−
|
 
−
tourUrl
 
−
|
 
−
String
 
−
|
 
−
Ссылка на описание / бронирование тура на сайте туроператора.
 
−
|-
 
−
|
 
−
originalHotelName *
 
−
|
 
−
String
 
−
|
 
−
Оригинальное название отеля (данные туроператора).
 
−
|-
 
−
|
 
−
originalStarName *
 
−
|
 
−
String
 
−
|
 
−
Оригинальная категория отеля (данные туроператора).
 
−
|-
 
−
|
 
−
originalTownName *
 
−
|
 
−
String
 
−
|
 
−
Оригинальное название курорта (данные туроператора).
 
−
|-
 
−
|
 
−
originalMealName *
 
−
|
 
−
String
 
−
|
 
−
Оригинальный тип питания (данные туроператора).
 
−
|-
 
−
|
 
−
originalHtPlaceName *
 
−
|
 
−
String
 
−
|
 
−
Оригинальный тип размещения (данные туроператора).
 
−
|-
 
−
|
 
−
originalRoomName *
 
−
|
 
−
String
 
−
|
 
−
Оригинальный тип номера (данные туроператора).
 
−
|-
 
−
|
 
−
originalCountryName *
 
−
|
 
−
String
 
−
|
 
−
Оригинальное название страны (данные туроператора).
 
−
|-
 
−
|
 
−
originalDptCityName *
 
−
|
 
−
String
 
−
|
 
−
Оригинальное название города вылета (данные туроператора).
 
−
|-
 
−
|
 
−
originalPrice *
 
−
|
 
−
Int32
 
−
|
 
−
Цена тура у туроператора (может отличаться от цены в атрибуте price, если туроператор предоставляет такую информацию).
 
−
|-
 
−
|
 
−
originalCurrencyId *
 
−
|
 
−
Int32
 
−
|
 
−
Идентификатор валюты к атрибуту originalPrice (2 – USD, 3 – EUR, 5 – RUR).
 
−
|-
 
−
|
 
−
originalCurrencyName *
 
−
|
 
−
String
 
−
|
 
−
Оригинальное название валюты у туроператора.
 
−
|-
 
−
|
 
−
fewPlacesInHotel''' '''
 
−
|
 
−
Int32
 
−
|
 
−
Если есть места в отеле (hotelIsInStop = 0) и данное значение отлично от нуля, то мест в
 
−
отеле МАЛО.
 
−
Значение
 
−
-1 передаётся, если туроператор сообщает, что мест МАЛО, но не информирует о
 
−
точном количестве в остатке.
 
−
Если передано любое иное число, отличное от нуля, то это точное количество оставшихся мест.
 
−
|-
 
−
|
 
−
fewEconomTicketsDpt''' '''
 
−
|
 
−
Int32
 
−
|
 
−
Если есть места на перелёт эконом-классом (туда) (economTicketsDpt = 1) и
 
−
данное значение отлично от нуля, то билетов МАЛО.
 
−
Значение
 
−
-1 передаётся, если туроператор сообщает, что билетов МАЛО, но не информирует о точном количестве в остатке.
 
−
Если передано любое иное число отличное от нуля, то это точное количество оставшихся билетов.
 
−
|-
 
−
|
 
−
fewEconomTicketsRtn''' '''
 
−
|
 
−
Int32
 
−
|
 
−
Если есть места на перелёт эконом-классом (обратно) (economTicketsRtn = 1) и данное значение отлично от нуля, то билетов МАЛО. Значение -1 передаётся, если туроператор сообщает, что билетов МАЛО, но не информирует о точном количестве в остатке. Если передано любое иное число отличное от нуля, то это точное количество оставшихся билетов.
 
−
|-
 
−
|
 
−
fewBusinessTicketsDpt''' '''
 
−
|
 
−
Int32
 
−
|
 
−
Если есть места на перелёт бизнес-классом (туда) (businessTicketsDpt = 1) и
 
−
данное значение отлично от нуля, то билетов МАЛО. Значение -1 передаётся, если туроператор сообщает, что билетов МАЛО, но не информирует о точном количестве в остатке.
 
−
Если передано любое иное число отличное от нуля, то это точное количество оставшихся билетов.
 
−
|-
 
−
|
 
−
fewBusinessTicketsRtn''' '''
 
−
|
 
−
Int32
 
−
|
 
−
Если есть места на перелёт бизнес-классом (обратно) (businessTicketsRtn = 1) и
 
−
данное значение отлично от нуля, то билетов МАЛО.
 
−
Значение
 
−
-1 передаётся, если туроператор сообщает, что билетов МАЛО, но не информирует
 
−
о точном количестве в остатке. Если передано любое иное число отличное от нуля, то это точное количество оставшихся билетов.
 
−
|-
 
−
|
 
−
priceType *
 
−
|
 
−
Int32
 
−
|
 
−
Тип
 
−
цены у туроператора (0 – на номер, 1- на человека). Независимо от типа цены стоимость тура выдаётся конечной.
 
−
|-
 
−
|
 
−
flags''' '''
 
−
|
 
−
UInt64
 
−
|
 
−
Набор битовых флагов тура. Тур может иметь несколько установленных флагов одновременно, данное значение является их суммой.
 
−
Возможные флаги тура:
 
−
* 1 – туроператор рекомендует данный тур;
 
−
* 2 – доступно мгновенное подтверждение;
 
−
* 4 – туроператор считает данный тур лучшим предложением;
 
−
* 8 – тур раннего бронирования;
 
−
* 16 – тур позднего бронирования;
 
−
* 32 – туроператор предоставляет скидку на данный тур;
 
−
* 64 – VIP предложение;
 
−
* 128 – тур доступен в кредит;
 
−
* 256 – тур является эксклюзивным предложением туроператора;
 
−
* 512 – при покупке тура турист получает подарок;
 
−
* 1024 – тур является комбинированным.
 
−
|-
 
−
|
 
−
creditMonths''' '''
 
−
|
 
−
Int32?
 
−
|
 
−
Если
 
−
тур доступен для покупки в кредит, то в данном поле указывается срок кредита
 
−
в месяцах, иначе атрибут будет отсутствовать.
 
−
|-
 
−
|
 
−
creditMonthlyPay''' '''
 
−
|
 
−
Int32?
 
−
|
 
−
Если
 
−
тур доступен для покупки в кредит, то в данном поле указывается размер
 
−
ежемесячных выплат, иначе атрибут будет отсутствовать.
 
−
|-
 
−
|
 
−
description''' '''
 
−
|
 
−
String
 
−
|
 
−
Дополнительная
 
−
информация по туру. Например, для комбинированных туров может содержать информацию
 
−
о проживании в отелях.
 
−
|-
 
−
|
 
−
discountPercent''' '''
 
−
|
 
−
Single?
 
−
|
 
−
Если
 
−
туроператор предоставляет скидку, то в данном поле выводится размер скидки,
 
−
иначе атрибут будет отсутствовать.
 
−
|-
 
−
|
 
−
discountExpires''' '''
 
−
|
 
−
DateTime ?
 
−
|
 
−
Если
 
−
туроператор предоставляет скидку и указывает срок её действия, то в данном
 
−
поле выводится дата окончания акции, иначе атрибут будет отсутствовать.
 
−
|-
 
−
|
 
−
discountCaption''' '''
 
−
|
 
−
String
 
−
|
 
−
Описание
 
−
скидки/акции.
 
−
|-
 
−
|
 
−
receivingParty''' '''
 
−
|
 
−
String
 
−
|
 
−
Принимающая
 
−
сторона (если информация предоставляется туроператором).
 
−
|-
 
−
|
 
−
giftCaption''' '''
 
−
|
 
−
String
 
−
|
 
−
Если по
 
−
акции туроператор предоставляет подарки, то в данном поле выводится их описание.
 
−
|-
 
−
|
 
−
earlyBookingValidTill''' '''
 
−
|
 
−
DateTime
 
−
?
 
−
|
 
−
Если
 
−
тур является туром раннего бронирования и туроператор предоставляет последнюю дату ранней брони, то в данном поле выводится это значение, иначе атрибут будет отсутствовать.
 
−
|-
 
−
|
 
−
updateDate *
 
−
|
 
−
DateTme
 
−
|
 
−
Дата и время (UTC) последнего обновления информации о туре.
 
−
|-
 
−
|
 
−
|
 
−
|
 
−
|
 
−
|
 
−
|}
 
−
 
−
Пример запроса направлений для Санкт-Петербурга:
 
−
 
−
http://bulk.sletat.ru/BulkCacheDownload?packetId=922AC42F-9927-4B8C-A1EB-0020C35C4F22
 
−
 
−
После загрузки и распаковки данных получаем следующий пакет (для читаемости оставлены только два элемента '''tour'''):
 
−
 
−
<source lang="xml">
 
−
 
−
<tours>
 
−
  <tour offerId="200626003" requestId="116002036" sourceId="3" updateDate="2013-04-28 14:31:00" price="35382" currencyId="5" checkin="2013-05-26" nights="13" adults="1" kids="0" mealId="113" roomId="5283" htplaceId="13094" hotelIsInStop="0" ticketsIncluded="1" hasEconomTicketsDpt="1" hasEconomTicketsRtn="1" hasBusinessTicketsDpt="0" hasBusinessTicketsRtn="0" tourName="PALMA DE MALLORCA (KEMEROVO)" hotelName="HOTEL BLUE SEA DON JAIME" townName="PALMA DE MALLORCA" starName="3*" mealName="HB" roomName="Standard" htplaceName="SGL" originalHotelName="HOTEL BLUE SEA DON JAIME" originalTownName="PALMA DE MALLORCA" originalStarName="3*" originalMealName="HB" originalRoomName="Standard Room" originalHtplaceName="Single" originalCountryName="SPAIN" originalDptCityName="Кемерово" originalCurencyId="3" originalCurrencyName="EUR" originalPrice="853" tourUrl="http://agency.pegast.ru/samo5/bron?CLAIM=1717245082&amp;TOWNFROMINC=75&amp;STATEINC=58&amp;SPOINC=397842" priceType="0" flags="128" creditMonths="6" creditMonthlyPay="5897" />
 
−
  <tour offerId="200626009" requestId="116002036" sourceId="3" updateDate="2013-04-28 14:31:00" price="39282" currencyId="5" checkin="2013-05-26" nights="13" adults="1" kids="0" mealId="113" htplaceId="13094" hotelIsInStop="0" ticketsIncluded="1" hasEconomTicketsDpt="1" hasEconomTicketsRtn="1" hasBusinessTicketsDpt="0" hasBusinessTicketsRtn="0" tourName="PALMA DE MALLORCA (KEMEROVO)" hotelName="APARTHOTEL BLUE SEA CALA GUYA MAR" townName="PALMA DE MALLORCA" starName="3*" mealName="HB" roomName="One Bedroom Apartment" htplaceName="SGL" originalHotelName="APARTHOTEL BLUE SEA CALA GUYA MAR" originalTownName="PALMA DE MALLORCA" originalStarName="3*" originalMealName="HB" originalRoomName="One Bedroom Apartment" originalHtplaceName="Single" originalCountryName="SPAIN" originalDptCityName="Кемерово" originalCurencyId="3" originalCurrencyName="EUR" originalPrice="947" tourUrl="http://agency.pegast.ru/samo5/bron?CLAIM=1717245104&amp;TOWNFROMINC=75&amp;STATEINC=58&amp;SPO INC=397842" priceType="0" flags="128" creditMonths="6" creditMonthlyPay="6547" />
 
−
</tours>
 
−
 
−
</source>
 
−
 
−
=== GetFuelSurcharges ===
 
−
 
−
Метод '''GetFuelSurcharges''' позволяет получить список всех топливных сборов.Сигнатура:
 
−
FuelSurchargeInfo[] GetFuelSurcharges()
 
−
 
−
Параметры отсутствуют.
 
−
В ответ возвращает массив описаний топливных сборов '''FuelSurchargeInfo'''. Каждый элемент содержит следующие поля:
 
−
                                                                 
 
−
{| class="wikitable"
 
−
|-
 
−
|
 
−
Название поля
 
−
|
 
−
Тип
 
−
|
 
−
Описание
 
−
|-
 
−
|
 
−
SourceId
 
−
|
 
−
Int32?
 
−
|
 
−
Идентификатор туроператора. Если null, значит сбор применяется вне зависимости от туроператора
 
−
|-
 
−
|
 
−
TownFromId
 
−
|
 
−
Int32?
 
−
|
 
−
Идентификатор города вылета. Если null, значит сбор применяется вне зависимости от города вылета.
 
−
|-
 
−
|
 
−
CountryId
 
−
|
 
−
Int32?
 
−
|
 
−
Идентификатор направления. Если null, значит сбор применяется вне зависимости от направления.
 
−
|-
 
−
|
 
−
ResortId
 
−
|
 
−
Int32?
 
−
|
 
−
Идентификатор курорта, если null, значит сбор применяется вне зависимости от курорта.
 
−
|-
 
−
|
 
−
AirportId
 
−
|
 
−
Int32?
 
−
|
 
−
Идентификатор аэропорта назначения. Если null, значит сбор применяется вне зависимости от аэропорта назначения.
 
−
|-
 
−
|
 
−
AircompanyId
 
−
|
 
−
Int32?
 
−
|
 
−
Идентификатор авиакомпании. Если null, значит сбор применяется вне зависимости от авиакомпании.
 
−
|-
 
−
|
 
−
FlightNumber
 
−
|
 
−
Int32?
 
−
|
 
−
Номер рейса. Если null, значит сбор применяется вне зависимости от номера рейса.
 
−
|-
 
−
|
 
−
HostId
 
−
|
 
−
Int32?
 
−
|
 
−
Идентификатор туроператора принимающей стороны. Если null, значит сбор применяется вне зависимости от туроператора принимающей стороны.
 
−
|-
 
−
|
 
−
PeriodStartDate
 
−
|
 
−
DateTime
 
−
|
 
−
Дата начала действия сбора.
 
−
|-
 
−
|
 
−
PeriodEndDate
 
−
|
 
−
DateTime
 
−
|
 
−
Дата окончания действия сбора.
 
−
|-
 
−
|
 
−
Price
 
−
|
 
−
Decimal ?
 
−
|
 
−
Сумма сбора. Если пусто, значит по данному фильтру сбор не взимается.
 
−
|-
 
−
|
 
−
CurrencyId
 
−
|
 
−
Int32?
 
−
|
 
−
Идентификатор валюты сбора. Пусто при отсутствии сбора
 
−
|}
 
−
 
−
Топливный сбор применяется по наибольшему совпадению параметров тура с параметрами сбора.Фильтровать сборы для тура нужно следующим образом:
 
−
 
−
# Выбрать сборы по туроператору и те, для которых поле SourceId = null;
 
−
# Из выбранных сборов взять те, чьи периоды действия включают даты начала и окончания тура;
 
−
# Из выбранных сборов взять те, для которых поле TownFromId = городу вылета или null;
 
−
# Из выбранных сборов взять те, для которых поле CountryId = стране или null;
 
−
# Из выбранных сборов взять те, для которых поле ResortId = курорту или null;
 
−
# Из выбранных удалить сборы с «широким фильтром» (среди параметров TownFromId, CountryId, ResortId, SourceId все или несколько равны null), у которых остальные параметры совпадают с параметрами сборов в выборке с более «узким фильтром» (среди параметров TownFromId, CountryId, ResortId, SourceId все или несколько равны параметрам тура соответственно).
 
−
 
−
=== GetVisaSurcharges ===
 
−
 
−
Метод '''GetVisaSurcharges''' позволяет получить список всех визовых сборов. Сигнатура:
 
−
 
−
VisaSurchargeInfo[] GetVisaSurcharges()
 
−
 
−
Параметры отсутствуют.В ответ возвращает массив описаний визовых сборов VisaSurchargeInfo. Каждый элемент содержит следующие поля:
 
−
                                                                 
 
−
{| class="wikitable"
 
−
|-
 
−
|
 
−
Название поля
 
−
|
 
−
Тип
 
−
|
 
−
Описание
 
−
|-
 
−
|
 
−
SourceId
 
−
|
 
−
Int32?
 
−
|
 
−
Идентификатор туроператора. Если null, значит сбор применяется вне зависимости от туроператора.
 
−
|-
 
−
|
 
−
TownFromId
 
−
|
 
−
Int32?
 
−
|
 
−
Идентификатор города оформления. Возможные исключения:
 
−
# Если null, значит сбор применяется вне зависимости от города вылета.
 
−
# Если 1, значит виза оформляется по прибытии.
 
−
|-
 
−
|
 
−
CountryId
 
−
|
 
−
Int32?
 
−
|
 
−
Идентификатор страны назначения. Если null, значит сбор применяется вне зависимости от страны назначения
 
−
|-
 
−
|
 
−
Citizenship
 
−
|
 
−
Int32?
 
−
|
 
−
Идентификатор страны, гражданином которой является турист. Если null, значит сбор применяется вне зависимости от гражданства.
 
−
|-
 
−
|
 
−
IsExpress
 
−
|
 
−
bool?
 
−
|
 
−
True – сбор указан для экспресс-оформления. False – сбор указан для обычного оформления, null – сбор для любого типа оформления.
 
−
|-
 
−
|
 
−
AgeFrom
 
−
|
 
−
Int32?
 
−
|
 
−
Нижняя возрастная граница оформления визы.
 
−
|-
 
−
|
 
−
AgeTo
 
−
|
 
−
Int32?
 
−
|
 
−
Верхняя возрастная граница оформления визы.
 
−
|-
 
−
|
 
−
PasportType
 
−
|
 
−
bool?
 
−
|
 
−
Тип паспорта: true – свой, false – вписан, null – сбор применяется вне зависимости от типа паспорта.
 
−
|-
 
−
|
 
−
IssueDaysFrom
 
−
|
 
−
Int32?
 
−
|
 
−
Минимальный срок оформления, дней.
 
−
|-
 
−
|
 
−
IssueDaysTo
 
−
|
 
−
Int32?
 
−
|
 
−
Максимальный срок оформления, дней.
 
−
|-
 
−
|
 
−
Price
 
−
|
 
−
Decimal
 
−
?
 
−
|
 
−
Сумма сбора. Если пусто, значит по данному фильтру сбор не взимается.
 
−
|-
 
−
|
 
−
CurrencyId
 
−
|
 
−
Int32?
 
−
|
 
−
Идентификатор валюты сбора. Пусто при отсутствии сбора.
 
−
|}
 
−
 
−
=== GetRequestInfo ===
 
−
 
−
Вспомогательный метод '''GetRequestInfo''' предназначен для получения данных о поисковом запросе по его идентификатору. Идентификаторы поисковых запросов присутствуют в выгрузке для всех туров. Сигнатура:
 
−
 
−
RequestInfo GetRequestInfo(Int32 requestId)
 
−
 
−
Параметр '''requestId''' – идентификатор поискового запроса. Если запрос был найден, то в ответ будет возвращена структура со следующими полями:
 
−
                                                                                                   
 
−
{| class="wikitable"
 
−
|-
 
−
|
 
−
Название поля
 
−
|
 
−
Тип
 
−
|
 
−
Описание
 
−
|-
 
−
|
 
−
CurrencyAlias *
 
−
|
 
−
Int32
 
−
|
 
−
Валюта поиска (RUB, USD или EUR).
 
−
|-
 
−
|
 
−
DptCityId *
 
−
|
 
−
Int32
 
−
|
 
−
Идентификатор города вылета.
 
−
|-
 
−
|
 
−
CountryId *
 
−
|
 
−
Int32
 
−
|
 
−
Идентификатор страны.
 
−
|-
 
−
|
 
−
Adults *
 
−
|
 
−
Int32
 
−
|
 
−
Количество туристов (взрослых).
 
−
|-
 
−
|
 
−
Kids *
 
−
|
 
−
Int32
 
−
|
 
−
Количество туристов (детей).
 
−
|-
 
−
|
 
−
KidsAges
 
−
|
 
−
Int32[]
 
−
|
 
−
Возрасты детей (если были указаны).
 
−
|-
 
−
|
 
−
NightsMin *
 
−
|
 
−
Int32
 
−
|
 
−
Минимальная продолжительность тура, ночей.
 
−
|-
 
−
|
 
−
NightsMax *
 
−
|
 
−
Int32
 
−
|
 
−
Максимальная продолжительность тура, ночей.
 
−
|-
 
−
|
 
−
PriceMin
 
−
|
 
−
Int32
 
−
|
 
−
Минимальная цена.
 
−
|-
 
−
|
 
−
PriceMax
 
−
|
 
−
Int32
 
−
|
 
−
Максимальная цена.
 
−
|-
 
−
|
 
−
Date1 *
 
−
|
 
−
DateTime
 
−
|
 
−
Диапазон дат вылета, первая дата.
 
−
|-
 
−
|
 
−
Date2 *
 
−
|
 
−
DateTime
 
−
|
 
−
Диапазон дат вылета, вторая дата.
 
−
|-
 
−
|
 
−
HotelIsNotInStop *
 
−
|
 
−
Boolean
 
−
|
 
−
Отмечен флажок «Есть места в отеле».
 
−
|-
 
−
|
 
−
TicketsIncluded *
 
−
|
 
−
Boolean
 
−
|
 
−
Отмечен флажок «Перелет включен».
 
−
|-
 
−
|
 
−
HasTickets *
 
−
|
 
−
Boolean
 
−
|
 
−
Отмечен флажок «Есть билеты».
 
−
|-
 
−
|
 
−
HotelIds
 
−
|
 
−
Int32[]
 
−
|
 
−
Выбранные отели (если были указаны).
 
−
|-
 
−
|
 
−
StarIds
 
−
|
 
−
Int32[]
 
−
|
 
−
Выбранные категории отелей (если были указаны).
 
−
|-
 
−
|
 
−
MealIds
 
−
|
 
−
Int32[]
 
−
|
 
−
Выбранные типы питания (если были указаны).
 
−
|-
 
−
|
 
−
TownIds
 
−
|
 
−
Int32[]
 
−
|
 
−
Выбранные курорты (если были указаны).
 
−
|}
 

Текущая версия на 09:48, 28 мая 2026