Шлюз поиска туров (xml) — различия между версиями

Материал из wiki.Sletat.ru
Перейти к: навигация, поиск
(Актуализация и сохранение данных)
(Добавление валюты UZS)
 
(не показаны 43 промежуточные версии этого же участника)
Строка 121: Строка 121:
 
     <GetDepartCities xmlns="urn:SletatRu:Soap11Gate:v1">  
 
     <GetDepartCities xmlns="urn:SletatRu:Soap11Gate:v1">  
 
       ...  
 
       ...  
     </GetProductKeys>  
+
     </GetDepartCities>  
 
   </soap:Body>  
 
   </soap:Body>  
 
</soap:Envelope>
 
</soap:Envelope>
Строка 204: Строка 204:
 
>
 
>
 
   <soap:Header>  
 
   <soap:Header>  
     <AuthInfo  
+
     <AuthInfo xmlns="urn:SletatRu:DataTypes:AuthData:v1">  
      xmlns="urn:SletatRu:DataTypes:AuthData:v1"
+
       <Login>********</Login>  
    >  
+
       <Password>********</Password>  
       <Login>
+
        ********
+
      </Login>  
+
       <Password>
+
        ********
+
      </Password>  
+
 
     </AuthInfo>  
 
     </AuthInfo>  
 
   </soap:Header>  
 
   </soap:Header>  
 
   <soap:Body>  
 
   <soap:Body>  
     <GetDepartCities  
+
     <GetDepartCities xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"/>  
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"  
+
    />  
+
 
   </soap:Body>  
 
   </soap:Body>  
 
</soap:Envelope>
 
</soap:Envelope>
Строка 244: Строка 236:
 
<source lang="xml">
 
<source lang="xml">
  
<soap:Envelope  
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
+
>  
+
 
   <soap:Body>  
 
   <soap:Body>  
     <GetDepartCities  
+
     <GetDepartCities xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"/>  
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"  
+
    />  
+
 
   </soap:Body>  
 
   </soap:Body>  
 
</soap:Envelope>
 
</soap:Envelope>
Строка 260: Строка 248:
 
<source lang="xml">
 
<source lang="xml">
  
<s:Envelope  
+
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">  
  xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"  
+
>  
+
 
   <s:Body>  
 
   <s:Body>  
     <GetDepartCitiesResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
     <GetDepartCitiesResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
    >
+
 
       <GetDepartCitiesResult  
 
       <GetDepartCitiesResult  
 
         xmlns:a="urn:SletatRu:DataTypes:CityCollection:v1"
 
         xmlns:a="urn:SletatRu:DataTypes:CityCollection:v1"
Строка 271: Строка 256:
 
       >
 
       >
 
         <a:City>  
 
         <a:City>  
           <Id  
+
           <Id xmlns="urn:SletatRu:DataTypes:DbObject:v1">1264</Id>  
            xmlns="urn:SletatRu:DataTypes:DbObject:v1"
+
           <Name xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1">Санкт-Петербург</Name>  
          >
+
            1264
+
          </Id>  
+
           <Name  
+
            xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1"
+
          >
+
            Санкт-Петербург
+
          </Name>  
+
 
         </a:City>  
 
         </a:City>  
 
         ...  
 
         ...  
Строка 316: Строка 293:
 
<source lang="xml">
 
<source lang="xml">
  
<soap:Envelope  
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
+
>
+
 
   <soap:Body>
 
   <soap:Body>
     <GetCountries  
+
     <GetCountries xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >
+
 
       <townFromId>1254</townFromId>
 
       <townFromId>1254</townFromId>
 
     </GetCountries>
 
     </GetCountries>
Строка 343: Строка 316:
 
       >
 
       >
 
         <a:Country>  
 
         <a:Country>  
           <Id  
+
           <Id xmlns="urn:SletatRu:DataTypes:DbObject:v1">1</Id>  
            xmlns="urn:SletatRu:DataTypes:DbObject:v1"
+
           <Name xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1">Абхазия</Name>  
          >
+
            1
+
          </Id>  
+
           <Name  
+
            xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1"
+
          >
+
            Абхазия
+
          </Name>  
+
 
         </a:Country>  
 
         </a:Country>  
 
         ...  
 
         ...  
Строка 377: Строка 342:
 
|String
 
|String
 
|Наименование страны
 
|Наименование страны
 +
|-
 +
|IsProVisa
 +
|Bool
 +
|Требуется ли в страну про-виза. Если в страну требуется про-виза, параметр принимает значение “true”; в противном случае — “false”.
 
|-
 
|-
 
|IsVisa
 
|IsVisa
Строка 384: Строка 353:
 
|Alias
 
|Alias
 
|String
 
|String
|
+
|Текстовый код направления.
 
|-
 
|-
 
|Flags
 
|Flags
Строка 392: Строка 361:
 
|HasTickets
 
|HasTickets
 
|Int32
 
|Int32
|
+
|Наличие билетов. Если билеты есть в наличии, параметр принимает значение “true”; в противном случае — “false”.
 
|-
 
|-
 
|HotelIsNotInStop
 
|HotelIsNotInStop
 
|Int32
 
|Int32
|
+
|Наличие мест в отеле. Если в отеле есть места, параметр принимает значение “true”; в противном случае — “false”.
 
|-
 
|-
 
|Rank
 
|Rank
 
|Int32
 
|Int32
|
+
|Ранг страны (0 — самый высокий).
 
|-
 
|-
 
|TicketsIncluded
 
|TicketsIncluded
 
|Int32
 
|Int32
|
+
|Объём турпакета. Если перелёт включён в стоимость тура, параметр принимает значение “true”; в противном случае — “false”.
 
|}
 
|}
  
Строка 420: Строка 389:
 
<source lang="xml">
 
<source lang="xml">
  
<soap:Envelope  
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
+
>  
+
 
   <soap:Body>
 
   <soap:Body>
     <GetCities  
+
     <GetCities xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">  
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
       <countryId>40</countryId>  
    >  
+
       <countryId>
+
        40
+
      </countryId>  
+
 
     </GetCities>  
 
     </GetCities>  
 
   </soap:Body>
 
   </soap:Body>
Строка 440: Строка 403:
 
<source lang="xml">
 
<source lang="xml">
  
<s:Envelope  
+
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
+
>
+
 
   <s:Body>  
 
   <s:Body>  
     <GetCitiesResponse  
+
     <GetCitiesResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">  
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >  
+
 
       <GetCitiesResult  
 
       <GetCitiesResult  
 
         xmlns:a="urn:SletatRu:DataTypes:CityCollection:v1"
 
         xmlns:a="urn:SletatRu:DataTypes:CityCollection:v1"
Строка 452: Строка 411:
 
       >  
 
       >  
 
         <a:City>  
 
         <a:City>  
           <Id  
+
           <Id xmlns="urn:SletatRu:DataTypes:DbObject:v1">26</Id>  
            xmlns="urn:SletatRu:DataTypes:DbObject:v1"
+
           <Name xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1">Айн Сохна</Name>  
          >
+
            26
+
          </Id>  
+
           <Name  
+
            xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1"
+
          >
+
            Айн Сохна
+
          </Name>  
+
 
         </a:City>  
 
         </a:City>  
 
         ...  
 
         ...  
Строка 483: Строка 434:
 
|Идентификатор курорта.
 
|Идентификатор курорта.
 
|-
 
|-
|Name
+
|Name  
 
|String
 
|String
|Название курорта.
+
|Название курорта. 
 +
|-
 +
|CountryId
 +
|Int
 +
|Идентификатор направления.
 +
|-
 +
|Default
 +
|Bool
 +
|Устаревший параметр
 +
|-
 +
|DescriptionUrl
 +
|String
 +
|Ссылка на описание курорта. Поле может быть пустым, если курорт не имеет описания.
 +
|-
 +
|IsPopular
 +
|Bool
 +
|Популярность курорта. Если курорт был признан популярным на основе статистики поисковых запросов, сделанных на сайте sletat.ru и сайтах партнёров, поле принимает значение “true”; в противном случае — “false”.
 +
|-
 +
|OriginalName
 +
|String
 +
|Название страны на латинице.
 +
|-
 +
|ParentId
 +
|Int
 +
|Идентификатор родительского курорта. Например, для греческих курортов Ираклиона, Лассити и Ретимно идентификатором родительского курорта будет 3071 - идентификатор о. Крит. Поле может быть пустым, если курорт не имеет родительского курорта.
 
|}
 
|}
  
Строка 517: Строка 492:
 
<source lang="xml">
 
<source lang="xml">
  
<soap:Envelope  
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
+
>  
+
 
   <soap:Body>  
 
   <soap:Body>  
     <GetHotelStars  
+
     <GetHotelStars xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">  
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >  
+
 
       <countryId>40</countryId>  
 
       <countryId>40</countryId>  
 
       <towns>  
 
       <towns>  
         <int
+
         <int xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">1592</int>
          xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
+
        <int xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">1642</int>  
        >
+
          1592
+
        </int>
+
        <int
+
          xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
+
        >
+
          1642
+
        </int>  
+
 
       </towns>  
 
       </towns>  
 
     </GetHotelStars>  
 
     </GetHotelStars>  
Строка 547: Строка 510:
 
<source lang="xml">
 
<source lang="xml">
  
<s:Envelope  
+
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">  
  xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
+
>  
+
 
   <s:Body>  
 
   <s:Body>  
     <GetHotelStarsResponse  
+
     <GetHotelStarsResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">  
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >  
+
 
       <GetHotelStarsResult  
 
       <GetHotelStarsResult  
 
         xmlns:a="urn:SletatRu:DataTypes:HotelStarsCollection:v1"  
 
         xmlns:a="urn:SletatRu:DataTypes:HotelStarsCollection:v1"  
Строка 560: Строка 519:
 
       >  
 
       >  
 
         <a:HotelStars>  
 
         <a:HotelStars>  
           <Id  
+
           <Id xmlns="urn:SletatRu:DataTypes:DbObject:v1">401</Id>  
            xmlns="urn:SletatRu:DataTypes:DbObject:v1"
+
           <Name xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1">2*</Name>  
          >
+
            401
+
          </Id>  
+
           <Name  
+
            xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1"
+
          >
+
            2*
+
          </Name>  
+
 
         </a:HotelStars>  
 
         </a:HotelStars>  
 
         ...  
 
         ...  
Строка 609: Строка 560:
 
<source lang="xml">
 
<source lang="xml">
  
<soap:Envelope  
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
+
>  
+
 
   <soap:Body>  
 
   <soap:Body>  
     <GetMeals  
+
     <GetMeals xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"/>  
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"  
+
    />  
+
 
   </soap:Body>  
 
   </soap:Body>  
 
</soap:Envelope>
 
</soap:Envelope>
Строка 626: Строка 573:
 
<source lang="xml">
 
<source lang="xml">
  
<s:Envelope  
+
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
+
>
+
 
   <s:Body>  
 
   <s:Body>  
     <GetMealsResponse  
+
     <GetMealsResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >
+
 
       <GetMealsResult  
 
       <GetMealsResult  
 
         xmlns:a="urn:SletatRu:DataTypes:MealCollection:v1"  
 
         xmlns:a="urn:SletatRu:DataTypes:MealCollection:v1"  
Строка 639: Строка 582:
 
       >  
 
       >  
 
         <a:Meal>  
 
         <a:Meal>  
           <Id  
+
           <Id xmlns="urn:SletatRu:DataTypes:DbObject:v1">115</Id>  
            xmlns="urn:SletatRu:DataTypes:DbObject:v1"
+
           <Name xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1">AI</Name>  
          >
+
            115
+
          </Id>  
+
           <Name  
+
            xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1"
+
          >
+
            AI
+
          </Name>  
+
 
         </a:Meal>  
 
         </a:Meal>  
 
         ...  
 
         ...  
Строка 714: Строка 649:
 
|}
 
|}
  
Пример SOAP-запроса списка 4- и 5-звёздочных 500 отелей Хургады и Шарм-Эль-Шейха:
+
Пример SOAP-запроса списка 4 и 5-звёздочных 500 отелей Хургады и Шарм-Эль-Шейха:
  
 
<source lang="xml">
 
<source lang="xml">
  
<soap:Envelope  
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
+
>  
+
 
   <soap:Body>  
 
   <soap:Body>  
     <GetHotels  
+
     <GetHotels xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">  
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >  
+
 
       <countryId>40</countryId>  
 
       <countryId>40</countryId>  
 
       <towns>  
 
       <towns>  
         <int  
+
         <int xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">1592</int>
          xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
+
         <int xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">1642</int>  
        >
+
          1592
+
        </int>
+
         <int  
+
          xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
+
        >
+
          1642
+
        </int>  
+
 
       </towns>  
 
       </towns>  
 
       <stars>  
 
       <stars>  
         <int  
+
         <int xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">403</int>  
          xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
+
         <int xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">404</int>  
        >
+
          403
+
        </int>  
+
         <int  
+
          xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
+
        >
+
          404
+
        </int>  
+
 
       </stars>  
 
       </stars>  
       <filter  
+
       <filter xsi:nil="true"/>  
        xsi:nil="true"  
+
      />  
+
 
       <count>500</count>  
 
       <count>500</count>  
 
     </GetHotels>  
 
     </GetHotels>  
Строка 764: Строка 677:
 
<source lang="xml">
 
<source lang="xml">
  
<s:Envelope  
+
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">  
  xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
+
>  
+
 
   <s:Body>  
 
   <s:Body>  
     <GetHotelsResponse  
+
     <GetHotelsResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">  
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >  
+
 
       <GetHotelsResult  
 
       <GetHotelsResult  
 
         xmlns:a="urn:SletatRu:DataTypes:HotelCollection:v1"  
 
         xmlns:a="urn:SletatRu:DataTypes:HotelCollection:v1"  
Строка 777: Строка 686:
 
       >  
 
       >  
 
         <a:Hotel>  
 
         <a:Hotel>  
           <Id  
+
           <Id xmlns="urn:SletatRu:DataTypes:DbObject:v1">14646</Id>  
            xmlns="urn:SletatRu:DataTypes:DbObject:v1"
+
           <Name xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1">Four Seasons Resort</Name>  
          >
+
            14646
+
          </Id>  
+
           <Name  
+
            xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1"
+
          >
+
            Four Seasons Resort
+
          </Name>  
+
 
           <b:Rate>4.94</b:Rate>  
 
           <b:Rate>4.94</b:Rate>  
 
           <b:StarName>5*</b:StarName>  
 
           <b:StarName>5*</b:StarName>  
Строка 817: Строка 718:
 
|Int32
 
|Int32
 
|Пляжная линия. Варианты значений: 1, 2, 3 (первая, вторая или третья пляжная линия соответственно).
 
|Пляжная линия. Варианты значений: 1, 2, 3 (первая, вторая или третья пляжная линия соответственно).
 +
|-
 +
|CommonRate
 +
|Float
 +
|Рейтинг отеля. На момент написания настоящего руководства параметр не используется, и данные не обновляются.
 +
|-
 +
|IsInBonusProgram
 +
|Bool
 +
|Бонусная программа Слетать.ру. Если отель предлагает турагентам бонусы за туристов, поле принимает значение “true”; в противном случае – “false”.
 +
|-
 +
|OriginalName
 +
|Str
 +
|Название отеля на латинице.
 +
|-
 +
|Phone
 +
|Int
 +
|Устаревший параметр.
 +
|-
 +
|PhotosCount
 +
|Int
 +
|Общее количество фотографий отеля.
 +
|-
 +
|PopularityLevel
 +
|Int
 +
|Уровень популярности отеля. Определяется на основе количества поисков в отель. 0 - Low, 1 - Normal, 2 - High
 +
|-
 +
|Rate
 +
|Float
 +
|Ранг отеля.
 +
|-
 +
|SearchCount
 +
|int
 +
|Количество поисков по отелю за период (1 месяц).
 +
|-
 +
|StarId
 +
|Int
 +
|Идентификатор категории отеля.
 
|-
 
|-
 
|StarName
 
|StarName
|String
+
|Str
|Категория отеля.
+
|Категория отеля
 
|-
 
|-
|Rate
+
|TownId
|String
+
|Int
|Рейтинг по пятибалльной шкале.
+
|Идентификатор курорта.
 
|}
 
|}
  
Строка 857: Строка 794:
 
<source lang="xml">
 
<source lang="xml">
  
<soap:Envelope  
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
+
>  
+
 
   <soap:Body>  
 
   <soap:Body>  
     <GetTourOperators  
+
     <GetTourOperators xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">  
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >  
+
 
       <townFromId>1264</townFromId>  
 
       <townFromId>1264</townFromId>  
 
       <countryId>40</countryId>  
 
       <countryId>40</countryId>  
Строка 876: Строка 809:
 
<source lang="xml">
 
<source lang="xml">
  
<s:Envelope  
+
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">  
  xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
+
>  
+
 
   <s:Body>  
 
   <s:Body>  
     <GetTourOperatorsResponse  
+
     <GetTourOperatorsResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">  
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >  
+
 
       <GetTourOperatorsResult  
 
       <GetTourOperatorsResult  
 
         xmlns:a="urn:SletatRu:DataTypes:TourOperatorCollection:v1"  
 
         xmlns:a="urn:SletatRu:DataTypes:TourOperatorCollection:v1"  
Строка 889: Строка 818:
 
       >  
 
       >  
 
         <a:TourOperator>  
 
         <a:TourOperator>  
           <Id  
