Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

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

Для унификации формата выгрузки данных из заказов, созданных в В2 и В3, можно использовать универсальный метод выгрузки заказа.

WSDL для использования метода: https://yourdomain.ru/XmlGate/EndCustomer/EndCustomerAPI.asmx?WSDL

Метод: GetReservationDetails

Параметры:

  • id_Reserve – int – номер заказа в системе Кортеос, не может быть пустым;

  • id_CompexReserve – int – номер командировки, не может быть пустым;

  • ClientToken – string – токен клиента, которому доступен этот заказ (выгрузка для клиентской интеграции).

Примечание: Аналог пустого значения для id_Reserve или id_ComplexReserve – 0, в том случае, если id_Reserve != 0, значение, передаваемое как id_ComplexReserve, игнорируется.

Примеры запросов:

 пример трансфера
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <GetReservationDetailsResponse xmlns="http://www.corteos.ru/">
         <GetReservationDetailsResult>
            <Result Name="Мурманск" id_ComplexReserve="767234" State="draft">
               <Reserves>
                  <ReservationModel>
                     <id_Reserve>1770398</id_Reserve>
                     <id_ComplexReserve>767234</id_ComplexReserve>
                     <id_ReserveType>16</id_ReserveType>
                     <DateStart>03.04.2021</DateStart>
                     <DateEnd>05.04.2021</DateEnd>
                     <CreationDate>31.12.2020</CreationDate>
                     <CreationTime>13:33</CreationTime>
                     <Price>5880</Price>
                     <OptimalPrice>0</OptimalPrice>
                     <Currency>RUB</Currency>
                     <OptimalPriceCurrency>RUB</OptimalPriceCurrency>
                     <Timelimit>03.04.2021</Timelimit>
                     <TimelimitTime>00:00</TimelimitTime>
                     <Codes>
                        <CustomerCode>
                           <DictionaryName>$START_PLACE_ADDRESS</DictionaryName>
                           <Code>Россия, Мурманская область, Мурманск, ул. Шмидта, д. 17</Code>
                           <id_Person xsi:nil="true"/>
                           <id_MetaCode xsi:nil="true"/>
                        </CustomerCode>
                        <CustomerCode>
                           <DictionaryName>$END_PLACE_ADDRESS</DictionaryName>
                           <Code>Мурманск(аэропорт)</Code>
                           <id_Person xsi:nil="true"/>
                           <id_MetaCode xsi:nil="true"/>
                        </CustomerCode>
                        <CustomerCode>
                           <DictionaryName>$START_PLACE_NAME</DictionaryName>
                           <Code>Выезд из отеля Глория в городе , 03.04.2021</Code>
                           <id_Person xsi:nil="true"/>
                           <id_MetaCode xsi:nil="true"/>
                        </CustomerCode>
                        <CustomerCode>
                           <DictionaryName>$END_PLACE_NAME</DictionaryName>
                           <Code>Вылет из аэропорта Мурманск , города Мурманск, к рейсу SU-1321 в 10:35, 03.04.2021</Code>
                           <id_Person xsi:nil="true"/>
                           <id_MetaCode xsi:nil="true"/>
                        </CustomerCode>
                        <CustomerCode>
                           <DictionaryName>$CAR_CLASS</DictionaryName>
                           <Code>стандарт</Code>
                           <id_Person xsi:nil="true"/>
                           <id_MetaCode xsi:nil="true"/>
                        </CustomerCode>
                        <CustomerCode>
                           <DictionaryName>$CAR_INFO</DictionaryName>
                           <Code>Ford Focus, до 3 чел. в салоне.</Code>
                           <id_Person xsi:nil="true"/>
                           <id_MetaCode xsi:nil="true"/>
                        </CustomerCode>
                        <CustomerCode>
                           <DictionaryName>$RETURN_START_PLACE_ADDRESS</DictionaryName>
                           <Code>Мурманск(аэропорт)</Code>
                           <id_Person xsi:nil="true"/>
                           <id_MetaCode xsi:nil="true"/>
                        </CustomerCode>
                        <CustomerCode>
                           <DictionaryName>$RETURN_END_PLACE_ADDRESS</DictionaryName>
                           <Code>Россия, Мурманская область, Мурманск, ул. Шмидта, д. 17</Code>
                           <id_Person xsi:nil="true"/>
                           <id_MetaCode xsi:nil="true"/>
                        </CustomerCode>
                        <CustomerCode>
                           <DictionaryName>$RETURN_START_PLACE_NAME</DictionaryName>
                           <Code>Прилет в аэропорт Мурманск , города Мурманск, к рейсу SU-1322 в 01:50, 05.04.2021</Code>
                           <id_Person xsi:nil="true"/>
                           <id_MetaCode xsi:nil="true"/>
                        </CustomerCode>
                        <CustomerCode>
                           <DictionaryName>$RETURN_END_PLACE_NAME</DictionaryName>
                           <Code>Россия, Мурманская область, Мурманск, ул. Шмидта, д. 17</Code>
                           <id_Person xsi:nil="true"/>
                           <id_MetaCode xsi:nil="true"/>
                        </CustomerCode>
                        <CustomerCode>
                           <DictionaryName>$RETURN_CAR_CLASS</DictionaryName>
                           <Code>стандарт</Code>
                           <id_Person xsi:nil="true"/>
                           <id_MetaCode xsi:nil="true"/>
                        </CustomerCode>
                        <CustomerCode>
                           <DictionaryName>$RETURN_CAR_INFO</DictionaryName>
                           <Code>Ford Focus, до 3 чел. в салоне.</Code>
                           <id_Person xsi:nil="true"/>
                           <id_MetaCode xsi:nil="true"/>
                        </CustomerCode>
                     </Codes>
                     <Passengers>
                        <Passenger>
                           <id_Person>923307</id_Person>
                           <id_Passenger>2107152</id_Passenger>
                           <LastName>Грейнджер</LastName>
                           <FirstName>Гермиона</FirstName>
                           <SurName/>
                           <DocumentType>Passport</DocumentType>
                           <Codes>
                              <CustomerCode>
                                 <DictionaryName>Авторизатор</DictionaryName>
                                 <Code>Нет</Code>
                                 <id_Person>923307</id_Person>
                                 <id_MetaCode>227303</id_MetaCode>
                              </CustomerCode>
                           </Codes>
                        </Passenger>
                     </Passengers>
                     <id_ReserveState>1</id_ReserveState>
                     <TravelPolicy>
                        <HasViolations>false</HasViolations>
                        <Violations/>
                     </TravelPolicy>
                     <Files/>
                     <Comment/>
                     <Creator id_Client="*****" id_Person="*****" id_Group="****" Email="usr****@corteos.info" LastName="Дамблдор" FirstName="Альбус"/>
                  </ReservationModel>
               </Reserves>
               <Codes>
                  <CustomerCode>
                     <DictionaryName>Курс</DictionaryName>
                     <Code>1</Code>
                     <id_Person>923307</id_Person>
                     <id_MetaCode>227299</id_MetaCode>
                  </CustomerCode>
               </Codes>
               <Files/>
            </Result>
         </GetReservationDetailsResult>
      </GetReservationDetailsResponse>
   </soap:Body>
