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

Материал из wiki.Sletat.ru
Перейти к: навигация, поиск
(Удаление валюты UZS)
(Полностью удалено содержимое страницы)
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
[[Category:Расширения и дополнения]]
 
== Описание сервиса ==
 
  
Сервис предназначен для выгрузки кеша туров проекта Слетать.ру в базу данных клиента. Раз в час система подготавливает сжатые алгоритмом GZIP XML-пакеты с новыми турами, по одному пакету на каждое направление ото всех туроператоров. Веб-сервис предоставляет метод для получения списка подготовленных пакетов. API выгрузки кеша – это стандартный веб-сервис, предоставляющий WSDL-документ с описанием всех методов и типов данных. Версия, выпущенная на момент написания настоящего документа, работает только по протоколу HTTPS. Для большей совместимости с различными клиентами сервис основан на 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 документ, который расположен по адресу:
 
https://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-запросы. Использование:
 
 
https://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) последнего обновления информации о туре.
 
|-
 
|
 
|
 
|
 
|
 
|
 
|}
 
 
Пример запроса направлений для Санкт-Петербурга:
 
 
https://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="https://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="https://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, UAH и BYR).
 
|-
 
|
 
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