+
           <Id xmlns="urn:SletatRu:DataTypes:DbObject:v1">7</Id>  
            xmlns="urn:SletatRu:DataTypes:DbObject:v1"
+
           <Name xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1">Biblio Globus</Name>  
          >
+
            7
+
          </Id>  
+
           <Name  
+
            xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1"
+
          >
+
            Biblio Globus
+
          </Name>  
+
 
           <b:Enabled>True</b:Enabled>  
 
           <b:Enabled>True</b:Enabled>  
 
         </a:TourOperator>  
 
         </a:TourOperator>  
Строка 972: Строка 893:
 
<source lang="xml">
 
<source lang="xml">
  
<s:Envelope  
+
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">  
  xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
+
>  
+
 
   <s:Body>  
 
   <s:Body>  
     <GetTourDates  
+
     <GetTourDates xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">  
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >  
+
 
       <dptCityId>1265</dptCityId>  
 
       <dptCityId>1265</dptCityId>  
 
       <countryId>3</countryId>  
 
       <countryId>3</countryId>  
Строка 997: Строка 914:
 
<source lang="xml">
 
<source lang="xml">
  
<s:Envelope  
+
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">  
  xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
+
>  
+
 
   <s:Body>  
 
   <s:Body>  
     <GetTourDatesResponse  
+
     <GetTourDatesResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">  
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >  
+
 
       <GetTourDatesResult  
 
       <GetTourDatesResult  
 
         xmlns:a="urn:SletatRu:DataTypes:XmlTourDates:v1"  
 
         xmlns:a="urn:SletatRu:DataTypes:XmlTourDates:v1"  
 
         xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
 
         xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
 
       >  
 
       >  
         <a:Dates  
+
         <a:Dates xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays">  
          xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
+
        >  
+
 
           <b:string>09.03.2013</b:string>  
 
           <b:string>09.03.2013</b:string>  
 
           <b:string>09.02.2013</b:string>  
 
           <b:string>09.02.2013</b:string>  
Строка 1084: Строка 995:
  
 
{| class="standard sWarning"
 
{| class="standard sWarning"
|Внимание! Варианты взаимодействия методов '''[[#CreateRequest | CreateRequest]]''', '''[[#GetRequestResult | GetRequestResult]]''' и '''[[XML поиск туров. API 1.13#ContinueSearch|ContinueSearch]]''' описана в разделе «'''[[XML поиск туров. API 1.13#Логика работы с сервисом|Логика работы с сервисом]]'''».  
+
|Внимание! Варианты взаимодействия методов '''[[#CreateRequest | CreateRequest]]''', '''[[#GetRequestResult | GetRequestResult]]''' и '''[[#ContinueSearch |ContinueSearch]]''' описана в разделе «'''[[#Логика работы с сервисом |Логика работы с сервисом]]'''».  
 
|}
 
|}
  
Строка 1093: Строка 1004:
 
==== CreateRequest ====
 
==== CreateRequest ====
  
Метод '''CreateRequest''' используется для создания поискового запроса. Ответ состоит из единственного элемента '''CreateRequestResult''', содержащего идентификатор созданного запроса. Присвоенный запросу идентификатор используется методами '''[[#GetRequestState | GetRequestState]]''', '''[[#GetRequestResult | GetRequestResult]]''' и '''[[XML поиск туров. API 1.13#ContinueSearch|ContinueSearch]]''' в продолжение всего процесса поиска.
+
Метод '''CreateRequest''' используется для создания поискового запроса. Ответ состоит из единственного элемента '''CreateRequestResult''', содержащего идентификатор созданного запроса. Присвоенный запросу идентификатор используется методами '''[[#GetRequestState | GetRequestState]]''', '''[[#GetRequestResult | GetRequestResult]]''' и '''[[#ContinueSearch |ContinueSearch]]''' в продолжение всего процесса поиска.
  
 
{| class="standard sWarning"
 
{| class="standard sWarning"
|Внимание! Варианты взаимодействия методов '''CreateRequest''', '''[[#GetRequestResult | GetRequestResult]]''' и '''[[XML поиск туров. API 1.13#ContinueSearch|ContinueSearch]]''' описана в разделе «'''[[XML поиск туров. API 1.13#Логика работы с сервисом|Логика работы с сервисом]]'''».
+
|Внимание! Варианты взаимодействия методов '''CreateRequest''', '''[[#GetRequestResult | GetRequestResult]]''' и '''[[#ContinueSearch |ContinueSearch]]''' описана в разделе «'''[[#Логика работы с сервисом |Логика работы с сервисом]]'''».
 
|}
 
|}
  
Строка 1242: Строка 1153:
 
String
 
String
 
|  
 
|  
Валюта для параметров priceMin и priceMax. Поддерживаются значения USD, EUR, RUB, BYN и UAH. Указанная валюта будет использована в поисковой выдаче.
+
Валюта для параметров priceMin и priceMax. Поддерживаются значения USD, EUR, RUB, BYN, UAH и UZS. Указанная валюта будет использована в поисковой выдаче.
 
|-
 
|-
 
|  
 
|  
Строка 1299: Строка 1210:
 
|  
 
|  
 
Если значение равно «true», в выдаче будут подробно описаны отели, типы размещения и питания.
 
Если значение равно «true», в выдаче будут подробно описаны отели, типы размещения и питания.
 +
|-
 +
|
 +
showEconomOnly
 +
|
 +
Boolean
 +
|
 +
Возвращает туры в которые есть билеты на эконом рейсы, если значение параметра равно «true»; если «false», фильтр не применяется. Значение по умолчанию — «false». (Данный параметр является устаревшим. Не рекомендуется к использованию).
 
|-
 
|-
 
|  
 
|  
Строка 1312: Строка 1230:
 
* направление Египет;
 
* направление Египет;
 
* курорты Хургада и Шарм-Эль-Шейх;
 
* курорты Хургада и Шарм-Эль-Шейх;
 +
* отели Albatros Aqua Park Sharm и Akassia Swiss Resort;
 
* вид питания All Included;
 
* вид питания All Included;
 
* 2 взрослых туриста без детей;
 
* 2 взрослых туриста без детей;
Строка 1325: Строка 1244:
 
<source lang="xml">
 
<source lang="xml">
  
<s:Envelope
+
<x:Envelope
  xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
+
    xmlns:x="http://schemas.xmlsoap.org/soap/envelope/"
 +
    xmlns:urn="urn:SletatRu:Contracts:Soap11Gate:v1"
 +
    xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
 +
    xmlns:urn1="urn:SletatRu:DataTypes:AuthData:v1"
 
>
 
>
  <s:Body>
+
    <x:Header>
    <CreateRequest
+
        <urn1:AuthInfo>
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
            <urn1:Login>****</urn1:Login>
     >
+
            <urn1:Password>****</urn1:Password>
      <countryId>40</countryId>
+
        </urn1:AuthInfo>
      <cityFromId>1264</cityFromId>
+
     </x:Header>
      <cities>
+
    <x:Body>
        <int
+
        <urn:CreateRequest>
          xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
+
            <urn:countryId>40</urn:countryId>
        >
+
            <urn:cityFromId>1264</urn:cityFromId>
          1592
+
            <urn:cities>
        </int>
+
                <arr:int>1592</arr:int>
        <int
+
                <arr:int>1642</arr:int>
          xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
+
            </urn:cities>
        >
+
            <urn:meals>
          1642
+
                <arr:int>115</arr:int>
        </int>
+
            </urn:meals>
      </cities>
+
            <urn:hotels>
      <meals>
+
                <arr:int>109930</arr:int>
        <int
+
                <arr:int>772</arr:int>
          xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
+
            </urn:hotels>
        >
+
            <urn:adults>2</urn:adults>
          115
+
            <urn:kids>0</urn:kids>
        </int>
+
            <urn:kidsAges>
      </meals>
+
                <arr:int>0</arr:int>
      <stars>
+
            </urn:kidsAges>
        <int
+
            <urn:nightsMin>7</urn:nightsMin>
          xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
+
            <urn:nightsMax>7</urn:nightsMax>
        >
+
            <urn:priceMin>10000</urn:priceMin>
          403
+
            <urn:priceMax>1000000</urn:priceMax>
        </int>
+
            <urn:currencyAlias>RUB</urn:currencyAlias>
        <int
+
            <urn:departFrom>10.04.2011</urn:departFrom>
          xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
+
            <urn:departTo>17.04.2011</urn:departTo>
        >
+
            <urn:hotelIsNotInStop>true</urn:hotelIsNotInStop>
          404
+
            <urn:hasTickets>true</urn:hasTickets>
        </int>
+
            <urn:ticketsIncluded>true</urn:ticketsIncluded>
      </stars>
+
            <urn:includeDescriptions>true</urn:includeDescriptions>
      <hotels
+
        </urn:CreateRequest>
        xsi:nil="true"
+
    </x:Body>
      />
+
</x:Envelope>
      <adults>2</adults>
+
      <kids>0</kids>
+
      <kidsAges xsi:nil="true" />
+
      <nightsMin>14</nightsMin>
+
      <nightsMax>14</nightsMax>
+
      <currencyAlias>RUB</currencyAlias>
+
      <departFrom>10.10.2011</departFrom>
+
      <departTo>17.10.2011</departTo>
+
      <hotelIsNotInStop>true</hotelIsNotInStop>
+
      <hasTickets>true</hasTickets>
+
      <ticketsIncluded>true</ticketsIncluded>
+
      <f_to_id xsi:nil="true" />
+
      <includeDescriptions>true</includeDescriptions>
+
    </CreateRequest>
+
  </s:Body>
+
</s:Envelope>
+
  
 
</source>
 
</source>
Строка 1391: Строка 1297:
 
<source lang="xml">
 
<source lang="xml">
  
<s:Envelope
+
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
+
>
+
 
   <s:Body>
 
   <s:Body>
     <CreateRequestResponse
+
     <CreateRequestResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >
+
 
       <CreateRequestResult>4355852</CreateRequestResult>
 
       <CreateRequestResult>4355852</CreateRequestResult>
 
     </CreateRequestResponse>
 
     </CreateRequestResponse>
Строка 1425: Строка 1327:
 
<source lang="xml">
 
<source lang="xml">
  
<soap:Envelope
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
+
>
+
 
   <soap:Body>
 
   <soap:Body>
     <GetRequestState
+
     <GetRequestState xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >
+
 
       <requestId>4355852</requestId>
 
       <requestId>4355852</requestId>
 
     </GetRequestState>
 
     </GetRequestState>
Строка 1443: Строка 1341:
 
<source lang="xml">
 
<source lang="xml">
  
<s:Envelope
+
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
+
>
+
 
   <s:Body>
 
   <s:Body>
     <GetRequestStateResponse
+
     <GetRequestStateResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >
+
 
       <GetRequestStateResult
 
       <GetRequestStateResult
 
         xmlns:a="urn:SamoSoft:DataTypes:OperatorLoadStateCollection:v1"
 
         xmlns:a="urn:SamoSoft:DataTypes:OperatorLoadStateCollection:v1"
Строка 1456: Строка 1350:
 
       >
 
       >
 
         <a:OperatorLoadState>
 
         <a:OperatorLoadState>
           <Id
+
           <Id xmlns="urn:SletatRu:DataTypes:DbObject:v1">7</Id>
            xmlns="urn:SletatRu:DataTypes:DbObject:v1"
+
           <Name xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1">Biblio Globus</Name>
          >
+
            7
+
          </Id>
+
           <Name
+
            xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1"
+
          >
+
            Biblio Globus
+
          </Name>
+
 
           <b:ErrorMessage i:nil="true"/>
 
           <b:ErrorMessage i:nil="true"/>
 
           <b:ExecutionTimeMs>1561</b:ExecutionTimeMs>
 
           <b:ExecutionTimeMs>1561</b:ExecutionTimeMs>
Строка 1509: Строка 1395:
 
|  
 
|  
 
Наименование туроператора.
 
Наименование туроператора.
 +
|-
 +
|
 +
IsPersistentCacheUsed
 +
|
 +
Boolean
 +
|
 +
Параметр принимает значение “true” если туры найдены из временного кэша.
 
|-
 
|-
 
|  
 
|  
Строка 1516: Строка 1409:
 
|  
 
|  
 
Статус обработки запроса. Принимает значение “true”, даже если запрос обработан с ошибкой.
 
Статус обработки запроса. Принимает значение “true”, даже если запрос обработан с ошибкой.
 +
|-
 +
|
 +
IsSkipped
 +
|
 +
Boolean
 +
|
 +
Параметр принимает значение “true” если поиск по туроператору не был произведен.
 
|-
 
|-
 
|  
 
|  
Строка 1581: Строка 1481:
  
 
Сигнатура:
 
Сигнатура:
 +
 
  TourData GetRequestResult(
 
  TourData GetRequestResult(
            Int32 requestId)
+
          Int32 requestId
 +
          Int32 pageSize
 +
          Int32 pageNumber)
  
Метод принимает единственный параметр '''requestId''' – идентификатор запроса, возвращённый методом '''[[#CreateRequest | CreateRequest]]''' при создании запроса.
+
Метод принимает параметр '''requestId''' – идентификатор запроса, возвращённый методом '''[[#CreateRequest | CreateRequest]]''' при создании запроса.
 
   
 
   
Пример SOAP-запроса:
+
Параметры (обязательные отмечены знаком *):
  
 +
{| class="wikitable"
 +
| Параметр
 +
| Тип
 +
| Описание
 +
|-
 +
| requestId*
 +
| Int32
 +
| Идентификатор запроса.
 +
|-
 +
| pageSize
 +
| Int32
 +
| Количество туров в ленте выдачи на одной странице. По умолчанию: не задан.
 +
|-
 +
| pageNumber
 +
| Int32
 +
| Номер страницы в ленте выдачи. По умолчанию: не задан.
 +
|}
 +
 +
Пример SOAP-запроса:
 
<source lang="xml">
 
<source lang="xml">
 
+
<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:SletatRu:Contracts:Soap11Gate:v1">
<s:Envelope
+
  <x:Body>
  xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
+
      <urn:GetRequestResult>
>
+
          <urn:requestId>4355852</urn:requestId>
  <s:Body>
+
          <urn:pageSize>10</urn:pageSize>
    <GetRequestResult
+
          <urn:pageNumber>2</urn:pageNumber>
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
      </urn:GetRequestResult>
    >
+
  </x:Body>
      <requestId>4355852</requestId>
+
</x:Envelope>
    </GetRequestResult>
+
  </s:Body>
+
</s:Envelope>
+
  
 
</source>
 
</source>
Строка 1608: Строка 1527:
 
<source lang="xml">
 
<source lang="xml">
  
<s:Envelope
+
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">  
  xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
+
>  
+
 
   <s:Body>
 
   <s:Body>
     <GetRequestResultResponse
+
     <GetRequestResultResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >
+
 
       <GetRequestResultResult
 
       <GetRequestResultResult
 
         xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
 
         xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
Строка 1625: Строка 1540:
 
         >
 
         >
 
           <b:OperatorLoadState>
 
           <b:OperatorLoadState>
             <Id
+
             <Id xmlns="urn:SletatRu:DataTypes:DbObject:v1">1819010031</Id>
              xmlns="urn:SletatRu:DataTypes:DbObject:v1"
+
             <Name ьxmlns="urn:SletatRu:DataTypes:NamedDbObject:v1">Туроператор #1819010031</Name>
            >
+
              1819010031
+
            </Id>
+
             <Name
+
              xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1"
+
            >
+
              Туроператор #1819010031
+
            </Name>
+
 
             <c:ErrorMessage i:nil="true"/>
 
             <c:ErrorMessage i:nil="true"/>
 
             <c:ExecutionTimeMs>2812</c:ExecutionTimeMs>
 
             <c:ExecutionTimeMs>2812</c:ExecutionTimeMs>
Строка 1745: Строка 1652:
 
         </a:Rows>
 
         </a:Rows>
 
         <a:RowsCount>2318</a:RowsCount>
 
         <a:RowsCount>2318</a:RowsCount>
         <a:SourcesVisas
+
         <a:SourcesVisas xmlns:b="urn:SletatRu:DataTypes:XmlVisaRange:v1">
          xmlns:b="urn:SletatRu:DataTypes:XmlVisaRange:v1"
+
        >
+
 
           <b:CurrencyName>EUR</b:CurrencyName>
 
           <b:CurrencyName>EUR</b:CurrencyName>
           <b:Items
+
           <b:Items xmlns:c="urn:SletatRu:DataTypes:XmlVisaRangeItem:v1">
            xmlns:c="urn:SletatRu:DataTypes:XmlVisaRangeItem:v1"
+
          >
+
 
             <c:XmlVisaRangeItem>
 
             <c:XmlVisaRangeItem>
 
               <c:MaxPrice>70</c:MaxPrice>
 
               <c:MaxPrice>70</c:MaxPrice>
Строка 1759: Строка 1662:
 
           </b:Items>
 
           </b:Items>
 
         </a:SourcesVisas>
 
         </a:SourcesVisas>
         <a:Visa
+
         <a:Visa xmlns:b="urn:SletatRu:DataTypes:XmlVisa:v1" i:nil="true"/>
          xmlns:b="urn:SletatRu:DataTypes:XmlVisa:v1"
+
          i:nil="true"
+
        />
+
 
       </GetRequestResultResult>
 
       </GetRequestResultResult>
 
     </GetRequestResultResponse>
 
     </GetRequestResultResponse>
Строка 1844: Строка 1744:
 
CreditMonthlyPay
 
CreditMonthlyPay
 