</soap:Envelope>

где Codes:

START_PLACE_ADDRESS адрес откуда(улица и дом)
END_PLACE_ADDRESS адрес куда(улица и дом)
START_PLACE_NAME название места откуда, например, Аэропорт Шереметьево
END_PLACE_NAME название места куда, например, Ленинградский Вокзал
CAR_CLASS информация о машине - класс авто
CAR_INFO информация о машине - описание тарифа
RETURN_{один из параметров} - данные по обратному трансферу (мод Обратный маршрут для трансферов)

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

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

Дополнительные возможности:

Если нужно исключить дублирование файлов в ответе запроса командировки, в запросе следует передать необязательный параметр <AugmentationData> <xml GroupFiles="true" /> </AugmentationData>, содержимое которого закодировано в виде HtmlEncode:

В этом случае в ответе будет только один контейнер с файлами (файлы в заказах дублироваться не будут), и будет добавлен блок с референсами, чтобы можно было определить, какой файл к какому заказу относится
<xml><FilesReference><File id_File="aaa" id_Reserve="yyy" id_ComplexReserve="xxx"/></FilesReference></xml>:


Структура ответа (элемент контейнера комплексного заказа – объект заказа):

  • id_ComplexReserve - Номер командировки в ОБТ – целое число;

  • id_Reserve - Номер заказа в ОБТ – целое число;

  • id_ReserveType – тип услуги - целое число;

  • DateStart – дата начала услуги – строка;

  • DateEnd – дата окончания услуги – строка, для OW совпадает с DateStart;

  • Price – цена заказанной услуги – плавающее число;

  • OptimalPrice – оптимальная цена услуги – плавающее число;

  • Currency – код валюты ISO для заказанной услуги, например, RUB, USD, EUR - строка;

  • OptimalPriceCurrency – код валюты ISO для оптимальной услуги, например, RUB, USD, EUR – строка;

  • ProviderLocator – номер брони у поставщика - строка;

  • Timelimit – срок действия брони – строка;

  • Creator - информация о создателе заказа

    • id_Client - идентификатор клиента-заказчика;

    • id_Group - идентификатор компании заказчика. Не является идентификатором договора - по факту, это id_CustomerGroup;

    • Email - электронная почта заказчика;

    • LastName - фамилия заказчика;

    • FirstName - имя заказчика.

  • Codes – бюджетные коды заказа, массив объектов CustomerCode:

    • DictionaryName – название справочника кодов, строка;

    • Code – значение кода, строка.

  • Passengers – пассажиры, массив объектов Passenger:

    • id_Person – идентификатор персоны, число;

    • id_Passenger – уникальный номер пассажира, число (одна персона может быть пассажиром сразу в нескольких заказах, связь один ко многим);

    • LastName – фамилия персоны, строка;

    • FirstName – имя персоны, строка;

    • SurName – отчество персоны, строка;

    • Document – документ, строка;

    • DocumentType – тип документа:

      • passport – национальный паспорт;

      • foreignpassport – иностранный документ;

      • birthcertificate – свидетельство о рождении;

    • Codes – массив структурных кодов CustomerCode.

  • Transport – информация о ж/д- и авиабилетах (заполняется для типов id_ReserveType == 1 или 2):

    • SelectedTransport – выбранный вариант – набор сегментов следующей структуры:

      • VendorCode – код перевозчика – код авиакомпании или «РЖД» - строка;

      • Number – номер рейса или поезда, строка;

      • OriginCode – код аэропорта/вокзала отправления в кодировке IATA или Экспресс-2, строка;

      • DestinationCode – код пункта прибытия, строка;

      • OriginName – название города отправления, строка;

      • DestinationName – название города прибытия, строка;

      • DepartureDate – дата отправления, строка;

      • ArrivalDate – дата прибытия, строка;

      • RBD – код бронирования с указанием класса(эконом, бизнес) - строка;

      • FareBasis – тариф, строка;

      • DepartureTime – время отправления, строка;

      • ArrivalTime – время прибытия, строка;

      • TransportCategoryName – тип поезда или воздушного судна, строка.

    • OptimalTransport – аналогичный контейнер для самого дешевого варианта.

  • Hotel – контейнер для выбранного и оптимального предложения по отелям (заполняется для типа заказа id_ReserveType == 3):

    • SelectedHotel – выбранный отель:

      • HotelCity – город, в котором расположен отель, строка, например, "Москва";

      • HotelName – название отеля, строка;

      • RoomName – название номера, строка;

      • Stars – количество звезд, число;

      • Is3D – отель предлагается по трехстороннему договору, булевый тип;

      • CancelationInfo – информация об отмене, строка.

    • OptimalHotel – самый дешевый отель.

  • id_ReserveState – идентификатор состояния заказа, число;

  • TravelPolicy – контейнер нарушений политики:

    • HasViolations – признак наличия нарушений, булевый тип;

    • Violations – список нарушений:

      • Policy – название нарушенной политики, строка;

      • ViolationText – описание нарушения, строка.

    • Files – контейнер файлов:

      • Caption – название файла, строка;

      • FileExtension – расширение файла, определяет его тип - строка;

      • id_FileType – тип файла из справочника;

      • FileBase64 – файл в виде массива байтов, приведенный к base64 (utf8) - строка;

      • IsTravellerDocument – признак того, что документ является файлом ваучера или билета, булевый тип.

____

  • No labels