|   
 
|   
|   
+
|
 +
Данный параметр устарел.  
 
|-
 
|-
 
|  
 
|  
 
CreditMonths
 
CreditMonths
 
|   
 
|   
|
+
|
 +
Данный параметр устарел.   
 
|-
 
|-
 
|  
 
|  
Строка 1856: Строка 1758:
 
String
 
String
 
|  
 
|  
Валюта, в которой отображены цены. Возможные значения: RUB, USD, EUR, BYN и UAH.
+
Валюта, в которой отображены цены. Возможные значения: RUB, USD, EUR, BYN, UAH и UZS.
 
|-
 
|-
 
|  
 
|  
Строка 1866: Строка 1768:
 
DiscountCaption
 
DiscountCaption
 
|   
 
|   
|   
+
|
 +
Данный параметр устарел.  
 
|-
 
|-
 
|  
 
|  
 
DiscountExpires
 
DiscountExpires
 
|   
 
|   
|   
+
|
 +
Данный параметр устарел.  
 
|-
 
|-
 
|  
 
|  
 
DiscountPercent
 
DiscountPercent
 
|   
 
|   
|   
+
|
 +
Данный параметр устарел.  
 
|-
 
|-
 
|  
 
|  
 
EarlyBookingValidTill
 
EarlyBookingValidTill
 
|   
 
|   
|   
+
|
 +
Данный параметр устарел.  
 
|-
 
|-
 
|  
 
|  
Строка 1965: Строка 1871:
 
8192 – экскурсионный тур;
 
8192 – экскурсионный тур;
  
16384 - Промо цена на тур
+
16384 - Промо цена на тур;
 +
 
 +
32768 - Тур где перелёт осуществляется на регулярных рейсах
 +
 
 +
65536 - Тур где перелёт осуществляется на чартерных рейсах
 +
 
 +
131072 - Туры на транспорте в виде Автобуса
 +
 
 +
262144 - Туры на транспорте в виде ЖД дороги
 +
 
 +
524288 - Туры с прямыми перелёты
 
|-
 
|-
 
|  
 
|  
Строка 1975: Строка 1891:
 
GiftCaption
 
GiftCaption
 
|   
 
|   
|   
+
|
 +
Данный параметр устарел.  
 
|-
 
|-
 
|  
 
|  
Строка 2009: Строка 1926:
 
|Данное поле представляет собой массив id включенных в тур услуг.
 
|Данное поле представляет собой массив id включенных в тур услуг.
 
|-  
 
|-  
 +
|
 
HotelName
 
HotelName
 
|  
 
|  
Строка 2118: Строка 2036:
 
|  
 
|  
 
OfferIdStr
 
OfferIdStr
|   
+
|
|   
+
String  
 +
|
 +
Идентификатор ценового предложения в строковом формате.  
 
|-
 
|-
 
|  
 
|  
Строка 2187: Строка 2107:
 
ReceivingParty
 
ReceivingParty
 
|   
 
|   
|
+
|
 +
Данный параметр устарел. 
 
|-
 
|-
 
|  
 
|  
Строка 2276: Строка 2197:
 
TourArchiveHash
 
TourArchiveHash
 
|   
 
|   
|   
+
|
 +
Хэш тура для поиска цены в сервисе аналитики  
 
|-
 
|-
 
|  
 
|  
 
TourHash
 
TourHash
 
|   
 
|   
|
+
|  
 +
Уникальный хэш тура.
 
|-
 
|-
 
|  
 
|  
Строка 2323: Строка 2246:
 
String
 
String
 
|  
 
|  
Валюта поля Price. Возможные значения: RUB, USD, EUR, BYN, UAH.
+
Валюта поля Price. Возможные значения: RUB, USD, EUR, BYN, UAH и UZS.
 
|}
 
|}
  
Строка 2369: Строка 2292:
 
String
 
String
 
|  
 
|  
Валюта поля Tax. Возможные значения: RUB, USD, EUR, BYN, UAH.
+
Валюта поля Tax. Возможные значения: RUB, USD, EUR, BYN, UAH и UZS.
 
|-
 
|-
 
|  
 
|  
Строка 2459: Строка 2382:
 
<source lang="xml">
 
<source lang="xml">
  
<s:Envelope
+
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
+
>
+
 
   <s:Body>
 
   <s:Body>
     <ContinueSearch
+
     <ContinueSearch xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >
+
 
       <requestId>69587384</requestId>
 
       <requestId>69587384</requestId>
 
     </ContinueSearch>
 
     </ContinueSearch>
Строка 2477: Строка 2396:
 
<source lang="xml">
 
<source lang="xml">
  
<s:Envelope
+
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
+
>
+
 
   <s:Body>
 
   <s:Body>
     <ContinueSearchResponse
+
     <ContinueSearchResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >
+
 
       <ContinueSearchResult
 
       <ContinueSearchResult
 
         xmlns:a="urn:SletatRu:DataTypes:XmlContinueSearchData:v1"
 
         xmlns:a="urn:SletatRu:DataTypes:XmlContinueSearchData:v1"
Строка 2500: Строка 2415:
 
=== ActualizePrice ===
 
=== ActualizePrice ===
  
Метод ActualizePrice необходим для актуализации предложений туроператоров.
+
Метод <b>ActualizePrice</b> необходим для актуализации предложений туроператоров.
 
   
 
   
 
Сигнатура:
 
Сигнатура:
Строка 2540: Строка 2455:
 
|  
 
|  
 
Зашифрованный идентификатор туроператора. Выдаётся каждому туру методом '''[[#GetRequestResult | GetRequestResult]]'''.
 
Зашифрованный идентификатор туроператора. Выдаётся каждому туру методом '''[[#GetRequestResult | GetRequestResult]]'''.
 +
|-
 +
|
 +
login
 +
|
 +
|
 +
Логин от личного кабинета туроператора.
 +
|-
 +
|
 +
password
 +
|
 +
|
 +
Пароль от личного кабинета туроператора.
 +
|}
 +
 +
{| class="standard"
 +
| style="background-color:silver" |Важно! При отсутствии в запросе логина и пароля от личного кабинета туроператора актуализация цены тура может быть не проведена. Ошибки при этом не возникнет.
 
|}
 
|}
  
Строка 2546: Строка 2477:
 
<source lang="xml">
 
<source lang="xml">
  
<soap:Envelope
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
+
>
+
 
   <soap:Body>
 
   <soap:Body>
     <ActualizePrice
+
     <ActualizePrice xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >
+
 
       <sourceId>14173204</sourceId>
 
       <sourceId>14173204</sourceId>
 
       <offerId>1287318711</offerId>
 
       <offerId>1287318711</offerId>
 
       <requestId>2862432</requestId>
 
       <requestId>2862432</requestId>
 +
      <login>****</login>
 +
      <password>***</password>
 
     </ActualizePrice>
 
     </ActualizePrice>
 
   </soap:Body>
 
   </soap:Body>
Строка 2566: Строка 2495:
 
<source lang="xml">
 
<source lang="xml">
  
<s:Envelope
+
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
+
>
+
 
   <s:Body>
 
   <s:Body>
     <ActualizePriceResponse
+
     <ActualizePriceResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >
+
 
       <ActualizePriceResult xmlns:a="urn:SletatRu:DataTypes:XmlActualPriceData:v1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
 
       <ActualizePriceResult xmlns:a="urn:SletatRu:DataTypes:XmlActualPriceData:v1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
 
                 <a:ErrorMessage i:nil="true"/>
 
                 <a:ErrorMessage i:nil="true"/>
Строка 2759: Строка 2684:
 
В ответ возвращается структура '''ActualizePriceResult''', состоящая из следующих полей:
 
В ответ возвращается структура '''ActualizePriceResult''', состоящая из следующих полей:
  
* '''TourInfo''' – структура, содержащая основную информацию о туре;
 
* '''RandomNumber''' – случайное четырехзначное число, по которому можно просмотреть информацию о туре в личном кабинете на сайте sletat.ru или в программе SletatRu Agent, используется для того, чтобы ваши менеджеры могли точно идентифицировать тур, который клиент нашёл самостоятельно;
 
* '''IsFound''' – поле принимает значение “false”, если тур не был найден в базе туроператора;
 
 
* '''IsError''' – принимает значение “true”, если при актуализации тура возникла ошибка.
 
* '''IsError''' – принимает значение “true”, если при актуализации тура возникла ошибка.
 +
* '''IsFound''' – поле принимает значение “false”, если тур не был найден в базе туроператора;
 +
* '''RandomNumber''' – случайное четырехзначное число, по которому можно просмотреть информацию о туре в личном кабинете на сайте sletat.ru или в программе SletatRu Agent, используется для того, чтобы ваши менеджеры могли точно идентифицировать тур, который клиент нашёл самостоятельно;
 +
* '''ResourceId'''
 +
* '''TourInfo''' – структура, содержащая основную информацию о туре;
  
 +
В полях массива <b>Resources</b> представлены данные о перелетах с type = 4 (в сторону курорта) и с type = 10 (в обратную). По-данному id в массиве <b>ResourceData</b> можно найти описание перелетов (Имена аэропортов, городов вылета и т.д.)
 +
 +
Пример:
 +
 +
Путь в структуре ответа до данных о наличии перелета обратно: ActualizePriceResult.Resources [1] (где type = 10, id = 1)
 +
 +
Путь в структуре ответа до подробной информации о перелете обратно: ActualizePriceResult.ResourceData[0] (где resourceId = 1)
 +
 +
Сопоставление данных перелета и записи о его наличии происходит через id == resourceId.
 +
 +
Поля структуры <b>ResourceId</b>
 +
 +
{| class="wikitable"
 +
|-
 +
|
 +
Параметр
 +
|
 +
Тип
 +
|
 +
Описание
 +
|-
 +
|
 +
id
 +
|
 +
long
 +
|
 +
Идентификатор перелета
 +
|-
 +
|
 +
linkGroupsId
 +
|
 +
long
 +
|
 +
Идентификатор группы перелетов
 +
|-
 +
|
 +
surcharge
 +
|
 +
int
 +
|
 +
Cумма доплат за выбранные перелеты
 +
|-
 +
|
 +
surchargeCurrencyId
 +
|
 +
byte
 +
|
 +
Валюта доплаты за авиаперелеты
 +
|}
 
Поля структуры '''TourInfo''':
 
Поля структуры '''TourInfo''':
  
Строка 2910: Строка 2885:
 
Int32
 
Int32
 
|  
 
|  
Цена тура в запрошенной
+
Цена тура в запрошенной валюте (со скидкой и наценкой).
валюте.
+
 
|-
 
|-
 
|  
 
|  
Строка 2918: Строка 2892:
 
String
 
String
 
|  
 
|  
Обозначение валюты. Возможные значения: RUB, EUR, USD, BYN, UAH.
+
Обозначение валюты. Возможные значения: RUB, EUR, USD, BYN, UAH и UZS.
 
|-
 
|-
 
|  
 
|  
Строка 2925: Строка 2899:
 
Int32
 
Int32
 
|  
 
|  
Оригинальная цена тура в исходной валюте. Поскольку параметр доступен не всегда, значение этого поля может дублировать значение поля Price.
+
Оригинальная цена тура в исходной валюте (со скидкой и наценкой).
 
|-
 
|-
 
|  
 
|  
Строка 3140: Строка 3114:
 
|BAGGAGE_PLACES  
 
|BAGGAGE_PLACES  
 
|string
 
|string
|Количество мест
+
|Количество мест.
 
|-
 
|-
 
|BAGGAGE_WEIGHTS
 
|BAGGAGE_WEIGHTS
 
|string
 
|string
|Веса багажа для каждого из мест (по порядку)
+
|Веса багажа для каждого из мест (по порядку).
 +
|-
 +
|BAGGAGE_INCLUDED
 +
|string
 +
|Идентификатор, показывающий, включён ли багаж в рейс. Возможные значения: true - включен, false - не включен.
 +
|}
 +
{| class="standard sWarning"
 +
|Параметр <b>BAGGAGE_INCLUDED</b> может иметь значение "<b>true</b>", но если параметр <b>BAGGAGE_PLACES = 0</b> - то трактовать надо так, что багаж не включен.
 
|}
 
|}
 
В полях массива Resources представлены данные о перелетах с type = 4 (в сторону курорта) и с type = 10 (в обратную).
 
По данному id в массиве ResourceData можно найти описание перелетов (Имена аэропортов, городов вылета и т.д.)
 
Пример:
 
Путь в структуре ответа до данных о наличии перелета обратно: ActualizePriceResult.Resources [1] (где type = 10, id = 1)
 
Путь в структуре ответа до подробной информации о перелете обратно: ActualizePriceResult.ResourceData[0] (где resourceId = 1)
 
Сопоставление данных перелета и записи о его наличии происходит через id == resourceId.
 
  
 
=== ActualizePriceByCode ===
 
=== ActualizePriceByCode ===
Строка 3169: Строка 3143:
 
<source lang="xml">
 
<source lang="xml">
  
<soap:Envelope
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
+
>
+
 
   <soap:Body>
 
   <soap:Body>
     <ActualizePriceByCode
+
     <ActualizePriceByCode xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"
+
    >
+
 
       <code>9999</code>
 
       <code>9999</code>
 
     </ActualizePriceByCode>
 
     </ActualizePriceByCode>
Строка 3269: Строка 3239:
 
| Int
 
| Int
 
| Идентификатор офиса, к которому привяжется созданная заявка. Получить список идентификаторов активных офисов можно обратившись к справочнику '''GetOffices''': https://module.sletat.ru/Main.svc/GetOffices?login=login&password=pass
 
| Идентификатор офиса, к которому привяжется созданная заявка. Получить список идентификаторов активных офисов можно обратившись к справочнику '''GetOffices''': https://module.sletat.ru/Main.svc/GetOffices?login=login&password=pass
 +
|-
 +
|originType
 +
|
 +
|Служебный параметр. Используется для внутренних сервисов Слетать.ру
 +
|-
 +
|touristId
 +
|
 +
|Служебный параметр. Используется для внутренних сервисов Слетать.ру
 +
|-
 +
|subwayIds
 +
|
 +
|Служебный параметр. Используется для внутренних сервисов Слетать.ру
 
|}
 
|}
  
Строка 3304: Строка 3286:
  
 
В случае успешного добавления заказа никакой информации метод не возвращает.
 
В случае успешного добавления заказа никакой информации метод не возвращает.
 +
 +
=== AddLargeComment ===
 +
 +
Метод '''AddLargeComment''' добавляет отзыв к отелю.
 +
 +
Параметры:
 +
 +
{| class="wikitable"
 +
|-
 +
|Параметр
 +
|Тип
 +
|Описание
 +
|-
 +
|rate
 +
|
 +
|Рейтинг (оценка отелю).
 +
|-
 +
|positive
 +
|
 +
|Что понравилось в отеле.
 +
|-
 +
|negative
 +
|
 +
|Что не понравилось в отеле.
 +
|-
 +
|touristName
 +
|
 +
|Имя туриста.
 +
|-
 +
|startRest
 +
|
 +
|Начало проживание в отеле.
 +
|-
 +
|endRest
 +
|
 +
|Окончание проживание в отеле.
 +
|-
 +
|hotelId
 +
|
 +
|Идентификатор отеля
 +
|}

Текущая версия на 17:18, 30 марта 2026

Описание сервиса

API поиска туров позволит вам создать собственную туристическую поисковую систему. Используя методы этого сервиса, вы сможете:

  • Загружать справочники городов вылета, стран, курортов, отелей, категорий отелей, видов питания, туроператоров;
  • Искать продукты более чем 130 крупнейших туроператоров России.
  • Настроить автоматическое SMS- и email-оповещение менеджеров о заказах.
Внимание! На момент написания настоящего руководства функция онлайн бронирования сервисом не предусмотрена.
Внимание! Доступ к данным отдельных операторов может быть ограничен лицензией. По всем вопросам, пожалуйста, обращайтесь в Службу технической поддержки Слетать.ру по тел. 8(800)700-33-09 или по электронной почте support@sletat.ru.

Это стандартный веб-сервис, предоставляющий WSDL-документ с описанием всех методов и типов данных. Версия, выпущенная на момент написания настоящего руководства, работает только по протоколу HTTP/2+TLS/1.2. Для большей совместимости с различными клиентами сервис основан на SOAP версии 1.1.

Взаимодействие с сервисом возможно одним из двух способов:

  • Как с обычным веб-сервисом посредством SOAP-запросов, WSDL доступен.
  • Как с сервисом WCF (Windows Communication Foundation) – самый простой способ, если клиент под .NET Framework 3.5 или выше.

Логика обработки запросов не зависит от способа работы с сервисом.

При передаче строк и XML-пакетов используется кодировка UTF-8.

Работа сервиса не требует сессий, и методы не зависят друг от друга с точки зрения очередности вызова. Таким образом, очередность вызова методов диктуется реализуемым алгоритмом работы с поисковым сервисом.

Внимание! Сервис требует авторизации. Для работы используйте логин и пароль от личного кабинета на сайте sletat.ru.
Внимание! Работа с поисковым запросом (создание, запрос состояния и загрузка туров) должна выполняться с одного IP-адреса. При выполнении этого условия взаимодействие с сервисом возможно с нескольких IP адресов.

Подключение к сервису

Чтобы начать работу с сервисом, зарегистрируйтесь на сайте sletat.ru и получите тестовую лицензию, обратившись по электронной почте info@sletat.ru. После получения лицензии можно начинать работать с API.

Для работы с сервисом используйте WSDL-документ, расположенный по адресу:

https://module.sletat.ru/XmlGate.svc?singlewsdl

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

Ниже подробно описаны алгоритмы работы с сервисом для клиентов, использующих .NET Framework.

Старый клиент на .NET 1.0 - 2.0

Добавьте в проект ссылку на WSDL документ, используя Web Reference. После добавления ссылки ваш проект готов к работе с сервисом. Ниже приведен пример вызова метода для получения списка городов вылета:

using System; using WebClient.Gate; 
 
namespace WebClient 
{ 
    class Program 
    { 
        static void Main() 
        { 
            // создаём экземпляр обёртки для работы с поисковым сервисом 
            using (var gate = new Soap11Gate()) 
            { 
                // указываем данные для авторизации на сервисе 
                gate.AuthInfo = new AuthData() { Login = "********", Password = "********" };  
                // далее нам доступен вызов любых методов сервиса 
                var cities = gate.GetDepartCities(); 
            } 
        } 
    } 
}

Не забудьте указать логин и пароль вашей учетной записи на сайте sletat.ru. Данные авторизации передаются первым параметром для всех методов сервиса.

Клиент на .NET 3.5 или выше

Добавьте в проект ссылку на WSDL-документ, используя Service Reference. После добавления ссылки ваш проект готов к работе с сервисом, ниже приведен пример вызова метода для получения списка городов вылета:

using System; using WcfClient.Gate; 
 
namespace WcfClient 
 { 
    class Program 
    { 
        static void Main() 
        { 
            // создаём экземпляр обёртки для работы с поисковым сервисом 
            using (var gate = new Soap11GateClient()) 
            { 
                // указываем данные для авторизации на сервисе 
                var authInfo = new AuthData() { Login = "********", Password = "********" }; 
                // далее нам доступен вызов любых методов сервиса 
                var cities = gate.GetDepartCities(authInfo); 
            } 
        } 
    } 
}

Не забудьте указать логин и пароль вашей учетной записи на сайте sletat.ru. Данные авторизации передаются первым параметром для всех методов сервиса.

Версионность

Сервис может содержать несколько контрактов. Каждое изменение, несовместимое с предыдущей, публикацией будет вести к созданию контракта новой версии. Описание контрактов всех поддерживаемых версий включено в WSDL.

Каждый контракт веб-сервиса имеет уникальное имя, используемое для его идентификации. В имени любым удобным образом указывается его версия (например, в виде даты публикации). Для обозначения имени контракта используется URN (Uniform Resource Name).

Версия, выпущенная на момент написания настоящего руководства, состоит из одного контракта, использующего следующее имя:

urn:SletatRu:Soap11Gate:v1

Все разрабатываемые сервисы имеют префикс SletatRu, после которого указывается название контракта и его версия. Следующие версии контракта Soap11Gate будут иметь другое значение версии в последней части URN. Например:

urn:SletatRu:Soap11Gate:v2

Чтобы использовать нужную версию контракта, укажите её номер в SOAP конверте:

<soap:Envelope> 
  <soap:Body> 
    <GetDepartCities xmlns="urn:SletatRu:Soap11Gate:v1"> 
      ... 
    </GetDepartCities> 
  </soap:Body> 
</soap:Envelope>

Если вы используете автоматически создаваемую обёртку, то при изменении текущего контракта или создании контракта новой версии заново создайте обёртку к поисковому сервису.

Новые версии контрактов будут создаваться только при наличии обратно несовместимых изменений. Все обратно совместимые изменения (добавление новых методов, добавление новых параметров в методы, добавление новых полей в структуры данных) будут добавляться в текущую версию контракта.

Версионность также соблюдается для всех типов данных.

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

Логика работы с сервисом

Метод поиска туров CreateRequest использует идентификаторы городов вылета, стран, отелей и т.д., поэтому сначала нужно загрузить все соответствующие справочники, используя методы:

После того как все справочники загружены и отображены пользователю, можно приступать к поиску туров. Для этого используются следующие методы:

  • CreateRequest – создание поискового запроса;
  • GetRequestState – получение данных о статусе загрузки туров для каждого туроператора;
  • GetRequestResult – возвращает результаты поиска;
  • ContinueSearch – продолжает поиск с использованием данных указанного запроса среди предложений с более высокой ценой.

Сервис производит асинхронный поиск туров. После получения ответа от метода CreateRequest (обычно не более секунды) нужно отслеживать состояние поискового запроса, поскольку туроператоры отдают данные за разное время – от 1 секунды до 2 минут.

В ответе CreateRequest приходит идентификатор созданного поискового запроса, который в дальнейшем используется для отслеживания состояния поискового запроса методом GetRequestState и получения результатов поиска методом GetRequestResult.

Логика работы с сервисом зависит от того, нужно ли вам получать данные до полного завершения поискового запроса. Возможны два варианта – единовременное получение полной поисковой выдачи и получение данных о турах по мере их поступления.

Получение полного набора туров

  1. Создаётся поисковый запрос методом CreateRequest. Сохраняется идентификатор запроса, полученный в ответе.
  2. Создаётся цикл для получения статуса поискового запроса. В цикле вызывается метод GetRequestState с использованием идентификатора запроса. В итерации цикла обязательно должна быть пауза (рекомендованное минимальное значение – 1,5 секунды). В результате вызова GetRequestState проверяется, все ли туроператоры обработали запрос (т.е. значение поля IsProcessed = “true”). На основе проверки принимается решение о продолжении цикла или (если все туроператоры обработали запрос) о переходе к методу получения туров.
  3. Вызывается метод GetRequestResult с использованием идентификатора, полученного в ответе метода CreateRequest. Метод вернет все найденные туры в рам-ках поискового запроса.
Внимание! Сервер не хранит результаты поискового запроса продолжительное время. Данные должны быть получены и сохранены локально.
Внимание! В цикле получения статуса поискового запроса должен быть внутренний таймаут, чтобы ни при каких обстоятельствах не могли возникнуть бесконечные циклы.

Получение данных по мере их поступления

  1. Создаётся поисковый запрос методом CreateRequest. Сохраняется полученный идентификатор.
  2. Создаётся цикл для получения статуса поискового запроса. В цикле вызывается метод GetRequestState с использованием идентификатора запроса. В итерации цикла обязательно должна быть пауза (рекомендованное минимальное значе-ние – 1,5 секунды). В результате вызова GetRequestState проверяется, есть ли найденные туры по поисковому запросу (т.е. как минимум один туроператор имеет значение поля RowsCount более нуля). Если найденных туров нет и не все туроператоры обработали запрос, цикл повторяется; если хотя бы один туропе-ратор сообщил о наличии туров, можно перейти к методу получения туров.
  3. Вызывается метод GetRequestResult с использованием идентификатора запроса. Метод вернет все туры, найденные на момент вызова, а также состояние обра-ботки поискового запроса (аналогично методу GetRequestState). Состояние обра-ботки поискового запроса сохраняется, а найденные туры отображаются поль-зователю.
  4. Создаётся новый цикл, который работает до тех пор, пока все туроператоры не обработают запрос. В цикле вызывается метод GetRequestState с использованием идентификатора запроса. В итерации цикла обязательно должна быть пауза (рекомендованное минимальное значение – 1,5 секунды). Результат вызова GetRequestState сравнивается с сохранённым состоянием обработки запроса. Если результат сравнения показывает наличие новых туров, то пользователь уведомляется о новых найденных турах. Если пользователь хочет обновить результат, то необходимо повторить действия, описанные в п. 3. Если для всех туропе-раторов значение поля IsProcessed = “true”, то цикл завершается, и пользователь получает уведомление об окончании поиска.
Внимание! Сервер не хранит результаты поискового запроса продолжительное время. Данные должны быть получены и сохранены локально.
Внимание! В цикле получения статуса поискового запроса должен быть внутренний таймаут, чтобы ни при каких обстоятельствах не могли возникнуть бесконечные циклы.

Актуализация и сохранение данных

После того, как пользователь выбрал понравившийся тур, необходимо актуализировать данные с помощью метода ActualizePrice. Метод возвращает не только наиболее актуальную информацию по туру, но и его подробное описание (на момент написания настоящего руководства функция реализована не для всех туроператоров).

Последний шаг – вызов метода SaveTourOrder, который сохраняет информацию о заказе в системе sletat.ru и позволяет использовать средства оповещения для информирования ваших менеджеров о новом заказе. На момент написания настоящего руководства в личном кабинете на сайте sletat.ru можно настроить оповещения по электронной почте и SMS. Также доступна утилита SletatRu Agent для Windows, которая уведомляет обо всех новых заказах.

Методы

В этом разделе описаны все методы поискового сервиса, приведены примеры запросов и ответов в SOAP.

Все используемые методы требуют авторизации. Данные авторизации (логин и пароль от личного кабинета на сайте sletat.ru) передаются в заголовке SOAP:

<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> 
    <GetDepartCities xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"/> 
  </soap:Body> 
</soap:Envelope>

В примерах SOAP- запросов и ответов, которые приводятся ниже для каждого метода, элемент soap:Header убран для лучшей читаемости документа.

Все идентификаторы в методах используют тип Int32 (если не указано иного), который может принимать значения от -2 147 483 648 до 2 147 483 647.

Справочник c системными идентификаторами доступен по ссылке:

https://module.sletat.ru/Dictionaries.xml

GetDepartCities

Метод возвращает список всех городов вылета, который вы можете отредактировать в личном кабинете на сайте sletat.ru.

Сигнатура:

CityCollection GetDepartCities() 

Параметры отсутствуют.

Пример SOAP-запроса:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
  <soap:Body> 
    <GetDepartCities xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"/> 
  </soap:Body> 
</soap:Envelope>

Пример SOAP ответа:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
  <s:Body> 
    <GetDepartCitiesResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      <GetDepartCitiesResult 
        xmlns:a="urn:SletatRu:DataTypes:CityCollection:v1"
        xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
      >
        <a:City> 
          <Id xmlns="urn:SletatRu:DataTypes:DbObject:v1">1264</Id> 
          <Name xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1">Санкт-Петербург</Name> 
        </a:City> 
        ... 
      </GetDepartCitiesResult> 
    </GetDepartCitiesResponse> 
  </s:Body> 
</s:Envelope>

Коллекция городов вылета CityCollection содержит n элементов City.

Поля элемента City:

Поле Тип Описание
Name String Город вылета

GetCountries

Метод GetCountries возвращает список доступных направлений для любого данного города вылета. В личном кабинете на сайте sletat.ru вы можете поставить на этот список различные фильтры, чтобы в ответ возвращались данные только о тех странах, с которыми вы работаете. Список городов вылета получается методом GetDepartCities.

Сигнатура:

CountryCollection GetCountries(
                    Int32 townFromId)

Параметр townFromId – идентификатор города вылета.

Пример SOAP-запроса доступных направлений для Санкт-Петербурга:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetCountries xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      <townFromId>1254</townFromId>
    </GetCountries>
  </soap:Body>
</soap:Envelope>

Пример SOAP-ответа:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
  <s:Body> 
    <GetCountriesResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      <GetCountriesResult 
        xmlns:a="urn:SletatRu:DataTypes:CountryCollection:v1" 
        xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:b="urn:SletatRu:DataTypes:Country:v1"
      >
        <a:Country> 
          <Id xmlns="urn:SletatRu:DataTypes:DbObject:v1">1</Id> 
          <Name xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1">Абхазия</Name> 
        </a:Country> 
        ... 
      </GetCountriesResult> 
    </GetCountriesResponse> 
  </s:Body> 
</s:Envelope>

В ответ возвращается коллекция направлений CountryCollection, содержащая n элементов Country.

Поля элемента Country:

Поле Тип Описание
id Int32 Идентификатор страны
Name String Наименование страны
IsProVisa Bool Требуется ли в страну про-виза. Если в страну требуется про-виза, параметр принимает значение “true”; в противном случае — “false”.
IsVisa bool Требуется ли виза гражданам РФ для въезда. Возможные значения: «false» — не требуется, «true» — требуется.
Alias String Текстовый код направления.
Flags byte Дополнительные параметры страны (направления вылета). Возможные значения: 0 = None, Exotic = 1 (экзотическая страна), SeaShore = 2 (Подходит для отдыха на море), Schengen = 4 (Является страной шенгенского соглашения).
HasTickets Int32 Наличие билетов. Если билеты есть в наличии, параметр принимает значение “true”; в противном случае — “false”.
HotelIsNotInStop Int32 Наличие мест в отеле. Если в отеле есть места, параметр принимает значение “true”; в противном случае — “false”.
Rank Int32 Ранг страны (0 — самый высокий).
TicketsIncluded Int32 Объём турпакета. Если перелёт включён в стоимость тура, параметр принимает значение “true”; в противном случае — “false”.

GetCities

Метод GetCities возвращает список курортов для выбранного направления. Список направлений получается методом GetCountries.

Сигнатура:

CityCollection GetCities(
                 Int32 countryId)

Параметр countryId – идентификатор страны.

Пример SOAP-запроса списка курортов для Египта:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
  <soap:Body>
    <GetCities xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"> 
      <countryId>40</countryId> 
    </GetCities> 
  </soap:Body>
</soap:Envelope>

Пример SOAP-ответа:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body> 
    <GetCitiesResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"> 
      <GetCitiesResult 
        xmlns:a="urn:SletatRu:DataTypes:CityCollection:v1"
        xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
      > 
        <a:City> 
          <Id xmlns="urn:SletatRu:DataTypes:DbObject:v1">26</Id> 
          <Name xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1">Айн Сохна</Name> 
        </a:City> 
        ... 
      </GetCitiesResult> 
    </GetCitiesResponse> 
  </s:Body> 
</s:Envelope>

В ответ возвращается коллекция курортов CityCollection, содержащая n элементов City.

Поля элемента City:

Поле Тип Описание.
id Int32 Идентификатор курорта.
Name String Название курорта.
CountryId Int Идентификатор направления.
Default Bool Устаревший параметр
DescriptionUrl String Ссылка на описание курорта. Поле может быть пустым, если курорт не имеет описания.
IsPopular Bool Популярность курорта. Если курорт был признан популярным на основе статистики поисковых запросов, сделанных на сайте sletat.ru и сайтах партнёров, поле принимает значение “true”; в противном случае — “false”.
OriginalName String Название страны на латинице.
ParentId Int Идентификатор родительского курорта. Например, для греческих курортов Ираклиона, Лассити и Ретимно идентификатором родительского курорта будет 3071 - идентификатор о. Крит. Поле может быть пустым, если курорт не имеет родительского курорта.

GetHotelStars

Метод GetHotelStars возвращает список доступных категорий отелей в выбранных курортах.

Сигнатура:

HotelStarsCollection GetHotelStars(
                       Int32 countryId, 
                       Int32[] towns)

Параметры:

Параметр Тип Описание
countryId Int32 Идентификатор страны.
towns Int32[] Массив идентификаторов курортов. Если пуст, результаты возвращаются для всех курортов выбранной страны.

Пример SOAP-запроса списка категорий отелей для Хургады и Шарм-Эль-Шейха (идентификаторы взяты из GetCities):

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
  <soap:Body> 
    <GetHotelStars xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"> 
      <countryId>40</countryId> 
      <towns> 
        <int xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">1592</int>
        <int xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">1642</int> 
      </towns> 
    </GetHotelStars> 
  </soap:Body> 
</soap:Envelope>

Пример SOAP-ответа:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
  <s:Body> 
    <GetHotelStarsResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"> 
      <GetHotelStarsResult 
        xmlns:a="urn:SletatRu:DataTypes:HotelStarsCollection:v1" 
        xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:b="urn:SletatRu:DataTypes:HotelStars:v1"
      > 
        <a:HotelStars> 
          <Id xmlns="urn:SletatRu:DataTypes:DbObject:v1">401</Id> 
          <Name xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1">2*</Name> 
        </a:HotelStars> 
        ... 
      </GetHotelStarsResult> 
    </GetHotelStarsResponse> 
  </s:Body> 
</s:Envelope>

В ответ возвращается коллекция категорий отелей HotelStarsCollection, содержащая n элементов HotelStars.

Поля элемента HotelStars:

Поле Тип Описание
Id Int32 Идентификатор категории отеля.
Name String Категория отеля.

GetMeals

Метод GetMeals возвращает список типов питания.

Сигнатура:

MealCollection GetMeals()

Параметры отсутствуют.

Пример SOAP-запроса:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
  <soap:Body> 
    <GetMeals xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"/> 
  </soap:Body> 
</soap:Envelope>

Пример SOAP-ответа:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body> 
    <GetMealsResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      <GetMealsResult 
        xmlns:a="urn:SletatRu:DataTypes:MealCollection:v1" 
        xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:b="urn:SletatRu:DataTypes:Meal:v1"
      > 
        <a:Meal> 
          <Id xmlns="urn:SletatRu:DataTypes:DbObject:v1">115</Id> 
          <Name xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1">AI</Name> 
        </a:Meal> 
        ... 
      </GetMealsResult> 
    </GetMealsResponse> 
  </s:Body> 
</s:Envelope>

В ответ возвращается коллекция типов питания MealCollection, содержащая n элементов Meal.

Поля элемента Meal:

Поле Тип Описание
Id Int32 Идентификатор типа питания.
Name String Тип питания

GetHotels

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

Сигнатура:

HotelCollection GetHotels(
                  Int32 countryId, 
                  Int32[] towns, 
                  Int32[] stars, 
                  String filter, 
                  Int32 count) 

Параметры:

Параметр Тип Описание
countryId * Int32 Идентификатор страны, обязательный параметр.
towns Int32[] Массив идентификаторов курортов. Если пуст, возвращается результат по всем курортам выбранной страны.
stars Int32[] Массив идентификаторов категорий отелей. Если пуст, возвращается результат по всем категориям.
filter String Фильтр для поиска отелей по названию. Если пуст, параметр игнорируется.
count * Int32 Максимальное количество отелей в ответе (отели отбираются по рейтингу, потом сортируются по названию), обязательный параметр. При значении “-1” возвращаются данные по всем отелям.

Пример SOAP-запроса списка 4 и 5-звёздочных 500 отелей Хургады и Шарм-Эль-Шейха:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
  <soap:Body> 
    <GetHotels xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"> 
      <countryId>40</countryId> 
      <towns> 
        <int xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">1592</int>
        <int xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">1642</int> 
      </towns> 
      <stars> 
        <int xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">403</int> 
        <int xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">404</int> 
      </stars> 
      <filter xsi:nil="true"/> 
      <count>500</count> 
    </GetHotels> 
  </soap:Body> 
</soap:Envelope>

Пример SOAP-ответа:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
  <s:Body> 
    <GetHotelsResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"> 
      <GetHotelsResult 
        xmlns:a="urn:SletatRu:DataTypes:HotelCollection:v1" 
        xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:b="urn:SletatRu:DataTypes:Hotel:v1"
      > 
        <a:Hotel> 
          <Id xmlns="urn:SletatRu:DataTypes:DbObject:v1">14646</Id> 
          <Name xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1">Four Seasons Resort</Name> 
          <b:Rate>4.94</b:Rate> 
          <b:StarName>5*</b:StarName> 
        </a:Hotel> 
        ... 
      </GetHotelsResult> 
    </GetHotelsResponse> 
  </s:Body> 
</s:Envelope>

В ответ возвращается коллекция отелей HotelsCollection, содержащая n элементов Hotel.

Поля элемента Hotel:

Поле Тип Описание
Id Int32 Идентификатор отеля.
Name String Название отеля.
BeachLineId Int32 Пляжная линия. Варианты значений: 1, 2, 3 (первая, вторая или третья пляжная линия соответственно).
CommonRate Float Рейтинг отеля. На момент написания настоящего руководства параметр не используется, и данные не обновляются.
IsInBonusProgram Bool Бонусная программа Слетать.ру. Если отель предлагает турагентам бонусы за туристов, поле принимает значение “true”; в противном случае – “false”.
OriginalName Str Название отеля на латинице.
Phone Int Устаревший параметр.
PhotosCount Int Общее количество фотографий отеля.
PopularityLevel Int Уровень популярности отеля. Определяется на основе количества поисков в отель. 0 - Low, 1 - Normal, 2 - High
Rate Float Ранг отеля.
SearchCount int Количество поисков по отелю за период (1 месяц).
StarId Int Идентификатор категории отеля.
StarName Str Категория отеля
TownId Int Идентификатор курорта.

GetTourOperators

Метод GetTourOperators возвращает список доступных туроператоров. Последний может быть ограничен лицензией. Кроме того, вы можете настроить фильтрацию туроператоров в личном кабинете на сайте sletat.ru.

Метод всегда возвращает полный список туроператоров, отмечая тех, у кого есть туры, соответствующие параметрам города вылета и направления.

Сигнатура:

TourOperatorCollection GetTourOperators(
                         Int32 townFromId, 
                         Int32 countryId) 

Параметры:

Параметр Тип Описание
townFromId Int32 Идентификатор города вылета.
countryId Int32 Идентификатор страны.

Пример SOAP-запроса списка туроператоров c отметкой тех, у кого есть туры из Санкт-Петербурга в Египет:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
  <soap:Body> 
    <GetTourOperators xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"> 
      <townFromId>1264</townFromId> 
      <countryId>40</countryId> 
    </GetTourOperators> 
  </soap:Body> 
</soap:Envelope>

Пример SOAP-ответа:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
  <s:Body> 
    <GetTourOperatorsResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"> 
      <GetTourOperatorsResult 
        xmlns:a="urn:SletatRu:DataTypes:TourOperatorCollection:v1" 
        xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:b="urn:SletatRu:DataTypes:TourOperator:v1"
      > 
        <a:TourOperator> 
          <Id xmlns="urn:SletatRu:DataTypes:DbObject:v1">7</Id> 
          <Name xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1">Biblio Globus</Name> 
          <b:Enabled>True</b:Enabled> 
        </a:TourOperator> 
        ... 
      </GetTourOperatorsResult> 
    </GetTourOperatorsResponse> 
  </s:Body> 
</s:Envelope>

В ответ возвращается коллекция туроператоров TourOperatorCollection, содержащая n элементов TourOperator.

Поля элемента TourOperator:

Поле Тип Описание
Id Int32 Идентификатор туроператора
Name String Наименование туроператора
Enabled String Отметка о наличии туров. Возможные значения: “true” – есть туры; “false” – нет туров.

GetTourDates

Метод GetTourDates возвращает список доступных дат вылета для выбранных города вылета, страны и курорта, используя внутреннюю статистику, собранную по ранее найденным турам.

Сигнатура:

XmlTourDates GetTourDates(
               Int32 dptCityId, 
               Int32 countryId, 
               Int32[] resorts,
               Int32[] sources,
               Bool checkLicenseSources)

Параметры:

Параметр Тип Описание
dptCityId Int32 Идентификатор города вылета.
countryId Int32 Идентификатор страны.
resorts Int32[] Массив идентификаторов курортов. Если ни один курорт не выбран, значение поля равно нулю.
sources Int32[] Массив идентификаторов туроператоров. Если ни один туроператор не выбран, значение поля равно нулю.
checkLicenseSources Bool Используется для внутренних сервисов Слетать.ру

Пример SOAP-запроса доступных дат начала тура из Екатеринбурга в Тироль (Австрия):

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
  <s:Body> 
    <GetTourDates xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"> 
      <dptCityId>1265</dptCityId> 
      <countryId>3</countryId> 
      <resorts 
        xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays" 
        xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
      > 
        <a:int>1442</a:int> 
      </resorts> 
    </GetTourDates> 
  </s:Body> 
</s:Envelope>

Пример SOAP-ответа:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
  <s:Body> 
    <GetTourDatesResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"> 
      <GetTourDatesResult 
        xmlns:a="urn:SletatRu:DataTypes:XmlTourDates:v1" 
        xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
      > 
        <a:Dates xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> 
          <b:string>09.03.2013</b:string> 
          <b:string>09.02.2013</b:string> 
          <b:string>23.02.2013</b:string> 
          <b:string>02.03.2013</b:string> 
          <b:string>16.03.2013</b:string> 
          <b:string>02.02.2013</b:string> 
          <b:string>16.02.2013</b:string> 
          <b:string>06.04.2013</b:string> 
        </a:Dates> 
      </GetTourDatesResult> 
    </GetTourDatesResponse> 
  </s:Body> 
</s:Envelope>

XmlTourDates содержит элемент Dates – коллекцию дат начала тура.

GetSourseAssurances

Метод GetSourseAssurances возвращают массивы юрлиц по идентификатору туроператора в справочнике Слетать.ру

Сигнатура: SourceRequisite[] GetSourseAssurances(int sourceId)

каждый элемент массива содержит следующие поля

string Number - Номер туроператора в реестре

string Name - Полное название

string Site - Сайт

string NameShort - Сокращенное наименование

string PhysicalAddress - Юридический адрес

string PostAddress - Почтовый адрес

SourceFinSecurityDocument[] FinSecurityDocuments - массив документов о предоставлении финансовых гарантий данному оператору

Каждый элемент массива FinSecurityDocuments имеет следующие поля:


int FinSecurityAmount - Размер финансового обеспечения

string WayToFinSecurity - Тип документа

string DocumentNumber - Номер документа в реестре

DateTime? DocumentDate - Номер документа в реестре

DateTime? DateOfFinSecurityFrom - Дата начала действия документа

DateTime? DateOfFinSecurityTo - Дата окончания действия документа

string OrgName - Название организации, предоставившей ТО финансовые гарантии

string OrgAddress - Юридический адрес организации, предоставившей ТО финансовые гарантии

string OrgPostAddress - Почтовый адрес организации, предоставившей ТО финансовые гарантии

Методы загрузки туров

Так как разные туроператоры возвращают результаты запроса в разные интервалы времени (до 90 секунд), в сервисе реализован асинхронный поиск туров. Для загрузки туров используются три метода:

  • CreateRequest используется для создания поискового запроса. Метод принимает все необходимые поисковые параметры.
  • GetRequestState отслеживает прогресс обработки поискового запроса туроператорами.
  • GetRequestResult возвращает все данные, найденные по запросу на момент вызова.
  • ContinueSearch позволяет продолжить поиск по параметрам исходного поискового запроса среди предложений с более высокой ценой.

В этом разделе приведено подробное описание всех методов.

Внимание! Варианты взаимодействия методов CreateRequest, GetRequestResult и ContinueSearch описана в разделе «Логика работы с сервисом».
Внимание! Работа с поисковым запросом (создание, запрос состояния и загрузка туров) должна выполняться с одного IP-адреса. При выполнении указанного условия взаимодействие с сервисом возможно с нескольких IP-адресов.

CreateRequest

Метод CreateRequest используется для создания поискового запроса. Ответ состоит из единственного элемента CreateRequestResult, содержащего идентификатор созданного запроса. Присвоенный запросу идентификатор используется методами GetRequestState, GetRequestResult и ContinueSearch в продолжение всего процесса поиска.

Внимание! Варианты взаимодействия методов CreateRequest, GetRequestResult и ContinueSearch описана в разделе «Логика работы с сервисом».

Сигнатура:

Int32 CreateRequest( 
           Int32 countryId, 
           Int32 cityFromId, 
           Int32[] cities, 
           Int32[] meals, 
           Int32[] stars, 
           Int32[] hotels,
           Int32 adults, 
           Int32 kids, 
           Int32[] kidsAges, 
           Int32 nightsMin, 
           Int32 nightsMax, 
           Int32 priceMin, 
           Int32 priceMax, 
           String currencyAlias, 
           String departFrom, 
           String departTo, 
           Boolean hotelIsNotInStop, 
           Boolean hasTickets, 
           Boolean ticketsIncluded, 
           Boolean useFilter, 
           Int32[] f_to_id,
           Boolean useTree, 
           Boolean includeDescriptions, 
           Boolean showEconomOnly, 
           Int32 cacheMode)

Параметры (обязательные отмечены знаком *):

Параметр

Тип

Описание

countryId *

Int32

Идентификатор страны.

cityFromId *

Int32

Идентификатор города вылета.

cities

Int32[]

Список идентификаторов курортов, по которым должен быть произведён поиск.

Внимание! Из-за технических ограничений со стороны оператора «Натали Турс», он принимает в одном запросе не больше 5 идентификаторов курортов. При передаче в запросе более 5 идентификаторов курортов к оператору уходят только первые 5, из-за этого в результаты поиска по этому ТО могут попадать не самые дешевые туры.

meals

Int32[]

Список идентификаторов типов питания, по которым должен быть произведён поиск.

stars

Int32[]

Список идентификаторов категорий отелей, по которым должен быть произведён поиск.

hotels

Int32[]

Список идентификаторов отелей, по которым должен быть произведён поиск. Не более 10 идентификаторов отелей в одном запросе.

Внимание! Из-за технических ограничений со стороны оператора «Натали Турс», он принимает в одном запросе не больше 5 идентификаторов отелей. При передаче в запросе более 5 идентификаторов отелей к оператору уходят только первые 5, из-за этого в результаты поиска по этому ТО могут попадать не самые дешевые туры.

adults

Int32

Количество туристов (взрослых). Значение по умолчанию «2».

kids

Int32

Количество туристов (детей). Значение по умолчанию «0».

kidsAges

Int32

Возраст каждого ребёнка. Если параметр используется, количество элементов в массиве должно быть равным значению параметра kids.

nightsMin

Int32

Минимальная продолжительность тура (ночей). Значение по умолчанию «7».

nightsMax

Int32

Максимальная продолжительность тура (ночей). Значение по умолчанию «7».

priceMin

Int32

Минимальная цена тура.

priceMax

Int32

Максимальная цена тура.

currencyAlias

String

Валюта для параметров priceMin и priceMax. Поддерживаются значения USD, EUR, RUB, BYN, UAH и UZS. Указанная валюта будет использована в поисковой выдаче.

departFrom

String

Начальная дата диапазона дат вылета в формате dd.MM.yyyy. Значение по умолчанию — текущая дата +1 день.

departTo

String

Конечная дата диапазона дат вылета в формате dd.MM.yyyy. Значение по умолчанию — значение параметра dateFrom +7 дней. Допустимый интервал между начальной и конечной датой диапазона — 45 дней.

hotelIsNotInStop

Boolean

Фильтрация результатов поиска по наличию мест в отеле. Если значение равно «true», в выдачу попадут только отели со статусом «под запрос» и «есть места»; если «false», фильтр не применяется. Значение по умолчанию «false».

hasTickets

Boolean

Фильтрация результатов поиска по наличию билетов (туда и обратно, без учёта класса). Если значение равно «true», в результаты поиска попадут только туры, в которых ещё остались в наличии билеты; если «false», фильтр не применяется. Значение по умолчанию — «false».

ticketsIncluded

Boolean

Фильтрация результатов поиска по составу турпакета. Если значение параметра равно «true», в выдачу попадут только туры с перелётами; если «false», фильтр не применяется. Значение по умолчанию — «false».

useFilter

Boolean

Фильтрация результатов поиска по туроператорам. Если значение равно «true», в выдачу попадают продукты туроператоров, перечисленных в параметре f_to_id; если «false», фильтр не применяется. Фильтр применяется только после создания поискового запроса. Значение по умолчанию — «false». Использование параметра ограниченно лицензией.

f_to_id

Int32[]

Список идентификаторов туроператоров для параметра useFilter. Использование параметра ограниченно лицензией.

includeDescriptions

Boolean

Если значение равно «true», в выдаче будут подробно описаны отели, типы размещения и питания.

showEconomOnly

Boolean

Возвращает туры в которые есть билеты на эконом рейсы, если значение параметра равно «true»; если «false», фильтр не применяется. Значение по умолчанию — «false». (Данный параметр является устаревшим. Не рекомендуется к использованию).

cacheMode

Int32

Режим обращения к кешу системы поиска. Возможные значения: 0 – не использовать кеш; 1 – использовать кеш при ошибках поиска у туроператора; 2 – режим SmartCache (на основе статистики поисковых запросов и наполнения кеша будет принято решение об использовании кеша; если поиск по кешу не даёт достоверного результата, запрос направляется туроператору); 3 – запрос будет направлен только в кеш, без использования алгоритма SmartCache; 4 – запрос будет направлен только в кеш, алгоритм SmartCache используется для поиска наиболее актуального набора туров.

В приведённом ниже примере создаётся поисковый запрос со следующими параметрами:

  • город вылета Санкт-Петербург;
  • направление Египет;
  • курорты Хургада и Шарм-Эль-Шейх;
  • отели Albatros Aqua Park Sharm и Akassia Swiss Resort;
  • вид питания All Included;
  • 2 взрослых туриста без детей;
  • продолжительность тура 14 ночей;
  • цены отобразить в рублях;
  • дата начала вылета в диапазоне от 10 до 17 октября 2011 года;
  • не выводить отели в стопе;
  • выводить только туры с включенным перелётом;
  • выводить только туры с наличием билетов туда и обратно.

Пример SOAP-запроса:

<x:Envelope
    xmlns:x="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:SletatRu:Contracts:Soap11Gate:v1"
    xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
    xmlns:urn1="urn:SletatRu:DataTypes:AuthData:v1"
>
    <x:Header>
        <urn1:AuthInfo>
            <urn1:Login>****</urn1:Login>
            <urn1:Password>****</urn1:Password>
        </urn1:AuthInfo>
    </x:Header>
    <x:Body>
        <urn:CreateRequest>
            <urn:countryId>40</urn:countryId>
            <urn:cityFromId>1264</urn:cityFromId>
            <urn:cities>
                <arr:int>1592</arr:int>
                <arr:int>1642</arr:int>
            </urn:cities>
            <urn:meals>
                <arr:int>115</arr:int>
            </urn:meals>
            <urn:hotels>
                 <arr:int>109930</arr:int>
                 <arr:int>772</arr:int>
            </urn:hotels>
            <urn:adults>2</urn:adults>
            <urn:kids>0</urn:kids>
            <urn:kidsAges>
                <arr:int>0</arr:int>
            </urn:kidsAges>
            <urn:nightsMin>7</urn:nightsMin>
            <urn:nightsMax>7</urn:nightsMax>
            <urn:priceMin>10000</urn:priceMin>
            <urn:priceMax>1000000</urn:priceMax>
            <urn:currencyAlias>RUB</urn:currencyAlias>
            <urn:departFrom>10.04.2011</urn:departFrom>
            <urn:departTo>17.04.2011</urn:departTo>
            <urn:hotelIsNotInStop>true</urn:hotelIsNotInStop>
            <urn:hasTickets>true</urn:hasTickets>
            <urn:ticketsIncluded>true</urn:ticketsIncluded>
            <urn:includeDescriptions>true</urn:includeDescriptions>
        </urn:CreateRequest>
    </x:Body>
</x:Envelope>

Пример SOAP-ответа:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <CreateRequestResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      <CreateRequestResult>4355852</CreateRequestResult>
    </CreateRequestResponse>
  </s:Body>
</s:Envelope>

Элемент CreateRequestResult содержит идентификатор поискового запроса (Int32).

GetRequestState

Метод GetRequestState возвращает статус обработки запроса для каждого туроператора.

Внимание! Варианты взаимодействия методов CreateRequest, GetRequestResult и ContinueSearch описаны в разделе «Логика работы с сервисом».

Сигнатура:

OperatorLoadStateCollection GetRequestState(
                              Int32 requestId)

Метод принимает единственный параметр requestId – идентификатор поискового запроса, выданный методом CreateRequest при создании.

Пример SOAP-запроса:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetRequestState xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      <requestId>4355852</requestId>
    </GetRequestState>
  </soap:Body>
</soap:Envelope>

Пример SOAP-ответа:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <GetRequestStateResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      <GetRequestStateResult
        xmlns:a="urn:SamoSoft:DataTypes:OperatorLoadStateCollection:v1"
        xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:b="urn:SamoSoft:DataTypes:OperatorLoadState:v1"
      >
        <a:OperatorLoadState>
          <Id xmlns="urn:SletatRu:DataTypes:DbObject:v1">7</Id>
          <Name xmlns="urn:SletatRu:DataTypes:NamedDbObject:v1">Biblio Globus</Name>
          <b:ErrorMessage i:nil="true"/>
          <b:ExecutionTimeMs>1561</b:ExecutionTimeMs>
          <b:IsCached>false</b:IsCached>
          <b:IsError>false</b:IsError>
          <b:IsProcessed>true</b:IsProcessed>
          <b:IsSkipped>false</b:IsSkipped>
          <b:IsTimeout>false</b:IsTimeout>
          <b:RowsCount>150</b:RowsCount>
        </a:OperatorLoadState>
        ...
      </GetRequestStateResult>
    </GetRequestStateResponse>
  </s:Body>
</s:Envelope>

На примере видно, что туроператор Biblio Globus вернул 150 туров за 1,5 секунды, состояния загрузки по другим операторам из примера были убраны.

В ответ возвращается коллекция состояний обработки запроса OperatorLoadStateCollection, содержащая n элементов OperatorLoadState, каждый из которых описывает статус для одного оператора.

Описание полей элемента OperatorLoadState:

Поле

Тип

Описание

Id

Int32

Идентификатор туроператора.

Name

String

Наименование туроператора.

IsPersistentCacheUsed

Boolean

Параметр принимает значение “true” если туры найдены из временного кэша.

IsProcessed

Boolean

Статус обработки запроса. Принимает значение “true”, даже если запрос обработан с ошибкой.

IsSkipped

Boolean

Параметр принимает значение “true” если поиск по туроператору не был произведен.

IsCached

Boolean

Принимает значение “true”, если ответ выдан из кеша.

IsError

Boolean

Принимает значение “true”, если. При обработке запроса произошла ошибка.

ErrorMessage

String

Описание ошибки при IsError = true.

IsTimeout

Принимает значение “true”, если запрос завершен по таймауту. Поле IsError также принимает значение “true”.

ExecutionTimeMs

Время обработки запроса в миллисекундах.

RowsCount

Количество найденных туров.

OnlineErrorMessage Сервисное сообщение от туроператора
MinPrice Минимальная цена найденных туров
MaxPrice Максимальная цена найденных туров
Внимание! Поисковый запрос считается обработанным, когда для каждого туроператора поле IsProcessed принимает значение “true”.

GetRequestResult

Метод GetRequestResult возвращает все туры, найденные в рамках обработки поискового запроса.

Внимание! Базовый алгоритм работы сервиса подразумевает асинхронную обработку поискового запроса. Если поисковый запрос не был обработан до конца (в результате метода GetRequestState не все туроператоры получили флаг IsProcessed = true), то метод GetRequestResult возвращает набор туров, доступный на момент его вызова. Итоговый набор туров постоянно обновляется по мере обработки запроса каждым туроператором. Если вы хотите, чтобы результаты поиска появлялись в выдаче одновременно, воспользуйтесь информацией, приведённой в разделе «Логика работы с сервисом».

Сигнатура:

TourData GetRequestResult(
          Int32 requestId
          Int32 pageSize
          Int32 pageNumber)

Метод принимает параметр requestId – идентификатор запроса, возвращённый методом CreateRequest при создании запроса.

Параметры (обязательные отмечены знаком *):

Параметр Тип Описание
requestId* Int32 Идентификатор запроса.
pageSize Int32 Количество туров в ленте выдачи на одной странице. По умолчанию: не задан.
pageNumber Int32 Номер страницы в ленте выдачи. По умолчанию: не задан.

Пример SOAP-запроса:

 <x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:SletatRu:Contracts:Soap11Gate:v1">
   <x:Body>
       <urn:GetRequestResult>
           <urn:requestId>4355852</urn:requestId>
           <urn:pageSize>10</urn:pageSize>
           <urn:pageNumber>2</urn:pageNumber>
       </urn:GetRequestResult>
   </x:Body>
 </x:Envelope>

Пример SOAP-ответа:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
  <s:Body>
    <GetRequestResultResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      <GetRequestResultResult
        xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:a="urn:SletatRu:DataTypes:XmlTourData:v1"
      >
        <a:HotelCount>374</a:HotelCount>
        <a:LoadState
          xmlns:c="urn:SamoSoft:DataTypes:OperatorLoadState:v1"
          xmlns:b="urn:SamoSoft:DataTypes:OperatorLoadStateCollection:v1"
        >
          <b:OperatorLoadState>
            <Id xmlns="urn:SletatRu:DataTypes:DbObject:v1">1819010031</Id>
            <Name ьxmlns="urn:SletatRu:DataTypes:NamedDbObject:v1">Туроператор #1819010031</Name>
            <c:ErrorMessage i:nil="true"/>
            <c:ExecutionTimeMs>2812</c:ExecutionTimeMs>
            <c:IsCached>false</c:IsCached>
            <c:IsError>false</c:IsError>
            <c:IsPersistentCacheUsed>false</c:IsPersistentCacheUsed>
            <c:IsProcessed>true</c:IsProcessed>
            <c:IsSkipped>false</c:IsSkipped>
            <c:IsTimeout>false</c:IsTimeout>
            <c:MaxPrice>30952</c:MaxPrice>
            <c:MinPrice>19424</c:MinPrice>
            <c:RowsCount>40</c:RowsCount>
          </b:OperatorLoadState>
        </a:LoadState>
        <a:OilTaxes xmlns:b="urn:SletatRu:DataTypes:XmlTourOilTax:v1">
          <b:XmlTourOilTax>
            <b:AirCompanyName i:nil="true"/>
            <b:AirportName i:nil="true"/>
            <b:CurrencyName i:nil="true"/>
            <b:Date1>2013-11-25T00:00:00</b:Date1>
            <b:Date2>2014-12-31T00:00:00</b:Date2>
            <b:FlightNumber i:nil="true"/>
            <b:PartnerName i:nil="true"/>
            <b:ResortId i:nil="true"/>
            <b:ResortName i:nil="true"/>
            <b:SourceId>1819010041</b:SourceId>
            <b:Tax>0</b:Tax>
          </b:XmlTourOilTax>
        </a:OilTaxes>
        <a:RequestId>539037314</a:RequestId>
        <a:Rows xmlns:b="urn:SletatRu:DataTypes:XmlTourRecord:v1">
          <b:XmlTourRecord>
            <b:Adults>2</b:Adults>
            <b:BusinessTicketsDpt>Stop</b:BusinessTicketsDpt>
            <b:BusinessTicketsRtn>Stop</b:BusinessTicketsRtn>
            <b:CheckInDate>07.05.2014</b:CheckInDate>
            <b:CityFromId>832</b:CityFromId>
            <b:CityFromName>Москва</b:CityFromName>
            <b:CountryId>35</b:CountryId>
            <b:CountryName>Греция</b:CountryName>
            <b:CreditMonthlyPay i:nil="true"/>
            <b:CreditMonths i:nil="true"/>
            <b:Currency>RUB</b:Currency>
            <b:Description>
              1, Касторья, Хлои-Фундукли, Esperos Palace 4*+, Double Classical, _, 2Ad, Half Board 1, Халкидики-Афон, Урануполи, Dioni Apartments Apartments, Apartment 1 Broom, _, 2Ad, Room Rate
            </b:Description>
            <b:DiscountCaption/>
            <b:DiscountExpires i:nil="true"/>
            <b:DiscountPercent i:nil="true"/>
            <b:EarlyBookingValidTill i:nil="true"/>
            <b:EconomTicketsDpt>Available</b:EconomTicketsDpt>
            <b:EconomTicketsRtn>Available</b:EconomTicketsRtn>
            <b:FewBusinessTicketsDpt>0</b:FewBusinessTicketsDpt>
            <b:FewBusinessTicketsRtn>0</b:FewBusinessTicketsRtn>
            <b:FewEconomTicketsDpt>-1</b:FewEconomTicketsDpt>
            <b:FewEconomTicketsRtn>0</b:FewEconomTicketsRtn>
            <b:FewPlacesInHotel>0</b:FewPlacesInHotel>
            <b:Flags>3072</b:Flags>
            <b:Found i:nil="true"/>
            <b:GiftCaption/>
            <b:HotelDescription/>
            <b:HotelDescriptionUrl>
              https://hotels.sletat.ru/?id=13298
            </b:HotelDescriptionUrl>
            <b:HotelId>13298</b:HotelId>
            <b:HotelIsInStop>Available</b:HotelIsInStop>
            <b:HotelName>Esperos Palace</b:HotelName>
            <b:HotelPhotosCount>45</b:HotelPhotosCount>
            <b:HotelRating>9.62</b:HotelRating>
            <b:HotelTitleImageUrl>
              https://hotels.sletat.ru/i/p/13298_0.jpg
            </b:HotelTitleImageUrl>
            <b:HtPlaceDescription/>
            <b:HtPlaceId>13103</b:HtPlaceId>
            <b:HtPlaceName>DBL</b:HtPlaceName>
            <b:IsDemoMode>false</b:IsDemoMode>
            <b:Kids>0</b:Kids>
            <b:MealDescription/>
            <b:MealId>113</b:MealId>
            <b:MealName>HB</b:MealName>
            <b:Nights>2</b:Nights>
            <b:OfferId>985863881</b:OfferId>
            <b:OfferIdStr>985863881</b:OfferIdStr>
            <b:OriginalHotelName>Esperos Palace</b:OriginalHotelName>
            <b:OriginalHtPlaceName>2Ad</b:OriginalHtPlaceName>
            <b:OriginalMealName>Half Board</b:OriginalMealName>
            <b:OriginalRoomName>Double Classical,_          </b:OriginalRoomName>
            <b:OriginalStarName>4*</b:OriginalStarName>
            <b:OriginalTownName>Касторья, Хлои-Фундукли</b:OriginalTownName>
            <b:Price>50</b:Price>
            <b:PriceType>0</b:PriceType>
            <b:ReceivingParty/>
            <b:ResortDescriptionUrl/>
            <b:ResortId>546</b:ResortId>
            <b:ResortName>Кастория</b:ResortName>
            <b:RoomId>0</b:RoomId>
            <b:RoomName>Double Classical, _</b:RoomName>
            <b:SourceId>1819010039</b:SourceId>
            <b:SourceImageUrl/>
            <b:SourceName/>
            <b:SourceSearchFormUrl/>
            <b:StarId>403</b:StarId>
            <b:StarName>4*</b:StarName>
            <b:TicketsIncluded>Included</b:TicketsIncluded>
            <b:TourArchiveHash>AsBcr96RHxUv1810cTI28A==</b:TourArchiveHash>
            <b:TourHash>ZdVTLJ1FPydJIFpekzdUXg==</b:TourHash>
            <b:TourName>_МСК_Шоп-тур с обяз._2014_+Отд.</b:TourName>
            <b:TourUrl/>
          </b:XmlTourRecord>
        </a:Rows>
        <a:RowsCount>2318</a:RowsCount>
        <a:SourcesVisas xmlns:b="urn:SletatRu:DataTypes:XmlVisaRange:v1">
          <b:CurrencyName>EUR</b:CurrencyName>
          <b:Items xmlns:c="urn:SletatRu:DataTypes:XmlVisaRangeItem:v1">
            <c:XmlVisaRangeItem>
              <c:MaxPrice>70</c:MaxPrice>
              <c:MinPrice>30</c:MinPrice>
              <c:SourceId>1819010049</c:SourceId>
            </c:XmlVisaRangeItem>
          </b:Items>
        </a:SourcesVisas>
        <a:Visa xmlns:b="urn:SletatRu:DataTypes:XmlVisa:v1" i:nil="true"/>
      </GetRequestResultResult>
    </GetRequestResultResponse>
  </s:Body>
</s:Envelope>

В ответ возвращается структура GetRequestResultResult, состоящая из следующих полей:

  • HotelCount – общее количество отелей в поисковой выдаче;
  • LoadState – массив данных о состоянии обработки поискового запроса, в котором каждый элемент OperatorLoadState описывает состояние обработки запроса одним оператором (структура OperatorLoadState описана в разделе “GetRequestSate”);
  • OilTaxes – массив данных о топливных сборах, в котором каждый элемент информация о топливных сборах.
  • RequestId – идентификатор поискового запроса;
  • Rows – состоит из структур XmlTourRecord, которые описывают найденные туры;
  • RowsCount – количество туров, найденных в рамках поискового запроса на момент формирования ответа (в примере по заданному запросу найдено 410 цен);
  • SourcesVisas – необходимо описание;
  • Visa – информация о стоимости визы;

Поля структуры XmlTourRecord:

Поле Тип Описание
Adults Int32 Количество туристов (взрослых).

BusinessTicketsDpt

Enum

Наличие билетов бизнес-класса (туда). Возможные значения: Stop – нет билетов, Available – есть билеты, Request – под запрос, и Unknown – нет данных.

BusinessTicketsRtn

Enum

Наличие билетов бизнес-класса (обратно). Возможные значения: Stop – нет билетов, Available – есть билеты, Request – под запрос, и Unknown – нет данных.

CheckInDate

String

Дата вылета в формате dd.MM.yyyy.

CityFromId

Int32

Идентификатор города вылета.

CityFromName

String

Город вылета.

CountryId

Int32

Идентификатор направления.

CountryName

String

Направление.

CreditMonthlyPay

Данный параметр устарел.

CreditMonths

Данный параметр устарел.

Currency

String

Валюта, в которой отображены цены. Возможные значения: RUB, USD, EUR, BYN, UAH и UZS.

Description

DiscountCaption

Данный параметр устарел.

DiscountExpires

Данный параметр устарел.

DiscountPercent

Данный параметр устарел.

EarlyBookingValidTill

Данный параметр устарел.

EconomTicketsDpt

Enum

Наличие билетов эконом-класса (туда). Возможные значения: Stop – нет билетов, Available – есть билеты, Request – под запрос, и Unknown – нет данных.

EconomTicketsRtn

Enum

Наличие билетов эконом-класса (обратно). Возможные значения: Stop – нет билетов, Available – есть билеты, Request – под запрос, и Unknown – нет данных.

FewBusinessTicketsDpt

Int32

Если есть билеты бизнес-класса (поле BusinessTicketsDpt имеет значение “Available”) и значение этого поля отлично от нуля, то билетов МАЛО. Если туроператор сообщает о том, что билетов мало, но не указывает точного количества, поле принимает значение “-1”. Если передано любое иное число, отличное от нуля, то это точное количество оставшихся билетов.

FewBusinessTicketsRtn

Int32

Если есть билеты бизнес-класса обратно (поле BusinessTicketsRtn имеет значение “Available”) и значение этого поля отлично от нуля, то билетов МАЛО. Если туроператор сообщает о том, что билетов мало, но не указывает точного количества, поле принимает значение “-1”. Если передано любое иное число, отличное от нуля, то это точное количество оставшихся билетов.

FewEconomTicketsDpt

Int32

Если есть билеты эконом-класса (поле EconomTicketsDpt имеет значение “Available”) и значение этого поля отлично от нуля, то билетов МАЛО. Если туроператор сообщает о том, что билетов мало, но не указывает точного количества, поле принимает значение “-1”. Если передано любое иное число, отличное от нуля, то это точное количество оставшихся билетов.

FewEconomTicketsRtn

Int32

Если есть места на перелёт эконом-классом обратно (поле EconomTicketsRtn имеет значение “Available”) и значение этого поля отлично от нуля, то билетов МАЛО. Если туроператор сообщает о том, что билетов мало, но не указывает точного количества, поле принимает значение “-1”. Если передано любое иное число, отличное от нуля, то это точное количество оставшихся билетов.

FewPlacesInHotel

Int32

Если есть места в отеле (поле HotelIsInStop имеет значение “Available”) и значение этого поля отлично от нуля, то мест в отеле МАЛО. Если туроператор сообщает о том, что мест мало, но не указывает точного количества, поле принимает значение “-1”. Если передано любое иное число, отличное от нуля, то это точное количество оставшихся мест.

Flags

UInt64 Набор битовых флагов тура. Тур может иметь несколько установленных флагов одновременно, данное значение является их суммой. Возможные флаги тура:

1 – туроператор рекомендует данный тур;

2 – доступно мгновенное подтверждение;

4 – туроператор считает данный тур лучшим предложением;

8 – тур раннего бронирования;

16 – тур позднего бронирования;

32 – туроператор предоставляет скидку на данный тур;

64 – VIP предложение;

128 – тур доступен в кредит;

256 – тур является эксклюзивным предложением туроператора;

512 – при покупке тура туристу подарок;

1024 – тур является комбинированным;

2048 – тур с обязательством (шоп-тур);

4096 – зарезервировано для использования системой;

8192 – экскурсионный тур;

16384 - Промо цена на тур;

32768 - Тур где перелёт осуществляется на регулярных рейсах

65536 - Тур где перелёт осуществляется на чартерных рейсах

131072 - Туры на транспорте в виде Автобуса

262144 - Туры на транспорте в виде ЖД дороги

524288 - Туры с прямыми перелёты

Found

GiftCaption

Данный параметр устарел.

HotelDescription

String

Краткое описание отеля. Выдаётся только если параметр includeDescriptions имеет значение “true”. Может быть пустым, если отель не слинкован или не имеет описания.

HotelDescriptionUrl

String

Ссылка на описание отеля.

HotelId

Int32

Идентификатор отеля. Если отель не слинкован, принимает значение “0”.

HotelIsInStop

Enum

Наличие мест в отеле. Возможные значения: Stop – нет мест, Available – есть места, Request – под запрос, и Unknown – нет данных.

IncludeServices array Данное поле представляет собой массив id включенных в тур услуг.

HotelName

String

Название отеля.

HotelPhotosCount

Int32

Количество фотографий отеля.

HotelRating

Single

Рейтинг отеля по десятибалльной шкале. Если рейтинг отсутствует, поле принимает значение “0”.

HotelTitleImageUrl

String

Ссылка на титульное изображение отеля в уменьшенном виде (115x80). Размеры изображения могут быть указаны самостоятельно с используется следующего шаблона ссылки:

https://hotels.sletat.ru/i/p/{hotel_id}_{image_index}_{h}_{w}.jpg – где:

  • {hotel_id} – идентификатор отеля;
  • {image_index} – индексизображения отеля, начинается с 0;
  • {h} – высота изображения (максимальное значение 300);
  • {w} – требуемая ширина изображения (максимальное значение 300);

Изображения не предоставляются для неслинкованных отелей, а также для отелей с отсутствующим описанием.

HtPlaceDescription

String

Описание размещения, выдаётся только если параметр includeDescriptions имеет значение “true”. Может быть пустым, если размещение не слинковано или не имеет описания.

HtPlaceId

Int32

Идентификатор типа размещения. Если данные не слинкованы, поле принимает значение “0”.

HtPlaceName

String

Тип размещения.

IsDemoMode

Boolean

Если выдача производится в демо-режиме, поле принимает значение “true”. В демо-режиме не отображаются цены, а также все результаты поиска заполнены демонстрационными данными.

Kids

Int32

Количество туристов (детей).

MealDescription

String

Описание типа питания. Выдаётся только если параметр includeDescriptions имеет значение “true”. Может быть пустым, если данные не слинкованы или тип питания не описан.

MealId

Int32

Идентификатор типа питания. Если данные не слинкованы, поле принимает значение “0”.

MealName

String

Тип питания.

Nights

Int32

Продолжительность тура (ночей).

OfferId

Int64

Идентификатор ценового предложения. Используется вместе с SourceId для актуализации тура и оформлении заказа.

OfferIdStr

String

Идентификатор ценового предложения в строковом формате.

OriginalHotelName

String

Название отеля по данным туроператора.

OriginalStarName

String

Категории отеля по данным туроператора.

OriginalTownName

String

Название курорта по данным туроператора.

OriginalMealName

String

Тип питания по данным туроператора.

OriginalHtPlaceName

String

Тип размещения по данным туроператора.

OriginalRoomName

String

Типа номера по данным туроператора.

Price

Int32

Цена тура в запрошенной валюте.

PriceType

Int32

Тип цены. Возможные значения: 0 – полная цена тура, 1- цена в пересчёте на человека. Независимо от типа цены стоимость тура выдаётся конечной.

RawPrice

Int32

Цена тура без скидок и наценок, задаваемых в личном кабинете sletat.ru

ReceivingParty

Данный параметр устарел.

ResortDescriptionUrl

String

Ссылка на описание курорта. Строка может быть пустой, если курорт не слинкован или не имеет ссылки на описание.

ResortId

Int32

Идентификатор курорта. Если курорт не слинкован, поле принимает значение “0”.

ResortName

String

Курорт.

RoomId

Int32

Идентификатор типа номера. Если тип номера не слинкован, поле принимает значение “0”.

RoomName

String

Тип номера.

SourceId

Int32

Зашифрованный идентификатор туроператора, значение используется вместе с OfferId при актуализации и заказе туров. В расширенной версии сервиса предоставляется оригинальный идентификатор туроператора (по всем вопросам обращайтесь в Службу технической поддержки Слетать.ру по тел. 8(800)700-33-09 или по электронной почте support@sletat.ru).

SourceImageUrl

String

Ссылка на логотип туроператора. Поле заполняется только при покупке расширенной версии сервиса (по всем вопросам обращайтесь в Службу технической поддержки Слетать.ру по тел. 8(800)700-33-09 или по электронной почте support@sletat.ru).

SourceName

String

Наименование туроператора. Поле заполняется только при покупке расширенной версии сервиса (по всем вопросам обращайтесь в Службу технической поддержки Слетать.ру по тел. 8(800)700-33-09 или по электронной почте support@sletat.ru).

SourceSearchFormUrl

String

Ссылка на форму поиска туроператора. Поле заполняется только при покупке расширенной версии сервиса (по всем вопросам обращайтесь в Службу технической поддержки Слетать.ру по тел. 8(800)700-33-09 или по электронной почте support@sletat.ru).

StarId

Int32

Идентификатор категории отеля. Если данные не слинкованы, поле принимает значение “0”.

StarName

String

Категория отеля.

TicketsIncluded

Enum

Состав турпакета. Возможные значения: NotIncluded – авиаперелёт не включён в стоимость тура, Included – авиаперелёт включён, и Unknown – нет данных.

TourArchiveHash

Хэш тура для поиска цены в сервисе аналитики

TourHash

Уникальный хэш тура.

TourName

String

Название тура. Поле может быть пустым, если туроператор не предоставляет таких данных.

TourUrl

String

Ссылка на описание / бронирование тура на сайте туроператора, Поле заполняется только при покупке расширенной версии сервиса (по всем вопросам обращайтесь в Службу технической поддержки Слетать.ру по тел. 8(800)700-33-09 или по электронной почте support@sletat.ru). На момент написания настоящего руководства некоторые туроператоры не имеют ссылок в сервисе Слетать.ру.

Элемент Visa содержит информацию о стоимости визы.

Поля элемента Visa:

Поле

Тип

Описание

Price

Int32

Размер визового сбора

CurrencyName

String

Валюта поля Price. Возможные значения: RUB, USD, EUR, BYN, UAH и UZS.

Элемент Visa может быть пустым (NULL), если в системе нет информации о стоимости визы. Если элемент Visa не пустой, то все вложенные элементы обязательно имеют значение.

Структура OilTaxes заполняется информацией о топливных сборах (элементы XmlTourOilTax) для туров в результате поиска.

Поля элемента XmlTourOilTax (знаком * отмечены обязательные поля):

Поле

Тип

Описание

AgeFrom Int32 Возраст туриста, от которого включается данный топливный сбор.
AgeTo Int32 Возраст туриста, до которого включается данный топливный сбор.

AirCompanyName

String

Название авиакомпании, к которой относится информация по топливному сбору. Если информация относится ко всем авиакомпаниям, поле остаётся пустым. Может быть несколько элементов OilTax с одинаковыми значениями всех полей, кроме AirCompanyName и Tax. Таким образом сообщается информация о размерах топливных сборов у разных авиакомпаний. Если у одного из элементов OilTax поле AirCompanyName оставлено пустым, то информация этого элемента относится ко всем авиакомпаниям, а остальные элементы OilTax описывают исключения.

AirportName

String

Название аэропорта.

CurrencyName*

String

Валюта поля Tax. Возможные значения: RUB, USD, EUR, BYN, UAH и UZS.

Date1*

DateTime

Дата начала действия топливного сбора.

Date2*

DateTime

Дата окончания действия топливного сбора.

FlightNumber

Int32

Номер рейса, к которому применяется сбор. Если информация относится ко всем авиакомпаниям, поле остаётся пустым.

PartnerName

String

Принимающая сторона. Если поле заполнено, топливный сбор действителен только для туров с указанной принимающей стороной.

Если топливный сбор действителен для всех принимающих сторон, поле остаётся пустым.

Может быть несколько элементов OilTax с одинаковыми значениями всех полей, кроме PartnerName и Tax.

ResortId

Int32

Идентификатор курорта.

ResortName

Название курорта.

SourceId*

Int32

Идентификатор туроператора в зашифрованном виде. В расширенной версии сервиса поле содержат оригинальные идентификаторы туроператоров (по всем вопросам обращайтесь в Службу технической поддержки Слетать.ру по тел. 8(800)700-33-09 или по электронной почте support@sletat.ru).

Tax *

Int32

Размер топливного сбора. Если топливный сбор отсутствует, поле принимает значение “0”.

Если в системе нет информации по топливным сборам для тура, то множество элементов OilTax будет пустым (NULL).

Чтобы сопоставить туры из выдачи и элементы XmlTOilTax, нужно отфильтровать элементы OilTax по параметру SouceId, и отобрать туры, даты вылета которых попадают в диапазон, заданный полями Date1 и Date2.

ContinueSearch

Метод ContinueSearch создаёт новый поисковый запрос с использованием данных предыдущего. Логика работы метода:

  1. Проверяется статус обработки исходного поискового запроса (значение requestId последнего указывается в запросе метода ContinueSearch). Если поиск по проверяемому запросу ещё не завершён (т. е. если хотя бы один оператор ещё не выставил значение поля IsProcessed “true”), возвращается текст с описанием ошибки.
  2. Если проверяемый запрос обработан, то максимальная цена в его выдаче увеличивается на единицу и становится минимальной для нового запроса.
  3. Метод ContinueSearch создаёт новый поисковый запрос (в статистике такие запросы также учитываются как новые) и возвращает его идентификатор. Все параметры нового поискового запроса, кроме цены, остаются теми же, что и параметры исходного.
  4. Полученный запрос обрабатывается методами GetRequestState и GetRequestResult.
Важно! Продолжение поиска возможно в течение 20 минут c начала предыдущего поиска.

Сигнатура:

XmlContinueSearchData ContinueSearch(
                             Int32 requestId)

Метод принимает единственный параметр requestId – идентификатор завершённого поискового запроса.

Пример SOAP-запроса:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <ContinueSearch xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      <requestId>69587384</requestId>
    </ContinueSearch>
  </s:Body>
</s:Envelope>

Пример SOAP-ответа:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <ContinueSearchResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      <ContinueSearchResult
        xmlns:a="urn:SletatRu:DataTypes:XmlContinueSearchData:v1"
        xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
      >
        <a:RequestId>69587436</a:RequestId>
      </ContinueSearchResult>
    </ContinueSearchResponse>
  </s:Body>
</s:Envelope>

Структура XmlContinueSearchData содержит поле RequestId с идентификатором нового поискового запроса.

ActualizePrice

Метод ActualizePrice необходим для актуализации предложений туроператоров.

Сигнатура:

XmlActualPriceData ActualizePrice(
                           Int32 sourceId,
                           Int64 offerId,
                           Int32 requestId)

Параметры:

Параметр

Тип

Описание

requestId

Int32

Идентификатор поискового запроса. Выдаётся методами CreateRequest или ContinueSearch.

offerId

Int64

Идентификатор ценового предложения. Выдаётся каждому туру методом GetRequestResult.

sourceId

Int32

Зашифрованный идентификатор туроператора. Выдаётся каждому туру методом GetRequestResult.

login

Логин от личного кабинета туроператора.

password

Пароль от личного кабинета туроператора.

Важно! При отсутствии в запросе логина и пароля от личного кабинета туроператора актуализация цены тура может быть не проведена. Ошибки при этом не возникнет.

Пример SOAP-запроса:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ActualizePrice xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      <sourceId>14173204</sourceId>
      <offerId>1287318711</offerId>
      <requestId>2862432</requestId>
      <login>****</login>
      <password>***</password>
    </ActualizePrice>
  </soap:Body>
</soap:Envelope>

Пример SOAP-ответа:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <ActualizePriceResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      <ActualizePriceResult xmlns:a="urn:SletatRu:DataTypes:XmlActualPriceData:v1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
                <a:ErrorMessage i:nil="true"/>
                <a:IsError>false</a:IsError>
                <a:IsFound>true</a:IsFound>
                <a:NextPossibleCommands i:nil="true" xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
                <a:OilTaxes xmlns:b="urn:SletatRu:DataTypes:XmlOilTax:v1">
                    <b:XmlOilTax>
                        <b:AgeFrom i:nil="true"/>
                        <b:AgeTo i:nil="true"/>
                        <b:AirCompanyName i:nil="true"/>
                        <b:AirportName i:nil="true"/>
                        <b:CurrencyName i:nil="true"/>
                        <b:FlightNumber i:nil="true"/>
                        <b:HostName i:nil="true"/>
                        <b:PartnerName>Good Time Travel</b:PartnerName>
                        <b:PeriodEndDate>31.12.2020</b:PeriodEndDate>
                        <b:PeriodStartDate>21.12.2018</b:PeriodStartDate>
                        <b:ResortName i:nil="true"/>
                        <b:Tax>0</b:Tax>
                    </b:XmlOilTax>
                </a:OilTaxes>
                <a:RandomNumber>2661</a:RandomNumber>
                <a:ResourceData xmlns:b="urn:SletatRu:DataTypes:XmlResourceData:v1">
                    <b:XmlResourceData>
                        <b:Name>AIRLINE</b:Name>
                        <b:ResourceId>-591287990</b:ResourceId>
                        <b:Value>Turkish Airlines</b:Value>
                    </b:XmlResourceData>
                    <b:XmlResourceData>
                        <b:Name>FLIGHT</b:Name>
                        <b:ResourceId>-591287990</b:ResourceId>
                        <b:Value>TK 420</b:Value>
                    </b:XmlResourceData>
                    <b:XmlResourceData>
                        <b:Name>AIRPORT_FROM</b:Name>
                        <b:ResourceId>-591287990</b:ResourceId>
                        <b:Value>VKO</b:Value>
                    </b:XmlResourceData>
                    <b:XmlResourceData>
                        <b:Name>AIRPORT_TO</b:Name>
                        <b:ResourceId>-591287990</b:ResourceId>
                        <b:Value>IST</b:Value>
                    </b:XmlResourceData>
 
               <a:Resources xmlns:b="urn:SletatRu:DataTypes:XmlResource:v1">
                    <b:XmlResource>
                        <b:Exclude/>
                        <b:GroupId>-759022283</b:GroupId>
                        <b:Id>-591287990</b:Id>
                        <b:IsChecked>true</b:IsChecked>
                        <b:IsEnabled>true</b:IsEnabled>
                        <b:LinkGroupsId>1146194747</b:LinkGroupsId>
                        <b:Name>TK 420 Москва VKO 08:40 - Стамбул IST 00:55</b:Name>
                        <b:Surcharge>0</b:Surcharge>
                        <b:SurchargeCurrencyId>5</b:SurchargeCurrencyId>
                        <b:SurchargeCurrencyIdOriginal i:nil="true"/>
                        <b:SurchargeOriginal i:nil="true"/>
                        <b:Type>4</b:Type>
                    </b:XmlResource>
                    <b:XmlResource>
                        <b:Exclude/>
                        <b:GroupId>1252486320</b:GroupId>
                        <b:Id>-591287988</b:Id>
                        <b:IsChecked>false</b:IsChecked>
                        <b:IsEnabled>true</b:IsEnabled>
                        <b:LinkGroupsId>895852864</b:LinkGroupsId>
                        <b:Name>TK 420 Москва VKO 08:40 - Стамбул IST 00:55</b:Name>
                        <b:Surcharge>0</b:Surcharge>
                        <b:SurchargeCurrencyId>5</b:SurchargeCurrencyId>
                        <b:SurchargeCurrencyIdOriginal i:nil="true"/>
                        <b:SurchargeOriginal i:nil="true"/>
                        <b:Type>4</b:Type>
                    </b:XmlResource>
                    <b:XmlResource>
                        <b:Exclude/>
                        <b:GroupId>281026895</b:GroupId>
                        <b:Id>-591287986</b:Id>
                        <b:IsChecked>false</b:IsChecked>
                        <b:IsEnabled>true</b:IsEnabled>
                        <b:LinkGroupsId>-380643850</b:LinkGroupsId>
                        <b:Name>TK 420 Москва VKO 08:40 - Стамбул IST 00:55</b:Name>
                        <b:Surcharge>0</b:Surcharge>
                        <b:SurchargeCurrencyId>5</b:SurchargeCurrencyId>
                        <b:SurchargeCurrencyIdOriginal i:nil="true"/>
                        <b:SurchargeOriginal i:nil="true"/>
                        <b:Type>4</b:Type>
                    </b:XmlResource>
                    <b:XmlResource>
                        <b:Exclude/>
                        <b:GroupId>-730380720</b:GroupId>
                        <b:Id>-971584364</b:Id>
                        <b:IsChecked>false</b:IsChecked>
                        <b:IsEnabled>true</b:IsEnabled>
                        <b:LinkGroupsId>-764732685</b:LinkGroupsId>
                        <b:Name>TK 412 Москва VKO 02:50 - Стамбул IST 00:55</b:Name>
                        <b:Surcharge>11632.44</b:Surcharge>
                        <b:SurchargeCurrencyId>5</b:SurchargeCurrencyId>
                        <b:SurchargeCurrencyIdOriginal i:nil="true"/>
                        <b:SurchargeOriginal i:nil="true"/>
                        <b:Type>4</b:Type>
                    </b:XmlResource>
                    <b:XmlResource>
                        <b:Exclude/>
                        <b:GroupId>398232089</b:GroupId>
                        <b:Id>792404789</b:Id>
                        <b:IsChecked>false</b:IsChecked>
                        <b:IsEnabled>true</b:IsEnabled>
                        <b:LinkGroupsId>1087744587</b:LinkGroupsId>
                        <b:Name>TK 414 Москва VKO 12:10 - Стамбул IST 00:55</b:Name>
                        <b:Surcharge>11632.44</b:Surcharge>
                        <b:SurchargeCurrencyId>5</b:SurchargeCurrencyId>
                        <b:SurchargeCurrencyIdOriginal i:nil="true"/>
                        <b:SurchargeOriginal i:nil="true"/>
                        <b:Type>4</b:Type>
                    </b:XmlResource>
 
                <a:SessionId>fUEmNh59tkadYw+IZdd1jQ==</a:SessionId>
                <a:TourInfo xmlns:b="urn:SletatRu:DataTypes:XmlActualTourInfo:v1">
                    <b:Adults>2</b:Adults>
                    <b:BusinessTicketsDpt>Stop</b:BusinessTicketsDpt>
                    <b:BusinessTicketsRtn>Stop</b:BusinessTicketsRtn>
                    <b:CheckIn>20.09.2019</b:CheckIn>
                    <b:CheckOut>27.09.2019</b:CheckOut>
                    <b:CityFromName>Москва</b:CityFromName>
                    <b:CountryName>Египет</b:CountryName>
                    <b:EconomTicketsDpt>Available</b:EconomTicketsDpt>
                    <b:EconomTicketsRtn>Available</b:EconomTicketsRtn>
                    <b:ExactOriginalPrice>126051</b:ExactOriginalPrice>
                    <b:ExactPrice>126051</b:ExactPrice>
                    <b:Flags>0</b:Flags>
                    <b:Hash>WP9Rc2J6mxoVkL/sd2XX+w==</b:Hash>
                    <b:HotelDesc/>
                    <b:HotelDescriptionUrl>https://hotels.sletat.ru/?id=104601</b:HotelDescriptionUrl>
                    <b:HotelIsInStop>Request</b:HotelIsInStop>
                    <b:HotelName>Mazar Resort &amp; Spa</b:HotelName>
                    <b:HotelPhotosCount>9</b:HotelPhotosCount>
                    <b:HotelTitleImageUrl>https://hotels.sletat.ru/i/p/104601_0.jpg</b:HotelTitleImageUrl>
                    <b:HtPlaceDesc>двухместный номер</b:HtPlaceDesc>
                    <b:HtPlaceName>DBL</b:HtPlaceName>
                    <b:Kids>0</b:Kids>
                    <b:MealDesc>Завтраки и ужины</b:MealDesc>
                    <b:MealName>HB</b:MealName>
                    <b:Nights>7</b:Nights>
                    <b:OfferId>1359485512</b:OfferId>
                    <b:OriginalCurrencyId>5</b:OriginalCurrencyId>
                    <b:OriginalPrice>126051</b:OriginalPrice>
                    <b:OriginalPriceCurrency>USD</b:OriginalPriceCurrency>
                    <b:Price>126051</b:Price>
                    <b:PriceCurrency>RUB</b:PriceCurrency>
                    <b:Rating>0</b:Rating>
                    <b:RequestId>592411141</b:RequestId>
                    <b:ResortName>Sharks Bay</b:ResortName>
                    <b:RoomName>STANDARD</b:RoomName>
                    <b:SourceId>304</b:SourceId>
                    <b:SourceName>Good Time Travel</b:SourceName>
                    <b:SourceSearchFormUrl>http://online.goodtimetravel.ru/search_tour</b:SourceSearchFormUrl>
                    <b:StarName>3*</b:StarName>
                    <b:SysCityFromId>832</b:SysCityFromId>
                    <b:SysCityFromName>Москва</b:SysCityFromName>
                    <b:SysCountryId>40</b:SysCountryId>
                    <b:SysCountryName>Египет</b:SysCountryName>
                    <b:SysHotelId>104601</b:SysHotelId>
                    <b:SysHotelName>Mazar Resort &amp; Spa</b:SysHotelName>
                    <b:SysHtPlaceId>13103</b:SysHtPlaceId>
                    <b:SysHtPlaceName>DBL</b:SysHtPlaceName>
                    <b:SysMealId>113</b:SysMealId>
                    <b:SysMealName>HB</b:SysMealName>
                    <b:SysResortId>1642</b:SysResortId>
                    <b:SysResortName>Шарм-Эль-Шейх</b:SysResortName>
                    <b:SysRoomId>5283</b:SysRoomId>
                    <b:SysRoomName>Standard</b:SysRoomName>
                    <b:SysStarId>402</b:SysStarId>
                    <b:SysStarName>3*</b:SysStarName>
                    <b:TicketsIncluded>Included</b:TicketsIncluded>
                    <b:TourName>Шарм-Эль-Шейх.Рег.рейсы SH1</b:TourName>
                    <b:TourUrl>https://sletat.ru/book/Good Time Travel/MzA0fDEzNTk0ODU1MTJ8ODMyfDU5MjQxMTE0MXw%3d</b:TourUrl>
                </a:TourInfo>
      </ActualizePriceResult>
    </ActualizePriceResponse>
  </s:Body>
</s:Envelope>

В ответ возвращается структура ActualizePriceResult, состоящая из следующих полей:

  • IsError – принимает значение “true”, если при актуализации тура возникла ошибка.
  • IsFound – поле принимает значение “false”, если тур не был найден в базе туроператора;
  • RandomNumber – случайное четырехзначное число, по которому можно просмотреть информацию о туре в личном кабинете на сайте sletat.ru или в программе SletatRu Agent, используется для того, чтобы ваши менеджеры могли точно идентифицировать тур, который клиент нашёл самостоятельно;
  • ResourceId
  • TourInfo – структура, содержащая основную информацию о туре;

В полях массива Resources представлены данные о перелетах с type = 4 (в сторону курорта) и с type = 10 (в обратную). По-данному id в массиве ResourceData можно найти описание перелетов (Имена аэропортов, городов вылета и т.д.)

Пример:

Путь в структуре ответа до данных о наличии перелета обратно: ActualizePriceResult.Resources [1] (где type = 10, id = 1)

Путь в структуре ответа до подробной информации о перелете обратно: ActualizePriceResult.ResourceData[0] (где resourceId = 1)

Сопоставление данных перелета и записи о его наличии происходит через id == resourceId.

Поля структуры ResourceId

Параметр

Тип

Описание

id

long

Идентификатор перелета

linkGroupsId

long

Идентификатор группы перелетов

surcharge

int

Cумма доплат за выбранные перелеты

surchargeCurrencyId

byte

Валюта доплаты за авиаперелеты

Поля структуры TourInfo:

Поле

Тип

Описание

CountryName

String

Название страна по данным туроператора.

CityFromName

String

Название города вылета по данным туроператора.

ResortName

String

Название курорта по данным туроператора.

TourName

String

Название тура по данным туроператора.

TourDate

String

Дата вылета в формате dd.MM.yyyy.

Nights

Int32

Продолжительность тура (ночей).

HotelName

String

Название отеля по данным туроператора.

StarName

String

Категория отеля по данным туроператора.

RoomName

String

Тип номера по данным туроператора.

MealName

String

Тип питания по данным туроператора.

TicketsIncluded

Enum

Состав турпакета. Возможные значения: NotIncluded – авиаперелёт в стоимость тура не включён, Included – авиаперелёт включён, и Unknown – нет данных.

HotelIsInStop

Enum

Наличие мест в отеле. Возможные значения: Stop – нет мест, Available – есть места, Request – под запрос, и Unknown – нет данных.

EconomTicketsDpt

Enum

Наличие билетов эконом-класса (туда). Возможные значения: Stop – нет билетов, Available – есть билеты, Request – под запрос, и Unknown – нет данных.

EconomTicketsRtn

Enum

Наличие билетов эконом-класса (обратно). Возможные значения: Stop – нет билетов, Available – есть билеты, Request – под запрос, и Unknown – нет данных.

BusinessTicketsDpt

Enum

Наличие билетов бизнес-класса (туда). Возможные значения: Stop – нет билетов, Available – есть билеты, Request – под запрос, и Unknown – нет данных.

BusinessTicketsRtn

Enum

Наличие билетов бизнес-класса (обратно). Возможные значения: Stop – нет билетов, Available – есть билеты, Request – под запрос, и Unknown – нет данных.

HtPlaceName

String

Тип размещения по данным туроператора.

Price

Int32

Цена тура в запрошенной валюте (со скидкой и наценкой).

PriceCurrency

String

Обозначение валюты. Возможные значения: RUB, EUR, USD, BYN, UAH и UZS.

OriginalPrice

Int32

Оригинальная цена тура в исходной валюте (со скидкой и наценкой).

OriginalPriceCurrency

String

Обозначение валюты (по данным туроператора) поля OriginalPrice.

SourceId

Int32

Идентификатор туроператора. Поле заполняется только при покупке расширенной версии сервиса (по всем вопросам обращайтесь в Службу технической поддержки Слетать.ру по тел. 8(800)700-33-09 или по электронной почте support@sletat.ru).

SourceName

String

Наименование туроператора. Поле заполняется только при покупке расширенной версии сервиса (по всем вопросам обращайтесь в службу поддержки support@sletat.ru).

SourceSearchFormUrl

String

Ссылка на форму поиска туроператора. Поле заполняется только при покупке расширенной версии сервиса (по всем вопросам обращайтесь в Службу технической поддержки Слетать.ру по тел. 8(800)700-33-09 или по электронной почте support@sletat.ru).

SysCountryId

Int32

Идентификатор страны по справочнику стран.

SysCountryName

String

Название страны по справочнику стран.

SysCityFromId

Int32

Идентификатор города вылета по справочнику городов вылета.

SysCityFromName

String

Название города вылета по справочнику городов вылета.

SysResortId

Int32

Идентификатор курорта по справочнику курортов. Если курорт туроператора не слинкован, поле принимает значение “0”.

SysResortName

String

Название курорта по справочнику курортов. Если курорт туроператора не слинкован, поле принимает пустое значение.

SysHotelId

Int32

Идентификатор отеля по справочнику отелей. Если отель туроператора не слинкован, поле принимает значение “0”.

SysHotelName

String

Название отеля по справочнику отелей. Если отель туроператора не слинкован, поле принимает пустое значение.

SysStarId

Int32

Идентификатор категории отеля по справочнику. Если категория отеля туроператора не слинкована, поле принимает значение “0”.

SysStarName

String

Категория отеля по справочнику. Если категория отеля туроператора не слинкована, поле принимает пустое значение.

SysRoomId

Int32

Идентификатор типа номера по справочнику. Если тип номера туроператора не слинкован, поле принимает значение “0”.

SysRoomName

String

Тип номера по справочнику. Если тип номера туроператора не слинкован, поле принимает пустое значение.

SysMealId

Int32

Идентификатор типа питания по справочнику. Если тип питания туроператора не слинкован, поле принимает значение “0”.

SysMealName

String

Тип питания по справочнику. Если тип питания туроператора не слинкован, поле принимает пустое значение.

SysHtPlaceId

Int32

Идентификатор типа размещения по справочнику. Если тип размещения туроператора не слинкован, поле принимает значение “0”.

SysHtPlaceName

String

Тип размещения. Если размещение туроператора не слинковано, поле принимает пустое значение.

HotelDescriptionUrl

String

Ссылка на описание отеля.

HotelTitleImageUrl

String

Ссылка на титульное изображение отеля в уменьшенном виде (115x80). Вы можете изменить размеры изображения, используя шаблон ссылки:

https://hotels.sletat.ru/i/p/{hotel_id}_{image_index}_{h}_{w}.jpg – где:

  • {hotel_id} – идентификатор отеля;
  • {image_index} – индекс изображения отеля, начинается с 0;
  • {h} – высота изображения (максимальное значение 300);
  • {w} – требуемая ширина изображения (максимальное значение 300);

Изображения не предоставляются для неслинкованных отелей, а также для отелей с отсутствующим описанием.

HotelPhotosCount

Int32

Количество фотографий отеля.

TourUrl

String

Ссылка на описание / бронирование тура на сайте туроператора. Поле заполняется только при покупке расширенной версии сервиса (по всем вопросам обращайтесь в Службу технической поддержки Слетать.ру по тел. 8(800)700-33-09 или по электронной почте support@sletat.ru). На момент написания настоящего руководства некоторые туроператоры не имеют ссылок в сервисе Слетать.ру.

OriginalCurrencyId

Int32

Идентификатор валюты тура по данным туроператора. Возможные значения: 2 – USD, 3 – EUR, 5 – RUR.

Adults Int32 Количество туристов (взрослых).
Kids Int32 Количество туристов (детей).
BAGGAGE_PLACES string Количество мест.
BAGGAGE_WEIGHTS string Веса багажа для каждого из мест (по порядку).
BAGGAGE_INCLUDED string Идентификатор, показывающий, включён ли багаж в рейс. Возможные значения: true - включен, false - не включен.
Параметр BAGGAGE_INCLUDED может иметь значение "true", но если параметр BAGGAGE_PLACES = 0 - то трактовать надо так, что багаж не включен.

ActualizePriceByCode

Метод ActualizePriceByCode позволяет получать информацию о туре по пятизначному коду с сайта sletat.ru или по четырёхзначному коду, полученному с помощью метода актуализации расширенного сервиса поиска XML/JSON. Пятизначные коды отображаются на сайте sletat.ru в поиске, а также в разделе «Горящие туры».

Сигнатура:

XmlActualPriceData ActualizePriceByCode(
                           Int32 code)

Метод принимает единственный параметр code – пятизначный код тура с сайта Sletat.Ru (целое число 10000-99999) или четырёхзначный код (целое число 1000-9999).

Пример SOAP-запроса:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ActualizePriceByCode xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      <code>9999</code>
    </ActualizePriceByCode>
  </soap:Body>
</soap:Envelope>

Ответ идентичен выдаче метода ActualizePrice.

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

  • код тура устарел (действителен сутки с момента получения);
  • код тура указан неверно (принимаются только четырёхзначные коды с сайта sletat.ru);
  • нет подходящей лицензии для выполнения запроса (был указан трёхзначный код тура, но у клиента нет действительной лицензии на сервис актуализации или на расширенный сервис XML/JSON.

Описание ошибок всегда возвращается.

SaveTourOrder

Метод SaveTourOrder добавляет заказ тура в систему Слетать.ру. В вашем личном кабинете на сайте sletat.ru вы можете настроить SMS- и email-уведомления о новых заказах. Приложение SletatRu Agent для Windows также отслеживает новые заказы и присылает вам оповещения.

Сигнатура:

void SaveTourOrder(
        Int32 requestId,
        Int64 offerId,
        Int32 sourceId,
        String user,
        String email,
        String phone,
        String info
        Int32 officeId)

Параметры:

Параметр

Тип

Описание

requestId

Int32

Идентификатор поискового запроса. Выдаётся методами CreateRequest или ContinueSearch при создании нового поискового запроса;

offerId

Int64

Идентификатор ценового предложения. Выдаётся каждому туру методом GetRequestResult.

sourceId

Int32

Идентификатор туроператора. Выдаётся каждому туру методом GetRequestResult.

user

String

Имя туриста.

email

String

Контактный e-mail.

phone

String

Контактный телефон.

info String Комментарий туриста (необязательное поле).
officeId Int Идентификатор офиса, к которому привяжется созданная заявка. Получить список идентификаторов активных офисов можно обратившись к справочнику GetOffices: https://module.sletat.ru/Main.svc/GetOffices?login=login&password=pass
originType Служебный параметр. Используется для внутренних сервисов Слетать.ру
touristId Служебный параметр. Используется для внутренних сервисов Слетать.ру
subwayIds Служебный параметр. Используется для внутренних сервисов Слетать.ру

Пример SOAP-запроса:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SaveTourOrder xmlns="urn:SletatRu:Contracts:Soap11Gate:v1">
      <requestId>2857817</requestId>
      <offerId>225355464</offerId>
      <sourceId>14146146</sourceId>
      <user>John Doe</user>
      <email>johndoe@sample.com</email>
      <phone>+7 905 555 55 55</phone>
      <info>any additional information here</info>
    </SaveTourOrder>
  </soap:Body>
</soap:Envelope>

Пример SOAP-ответа:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <SaveTourOrderResponse xmlns="urn:SletatRu:Contracts:Soap11Gate:v1"/>
  </s:Body>
</s:Envelope>

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

AddLargeComment

Метод AddLargeComment добавляет отзыв к отелю.

Параметры:

Параметр Тип Описание
rate Рейтинг (оценка отелю).
positive Что понравилось в отеле.
negative Что не понравилось в отеле.
touristName Имя туриста.
startRest Начало проживание в отеле.
endRest Окончание проживание в отеле.
hotelId Идентификатор отеля