Открыть главное меню

Изменения

Интеграция со сторонними системами АПИ

203 765 байт убрано, 14:43, 28 ноября 2018
м
API Авиабилетов
==API Поиска авиабилетов===== Подключение =Авиабилетов==
Чтобы авторизоваться в системе, в запросе необходимо указать APIKey и ClientID. Эти данные можно узнать в разделе Администрирование - Веб-сервис. Авторизация. Там же можно включить/выключить нотификацию для действий, совершенных через АПИ.
 
=== API Поиска авиабилетов ===
Это сервис внутри Nemo, который позволяет получить результаты поиска.
Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе '''«Администрирование»''' ⇨ '''«Веб-служба. Авторизация»'''.
После добавления пользователя, ему будут присвоены Номер (ClientId) и API ключ клиента, которые нужно использовать для подключения. WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=SearchFlights === Общий формат запроса / ответа Подробнее можно узнать в специальной статье [[Веб-служба поиска ===авиабилетов]]
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">=API Бронирования авиабилетов ==== Запрос =====<div class="mw-collapsible-content"><syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights"> <soapenv:Header/> <soapenv:Body> <ver:search> <RequestBin> <Request> <SearchFlights LinkOnly="?"> <!--LinkOnly — Позволяет управлять выдачей результатов. true — вернуть только ссылку на результаты поиска, без перелётов (занимает меньше времени), false — полная выдача, ссылки и перелёты.--> <ODPairs Type="?" Direct="?" AroundDates="?"> <!--Type — тип перелёта, возможные значения: OW — туда, RT — туда-обратно, CR — сложный маршрут. Для перелета туда-обратно или сложного маршрута необходимо добавить еще один или несколько тэгов ODPair, примеры далее--> <!--Direct — искать только прямые перелёты, возможные значения: true/false--> <!--AroundDates — поиск по окружным датам, количество дней +/- от даты заезда/возвращения, значения: 0, 1, 3. Применим только для типов перелёта в одну сторону(OW) и туда-обратно(RT)--> <!--Zero or more repetitions:--> <ODPair> <DepDate>?</DepDate> <!--DepDate — дата вылета, в формате ГГГГ-MM-ДД--> <DepAirp CodeType="IATA">?</DepAirp> <!--DepAirp — аэропорт вылета, IATA код--> <ArrAirp CodeType="IATA">?</ArrAirp> <!--ArrAirp — аэропорт прилёта, IATA код--> </ODPair> </ODPairs> <Travellers> <!--Zero or more repetitions:--> <Traveller Type="?" Count="?"Сервис позволяет забронировать/> <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети, INF — младенцы, INS — младенцы войдировать авиабилет с местом--> <!--Count — количество пассажиров--> </Travellers> <Restrictions> <ClassPref>?</ClassPref> <!--необязательный--> <!--ClassPref — предпочитаемый класс поиска, возможные значения: economy, business, first. Если не заполнять, то будет произведен поиск эконом класса--> <OnlyAvail>?</OnlyAvail> <!--необязательный--> <!--OnlyAvail — искать только доступныеиспользованием API, возможные значения: true/false--> <AirVPrefs> <!--Zero or more repetitions:--> <AirVPref Code="?" Include="?" Type="IATA"/> <!--необязательный--> <!--Code — код авиакомпанииописание подключения, SUзапроса, FV и т.п.--> <!--Include — включить или исключить авиакомпанию из результатов: true — включить, false — исключить--> </AirVPrefs> <IncludePrivateFare>?</IncludePrivateFare> <!--необязательный--> <!--IncludePrivateFare — искать цены для агентства, если true — то включаем приватные, false — публичные--> <CurrencyCode>?</CurrencyCode> <!--необязательный--> <!--CurrencyCode — код валюты, например: RUB, EUR--> </Restrictions> </SearchFlights> </Request> <Source> <ClientId>?</ClientId> <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе "Администрирование" ? "Веб-служба. Авторизация".--> <APIKey>?</APIKey> <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить ответов находится в разделе "Администрирование" ? "этой статье [[Веб-служба. Авторизация".--> <Language>?</Language> <!--Language — язык, например: RU--> <Currency>?</Currency> <!-- Currency — валюта, например: RUB, EUR--> <ShowNames>?</ShowNames> <!-- ShowNames — отображение названий аэропортов, авиакомпаний и воздушных судов: true - отображать, false - не отображать. Возвращает значение на том языке, который был указан в запросе. Для RU - русский вариант, для UKR, EN, ES - латинский вариант. Опциональный элемент. --> </Source> </RequestBin> </ver:search> </soapenv:Body></soapenv:Envelope></syntaxhighlight></div></div>бронирования]]
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">= API Выписки авиабилетов ===
===== Ответ =====<div class="mw-collapsible-content"><syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:searchResponse> <ResponseBin> <Response> <SearchFlights> <Flights SearchId="?" ResultURL="?"> <!--SearchId — номер процесса поиска в Nemo--> <!--ResultURL — ссылка на страницу просмотра результатов на сайте агентства--> <Flight FlightId="?"> <!--FlightId — Id перелёта в системе Nemo--> <WebService>?</WebService> <!--WebService — поставщик перелёта--> <ValCompany>?</ValCompany> <!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA--> <URL>?</URL> <!--URL — ссылка на бронирование конкретного перелета--> <Segments> <Segment SegNum="?" SegGroupNum="?"> <!--SegNum — номер сегмента в перелёте--> <!--SegGroupNum – номер плеча перелёта--> <DepAirp CodeType="IATA" Name="?">?</DepAirp> <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва или SVO — Шереметьево. Name - название аэропорта отправления--> <DepTerminal>?</DepTerminal> <!--DepTerminal — терминал пункта отправления, если пустое Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение, то в аэропорту всего 1 терминал--> <ArrAirp CodeType="IATA" Name="?">?</ArrAirp> <!--ArrAirp — аэропорт прибытия. Name - название аэропорта прибытия--> <ArrTerminal>?</ArrTerminal> <!--ArrTerminal — терминал пункта прибытия, если пустое значение, то в аэропорту всего 1 терминал--> <OpAirline>?</OpAirline> <!--OpAirline — авиакомпания перевозчик, например: SU — Аэрофлот--> <OpAirlineName>?</OpAirlineName> <!--OpAirlineName — название комиссии от авиакомпании перевозчика, например: Аэрофлот - Российские авиалинии --> <MarkAirline>?</MarkAirline> <!--MarkAirline — авиакомпания, продающая перелёт--> <MarkAirlineName>?</MarkAirlineName> <!--MarkAirlineName — название авиакомпании, продающей перелёт--> <FlightNumber>?</FlightNumber> <!--FlightNumber — номер рейса--> <AircraftName>?</AircraftName> <!--AircraftName — название воздушного судна. Например: Airbus 320--> <AircraftType>?</AircraftType> <!--AircraftType — тип воздушного судна, код--> <DepDateTime>?</DepDateTime> <!--DepDateTime — дата и время отправлениядля брони, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> <ArrDateTime>?</ArrDateTime> <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> <StopNum>?</StopNum> <!--StopNum — количество остановок--> <BookingCodes> <BookingCode ClassType="?"> <!--ClassType — класс перелета, например: economy--> <BookingCode>?</BookingCode> <!--BookingCode — код класса бронирования, у разных авиакомпаний один и тот же класс может записываться разными литерами, например: L--> </BookingCode> </BookingCodes> <FlightTime>?</FlightTime> <!--FlightTime — время перелёта в минутах--> <TimeZone Departure="?" Arrival="?"/> <!--Departure временная зона аэропорта отправления--> <!--Arrival — временная зона аэропорта прибытия--> <ETicket>?</ETicket> <!--ETicket — признак электронного а также запустить процедуру выписки билета, значения: true / false--> </Segment> </Segments> <PricingInfo Refundable="?"> <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно--> <PassengerFare Type="?" Quantity="?"> <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети, INF — младенцы, INS — младенцы с местом--> <!--Quantity — количество пассажиров данного типа--> <BaseFare Currency="?" Amount="?"/> <!--BaseFare — базовая стоимость, в базовой валюте. Currency — код валюты, Amount — значение цены--> <EquiveFare Currency="?" Amount="?"/> <!--EquiveFare — базовая стоимость, в эквивалентной валюте(валюте продажи). Currency — код валюты, Amount — значение цены--> <TotalFare Currency="?" Amount="?"/> <!--TotalFare — суммарная стоимость, в эквивалентной валюте. Currency — код валюты, Amount — значение цены--> <Taxes> <Tax CurCode="?" TaxCode="?" Amount="?"/> <!--CurCode — код валюты, TaxCode — код таксы, Amount — сумма таксы--> </Taxes> <Tariffs> <Tariff Code="?" SegNum="?"/> <!--Code — код тарифа, SegNum — номер сегмента, к которому применён тариф--> </Tariffs> <FareCalc>?</FareCalc> <!--FareCalc — строка расчёта цены--> <LastTicketDateTime>?</LastTicketDateTime> <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> </PassengerFare> </PricingInfo> <Commission/> <Charges Currency="?">?</Charges> <!--Charges — сборы, Currency — код валюты--> <TotalPrice Currency="?">?</TotalPrice> <!--TotalPrice — итоговая цена, Currency — код валюты--> </Flight> <Flight>...</Flight> .................... <Flight>...</Flight> </Flights> <Errors> <Error Code="?"> <!--Code — код ошибки в системе Nemo--> <ServiceErrorMessage>?</ServiceErrorMessage> <!--ServiceErrorMessage — сообщение об ошибке полученное от веб-сервиса поставщика--> <Message>?</Message> <!--Message — сообщение об ошибке от системы Nemo--> </Error> </Errors> </SearchFlights> </Response> </ResponseBin> </ns1:searchResponse> </SOAP-ENV:Body></SOAP[[Веб-ENV:Envelope></syntaxhighlight></div></div>служба выписки]]
В ссылках на просмотр страницы результата поиска и на бронирование конкретного перелета, домен агентства/субагентства определяется следующим образом:* Если текущий домен агентства/субагентства есть в настройках ('''Администрирование''' ⇨ '''Настройки агентства''' ⇨ '''Доменное имя сайта для загрузки настроек'''), то этот домен используется в ссылках.* Если текущего домена нет в настройках, то используется первый домен из настроек.* Если в настройках не прописано ни одного домена, то используется текущий домен.=== API Оплаты ===
На поиск действуют ограничения заданные в настройках агентстваСервис внутри Nemo, в частности ограничения по пассажирам и ограничение ближайшей разрешенной даты поиска билетов.* Если дата поиска меньше ближайшей разрешенной даты который предназначен для поиска билетоввыполнения различных операций, то выводится сообщение об ошибке Invalid search param: Неверная дата вылета: слишком близкая* Если количество взрослых пассажиров превышает допустимое ограничение - Invalid search param: Слишком много взрослых* Если количество детей в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много детей* Если количество младенцев в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантов* Если количество младенцев с местом в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантовотносящихся к оплате заказов. [[Агентские АПИ оплаты]]
=== Примеры использования API Дополнительных запросов авиабилетов ===
==== Односторонний перелет ====К дополнительных запросам относятся проверка на доступность, запрос на обновление заказа, чтение тарифных правил. [[Дополнительные запросы АПИ авиабилетов]]
Пример одностороннего перелета: Москва — Мадрид, 1 взрослый, 1 ребенок, эконом класс, предпочитаемая авиакомпания — Аэрофлот. === Используемые параметры ===
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
===== Запрос =Параметры, используемые в запросах ====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; table border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights"> <soapenv:Header/> <soapenv:Body> <ver:search> <RequestBin> <Request> <SearchFlights LinkOnly="false"> <ODPairs Type="OW" Direct="false" AroundDates="0"> <!--Zero or more repetitions:--> <ODPair> <DepDate>2014-03-20</DepDate> <DepAirp CodeType="IATA">MOW</DepAirp> <ArrAirp CodeType="IATA">MAD</ArrAirp> </ODPair> </ODPairs> <Travellers> <!--Zero or more repetitions:--> <Traveller Type="ADT" Count="1"/> <Traveller Typetr bgcolor="CNN" Count="1#CCCCCC"/> </Travellersth> <Restrictions> <ClassPref>economyИмя элемента </ClassPrefth> <OnlyAvailth>false</OnlyAvail> <AirVPrefs> <!--Zero or more repetitions:--> <AirVPref Code="SU" Include="true" Type="IATA"/> </AirVPrefs> <IncludePrivateFare>false</IncludePrivateFare> <CurrencyCode>RUB</CurrencyCode> Обязательный </Restrictionsth> </SearchFlightsth> Тип </Request> <Sourceth> <ClientIdth>---</ClientId> <APIKey>---</APIKey> <Language>RU</Language> <Currency>RUB</Currency> <ShowNames>true</ShowNames> </Source> </RequestBin> </ver:search> Описание </soapenv:Body></soapenv:Envelopeth> </syntaxhighlighttr> </div></divtr>
<div td>BookFlight </td><td>да </td><td>сложный </td><td>Контейнер для тела запроса бронирования</td> </tr> <tr> <td>FlightId </td><td class="toccolours mw-collapsible mw-collapsed" style="width:1000pxcol1">да </td><td>число</td><td >Id перелёта для которого будет производится бронирование(поиск тарифных правил, проверка доступности)</td> </tr> <tr> <td>CurrencyCode </td><td>нет</td><td>строка</td><td>Трёх буквенный код валюты (обязателен для комиссии в валюте)</td>
===== Ответ =====<div class="mw-collapsible-content"><syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIEN_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:searchResponse> <ResponseBin> <Response> <SearchFlights> <Flights SearchId="13949" ResultURL="http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D13949"> <Flight FlightId="168090001"> <WebService>SABRE</WebService> <ValCompany/> <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D13949%26flight%3D168090001</URL> <Segments> <Segment SegNum="1" SegGroupNum="0"> <DepAirp CodeType="IATA" Name="Шереметьево, Москва">SVO</DepAirp> <DepTerminal/> <ArrAirp CodeType="IATA" Name="Мадрид">MAD</ArrAirp> <ArrTerminal/> <OpAirline>SU</OpAirline> <OpAirlineName>Аэрофлот - Российские авиалинии</OpAirlineName> <MarkAirline>SU</MarkAirline> <MarkAirlineName>Аэрофлот - Российские авиалинии</MarkAirlineName> <FlightNumber>2500</FlightNumber> <AircraftName>Airbus 320</AircraftName> <AircraftType>320</AircraftType> <DepDateTime>2014-03-20T08:05:00</DepDateTime> <ArrDateTime>2014-03-20T10:15:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>E</BookingCode> </BookingCode> </BookingCodes> <FlightTime>310</FlightTime> <TimeZone Departure="4" Arrival="1"/> <ETicket>true</ETicket> </Segment> </Segments> <PricingInfo Refundable="false"> <PassengerFare Type="ADT" Quantity="1"> <BaseFare Currency="EUR" Amount="165"/> <EquiveFare Currency="RUB" Amount="8250"/> <TotalFare Currency="RUB" Amount="10535"/> <Taxes> <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/> <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/> </Taxes> <Tariffs/> <FareCalc>MOW SU MAD225.45NUC225.45END ROE0.731857</FareCalc> <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime> </PassengerFare> <PassengerFare Type="CNN" Quantity="1"> <BaseFare Currency="EUR" Amount="124"/> <EquiveFare Currency="RUB" Amount="6200"/> <TotalFare Currency="RUB" Amount="8485"/> <Taxes> <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/> <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/> </Taxestr> <Tariffs/tr> <FareCalctd>MOW SU MAD169.08NUC169.08END ROE0.731857Agency </FareCalc> <LastTicketDateTimetd>2014-03-09T23:59:59</LastTicketDateTimetd> да </PassengerFaretd> </PricingInfotd> сложный <Commission/td> <Charges Currency="RUB"td>0</Charges> <TotalPrice Currency="RUB">19020</TotalPrice> </Flight> <Flight FlightId="168090002"> <WebService>SABRE</WebService> <ValCompany/> <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D13949%26flight%3D168090002</URL> <Segments> <Segment SegNum="1" SegGroupNum="0"> <DepAirp CodeType="IATA">SVO</DepAirp> <DepTerminal/> <ArrAirp CodeType="IATA">MAD</ArrAirp> <ArrTerminal/> <OpAirline>SU</OpAirline> <MarkAirline>SU</MarkAirline> <FlightNumber>2604</FlightNumber> <AircraftType>320</AircraftType> <DepDateTime>2014-03-20T20:30:00</DepDateTime> <ArrDateTime>2014-03-20T22:40:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>E</BookingCode> </BookingCode> </BookingCodes> <FlightTime>310</FlightTime> <TimeZone Departure="4" Arrival="1"/> <ETicket>true</ETicket> </Segment> </Segments> <PricingInfo Refundable="false"> <PassengerFare Type="ADT" Quantity="1"> <BaseFare Currency="EUR" Amount="165"/> <EquiveFare Currency="RUB" Amount="8250"/> <TotalFare Currency="RUB" Amount="10535"/> <Taxes> <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/> <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/> </Taxes> <Tariffs/> <FareCalc>MOW SU MAD225.45NUC225.45END ROE0.731857</FareCalc> <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime> </PassengerFare> <PassengerFare Type="CNN" Quantity="1"> <BaseFare Currency="EUR" Amount="124"/> <EquiveFare Currency="RUB" Amount="6200"/> <TotalFare Currency="RUB" Amount="8485"/> <Taxes> <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/> <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/> </Taxes> <Tariffs/> <FareCalc>MOW SU MAD169.08NUC169.08END ROE0.731857</FareCalc> <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime> </PassengerFare> </PricingInfo> <Commission/> <Charges Currency="RUB">0</Charges> <TotalPrice Currency="RUB">19020</TotalPrice> </Flight> <Flight FlightId="168090003"> <WebService>SABRE</WebService> <ValCompany/> <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D13949%26flight%3D168090003</URL> <Segments> <Segment SegNum="1" SegGroupNum="0"> <DepAirp CodeType="IATA">SVO</DepAirp> <DepTerminal/> <ArrAirp CodeType="IATA">BCN</ArrAirp> <ArrTerminal/> <OpAirline>SU</OpAirline> <MarkAirline>SU</MarkAirline> <FlightNumber>2638</FlightNumber> <AircraftType>321</AircraftType> <DepDateTime>2014-03-20T09:10:00</DepDateTime> <ArrDateTime>2014-03-20T10:40:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>E</BookingCode> </BookingCode> </BookingCodes> <FlightTime>270</FlightTime> <TimeZone Departure="4" Arrival="1"/> <ETicket>true</ETicket> </Segment> <Segment SegNum="2" SegGroupNum="0"> <DepAirp CodeType="IATA">BCN</DepAirp> <DepTerminal/> <ArrAirp CodeType="IATA">MAD</ArrAirp> <ArrTerminal/> <OpAirline>UX</OpAirline> <MarkAirline>SU</MarkAirline> <FlightNumber>3403</FlightNumber> <AircraftType>738</AircraftType> <DepDateTime>2014-03-20T12:05:00</DepDateTime> <ArrDateTime>2014-03-20T13:25:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>E</BookingCode> </BookingCode> </BookingCodes> <FlightTime>80</FlightTime> <TimeZone Departure="1" Arrival="1"/> <ETicket>true</ETicket> </Segment> </Segments> <PricingInfo Refundable="false"> <PassengerFare Type="ADT" Quantity="1"> <BaseFare Currency="EUR" Amount="165"/> <EquiveFare Currency="RUB" Amount="8250"/> <TotalFare Currency="RUB" Amount="13681"/> <Taxes> <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/> <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/> <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/> <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/> <Tax CurCode="RUB" TaxCode="JD" Amount="675"/> <Tax CurCode="RUB" TaxCode="QV" Amount="186"/> </Taxes> <Tariffs/> <FareCalc>MOW SU X/BCN SU MAD225.45NUC225.45END ROE0.731857</FareCalc> <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime> </PassengerFare> <PassengerFare Type="CNN" Quantity="1"> <BaseFare Currency="EUR" Amount="124"/> <EquiveFare Currency="RUB" Amount="6200"/> <TotalFare Currency="RUB" Amount="11631"/> <Taxes> <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/> <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/> <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/> <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/> <Tax CurCode="RUB" TaxCode="JD" Amount="675"/> <Tax CurCode="RUB" TaxCode="QV" Amount="186"/> </Taxes> <Tariffs/> <FareCalc>MOW SU X/BCN SU MAD169.08NUC169.08END ROE0.731857</FareCalc> <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime> </PassengerFare> </PricingInfo> <Commission/> <Charges Currency="RUB">0</Charges> <TotalPrice Currency="RUB">25312</TotalPrice> </Flight> ......... <Flight>...</Flight> </Flights> <Errors xsi:nil="true"/> </SearchFlights> </Response> </ResponseBin> </ns1:searchResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlight></div>Информация об агентстве</divtd>
==== Перелет туда-обратно ==== </tr> <tr> <td>Name </td><td>да </td><td>строка </td><td>Название агентства</td> </tr> <tr> <td>Telephone </td><td>нет </td><td>сложный </td><td>Контактный телефон агентства</td>
Пример перелета туда </tr> <tr> <td>Type</td><td>да </td><td>строка </td><td>Тип номера, возможные значения: M -обратно: Москва — Парижмобильный, 2 взрослыхH - домашний, бизнес класс. '''Выдача с именами авиакомпанийB - рабочий, воздушных судов, аэропортов.'''A - агентство</td> </tr> <tr> <td>PhoneNumber </td><td>да </td><td>строка </td><td>Номер телефона</td>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">===== Запрос =====<div class="mw-collapsible-content"><syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights"> <soapenv:Header/> <soapenv:Body> <ver:search> <RequestBin> <Request> <SearchFlights LinkOnly="false"> <ODPairs Type="RT" Direct="false" AroundDates="0"> <!--Zero or more repetitions:--> <ODPair> <DepDate>2014-12-20</DepDate> <DepAirp CodeType="IATA">MOW</DepAirp> <ArrAirp CodeType="IATA">PAR</ArrAirp> </ODPair> <ODPair> <DepDate>2014-12-21</DepDate> <DepAirp CodeType="IATA">PAR </DepAirptr> <ArrAirp CodeType="IATA">MOW </ArrAirptr> </ODPairtd> CountryAccessCode </ODPairs> <Travellers> <!--Zero or more repetitions:--> <Traveller Type="ADT" Count="2"/> </Travellers> <Restrictionstd> <ClassPreftd>businessнет </ClassPreftd> <OnlyAvailtd>falseстрока </OnlyAvailtd> <AirVPrefs/td> <IncludePrivateFare>falseКод страны</IncludePrivateFaretd> <CurrencyCode>RUB </CurrencyCodetr> </Restrictionstr> </SearchFlightstd> AreaCityCode </Request> <Sourcetd> <ClientIdtd>---нет </ClientIdtd> <APIKeytd>---строка</APIKeytd> <Languagetd>RU<Код региона/Language> <Currency>RUB</Currency> <ShowNames>true</ShowNames> </Source> </RequestBin> </ver:search> </soapenv:Body></soapenv:Envelope></syntaxhighlight></div>города</divtd>
<div /tr> <tr> <td>Address</td><td>да </td><td>сложный </td><td class="toccolours mw-collapsible mw-collapsedcol3" style>Адрес агентства</td> </tr> <tr> <td>City</td><td>да </td><td class="width:1000pxcol2">строка </td><td>Город, в котором расположено агентство</td>
===== Ответ =====<div class="mw-collapsible-content"><syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://trunk.mlsd.ru/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:searchResponse> <ResponseBin> <Response> <SearchFlights> <Flights SearchId="190484987" ResultURL="http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D190484987"tr> <Flight FlightId="372384680001"tr> <WebService>SABRE </WebServicetd> StreetAddress <ValCompany/td> <URLtd>http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dbooking%2Finfo%26uid%3D190484987%26flight%3D372384680001%26utm_source%3Dalias1нет </URL> <Segmentstd> <Segment SegNum="1" SegGroupNum="0"td> <DepAirp CodeType="IATA" Name="Шереметьево, Москва">SVOсложный </DepAirptd> <DepTerminal xsi:nil="true"/td> <ArrAirp CodeType="IATA" Name="БелградАдрес агентства в городе (улица, Никола Тесла">BEG</ArrAirp> <ArrTerminal xsi:nil="true"/> <OpAirline>JU</OpAirline> <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName> <MarkAirline>JU</MarkAirline> <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName> <FlightNumber>657</FlightNumber> <AircraftName>Airbus 319</AircraftName> <AircraftType>319</AircraftType> <DepDateTime>2014-12-20T05:05:00</DepDateTime> <ArrDateTime>2014-12-20T06:05:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="business"> <BookingCode>W</BookingCode> </BookingCode> </BookingCodes> <FlightTime>180</FlightTime> <TimeZone Departure="3" Arrival="1"/> <ETicket>true</ETicket> </Segment> <Segment SegNum="2" SegGroupNum="0"> <DepAirp CodeType="IATA" Name="Белград, Никола Тесла">BEG</DepAirp> <DepTerminal xsi:nil="true"/> <ArrAirp CodeType="IATA" Name="Шарль де Голль, Париж">CDG</ArrAirp> <ArrTerminal xsi:nil="true"/> <OpAirline>JU</OpAirline> <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName> <MarkAirline>JU</MarkAirline> <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName> <FlightNumber>314</FlightNumber> <AircraftName>Airbus 320</AircraftName> <AircraftType>320</AircraftType> <DepDateTime>2014-12-20T17:10:00</DepDateTime> <ArrDateTime>2014-12-20T19:50:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="business"> <BookingCode>W</BookingCode> </BookingCode> </BookingCodes> <FlightTime>160</FlightTime> <TimeZone Departure="1" Arrival="1"/> <ETicket>true</ETicket> </Segment> <Segment SegNum="3" SegGroupNum="1"> <DepAirp CodeType="IATA" Name="Шарль де Голль, Париж">CDG</DepAirp> <DepTerminal xsi:nil="true"/> <ArrAirp CodeType="IATA" Name="Белград, Никола Тесла">BEG</ArrAirp> <ArrTerminal xsi:nil="true"/> <OpAirline>JU</OpAirline> <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName> <MarkAirline>JU</MarkAirline> <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName> <FlightNumber>311</FlightNumber> <AircraftName>Airbus 320</AircraftName> <AircraftType>320</AircraftType> <DepDateTime>2014-12-21T10:10:00</DepDateTime> <ArrDateTime>2014-12-21T12:30:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="business"> <BookingCode>W</BookingCode> </BookingCode> </BookingCodes> <FlightTime>140</FlightTime> <TimeZone Departure="1" Arrival="1"/> <ETicket>true</ETicket> </Segment> <Segment SegNum="4" SegGroupNum="1"> <DepAirp CodeType="IATA" Name="Белграддом, Никола Тесла">BEG</DepAirp> <DepTerminal xsi:nil="true"/> <ArrAirp CodeType="IATA" Name="Шереметьевокорпус, Москва">SVO</ArrAirp> <ArrTerminal xsi:nil="true"/> <OpAirline>JU</OpAirline> <OpAirlineName>ДЖАТ Эйрвэйз</OpAirlineName> <MarkAirline>JU</MarkAirline> <MarkAirlineName>ДЖАТ Эйрвэйз</MarkAirlineName> <FlightNumber>656</FlightNumber> <AircraftName>Airbus 319</AircraftName> <AircraftType>319</AircraftType> <DepDateTime>2014-12-21T23:20:00</DepDateTime> <ArrDateTime>2014-12-22T04:10:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="business"> <BookingCode>W</BookingCode> </BookingCode> </BookingCodes> <FlightTime>170</FlightTime> <TimeZone Departure="1" Arrival="3"/> <ETicket>true</ETicket> </Segment> </Segments> <PricingInfo Refundable="true"> <PassengerFare Type="ADT" Quantity="2"> <BaseFare Currency="EUR" Amount="620"/> <EquiveFare Currency="RUB" Amount="34720"/> <TotalFare Currency="RUB" Amount="44430"/> <Taxes> <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/> <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/> <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/> <Tax CurCode="RUB" TaxCode="YQF" Amount="1176"/> <Tax CurCode="RUB" TaxCode="RI" Amount="428"/> <Tax CurCode="RUB" TaxCode="RI" Amount="428"/> <Tax CurCode="RUB" TaxCode="UH" Amount="304"/> <Tax CurCode="RUB" TaxCode="LG" Amount="185"/> <Tax CurCode="RUB" TaxCode="LG" Amount="185"/> <Tax CurCode="RUB" TaxCode="RS" Amount="224"/> <Tax CurCode="RUB" TaxCode="RS" Amount="224"/> <Tax CurCode="RUB" TaxCode="RF" Amount="55"/> <Tax CurCode="RUB" TaxCode="RF" Amount="55"/> <Tax CurCode="RUB" TaxCode="FR1" Amount="434"/> <Tax CurCode="RUB" TaxCode="FR4" Amount="714"/> <Tax CurCode="RUB" TaxCode="QX3" Amount="1546"/> <Tax CurCode="RUB" TaxCode="IZ4" Amount="224"/> </Taxes> <Tariffs> <Tariff Code="WRTRU" SegNum="4"/> </Tariffs> <FareCalc>MOW JU X/BEG JU PAR401офис и т.57JU X/BEG JU MOW401д.57NUC803.14END ROE0.771963)</FareCalctd> <LastTicketDateTime>2014-12-20T04:05:00 </LastTicketDateTimetr> </PassengerFaretr> </PricingInfotd> PostalCode <Commission/td> <Charges Currency="RUB"td>0нет </Chargestd> <TotalPrice Currency="RUB"td>88860строка </TotalPricetd> </Flighttd> Почтовый код, индекс......... <Flight>...</Flight> </Flights> <Errors xsi:nil="true"/> </SearchFlights> </Response> </ResponseBin> </ns1:searchResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlight></div></divtd>
==== Сложный маршрут ==== </tr> <tr> <td>CountryCode </td><td>нет </td><td>строка </td><td>Код страны (RU, UA, US и т.д.)</td> </tr> <tr> <td>Travellers </td><td>да </td><td>сложный </td><td>Контейнер для информации о пассажирах (для которых будет производится поиск перелёта, бронирование)</td>
Пример сложного маршрута </tr> <tr> <td class="col0">Traveller </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Информация о пассажире</td> </tr> <tr class="row24"> <td>Type</td><td>да</td><td>строка</td><td>Тип пассажира возможные значения: Прага — Москва — Милан — МадридADT - взрослые, 1 взрослыйCNN - дети, 1 младенецUNN - дети без сопровождения взрослых, эконом класс. '''Выдача INF - младенцы, INS - младенцы с именами авиакомпаний, воздушных судов, аэропортов.'''местом</td>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"/tr>===== Запрос ===== <div tr class="mw-collapsible-contentrow25"> <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><soapenv:Envelope xmlns:soapenvtd class="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlightscol0"> IsContact <soapenv:Header/td> <soapenv:Body> <ver:search> <RequestBin> <Request> <SearchFlights LinkOnly="false"> <ODPairs Type="CR" Direct="false" AroundDatestd class="0col1"> <!--Zero or more repetitions:--> <ODPair> <DepDate>2014-12-20нет</DepDatetd> <DepAirp CodeTypetd class="IATAcol2">PRGбулевский </DepAirptd> <ArrAirp CodeTypetd class="IATAcol3">MOWИндикатор показывающий является ли данное лицо контактным, возможные значение: true - пассажир является контактным лицом, false - не является. Контактное лицо может быть только одно, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом. Если не указано, то по умолчанию false.</ArrAirptd> </ODPairtr> <ODPair> <DepDate>2014-12-23</DepDate> <DepAirp CodeTypetr class="IATArow26">MOW</DepAirp> <ArrAirp CodeTypetd class="IATAcol0">MILLinkedTo </ArrAirptd> </ODPair> <ODPair> <DepDate>2014-12-27</DepDate> <DepAirp CodeTypetd class="IATAcol1">MILнет </DepAirptd> <ArrAirp CodeTypetd class="IATAcol2">MADцелое число </ArrAirptd> </ODPair> </ODPairs> <Travellers> <!--Zero or more repetitions:--> <Traveller Typetd class="ADTcol3" Count="1"/> <Traveller Type="INF" Count="1"/> </Travellers> <Restrictions> <ClassPref>economy</ClassPref> <OnlyAvail>false</OnlyAvail> <AirVPrefs/> <IncludePrivateFare>false</IncludePrivateFare> <CurrencyCode>RUB</CurrencyCode> </Restrictions> </SearchFlights> </Request> <Source> <ClientId>134<Номер взрослого, к которому привязан младенец/ClientId> <APIKey>93632C10DA299034C03D742FB160C2D6</APIKey> <Language>RU</Language> <Currency>RUB</Currency> <ShowNames>true</ShowNames> </Source> </RequestBin> </ver:search> </soapenv:Body></soapenv:Envelope></syntaxhighlight></div>ребёнок (привязка ребёнка ко взрослому является опциональной)</divtd>
<div /tr> <tr class="row27"> <td class="col0">Num </td><td class="col1">да </td><td class="col2">число </td><td class="col3">Номер пассажира.</td> </tr> <tr class="row28"> <td class="col0">PreferedPlace </td><td class="toccolours mw-collapsible mw-collapsedcol1" style>нет </td><td class="width:1000pxcol2">сложный </td><td class="col3">Информация о предпочитаемом месте. Если указаны номер ряда и номер места, то параметры Smoking и Location игнорируются и могут быть не указаны.</td>
===== Ответ =====<div class="mw-collapsible-content"><syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://trunk.mlsd.ru/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"tr> <SOAP-ENV:Body> <ns1:searchResponse> <ResponseBin> <Response> <SearchFlights> <Flights SearchIdtr class="190491108" ResultURL="http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D190491108row29"> <Flight FlightIdtd class="372394480001col0"> <WebService>SABRESmokingAllowed </WebServicetd> <ValCompany/> <URL>http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dbooking%2Finfo%26uid%3D190491108%26flight%3D372394480001%26utm_source%3Dalias1</URL> <Segments> <Segment SegNum="1" SegGroupNum="0"> <DepAirp CodeType="IATA" Nametd class="Прагаcol1">PRGнет </DepAirptd> <DepTerminal xsi:nil="true"/> <ArrAirp CodeType="IATA" Nametd class="Цюрихcol2">ZRHбулевский </ArrAirptd> <ArrTerminal xsi:nil="true"/> <OpAirline>LX</OpAirline> <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName> <MarkAirline>LX</MarkAirline> <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName> <FlightNumber>1485</FlightNumber> <AircraftName>Avro RJ100</AircraftName> <AircraftType>AR1</AircraftType> <DepDateTime>2014-12-20T10:05:00</DepDateTime> <ArrDateTime>2014-12-20T11:30:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassTypetd class="economycol3"> <BookingCode>K</BookingCode> </BookingCode> </BookingCodes> <FlightTime>85</FlightTime> <TimeZone Departure="1" Arrival="1"/> <ETicket>true</ETicket> </Segment> <Segment SegNum="2" SegGroupNum="0"> <DepAirp CodeType="IATA" Name="Цюрих">ZRH</DepAirp> <DepTerminal xsi:nil="true"/> <ArrAirp CodeType="IATA" Name="Домодедово, Москва">DME</ArrAirp> <ArrTerminal xsi:nil="true"/> <OpAirline>LX</OpAirline> <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName> <MarkAirline>LX</MarkAirline> <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName> <FlightNumber>1326</FlightNumber> <AircraftName>Airbus 321</AircraftName> <AircraftType>321</AircraftType> <DepDateTime>2014-12-20T12:20:00</DepDateTime> <ArrDateTime>2014-12-20T17:50:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>K</BookingCode> </BookingCode> </BookingCodes> <FlightTime>210</FlightTime> <TimeZone Departure="1" Arrival="3"/> <ETicket>true</ETicket> </Segment> <Segment SegNum="3" SegGroupNum="1"> <DepAirp CodeType="IATA" Name="Домодедовоместо для курящих, Москва">DME</DepAirp> <DepTerminal xsi:nil="true"/> <ArrAirp CodeType="IATA" Name="Цюрих">ZRH</ArrAirp> <ArrTerminal xsi:nil="true"/> <OpAirline>LX</OpAirline> <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName> <MarkAirline>LX</MarkAirline> <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName> <FlightNumber>1325</FlightNumber> <AircraftName>Airbus 321</AircraftName> <AircraftType>321</AircraftType> <DepDateTime>2014false -12-23T09:05:00место для некурящих. По умолчанию false.</DepDateTimetd> <ArrDateTime>2014-12-23T10:50:00 </ArrDateTimetr> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassTypetr class="economyrow30"> <BookingCode>V</BookingCode> </BookingCode> </BookingCodes> <FlightTime>225</FlightTime> <TimeZone Departure="3" Arrivaltd class="1col0"/> <ETicket>trueLocation </ETickettd> </Segment> <Segment SegNumtd class="4" SegGroupNum="1col1"> <DepAirp CodeType="IATA" Name="Цюрих">ZRHнет </DepAirptd> <DepTerminal xsi:niltd class="truecol2"/> <ArrAirp CodeType="IATA" Name="Мальпенса, Милан">MXPстрока </ArrAirptd> <ArrTerminal xsi:nil="true"/> <OpAirline>LX</OpAirline> <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName> <MarkAirline>LX</MarkAirline> <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName> <FlightNumber>1628</FlightNumber> <AircraftName>Avro RJ100</AircraftName> <AircraftType>AR1</AircraftType> <DepDateTime>2014-12-23T12:25:00</DepDateTime> <ArrDateTime>2014-12-23T13:20:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>K</BookingCode> </BookingCode> </BookingCodes> <FlightTime>55</FlightTime> <TimeZone Departure="1" Arrival="1"/> <ETicket>true</ETicket> </Segment> <Segment SegNum="5" SegGroupNumtd class="2col3"> <DepAirp CodeType="IATA" Name="МальпенсаРасположение места, Милан">MXP</DepAirp> <DepTerminal xsi:nil="true"/> <ArrAirp CodeType="IATA" Name="Цюрих">ZRH</ArrAirp> <ArrTerminal xsiвозможные значения:nil="true"/> <OpAirline>LX</OpAirline> <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName> <MarkAirline>LX</MarkAirline> <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName> <FlightNumber>1639</FlightNumber> <AircraftName>Avro RJ100</AircraftName> <AircraftType>AR1</AircraftType> <DepDateTime>2014W -12у окна (Window); M -27T07:05:00</DepDateTime> <ArrDateTime>2014где-12то в середине ряда (Middle); NPW -27T08:05:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>K</BookingCode> </BookingCode> </BookingCodes> <FlightTime>60</FlightTime> <TimeZone Departure="1" Arrival="1"/> <ETicket>true</ETicket> </Segment> <Segment SegNum="6" SegGroupNum="2"> <DepAirp CodeType="IATA" Name="Цюрих">ZRH</DepAirp> <DepTerminal xsi:nil="true"/> <ArrAirp CodeType="IATA" Name="Мадрид">MAD</ArrAirp> <ArrTerminal xsi:nil="true"/> <OpAirline>LX</OpAirline> <OpAirlineName>Свисс Интернешнл Эйрлайнз</OpAirlineName> <MarkAirline>LX</MarkAirline> <MarkAirlineName>Свисс Интернешнл Эйрлайнз</MarkAirlineName> <FlightNumber>2026</FlightNumber> <AircraftName/> <AircraftType>32A</AircraftType> <DepDateTime>2014возле прохода (NearPassengerWay); NS -12-27T12:30:00нет предпочтения (NotSpecified).</DepDateTimetd> <ArrDateTime>2014-12-27T14:50:00 </ArrDateTimetr> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassTypetr class="economyrow31"> <BookingCode>V</BookingCode> </BookingCode> </BookingCodes> <FlightTime>140</FlightTime> <TimeZone Departure="1" Arrivaltd class="1col0"/> <ETicket>trueRowNumber</ETickettd> </Segment> </Segments> <PricingInfo Refundable="false"> <PassengerFare Type="ADT" Quantitytd class="1col1"> нет<BaseFare Currency="CZK" Amount="8440"/td> <EquiveFare Currencytd class="RUBcol2" Amount="17305"/> строка <TotalFare Currency="RUB" Amount="31456"/td> <Taxes> <Tax CurCode="RUB" TaxCodetd class="YQI" Amount=col3"840"/> Номер ряда<Tax CurCode="RUB" TaxCode="YQI" Amount="840"/td> <Tax CurCode="RUB" TaxCode="YQI" Amount="1960"/tr> <Tax CurCode="RUB" TaxCode="YQI" Amounttr class="840row32"/> <Tax CurCodetd class="RUBcol0" TaxCode="YQI" Amount="840"/> PlaceNumber <Tax CurCode="RUB" TaxCode="YQI" Amount="1960"/td> <Tax CurCodetd class="RUBcol1" TaxCode="RI" Amount="378"/> нет <Tax CurCode="RUB" TaxCode="RI" Amount="378"/td> <Tax CurCode="RUB" TaxCodetd class="UH" Amount=col2"284"/> строка <Tax CurCode="RUB" TaxCode="CZ" Amount="1159"/td> <Tax CurCode="RUB" TaxCode="CH2" Amount="1112"/> <Tax CurCode="RUB" TaxCodetd class="CH2col3" Amount="1112"/> <Tax CurCode="RUB" TaxCode="CH2" Amount="1112"/> <Tax CurCode="RUB" TaxCode="EX" Amount="56"/> <Tax CurCode="RUB" TaxCode="IT1" Amount="707"/> <Tax CurCode="RUB" TaxCode="VT" Amount="142"/> <Tax CurCode="RUB" TaxCode="HB" Amount="364"/> <Tax CurCode="RUB" TaxCode="MJ" Amount="67"/> </Taxes> <Tariffs> <Tariff Code="KNC29F3S" SegNum="2"/> <Tariff Code="VNC28G2S" SegNum="6"/> <Tariff Code="KNN2SSR" SegNum="5"/> </Tariffs> <FareCalc>PRG LX X/ZRH LX MOW28.06LX ZRH*LX MIL31.13LX ZRH31.13*LX MAD175.52 1S129.53NUC395.37END ROE21.3469</FareCalc> <LastTicketDateTime>2014-12-20T11:05:00</LastTicketDateTime> </PassengerFare> <PassengerFare Type="INF" Quantity="1"> <BaseFare Currency="CZK" Amount="3333"/> <EquiveFare Currency="RUB" Amount="6835"/> <TotalFare Currency="RUB" Amount="6835"/> <Taxes/> <Tariffs> <Tariff Code="KNC29F3S/IN90" SegNum="2"/> <Tariff Code="VNC28G2S/IN90" SegNum="6"/> <Tariff Code="KNN2SSR/IN90" SegNum="5"/> </Tariffs> <FareCalc>PRG LX X/ZRH LX MOW2.80LX ZRH*LX MIL3.11LX ZRH3.11*LX MAD17.55 1S129.53NUC156.10END ROE21.3469</FareCalc> <LastTicketDateTime>2014-12-20T11:05:00</LastTicketDateTime> </PassengerFare> </PricingInfo> <Commission/> <Charges Currency="RUB">765.82</Charges> <TotalPrice Currency="RUB">39056.82</TotalPrice> </Flight> ......... <Flight>...</Flight> </Flights> <Errors xsi:nil="true"/> </SearchFlights> </Response> </ResponseBin> </ns1:searchResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlight></div>Номер места</divtd>
</tr>
<tr class="row33">
<td class="col0">SegNumber </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер сегмента</td>
</tr>
<tr class="row34">
<td class="col0">DocumentInfo </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Паспортные данные</td>
</tr>
<tr class="row35">
<td class="col0">DocType </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Тип документа, обязательный.</td>
</tr>
<tr class="row36">
<td class="col0">DocNum </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер документа</td>
</tr>
<tr class="row37">
<td class="col0">CountryCode </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Страна выдачи, двух буквенный код(RU, US и т.д.)</td>
</tr>
<tr class="row38">
<td class="col0">DocElapsedTime</td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Срок истечения срока действия паспорта в фирмате dd.mm.yyyy (например 31.12.2012)</td>
</tr> <tr class="row39"> <td class="col0">VisaInfo </td><td class="col1">нет </td><td class=API Поиска отелей"col2">сложный </td><td class="col3">Информация о визе</td> </tr> <tr class="row40">'''Агентский API Отелей''' - система, которая предоставляет возможность поиска и бронирования отелей а так же получение информации о времени и размерах штрафов, уникальной информации об отеле, получение статической информации. <td class="col0">Num </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер визы</td>
</tr> <tr class="row41"> <td class="col0">IssueDate </td><td class= Динамические данные "col1">да </td><td class="col2">строка </td><td class="col3">Дата выдачи визы в формате dd.mm.yyyy</td> </tr> <tr class="row42"> <td class="col0">IssueCountry </td><td class="col1">да </td><td class="col2">строка </td><td class= Поиск ===="col3">Страна выдачи визы</td>
Сервис предназначен для получения списка отелей, удовлетворяющих условиям запроса. В условия запроса входят: идентификатор города, где будет вестись поиск; дата заезда и дата выезда; информация о количестве людей и способе их размещения в комнатах. Так же указываются дополнительные необязательные поля фильтров. </tr> <tr class="row43"> <td class="col0">IssuePlace </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Место выдачи визы</td> </tr> <tr class="row44"> <td class="col0">BirthCountry </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Страна рождения (IATA код страны)</td>
Для получения списка доступных городов, воспользуйтесь запросом на выгрузку статики </tr> <tr class="row45"> <td class="col0">BirthCity </td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Город рождения (см. ССЫЛКАназвание). Список допустимых отелей </td> </tr> <tr class="row46"> <td class="col0">ArrAddress </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Адрес прибытия, для фильтра также доступен через сервис въезжающих в США (см. ССЫЛКАне граждан США)информация является обязательной. Рекомендуется выгрузить все данные по отелямЕсли она не заполняется при оформлении брони, городам и странам в локальную базу, для экономии времени и запросовто её всё равно придётся заполнять при посадке на самолёт.</td>
'''WSDL''' (тестовый сервер): [http: </tr> <tr class="row47"> <td class="col0">CountryCode </tst.nemo-ibe.comtd><td class="col1">да </wsdevtd><td class="col2">строка </wsdl.php?fortd><td class=HotelsSearch http:"col3">IATA код страны</td> </tr> <tr class="row48"> <td class="col0">State </tst.nemo-ibe.comtd><td class="col1">да </wsdevtd><td class="col2">строка </wsdl.php?fortd><td class=HotelsSearch]"col3">Штат или область въезда</td>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"/tr>===== Запрос ===== <div tr class="mw-collapsible-contentrow49"> <syntaxhighlight lang="xml" line enclose="div" styletd class="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;col0">PostalCode <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vertd><td class="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelsSearchcol1"> да <soapenv:Header/td> <soapenv:Body> <ver:search> <RequestBin> <Request> <HotelSearch> <CityIdtd class="col2">22046строка </CityIdtd> <DateBegintd class="col3">2013-10-15Почтовый код</DateBegintd> <DateEnd>2013-10-18 </DateEndtr> <Rooms> <!--Zero or more repetitions:--> <Room> <Persons> <!--Zero or more repetitions:--> <Person Idtr class="1row50" Type="ADT" Age="30"/> <Person Id="2" Type="CLD" Agetd class="10col0"/> City </Personstd> <!--Optional:--> <DoubleBedtd class="col1">falseда </DoubleBedtd> </Room> <Room> <Persons> <!--Zero or more repetitions:--> <Person Idtd class="1col2" Type="ADT" Age="30"/> строка </Personstd> </Roomtd class="col3"> </Rooms> <!--Optional:--> <Filters> <Hotels> <!--Zero or more repetitions:--> <!--<Id>123</Id>--> </Hotels> </Filters> </HotelSearch> </Request> <Source> <ClientId></ClientId> <APIKey></APIKey> <Language>ru</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:search> </soapenv:Body></soapenv:Envelope>Город</syntaxhighlighttd>
Элемент '''HotelSearch''' </tr>{| style <tr class="width: 800pxrow51"> <td class="col0">StreetAddress </td><td class="col1" >да </td><td class="wikitablecol2"|-! scope>строка </td><td class="colcol3" width>Адрес: улица, номер дома, квартиры и тп</td> </tr> <tr class="200row52" | Элемент>! scope <td class="colcol0" width>DocStringFormats </td><td class="300col1" | Описание! scope>нет </td><td class="colcol2" width>сложный </td><td class="300col3" | Допустимые значения|-| CityId| Обязательный. Идентификатор города >Список форматов строк паспортных данных, которые будут отправлены в системе Nemoдополнение к стандартным.| Целое число|-| DateBegin| Обязательный. Дата заселения.| Формат гггг-мм-дд.|-| DateEnd| Обязательный. Дата выезда.| Формат гггг-мм-дд.|-| Rooms| Обязательный. Содержит массив запрашиваемых номеров</апартаментов.| Элемент Room. Максимум 4 элемента Room.|-| Filters| Необязательный. Содержит различные фильтры поиска отелей.| Элемент Hotels.|}td>
Элемент '''Room''' </tr>{| style <tr class="width: 800pxrow53" > <td class="wikitablecol0">DocStringFormat </td><td class="|-! scopecol1">да </td><td class="colcol2" width>строка </td><td class="200col3" | Элемент>Формат данных, возможные значения: DOCS - строка формата DOCS, FOID - строка формата FOID. Установка данных в формате DOCS как правило необходима для последующей выписки в BSP среде. Установка FOID - всреде ТКП.</td>! scope </tr> <tr class="colrow54" width> <td class="300col0">PersonalInfo </td><td class=" | Описание! scopecol1">да </td><td class="colcol2" width>сложный </td><td class="300col3" | Допустимые значения>Персональные данные пассажира</td>|- </tr>| Persons <tr class="row55">| Обязательный <td class="col0">DateOfBirth</td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Дата рождения в формате dd.mm.yyyy (например 31. Содержит данные о клиентах в номерах12.2000)</td>| Элемент Person </tr>|- <tr class="row56">| DoubleBed| Необязательный. Может быть использован только если сумма количества детей и взрослых равна 2-м <td class="col0">Nationality </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Национальность/гражданство, двух буквенный код страны (RU, UA, а такжеЕсли в запросе сумма детей US и взрослых не равна 2, то данный элемент будет проигнорировант.д.| true)</falsetrue означает, что номер должен иметь двуспальную кровать|}td>
Элемент '''Person''' </tr>{| style <tr class="row57"> <td class="col0">Gender </td><td class="width: 800pxcol1" >да </td><td class="wikitablecol2"|-! scope>строка </td><td class="colcol3" width>Пол пассажира, обязательный, возможные значения: M - мужской(Male); F - женский(Female).</td> </tr> <tr class="200row58" | Элемент>! scope <td class="colcol0" width>FirstName </td><td class="300col1" | Описание! scope>да </td><td class="colcol2" width>строка </td><td class="300col3" | Допустимые значения|-| Атрибут Id| Уникальный идентификатор. См. результаты бронирования.| Целое число|-| Атрибут Type| Тип клиента.Если не указан, будет определен по возрасту Age.| Константы:ADT - взрослыйCLD - ребенок 2-12 летINF - младенец до 2х лет|-| Атрибут Age| Возраст. Обязателен для детей (CLD).| Целое число. Количество лет.|}>Имя пассажира</td>
Элемент '''Filters''' </tr>{| style <tr class="row59"> <td class="col0">LastName </td><td class="col1">да </td><td class="width: 800pxcol2" >строка </td><td class="wikitablecol3">Фамилия пассажира</td> </tr>|- <tr class="row60">! scope <td class="col0">BMiddleName </td><td class="colcol1" width>да </td><td class="200col2">строка </td><td class=" | Элементcol3">Отчество пассажира</td>! scope </tr> <tr class="colrow61" width> <td class="col0">Meal </td><td class="300col1" | Описание! scope>нет</td><td class="colcol2" width>строка </td><td class="300col3" | Допустимые >Код типа питания, возможные значения|: NONE - отсутствует (по умолчанию); AVML - Азиатская вегетарианская кухня; BLML - Блюда щадящей диеты; CHML - Детское питание; CHPC - Детский холодный завтрак; СНСС - Детский горячий завтрак; CHHC - Детский ланч, ветчина и сыр; PBJS - Детский ланч, ореховое масло; CHMC - Детский обед макароны с сыром; DBML - Диабетическое питание; FPML - Фрукты; GFML - Питание без клейковины; HFML - Питание богатое клетчаткой; HNML - Индусская кухня; BBML - Питание для младенцев; KSML - Кошерная кухня; SMKB - Кошерный завтрак; SMKL - Кошерный ланч; SMKD - Кошерный обед; LPML - Малобелковое питание; LCML - Низкокалорийное питание; LFML - Низкохолестериновое питание; PRML - Низкопуриновое питание; LSML - Малосоленое питание; MOML - Мюсли; NLML - Безмолочные продукты; ORML - Восточная кухня; RVML - Сырые овощи; SFML - Морепродукты; SPML - Особое питание; VLML - Вегетарианское, молоко и яйца; VGML - Строго вегетарианское питание; VJML - Джайнизское вегетарианское; VOML -| Hotels| Необязательный. Набор идентификаторов отелей в системе NemoВосточное вегетарианское питание.</td>Результаты поиска будут ограничены только этими отелями. Данная опция может существенно ускорить поиск - рекомендуется всегда устанавливать при поиске конкретных отелей. </tr>| Элемент Id – целое число <tr class="row62">|} <td class="col0">LoyaltyCard </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Карточка часто летающего пассажира</td>
Элемент '''Source''' </tr> <tr class="row63">{| style <td class="col0">OpCode </td><td class="width: 800pxcol1" >да </td><td class="wikitablecol2"|-! scope>строка </td><td class="colcol3" width>IATA код компании авиаперевозчика</td> </tr> <tr class="200row64" | Элемент>! scope <td class="colcol0" width>Number </td><td class="300col1" | Описание! scope>да </td><td class="colcol2" width>строка </td><td class="300col3" | Допустимые значения>Номер карточки</td>|- </tr>| ClientID <tr class="row65">| Обязательный. ID клиента в системе Nemo.Можно посмотреть <td class="col0">ContactInfo</td><td class="col1">нет </добавить в td><td class="Администрированиеcol2" >сложный </td><td class="Веб-служба. Авторизацияcol3".>Контактная информация для пассажира</td>| Целое число. </tr>|- <tr class="row66">| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть <td class="col0">EmailID </добавить в td><td class="Администрированиеcol1" >нет </td><td class="Веб-служба. Авторизацияcol2".| Латинские буквы и цифры. Всего 32 символа.|}>строка </divtd><td class="col3">Контактный email</divtd>
<div /tr> <tr class="row67"> <td class="col0">Telephone </td><td class="toccolours mw-collapsible mw-collapsedcol1" style>нет </td><td class="width:1000pxcol2">сложный </td><td class="col3">Контактный телефон пассажира, описание аналогично описанию телефона агентства</td> </tr> <tr class="row68"> <td class="col0">CancelBook</td><td class="col1">да</td><td class="col2">сложный</td><td class= Ответ "col3">Контейнер для тела запроса отмены брони</td> </tr> <tr class="row69"> <td class="col0">BookID</td><td class="col1">да</td><td class=="col2">число</td><div td class="mw-collapsible-contentcol3">Система по заданным параметрам ищет отели и возвращает результаты поиска. Все результаты поиска хранятся в базе Nemo определенный срок и доступны Номер брони, которая будет отменяться (для бронирования по идентификатору CacheId. Структура ответа - это набор уникальных отелей. У каждого указан Id - это идентификатор из базы Nemo. По нему можно получить дополнительную статичную информацию из путеводителя Nemo.которой будет производится выписка, отмена выписки)</td>
Каждый отель содержит: </tr>* Набор номеров &lt;Rooms&gt;. Типы номеров (одноместный, двухместный и т.д.)&nbsp;: устанавливается автоматически по количеству клиентов из <tr class="row70"> <td class="col0">GetAirRules</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса.поиска тарифных правил</td>* Сервисы &lt;Services&gt;. Каждый отель предлагает различные типы обслуживания в номерах. Цена и доступность может различаться. </tr>* Категория &lt;Categories&gt;. Это допустимые комбинации номер + обслуживание. Для бронирования отеля пользователь должен выбрать одну из предлагаемых ему категорий. <tr class="row71"> <td class="col0">AirAvail</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса проверки доступности перелёта</td>
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"/tr> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1tr class="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelsSearchrow72"> <SOAP-ENV:Body> <ns1:searchResponse> <ResponseBin> <Response> <HotelSearch> <Hotels> <Hotel Idtd class="1872666col0"> <Supplier>GTA</Supplier> <CityId>22046</CityId> <DateBegin>2013-10-15</DateBegin> <DateEnd>2013-10-18</DateEnd> <CacheId>1872666Ticketing</CacheId> <Name>ADLON KEMPINSKI</Name> <Categoriestd> <Category Idtd class="1col1"> да<Rooms> <Room Count="1" Id="1" ServiceId="1"/td> <Room Counttd class="1" Id=col2"2" ServiceId="2"/> сложный</Roomstd> <TotalPrice Currencytd class="RUBcol3">74733.84Контейнер для тела запроса выписки брони</TotalPricetd> </Categorytr> </Categoriestr class="row73"> <Services> <Service Idtd class="1col0" Status="OK"> <Desc>Standard Twin</Desc> <Meal>Full Breakfast</Meal> <Price/> ValCompany</Servicetd> <Service Id="2" Statustd class="OKcol1"> <Desc>Standard Twin</Desc> <Meal>Full Breakfast</Meal> нет<Price/td> </Service> </Services> <Rooms> <Room Idtd class="1" Type="TWINcol2">строка</td> <Room Id="2" Typetd class="SNGLcol3"/> </Rooms> </Hotel> ... </Hotels> </HotelSearch> </Response> </ResponseBin> </ns1:searchResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope>Валидирующий перевозчик, на бланке которого выписывается билет</syntaxhighlighttd>
Элемент '''Hotel''' </tr>{| style <tr class="row74"> <td class="width: 800pxcol0" >Comission</td><td class="wikitablecol1"|-! scope>нет</td><td class="col2">сложный</td><td class="colcol3" width>Комиссия</td> </tr> <tr class="200row75" | Элемент>! scope <td class="colcol0" width>Amount</td><td class="300col1" | Описание! scope>нет</td><td class="colcol2" width>число с плавающей точкой</td><td class="300col3" | Допустимые значения|-| Атрибут Id| Обязательный. Идентификатор отеля как одного из результатов поиска >Значение комиссии в системе Nemo.| Целое число.|-| Supplier| Обязательный. Тип поставщикавалюте, в котором найден отель.| Строка.Возможные значения:GTAHOTELBEDSDOTWSERHSMIKITRAVCOACADEMTOURICO|-| CityId| Обязательный. Идентификатор города в системе Nemo.| Целое число.|-| CacheId| Обязательный. Идентификатор результата поиска для данного отеля в системе Nemo.| Целое число.|-| Name| Обязательный. Название отеля.| Строка в произвольном формате.|-| Services| Обязательный. Услуги в отеле.| Элемент Service|-| Rooms| Обязательный. Комнаты в отеле.| Элемент Room|-| Categories| Обязательный. Категорииесли указано, доступные для бронирования то комиссия в отеле.| Элемент Category|}процентах игнорируется</td>
Элемент '''Service''' </tr> <tr class="row76">{| style <td class="width: 800pxcol0" >Percent</td><td class="wikitablecol1"|-! scope>нет</td><td class="colcol2" width>число</td><td class="200col3" | Элемент>Комиссия в процентах</td> </tr>! scope <tr class="colrow77" width> <td class="300col0" | Описание! scope>VoidTicket</td><td class="colcol1" width>да</td><td class="300col2" | Допустимые значения|-| Атрибут Id| Обязательный. Идентификатор услуги.| Целое число|-| Атрибут Status| Обязательный. Доступность отеля. ОК означает доступен (мгновенное подтверждение).RQ - недоступен (по запросу).| ОК>сложный</RQ|-| Desc| Необязательный. Описание отеля.| Строка в произвольном формате.|-| Meal| Обязательный. Питание td><td class="col3">Контейнер для данного сервиса.| Строка в произвольном формате.|-| Price| Необязательный. Указывает на стоимость номера с данной услугой.| Вещественное число.Атрибут Currency - код валюты.|}тела запроса отмены выписки брони</td>
Элемент '''Room''' </tr>{| style <tr class="row78"> <td class="col0">Search</td><td class="width: 800pxcol1" >да</td><td class="wikitablecol2"|-! scope>сложный</td><td class="colcol3" width>Контейнер для тела запроса поиска</td> </tr> <tr class="200row79" | Элемент>! scope <td class="colcol0" width>ODPairs</td><td class="300col1" | Описание! scope>да</td><td class="colcol2" width>сложный</td><td class="300col3" | Допустимые значения|-| Атрибут Id| Обязательный. Идентификатор комнаты в отеле.| Целое число.|-| Type| Обязательный. Тип номера.| Строка. Возможные значения:SNGL – одноместныйDBL – двухместный с двухспальной кроватьюTWIN – двухместный с двумя кроватямиTRIP – трёхместныйQUAD – четырёхместный|}>Контейнер для информации о перелёте</td>
Элемент '''Category''' </tr>{| style <tr class="row80"> <td class="col0">Type</td><td class="width: 800pxcol1" >да</td><td class="wikitablecol2"|-! scope>строка</td><td class="colcol3" width>Тип перелёта, возможные значения: OW - в одну сторону, RT - туда-обратно, CR - сложный маршрут</td> </tr> <tr class="200row81" | Элемент>! scope <td class="colcol0" width>Direct</td><td class="300col1" | Описание! scope>нет</td><td class="colcol2" width>булевский</td><td class="300col3" | Допустимые >Индикатор, указывающий какие перелёты искать, только прямые или с пересадками, возможные значения|: false - с пересадками, true -только прямые. Если не указан, значение по умолчанию false.</td>| Атрибут Id </tr>| Обязательный. Идентификатор категории. <tr class="row82">| Целое <td class="col0">AroundDates</td><td class="col1">нет</td><td class="col2">число</td><td class="col3">Включает поиск по окружным датам, количество дней +/- от даты заезда/возвращения.|Применим только для типов перелёта в одну сторону(OW) и туда-обратно(RT). Возможные значения: 0, 1, 2, 3</td>| Rooms </tr>| Обязательный. Массив комнат с соответствием услуг. <tr class="row83">| Целое число <td class="col0">ODPair</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для информации о сегменте перелёта.|Может повторяться 1-| Room| Атрибут: Count6 раз. Поиск по расписанию использует только первый сегмент, поиск сложных перелётов и перелётов туда и обратно не поддерживается</td>
Обязательный. </tr> <tr class="row84"> <td class="col0">DepDate</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата вылета, Формат ГГГГ-MM-DDTЧЧ:ММ:СС</td> </tr> <tr class="row85">Количество комнат данного типа <td class="col0">DepAirp</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Трёх буквенный код города отправления или конкретного аэропорта в городе отправления.</td>
Атрибут: Id </tr> <tr class="row86"> <td class="col0">ArrAirp</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Трёх буквенный код города прибытия или конкретного аэропорта в городе прибытия.</td> </tr> <tr class="row87"> <td class="col0">Count</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Число пассажиров данного типа. Общее количество пассажиров всех типов должно быть не более 9.</td>
Обязательный </tr> <tr class="row88"> <td class="col0">Restrictions</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Контейнер дополнительной информации для поиска. Идентификатор комнаты из атрибута Id в элементе Hotel</td> </tr> <tr class="row89"> <td class="col0">ClassPref</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Предпочитаемый класс перелёта, возможные значения: All - все, Economy -> Roomsэконом, Business - бизнес, First -первый. Если не указан, то по умолчанию All.</td> Room.
Атрибут </tr> <tr class="row90"> <td class="col0">OnlyAvail</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Искать только доступные, возможные значения: ServiceIdtrue - только доступные, false - все. Если не указан, то по умолчанию false.</td> </tr> <tr class="row91"> <td class="col0">AirVPrefs</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Обёртка для списка авиакомпаний, по которым будет или не будет проводиться поиск.</td>
</tr> <tr class="row92"> <td class="col0">AirVPref</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Информация об авиакомпании.</td> </tr> <tr class="row93"> <td class="col0">Include</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Индикатор, показывающий включить или исключить в результатах поиска перелёты данной авиакомпании: true - включить, false - Идентификатор услуги из атрибута Id элемента Serviceисключить.| Целое числоЕсли не указан, то по умолчанию false.</td>
Целое число </tr> <tr class="row94"> <td class="col0">IncludePrivateFare</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Включать приватные цены в результат или нет, возможные значения: true - включать, false - не включать.Если не указан, то по умолчанию false.</td> </tr> <tr class="row95"> <td class="col0">ServiceTypes</td><td class="col1">нет</td><td class="col2">сложный хмл</td><td class="col3">Контейнер массива используемых веб-сервисов при поиске.</td>
Целое число.|- </tr>| TotalPrice <tr class="row96">| Обязательный. Суммарная стоимость бронируемого сочетания “Комнаты <td class="col0">ServiceType</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Тип веб- услуги”сервиса(поставщика).| Вещественное числоПри указании нескольких элементов ServiceType поиск будет проведён для каждого сервиса.Атрибут Currency Возможные значения: Sirena2000 - поиск в Сирене; SirenaSchedule - поиск в Сирене по расписанию; SabreLFS - поиск в Сэйбр LFS; SabreBFM - поиск в Сэйбр BFM; SabreSchedule - поиск Сэйбр по расписанию; Galileo - поиск в Галилео; AmadeusMPTBS - код валютыпоиск в Амадеус.</td> </tr>|}</table>
</div>
</div>
 
 
 
==== Расширенная информация по одному отелю ====
Сервис получения дополнительной информации об отеле требует указания идентификатора отеля в системе Nemo и категории.
 
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelExtInfo
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
===== Запрос =====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelExtInfo">
<soapenv:Header/>
<soapenv:Body>
<ver:extInfo>
<RequestBin>
<Request>
<HotelExtInfo>
<Item>
<CacheId>1867246</CacheId>
<!--Optional:-->
<CategoryId>1</CategoryId>
</Item>
</HotelExtInfo>
</Request>
<Source>
<ClientId></ClientId>
<APIKey></APIKey>
<Language>ru</Language>
<Currency>RUB</Currency>
</Source>
</RequestBin>
</ver:extInfo>
</soapenv:Body>
</soapenv:Envelope>
</syntaxhighlight>
Элемент '''Item'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| CacheId| Обязательный. Идентификатор результата поиска.| Целое число|-| CategoryId| ID выбранной категории.| Целое число|} Элемент '''Source'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть/добавить Параметры, используемые в "Администрирование" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.|}</div></div> <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">===== Ответ =ответах ====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; table border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelExtInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:extInfoResponse> <ResponseBin> <Response> <HotelExtInfo> <CategoryId>1</CategoryId> <PriceInfo> <PriceBreakDown> <Date> <From>2013-10-15</From> <To>2013-10-18</To> <Price Currency="RUB">12455.64</Price> </Date> <Date> <From>2013-10-15</From> <To>2013-10-18</To> <Price Currency="RUB">12455.64</Price> </Date> </PriceBreakDown> <Netto Currency="EUR">1821</Netto> <Gross xsi:nil="true"/> </PriceInfo> </HotelExtInfo> </Response> </ResponseBin> </ns1:extInfoResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlight>
Элемент '''HotelExtInfo''' <tr bgcolor="#CCCCCC">{| style <th class="width: 800pxcol0 leftalign" > Имя элемента </th><th class="wikitablecol1 leftalign"|-! scope> Обязательный </th><th class="colcol2 leftalign" width> Тип </th><th class="200col3 centeralign" | Элемент> Описание </th> </tr>! scope <tr class="colrow1" width> <td class="300col0">BookFlightResult </td><td class=" | Описание! scopecol1">да </td><td class="colcol2" width>сложный </td><td class="300col3" | Допустимые значения|-| CategoryId| Обязательный. Идентификатор категории.| Целое число|-| PriceInfo| Обязательный. Элемент содержащий информацию о цене| см. Элемент PriceInfo|}>Контейнер для тела ответа бронирования</td>
Элемент '''PriceInfo''' </tr>{| style <tr class="width: 800pxrow2" > <td class="wikitablecol0"|-! scope>ID </td><td class="colcol1" width>да </td><td class="200col2" | Элемент! scope>число</td><td class="colcol3" width>Номер бронирования в системе Nemo.</td> </tr> <tr class="300row3" | Описание>! scope <td class="colcol0 leftalign" width>Status </td><td class="300col1" | Допустимые значения|-| style>да </td><td class="width:208px; height:35pxcol2" | PriceBreakDown| style>строка </td><td class="width:208px; height:35pxcol3" | Необязательный. Информация о ценах>Статус брони, расписанная по каждому дню.| style="width:208px; heightвозможные значения:35px" | Список элементов Date|booked -| Netto| Обязательный. Стоимость от поставщика.| Вещественное число.Атрибут Currency забронировано, canceled - код валюты.|бронь отменена, ticket -| Gross| Обязательный. Общая стоимость.| Вещественное число.Атрибут Currency выписана; UNDEFINED - код валютыстатус не определён.|}</td>
Элемент '''Date''' </tr>{| style <tr class="width: 800pxrow4" > <td class="wikitablecol0"|-! scope>Code </td><td class="col1">да </td><td class="colcol2" width>строка </td><td class="200col3" | Элемент>Номер бронирования в системе поставщика (в sabre, sirena и т.д.)/код тарифного правила</td>! scope </tr> <tr class="colrow5" width> <td class="300col0" | Описание! scope>QueryPlace </td><td class="colcol1" width>нет </td><td class="300col2" | Допустимые значения|-| From| Обязательный. Дата начала действия тарифа| Формат гггг-мм-дд|-| To| Обязательный. Дата окончания действия тарифа| Формат гггг-мм-дд|-| Price| Цена за одну ночь.| Вещественное число.Атрибут Currency - код валюты.|}>сложный </divtd><td class="col3">Очередь, в которую помещено бронирование</divtd>
=== Статические данные ===Для работы с веб-сервисом Nemo необходимо выгрузить статичные данные. Это данные о странах, городах и отелях.==== Страна ===='''WSDL''' (тестовый сервер): http: <//tst.nemo-ibe.com/wsdev/wsdl.php?for=CountryStatictr> <div tr class="toccolours mw-collapsible mw-collapsed" style="width:1000pxrow6">===== Запрос ===== <div td class="mw-collapsible-contentcol0 leftalign">Number <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"/td><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vertd class="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCountryStaticcol1"> да <soapenv:Header/td> <soapenv:Body> <ver:countries> <RequestBin> <Request> <CountryStatictd class="col2"> число </CountryStatictd> </Request> <Source> <ClientIdtd class="col3">Номер очереди</ClientIdtd> <APIKey> </APIKeytr> <Language>ru</Languagetr class="row7"> <Currencytd class="col0">RUBFlight </Currencytd> </Sourcetd class="col1"> да </RequestBintd> </ver:countriestd class="col2"> сложный </soapenv:Bodytd></soapenv:Envelopetd class="col3">Перелёт, по которому была сделана бронь (Результаты проверки доступности для перелёта)</syntaxhighlighttd>
Элемент '''Request''' </tr>{| style <tr class="width: 800pxrow8" > <td class="wikitablecol0"|-! scope>Agency </td><td class="col1">да </td><td class="colcol2" width>сложный </td><td class="200col3" | Элемент>Информация об агентстве</td>! scope </tr> <tr class="row9"> <td class="colcol0" width>ItinReceipts</td><td class="300col1" | Описание! scope>нет </td><td class="colcol2" width>сложный </td><td class="300col3" | Допустимые значения|-| CountryStatic| Пустой элемент| >Маршрут квитанция. Содержит строку в кодировки Encoding (как правило в base64), представляющую маршрут квитанцию в формате Format.<br/td>|}
Элемент '''Source''' </tr>{| style <tr class="width: 800pxrow10" > <td class="wikitablecol0"|-! scope>Encoding </td><td class="colcol1" width>да </td><td class="200col2" | Элемент! scope>строка </td><td class="colcol3" width>Кодировка</td> </tr> <tr class="300row11" | Описание>! scope <td class="colcol0" width>Format </td><td class="300col1" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть>да </добавить в td><td class="Администрированиеcol2" ⇨ "Веб-служба. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть>строка</добавить в td><td class="Администрированиеcol3" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.|}</div>Формат</divtd>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"/tr>===== Ответ ===== <div tr class="mw-collapsible-contentrow12"> <syntaxhighlight langtd class="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;col0">Travellers<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1td><td class="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCountryStatic" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instancecol1"> да <SOAP-ENV:Body/td> <ns1:countriesResponse> <ResponseBin> <Response> <CountryStatic> <Countries> <Country Idtd class="4col2"> <Code>AFсложный </Codetd> <Continent>asia</Continent> <Data> <Info Languagetd class="RUcol3"> <Name>АфганистанКонтейнер для информации о пассажирах</Nametd> </Infotr> <Info Languagetr class="ENrow13"> <Name>Afghanistan</Name> </Info> </Data> </Country> </Countriestd class="col0"> Traveller </CountryStatictd> </Responsetd class="col1"> да </ResponseBintd> </ns1:countriesResponsetd class="col2"> сложный </SOAP-ENV:Bodytd></SOAP-ENV:Envelopetd class="col3">Информация о пассажире</syntaxhighlighttd>
Элемент '''CountryStatic''' </tr>{| style <tr class="width: 800pxrow14" > <td class="wikitablecol0"|-! scope>Ticket </td><td class="col1">нет </td><td class="col2">сложный </td><td class="colcol3" width>Билет пассажира.</td> </tr> <tr class="200row15" | Элемент>! scope <td class="colcol0" width>TickectNum </td><td class="300col1" | Описание! scope>да </td><td class="colcol2" width>строка </td><td class="300col3" | Допустимые значения|-| Countries| Обязательный| Набор элементов Country|}>Номер билета</td>
Элемент '''Country''' </tr>{| style <tr class="width: 800pxrow16" > <td class="wikitablecol0"|-! scope>Seats</td><td class="col1">нет </td><td class="colcol2" width>сложный </td><td class="200col3" | Элемент>Контейнер мест пассажира.</td>! scope </tr> <tr class="colrow17" width> <td class="col0">Seat </td><td class="300col1" | Описание! scope>да </td><td class="colcol2" width>сложный </td><td class="300col3" | Допустимые значения|-| Атрибут Id| Обязательный. Идентификатор страны (ISO).| Целое число|-| Code| Обязательный. Код страны ISO.| Строка из 2-х латинских букв|-| Continent| Обязательный. Название континента.| Строка.|-| Data| Обязательный. Информация требующая перевода.| Набор элементов Info.|}>Место в самолёте</td>
Элемент '''Info''' </tr>{| style <tr class="row18"> <td class="width: 800pxcol0" >Number </td><td class="col1">да </td><td class="wikitablecol2"|-! scope>строка</td><td class="colcol3" width>Номер места(ряд+номер в ряду)</td> </tr> <tr class="200row19" | Элемент>! scope <td class="colcol0" width>Characteristic </td><td class="300col1" | Описание! scope>нет</td><td class="colcol2" width>строка </td><td class="300col3" | Допустимые значения|-| Атрибут Language| Обязательный. Язык >Характеристика места в котором представлена информация.| Строка из 2-х латинских букв.|-| Name| Обязательный. Наименование странысоответствии со стандартом EDIFACT.| Строка в произвольном форматеСм справочник “Таблица характеристик мест”.|}</div></divtd>
</tr>
<tr class="row20">
<td class="col0">SmokingPreference </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Статус курения на этом месте, если Y - место для курящих, если N - место для некурящих.</td>
</tr>
<tr class="row21">
<td class="col0">SegmentNumber </td><td class="col1">да </td><td class="col2">число </td><td class="col3">Номер сегмента</td>
</tr>
<tr class="row22">
<td class="col0">PersonalInfo </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Личные данные</td>
</tr>
<tr class="row23">
<td class="col0">LoyaltyCard </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Карточка часто летающего пассажира</td>
</tr> <tr class="row24"> <td class="col0">ContactInfo </td><td class="col1">нет </td><td class="col2">сложный </td><td class= Город "col3">Контактная информация для пассажира</td> </tr> <tr class="row25"> <td class="col0">FareStored </td><td class="col1">нет </td><td class=Параметры поиска всех услуг требуют указания ID города"col2">срока: Yes/No </td><td class="col3">Указывает установлена ли / гарантируется ли цена у поставщика. Города выгружаются Если параметр отсутствует в ответе, то по каждой стране следующим запросом:умолчанию значение “Yes”.</td>
'''WSDL''' (тестовый сервер): http: </tr> <tr class="row26"> <td class="col0">CancelBookResult</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела ответа отмены брони</td> </tr> <tr class="row27"> <td class="col0">BookID</tst.nemo-ibe.comtd><td class="col1">да</wsdevtd><td class="col2">число</wsdl.php?fortd><td class=CityStatic"col3">Номер брони, которая отменялась (Номер выписанной брони, выписка которой отменялась)</td>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"/tr>===== Запрос ===== <div tr class="mw-collapsible-contentrow28"> <syntaxhighlight lang="xml" line enclosetd class="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;col0">Result<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vertd><td class="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCityStaticcol1"> да<soapenv:Header/td> <soapenv:Bodytd class="col2"> <ver:cities> <RequestBin> <Request> <CityStatic> <CountryId>4сложный</CountryIdtd> </CityStatictd class="col3"> Результат отмены (войдирования)</Requesttd> <Source> <ClientId> </ClientIdtr> <APIKey></APIKeytr class="row29"> <Languagetd class="col0">ruSuccess</Languagetd> <Currencytd class="col1">RUBда</Currencytd> </Sourcetd class="col2"> булевский</RequestBintd> </ver:citiestd class="col3"> </soapenvИндикатор, показывающий успешно или нет прошла отмена, возможные значения:Body></soapenv:Envelope>true - успешно отменена (войдирование); false - не отменена</syntaxhighlighttd>
Элемент '''CityStatic''' </tr>{| style <tr class="width: 800pxrow30" > <td class="wikitablecol0"|-! scope>GetAirRulesResult</td><td class="col1">да</td><td class="colcol2" width>сложный</td><td class="200col3" | Элемент>Контейнер для тела ответа поиска тарифных правил</td> </tr>! scope <tr class="colrow31" width> <td class="300col0" | Описание! scope>FlightId</td><td class="colcol1" width>да</td><td class="300col2" | Допустимые значения|-| CountryId| Обязательный. Идентификатор страны.| Целое >число|}</td><td class="col3">Номер перелёта, для которого найдены тарифные правила (будет проводилась проверка доступности)</td>
Элемент '''Source''' </tr>{| style <tr class="width: 800pxrow32" > <td class="wikitablecol0"|-! scope>Rules</td><td class="colcol1" width>да</td><td class="200col2" | Элемент! scope>сложный</td><td class="colcol3" width>Контейнер для правил</td> </tr> <tr class="300row33" | Описание>! scope <td class="colcol0" width>Rule</td><td class="300col1" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть>да</добавить в td><td class="Администрированиеcol2" ⇨ "Веб-служба. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть>сложный</добавить в td><td class="Администрированиеcol3" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.|}</div>Правило</divtd>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"/tr>===== Ответ ===== <div tr class="mw-collapsible-contentrow34"> <syntaxhighlight lang="xml" line enclosetd class="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;col0">Tarrif<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCityStatic"td> <SOAP-ENV:Body> <ns1:citiesResponse> <ResponseBin> <Response> <CityStatic> <Cities> <City Idtd class="1col1"> <Name>Кабулда</Nametd> <CountryId>4</CountryId> <Data> <Info Languagetd class="ENcol2"> <Name>Kabulстрока</Nametd> </Info> <Info Languagetd class="RUcol3"> <Name>КабулКод тарифа, для которого правило применяется</Nametd> </Infotr> </Data> </City> <City Idtr class="204793row35"> <Name>Aibak</Name> <CountryId>4</CountryId> <Data> <Info Languagetd class="ENcol0"> <Name>Aibak</Nametd> </Info> <Info Languagetd class="RUcol1"> <Name>Aibakда</Nametd> </Info> </Data> </City> <City Idtd class="204785col2"> <Name>Anar Darahстрока</Nametd> <CountryId>4</CountryId> <Data> <Info Languagetd class="ENcol3"> <Name>Anar Darah</Name> </Info> <Info Language="RU"> <Name>Anar Darah</Name> </Info> </Data> </City> ... </Cities> </CityStatic> </Response> </ResponseBin> </ns1:citiesResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope>Имя правила</syntaxhighlighttd>
Элемент '''CityStatic''' </tr>{| style <tr class="width: 800pxrow36" > <td class="wikitablecol0"|-! scope>RuleText</td><td class="col1">да</td><td class="col2">строка</td><td class="colcol3" width>Текст правила</td> </tr> <tr class="200row37" | Элемент>! scope <td class="colcol0" width>AirAvailResult</td><td class="300col1" | Описание! scope>да</td><td class="colcol2" width>сложный</td><td class="300col3" | Допустимые значения|-| Cities| Обязательный. Массив городов. | Набор элементов City|}>Контейнер для тела ответа помещения брони в очередь</td>
Элемент '''City''' </tr> <tr class="row38">{| style <td class="width: 800pxcol0" >IsAvail</td><td class="wikitablecol1"|-! scope>да</td><td class="colcol2" width>булевский</td><td class="200col3" | Элемент>Индикатор, показывающий доступность перелёта, возможные значения: true - доступен; false - недоступен</td> </tr>! scope <tr class="colrow39" width> <td class="300col0" | Описание! scope>VoidTicketResult</td><td class="colcol1" width>да</td><td class="300col2" | Допустимые значения|-| Атрибут '''Id'''| Обязательный. Идентификатор города.| Целое число|-| Name| Название города.| |-| Data| Названия городов на разных языках. В данный момент поддерживаются названия на русском и английском.| См. описание элемента Data в ответе получения информации о стране.|}>сложный</divtd><td class="col3">Контейнер для тела ответа отмены выписки брони</divtd>
</tr> <tr class="row40"> <td class="col0">SearchResult</td><td class="col1">нет</td><td class= Статика по отелям и апартаментам "col2">сложный</td><td class="col3">Контейнер тела ответа для результатов поиска.</td> </tr> <tr class="row41"> <td class="col0">Flights</td><td class=Этот запрос будет использоваться "col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для выгрузки статичной информации по одному или нескольким отелям.перелётов</td>
'''WSDL''' </tr> <tr class="row42"> <td class="col0">Flight</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Представляет информацию о перелёте. Отсутствует если перелётов не найдено (тестовый сервериспользуется в поисковом ответе): http:</td> </tr> <tr class="row43"> <td class="col0">WebService</td><td class="col1">да</td><td class="col2">строка</tst.nemotd><td class="col3">Веб-ibeсервис (поставщик) от которого был получен перелёт.com/wsdev</wsdl.php?for=HotelStatictd>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"/tr>===== Запрос ===== <div tr class="mw-collapsible-contentrow44"> <syntaxhighlight lang="xml" line enclosetd class="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;col0">ValCompany<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vertd><td class="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelStaticcol1"> нет<soapenv:Header/td> <soapenv:Body> <ver:hotels> <RequestBin> <Request> <HotelStatic> <CityIdtd class="col2">58166строка</CityIdtd> </HotelStatictd class="col3"> IATA код авиакомпании. Валидирующий перевозчик, на бланках которого должен выписываться билет.</Request> <Sourcetd> <ClientId> </ClientIdtr> <APIKey></APIKeytr class="row45"> <Languagetd class="col0">ruSegments</Languagetd> <Currencytd class="col1">RUBда</Currencytd> </Source> </RequestBintd class="col2"> сложный</ver:hotelstd> </soapenv:Bodytd class="col3"></soapenv:Envelope>Контейнер для сегментов перелёта</syntaxhighlighttd>
Элемент '''Hotels''' </tr>{| style="width: 800px" <tr class="wikitablerow46">|-! scope <td class="colcol0" width>Segment</td><td class="200col1" | Элемент! scope>да</td><td class="colcol2" width>сложный</td><td class="300col3" | Описание>Представляет информацию о сегменте</td>! scope="col" width="300" | Допустимые значения </tr>|-| CityId| Обязательный. Идентификатор города из которого необходимо получить отели.| Целое число|} Элемент '''Source'''{| style="width: 800px" <tr class="wikitablerow47">|-! scope <td class="colcol0" width>SegNum</td><td class="200col1" | Элемент! scope>да</td><td class="colcol2" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Целое >число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть</добавить в "Администрирование" ⇨ td><td class="Веб-служба. Авторизацияcol3".| Латинские буквы и цифры. Всего 32 символа.|}</div>Номер сегмента в перелёте</divtd>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"/tr>===== Ответ ===== <div tr class="mw-collapsible-contentrow48"> <syntaxhighlight lang="xml" line enclose="div" styletd class="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;col0">DepAirp<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1td><td class="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelStaticcol1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> да<ns1:hotelsResponse/td> <ResponseBin> <Response> <HotelStatic> <Hotels> <Hotel Idtd class="271714col2" Apartment="false"> <CityId>58166строка</CityIdtd> <CountryId>643</CountryId> <Latitude xsi:niltd class="truecol3"/> IATA код аэропорта отправления<Longitude xsi:nil="true"/td> <Rating>3 </Ratingtr> <Floors xsi:niltr class="truerow49"/> <Data> <Info> <Name>* Azimut (business)</Name> <Area xsi:niltd class="truecol0"/> <Location>Within cityDepTerminal</Locationtd> <Desc>This 3 star hotel is located within the city of St Petersburg.</Desc> <Address>43/1 Lermoutovsky Prospect, St Petersburg, 190103</Address> </Info> </Data> <Phones> <Phone>812 7402640</Phone> </Phones> <Fax>812 2518890</Fax> <Images/> </Hotel> <Hotel Idtd class="159535col1" Apartment="false"> <CityId>58166нет</CityIdtd> <CountryId>643</CountryId> <Latitude>59.935011</Latitude> <Longitude>30.309284</Longitude> <Rating>5</Rating> <Floors xsi:niltd class="truecol2"/> <Data> <Info> <Name>W St.petersburgстрока</Nametd> <Area xsi:niltd class="truecol3"/> <Location>City centre</Location> <Desc>This 5 star hotel is located in the city centre of St Petersburg and was established in 2011. It is close to the St.Isaac's Cathedral and the nearest station is Admiralteyskaya station. The Hotel has a restaurant, 2 bars, a conference room, a coffee shop, an indoor swimming pool and a fitness centre/gym. All 137 rooms are equipped with minibar, hairdryer, safe, trouser press and air conditioning.</Desc> <Address>6 Voznesensky Prospect, St. Petersburg, 190000, St Petersburg, Russia</Address> </Info> </Data> <Phones/> <Fax>+7 812 6106160</Fax> <Images> <Image> <Path>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/lr/ext.jpg</Path> <Icon>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/ext-t.jpg</Icon> </Image> <Image> <Path>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/lr/unknown.jpg</Path> <Icon>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/unknown-t.jpg</Icon> </Image> <Image> <Path>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/lr/bed room.jpg</Path> <Icon>https://www.miki.co.uk/live/hotel/mikiNet/image/v1.0/RU/44018/406/bed room-t.jpg</Icon> </Image> </Images> </Hotel> ... </Hotels> </HotelStatic> </Response> </ResponseBin> </ns1:hotelsResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope>Код терминала отправления</syntaxhighlighttd>
Элемент '''Hotel''' </tr>{| style <tr class="width: 800pxrow50" > <td class="wikitablecol0"|-! scope>ArrAirp</td><td class="colcol1" width>да</td><td class="200col2">строка</td><td class=" | Элементcol3">IATA код аэропорта прибытия</td> </tr>! scope <tr class="colrow51" width> <td class="300col0">ArrTerminal</td><td class=" | Описание! scopecol1">нет</td><td class="colcol2" width>строка</td><td class="300col3" | Допустимые значения|-| Атрибут Id| Обязательный. Идентификатор отеля в системе Nemo.| Целое число.|-| CityId| Обязательный. Идентификатор города.| Целое число.|-| CountryId| Обязательный. Идентификатор страны .| Целое число.|-| Latitude| Необязательный. Широта.| Вещественное число.|-| Longitude| Необязательный. Долгота.| Вещественное число.|-| Rating| Необязательный. Рейтинг.| Вещественное число.|-| Floors| Необязательный. Количество этажей| Целое число.|-| Data| Необязательный.| Набор элементов Info.|-| Phones| Необязательный. Массив телефонов.| Набор элементов Phone.|-| Fax| Необязательный. Факс.| Строка в произвольном формате.|-| Images| Необязательный. Маcсив изображений.| Набор элементов Image.|}>Код терминала прибытия</td>
Элемент '''Info''' </tr>{| style <tr class="row52"> <td class="width: 800pxcol0" >OpAirline</td><td class="wikitablecol1"|-! scope>да</td><td class="col2">строка</td><td class="colcol3" width>Код авиакомпании, выполняющей рейс</td> </tr> <tr class="200row53" | Элемент>! scope <td class="colcol0" width>MarkAirline</td><td class="300col1" | Описание! scope>да</td><td class="colcol2" width>строка</td><td class="300col3" | Допустимые значения|-| Name| Обязательный. Наименование отеля.| Строка в произвольном формате.|-| Area| Необязательный. Описание места расположения отеля.| Строка в произвольном формате.|-| Location| Необязательный. Район города.| Строка в произвольном формате.|-| Desc| Необязательный. Описание отеля.| Строка в произвольном формате.|-| Address| Необязательный. Адрес отеля.| Строка в произвольном формате.|}>Код авиакомпании, продающей билет</td>
Элемент '''Phones''' </tr>{| style <tr class="width: 800pxrow54" > <td class="wikitablecol0"|-! scope>FlightNumber</td><td class="col1">да</td><td class="col2">число</td><td class="colcol3" width>Номер рейса</td> </tr> <tr class="200row55" | Элемент>! scope <td class="colcol0" width>AircraftType</td><td class="300col1" | Описание! scope>да</td><td class="colcol2" width>строка</td><td class="300col3" | Допустимые значения|-| Phone| Обязательный. Телефон.| Строка в произвольном формате.|}>Код типа самолёта</td>
Элемент '''Image''' </tr> <tr class="row56">{| style <td class="width: 800pxcol0" >DepDateTime</td><td class="wikitablecol1"|-! scope>да</td><td class="colcol2" width>строка</td><td class="200col3" | Элемент>Дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС</td>! scope </tr> <tr class="colrow57" width> <td class="300col0" | Описание! scope>ArrDateTime</td><td class="colcol1" width>да</td><td class="300col2" | Допустимые значения|-| Path| Необязательный. Путь к полному изображению.| Строка в произвольном формате.|-| Icon| Необязательный. Путь к миниатюре, иконке.| Строка в произвольном формате.|}>строка</divtd><td class="col3">Дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС</divtd>
</tr>
<tr class="row58">
<td class="col0">StopNum</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Число остановок</td>
</tr>
<tr class="row59">
<td class="col0">Meal</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Тип питания, возможные значения: UNDEFINED - неизвестно; N - Нет питания; P - Алкогольные напитки в продаже; B - Завтрак; O - Холодная еда; C - Бесплатные алкогольные напитки; K - Континтальный завтрак; D - Обед; F - Еда в продаже; G - Еда/напитки в продаже; H - Горячая еда; L - Ланч; M - Еда; R - Освежающие еда/напитки бесплатно; V - Освежающие еда/напитки за отдельную плату; S - Закуска</td>
</tr>
<tr class="row60">
<td class="col0">BookingCodes</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для классов перелёта</td>
</tr>
<tr class="row61">
<td class="col0">BookingCode</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код класса перелёта. Если производится поиск по расписанию, то может встречаться несколько раз.</td>
</tr> <tr class="row62"> <td class="col0">FlightTime</td><td class=API бронирования, аннуляции, войдирования авиабилетов"col1">нет</td><td class="col2">число</td><td class="col3">Время перелёта в минутах</td> </tr> <tr class="row63"> <td class="col0">TimeZone</td><td class= Подключение ="col1">нет</td><td class="col2 rightalign"> сложный</td><td class="col3">Информация о временных зона прибытия и отправления</td>
Получить доступ к результатам бронирования в данном сервисе можно через SOAP клиента. Для получения результата необходим параметр — «FlightId» — Id перелёта </tr> <tr class="row64"> <td class="col0">Departure</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Часовой пояс отправления, для которого будет производится бронирование. WSDL находится по адресу: http:UTC (смещение относительно Гринвича)</td> </tr> <tr class="row65"> <td class="col0">Arrival</CLIENT_DOMAINtd><td class="col1">да</nemoflightstd><td class="col2">число</wsdl.php?fortd><td class=BookFlight."col3">Часовой пояс прибытия, UTC (смещение относительно Гринвича)</td>
</tr> <tr class="row66"> <td class="col0">ETicket</td><td class= Общий формат запроса "col1">да</ ответа бронирования td><td class="col2">булевский</td><td class="col3 rightalign"> Индикатор электронного билета, возможные значения: true - билет является электронным, false - билет не является электронным.</td> </tr> <tr class="row67"> <td class="col0">Baggage</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Информация о багаже</td>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"/tr>===== Запрос ===== <div tr class="mw-collapsible-contentrow68"> <syntaxhighlight langtd class="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;col0">Measure<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight"td> <soapenv:Header/> <soapenv:Body> <ver:BookFlight> <RequestBin> <Request> <BookFlight> <FlightId>?</FlightId> <!--FlightId — Id перелёта в системе Nemo--> <!--Optional:--> <ValidatingCompany>?</ValidatingCompany> <!--необязательный--> <!--ValidatingCompany — валидирующий перевозчик (тот кто выписывает билет)--> <!--Optional:--> <BookingCodes> <!--Zero or more repetitions:--> <BookingCode Codetd class="?col1" SegNumber="?"/> <!--Code — код класса перелёта--> <!--SegNumber — номер сегмента в перелёте (начинаются с 1)--> да</BookingCodestd> <!--Optional:--> <CurrencyCode>?</CurrencyCode> <!--необязательный--> <!--CurrencyCode — код валюты--> <!--Optional:--> <TicketTimeLimit>?</TicketTimeLimit> <!--необязательный--> <!--TicketTimeLimit — таймлимит на оплату, формат: ГГГГ-ММ-ДДTЧЧ:ММ:СС--> <!--Optional:--> <Agency Nametd class="?col2"> <!--необязательный--> <!--Name — название агентства--> <Telephone Type="?"> <!--Type — тип номера, обязательный, возможные значения: M — мобильный, H — домашний, B — рабочий, A — агенство--> <!--Optional:--> <PhoneNumber>?строка</PhoneNumber> <!--PhoneNumber — номер телефона--td> <!--Optional:--> <CountryAccessCode>?</CountryAccessCode> <!--необязательный--> <!--CountryAccessCode — код страны--> <!--Optional:--> <AreaCityCode>?</AreaCityCode> <!--необязательный--> <!--AreaCityCode — код региона/города--> </Telephone> <Address City="?" State="?" StreetAddresstd class="?col3" PostalCode="?" CountryCode="?"/> <!--необязательный--> <!--City — город--> <!--State — штат--> <!--StreetAddress — адрес в городе (улица, дом, корпус, офис и тМера веса.д.)--> <!--PostalCode — почтовый индексK --> <!--CountryCode — код страны (RUкилограммы, UA и т.п.)PC --> <сумки/Agency> <Travellers> <!--Zero or more repetitions:--> <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?"> <!--Type — тип пассажира, обязательный, возможные значения: ADT — взрослые, CNN — дети со взрослыми,UNN — дети без сопровождения взрослых, INF — младенцы, INS — младенцы с местом--> клади<!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является, контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом, по умолчанию false--> <!--Num — порядковый номер пассажира, начинается с 1--> <!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок--> <!--необязательный--td> <!--TravellerId — устаревший параметр, не используется--> <Meal>? </Meal> <!--необязательный--tr> <!--Meal — код типа питания, возможные значения: NONE — отсутствует AVML — Азиатская вегетарианская кухня BLML — Блюда щадящей диеты CHML — Детское питание CHPC — Детский холодный завтрак СНСС — Детский горячий завтрак CHHC — Детский ланч, ветчина и сыр PBJS — Детский ланч, ореховое масло CHMC — Детский обед макароны с сыром DBML — Диабетическое питание FPML — Фрукты GFML — Питание без клейковины HFML — Питание богатое клетчаткой HNML — Индусская кухня BBML — Питание для младенцев KSML — Кошерная кухня SMKB — Кошерный завтрак SMKL — Кошерный ланч SMKD — Кошерный обед LPML — Малобелковое питание LCML — Низкокалорийное питание LFML — Низкохолестериновое питание PRML — Низкопуриновое питание LSML — Малосоленое питание MOML — Мюсли NLML — Безмолочные продукты ORML — Восточная кухня RVML — Сырые овощи SFML — Морепродукты SPML — Особое питание VLML — Вегетарианское, молоко и яйца VGML — Строго вегетарианское питание VJML — Джайнизское вегетарианское VOML — Восточное вегетарианское питание--> <PersonalInfo DateOfBirthtr class="?" Nationality="?" Gender="?row69"> <!--DateOfBirth — дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)--> <!--Nationality — гражданство, двух буквенный код страны (RU, UA, US и т.д.)--> <!--Gender — пол пассажира, возможные значения: M — мужской(Male), F — женский(Female)--> <FirstName>?</FirstName> <!--FirstName — имя пассажира--> <LastName>?</LastName> <!--LastName — фамилия пассажира--> <!--Optional:--> <MiddleName>?</MiddleName> <!--необязательный--> <!--MiddleName — отчество пассажира--> </PersonalInfo> <LoyaltyCard OpCode="?" Numbertd class="?col0"/> <!--необязательный--> <!--OpCode — код авиакомпании--> <!--Number — номер карточки--> <ContactInfo> <!--необязательный--> <!--Optional:--> <EmailID>?Value</EmailIDtd> <!--EmailID — контактный email--> <!--Optional:--> <Telephone Typetd class="?col1"> <!--Type — тип номера, возможные значения: M — мобильный, H — домашний, B — рабочий--> <!--Optional:--> <PhoneNumber>?да</PhoneNumbertd> <!--PhoneNumber — номер телефона--> <!--Optional:--> <CountryAccessCode>?</CountryAccessCode> <!--CountryAccessCode — код страны--> <!--Optional:--> <AreaCityCode>?</AreaCityCode> <!--AreaCityCode — код региона/города--> </Telephone> </ContactInfo> <DocumentInfo DocType="?" DocNumtd class="?col2" CountryCode="?" DocElapsedTime="?"/> <!--DocType — тип документа, возможные значения: Р — Паспорт A – Паспорт иностранца С — Внутренний гражданский паспорт F – Документ заменяющий паспорт М — Воинское удостоверение N – Сертификат натурализации(специфичный документ США) T – Док.повторного въезда, паспорт беженца V – Документ для пересечения границы--> строка<!--DocNum — номер документа--> <!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)--> <!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)--> <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/td> <!--необязательный--> <!--Num — номер визы--> <!--IssueDate — дата(ДД.ММ.ГГГГ) выдачи визы--> <!--IssueCountry — страна выдачи визы--> <!--IssuePlace — место выдачи визы--> <!--BirthCountry — страна рождения(IATA код страны)--> <!--BirthCity — город рождения(название)--> <ArrAddress City="?" State="?" StreetAddress="?" PostalCodetd class="?col3" CountryCode="?"/> <!--необязательный--> <!--City — город--> <!--State — штат или область въезда--> <!--StreetAddress — адрес: улица, номер дома, квартиры и т.д.--> <!--PostalCode — почтовый код--> <!--CountryCode — код страны--> <PreferedPlace SmokingAllowed="?" Location="?" RowNumber="?" PlaceNumber="?" SegNumber="?"/> <!--необязательный--> <!--Если указаны номер ряда и номер места, то параметры SmokingAllowed и Location игнорируются--> <!--SmokingAllowed — булевское значение, true — место для курящих, false — место для некурящих--> <!--Location — положение места в ряде, возможные значения: W — у окна (Window) M — где-то в середине ряда (Middle) NPW — возле прохода (NearPassengerWay) NS — нет предпочтения (NotSpecified)--> <!--RowNumber — номер ряда--> <!--PlaceNumber — номер места--> <!--SegNumber — номер сегмента--> <DocStringFormats> <!--Zero or more repetitions:--> <DocStringFormat>?</DocStringFormat> <!--DocStringFormat — формат паспортной строки, возможные значения: DOCS — строка формата DOCS, FOID — строка формата FOID--> </DocStringFormats> </Traveller> </Travellers> <!--Optional:--> <QueueNum>?</QueueNum> <!--необязательный--> <!--QueueNum — номер очереди, в которую необходимо поместить бронирование--> </BookFlight> </Request> <Source> <ClientId>?</ClientId> <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе "Администрирование" ? "Веб-служба. Авторизация".--> <APIKey>?</APIKey> <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе "Администрирование" ? "Веб-служба. Авторизация".--> <Language>?</Language> <!--Language — язык--> <Currency>?</Currency> <!-- CUrrency — валюта--> </Source> </RequestBin> </ver:BookFlight> </soapenv:Body></soapenv:Envelope></syntaxhighlight></div>Количество багажа</divtd>
<div /tr> <tr class="row70"> <td class="col0">PricingInfo</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Контейнер для информации о ценах. Отсутствует в случае, если производится поиск по расписанию.</td> </tr> <tr class="row71"> <td class="toccolours mw-collapsible mw-collapsedcol0">Refundable</td><td class="col1">да</td><td class="col2" style>булевский</td><td class="widthcol3">Индикатор показывающий является ли билет возвратным или нет, возможные значения:1000px"true - возвратный (нет штрафов за возврат), false - невозвратный (могут быть штрафы за возврат)</td>
===== Ответ ===== <div class="mw-collapsible-content"><syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"tr> <SOAP-ENV:Body> <ns1:BookFlightResponse> <ResponseBin> <Response> <BookFlight IDtr class="?" Status="?" Code="?row72"> <!--ID — Id брони в системе Nemo, целое число, обязательный--> <!--Status — индикатор состояния брони, возможные значения: booked — забронировано, canceled — бронь отменена, ticket — выписана UNDEFINED — статус не определён--> <!--Code — код брони в системе поставщика--> <QueryPlace xsi:niltd class="truecol0"/> <!--QueryPlace — положение брони в очереди, Number — номер брони в очереди--> <Flight FlightId="?"> <!--FlightId — Id перелёта в системе Nemo--> <WebService>?PassengerFare</WebServicetd> <!--WebService — поставщик перелёта--> <ValCompany>?</ValCompany> <!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA--> <URL>?</URL> <!--URL — ссылка на бронирование конкретного перелета--> <Segments> <Segment SegNum="?" SegGroupNum="?"> <!--SegNum — номер сегмента в перелёте--> <!--SegGroupNum – номер плеча перелёта--> <DepAirp CodeTypetd class="IATAcol1">?да</DepAirptd> <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва или SVO — Шереметьево--> <DepTerminal>?</DepTerminal> <!--DepTerminal — терминал пункта отправления, если пустое значение, то в аэропорту всего 1 терминал--> <ArrAirp CodeTypetd class="IATAcol2">?сложный</ArrAirptd> <!--ArrAirp — аэропорт прибытия--> <ArrTerminal>?</ArrTerminal> <!--ArrTerminal — терминал пункта прибытия, если пустое значение, то в аэропорту всего 1 терминал--> <OpAirline>?</OpAirline> <!--OpAirline — авиакомпания перевозчик, например: SU — Аэрофлот--> <MarkAirline>?</MarkAirline> <!--MarkAirline — авиакомпания, продающая перелёт--> <FlightNumber>?</FlightNumber> <!--FlightNumber — номер рейса--> <AircraftType>?</AircraftType> <!--AircraftType — тип воздушного судна, код--> <DepDateTime>?</DepDateTime> <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> <ArrDateTime>?</ArrDateTime> <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> <StopNum>?</StopNum> <!--StopNum — количество остановок--> <BookingCodes> <BookingCode ClassTypetd class="?col3"> <!--ClassType — класс перелета, например: economy--> <BookingCode>?</BookingCode> <!--BookingCode — код класса бронирования, у разных авиакомпаний один и тот же класс может записываться разными литерами, например: L--> </BookingCode> </BookingCodes> <FlightTime>?</FlightTime> <!--FlightTime — время перелёта в минутах--> <TimeZone Departure="?" Arrival="?"/> <!--Departure временная зона аэропорта отправления--> <!--Arrival — временная зона аэропорта прибытия--> <ETicket>?</ETicket> <!--ETicket — признак электронного билета, значения: true / false--> </Segment> </Segments> <PricingInfo Refundable="?"> <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно--> <PassengerFare Type="?" Quantity="?"> <!--Type — тип пассажира, возможные значения: ADT — взрослые, CNN — дети, INF — младенцы, INS — младенцы с местом--> <!--Quantity — количество Информация о ценах для конкретного типа пассажиров данного типа--> <BaseFare Currency="?" Amount="?"/> <!--BaseFare — базовая стоимость, в базовой валюте. Currency — код валюты, Amount — значение цены--> <EquiveFare Currency="?" Amount="?"/td> <!--EquiveFare — базовая стоимость, в эквивалентной валюте(валюте продажи). Currency — код валюты, Amount — значение цены--> <TotalFare Currency="?" Amount="?"/tr> <!--TotalFare — суммарная стоимость, в эквивалентной валюте. Currency — код валюты, Amount — значение цены--> <Taxes> <Tax CurCode="?" TaxCode="?" Amounttr class="?row73"/> <!--CurCode — код валюты, TaxCode — код таксы, Amount — сумма таксы--> </Taxes> <Tariffs> <Tariff Code="?" SegNumtd class="?col0"/> <!--Code — код тарифа, SegNum — номер сегмента, к которому применён тариф--> Quantity</Tariffstd> <FareCalc>?</FareCalc> <!--FareCalc — строка расчёта цены--> <LastTicketDateTime>?</LastTicketDateTime> <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> </PassengerFare> </PricingInfo> <Commission/> <Charges Currencytd class="?col1">?да</Chargestd> <!--Charges — сборы, Currency — код валюты--> <TotalPrice Currencytd class="?col2">?число</TotalPricetd> <!--TotalPrice — итоговая цена, Currency — код валюты--> </Flight> <Agency Name="?"> <!--Name — название агентства--> <Telephone Type="?"> <!--Type — тип номера, обязательный, возможные значения: M — мобильный, H — домашний, B — рабочий, A — агенство--> <!--Optional:--> <PhoneNumber>?</PhoneNumber> <!--PhoneNumber — номер телефона--> <!--Optional:--> <CountryAccessCode>?</CountryAccessCode> <!--CountryAccessCode — код страны--> <!--Optional:--> <AreaCityCode>?</AreaCityCode> <!--AreaCityCode — код региона/города--> </Telephone> <Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--City — город--> <!--State — штат--> <!--StreetAddress — адрес в городе (улица, дом, корпус, офис и т.д.)--> <!--PostalCode — почтовый индекс--> <!--CountryCode — код страны (RU, UA и т.п.)--> </Agency> <ItinReceipts Encodingtd class="?" Format="?col3"> <!--ItinReceipts — маршрут квитанция, Encoding — кодировка, Format — формат--> <FareStored xsi:nil="true"/> <Travellers> <!--Zero or more repetitions:--> <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?"> <!--Type — тип пассажира, обязательный, возможные значения: ADT — взрослые, CNN — дети со взрослыми,UNN — дети без сопровождения взрослых, INF — младенцы, INS — младенцы с местом--> <!--IsContact — если true — то данный пассажир является контактным лицом, если false — то не является, контактное лицо может быть только 1, если среди Число пассажиров есть взрослые, то только кто-то из них может быть контактным лицом, по умолчанию false--> <!--Num — порядковый номер пассажира, начинается с 1--> <!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок--> <!--TravellerId — устаревший параметр, не используется--> <Meal>?</Meal> <!--Meal — код данного типа питания, возможные значения: NONE — отсутствует AVML — Азиатская вегетарианская кухня BLML — Блюда щадящей диеты CHML — Детское питание CHPC — Детский холодный завтрак СНСС — Детский горячий завтрак CHHC — Детский ланч, ветчина и сыр PBJS — Детский ланч, ореховое масло CHMC — Детский обед макароны с сыром DBML — Диабетическое питание FPML — Фрукты GFML — Питание без клейковины HFML — Питание богатое клетчаткой HNML — Индусская кухня BBML — Питание для младенцев KSML — Кошерная кухня SMKB — Кошерный завтрак SMKL — Кошерный ланч SMKD — Кошерный обед LPML — Малобелковое питание LCML — Низкокалорийное питание LFML — Низкохолестериновое питание PRML — Низкопуриновое питание LSML — Малосоленое питание MOML — Мюсли NLML — Безмолочные продукты ORML — Восточная кухня RVML — Сырые овощи SFML — Морепродукты SPML — Особое питание VLML — Вегетарианское, молоко и яйца VGML — Строго вегетарианское питание VJML — Джайнизское вегетарианское VOML — Восточное вегетарианское питание--> <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?"> <!--DateOfBirth — дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)--> <!--Nationality — гражданство, двух буквенный код страны (RU, UA, US и т.д.)--> <!--Gender — пол пассажира, возможные значения: M — мужской(Male), F — женский(Female)--> <FirstName>?</FirstName> <!--FirstName — имя пассажира--> <LastName>?</LastName> <!--LastName — фамилия пассажира--> <!--Optional:--> <MiddleName>?</MiddleName> <!--MiddleName — отчество пассажира--> </PersonalInfo> <LoyaltyCard OpCode="?" Number="?"/> <!--OpCode — код авиакомпании--> <!--Number — номер карточки--> <ContactInfo> <!--Optional:--> <EmailID>?</EmailID> <!--EmailID — контактный email--> <!--Optional:--> <Telephone Type="?"> <!--Type — тип номера, возможные значения: M — мобильный, H — домашний, B — рабочий--> <!--Optional:--> <PhoneNumber>?</PhoneNumber> <!--PhoneNumber — номер телефона--> <!--Optional:--> <CountryAccessCode>?</CountryAccessCode> <!--CountryAccessCode — код страны--> <!--Optional:--> <AreaCityCode>?</AreaCityCode> <!--AreaCityCode — код региона/города--> </Telephone> </ContactInfo> <DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/> <!--DocType — тип документа, возможные значения: Р — Паспорт A – Паспорт иностранца С — Внутренний гражданский паспорт F – Документ заменяющий паспорт М — Воинское удостоверение N – Сертификат натурализации(специфичный документ США) T – Док.повторного въезда, паспорт беженца V – Документ для пересечения границы--> <!--DocNum — номер документа--> <!--CountryCode — двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)--> <!--DocElapsedTime — срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)--> <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/> <!--Num — номер визы--> <!--IssueDate — дата(ДД.ММ.ГГГГ) выдачи визы--> <!--IssueCountry — страна выдачи визы--> <!--IssuePlace — место выдачи визы--> <!--BirthCountry — страна рождения(IATA код страны)--> <!--BirthCity — город рождения(название)--> <ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--City — город--> <!--State — штат или область въезда--> <!--StreetAddress — адрес: улица, номер дома, квартиры и т.д.--> <!--PostalCode — почтовый код--> <!--CountryCode — код страны--> <PreferedPlace SmokingAllowed="?" Location="?" RowNumber="?" PlaceNumber="?" SegNumber="?"/> <!--Если указаны номер ряда и номер места, то параметры SmokingAllowed и Location игнорируются--> <!--SmokingAllowed — булевское значение, true — место для курящих, false — место для некурящих--> <!--Location — положение места в ряде, возможные значения: W — у окна (Window) M — где-то в середине ряда (Middle) NPW — возле прохода (NearPassengerWay) NS — нет предпочтения (NotSpecified)--> <!--RowNumber — номер ряда--> <!--PlaceNumber — номер места--> <!--SegNumber — номер сегмента--> <DocStringFormats> <!--Zero or more repetitions:--> <DocStringFormat>?</DocStringFormat> <!--DocStringFormat — формат паспортной строки, возможные значения: DOCS — строка формата DOCS, FOID — строка формата FOID--> </DocStringFormats> </Traveller> </Travellers> </BookFlight> <Requisites/> <RequestType xsi:nil="true"/> <UserID xsi:nil="true"/> <Errors> <Error Code="?"> <!--Code — код ошибки в системе Nemo--> <ServiceErrorMessage>?</ServiceErrorMessage> <!--ServiceErrorMessage — сообщение об ошибке полученное от веб-сервиса поставщика--> <Message>?</Message> <!--Message — сообщение об ошибке от системы Nemo--> </Error> </Errors> </Response> </ResponseBin> </ns1:BookFlightResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlight></div></divtd>
</tr> <tr class="row74"> <td class="col0">BaseFare</td><td class= Пример использования "col1">да</td><td class="col2">сложный</td><td class="col3">Цена в базовой валюте(за одного пассажира)</td> </tr> <tr class="row75"> <td class="col0">EquiveFare</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Цена в эквивалентной валюте(за одного пассажира), при поиске цены не возвращается</td>
Пример одностороннего перелета Москва — Мадрид </tr> <tr class="row76"> <td class="col0">TotalFare</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Полная стоимость для пассажиров данного типа включая таксы (за одного пассажира), при поиске цены не возвращается</td> </tr> <tr class="row77"> <td class="col0">Currency</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Трёх буквенный код валюты.</td>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"/tr>===== Запрос ===== <div tr class="mw-collapsible-contentrow78"> <syntaxhighlight lang="xml" line enclose="div" styletd class="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;col0">Amount<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vertd><td class="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlightcol1"> да<soapenv:Header/td> <soapenv:Body> <ver:BookFlighttd class="col2"> <RequestBin> <Request> <BookFlight> <FlightId>171430002число с плавающей точкой</FlightIdtd> <BookingCodes> <!--Zero or more repetitions:--> <BookingCode Codetd class="Ecol3" SegNumber="2"/> Значение стоимости.</BookingCodestd> <Travellers/tr> <!--Zero or more repetitions:--> <Traveller Typetr class="ADT" IsContact="true" Num="1row79"> <PersonalInfo DateOfBirth="20.05.1980" Nationalitytd class="RU" Gender=col0"M"> <FirstName>PetrTaxes</FirstNametd> <LastName>Ivanov</LastNametd class="col1"> нет</PersonalInfotd> <ContactInfo> <!--Optional:--> <EmailID>testmail@mail.ru</EmailID> <!--Optional:--> <Telephone Typetd class="Mcol2"> <!--Optional:--> <PhoneNumber>79051234567сложный</PhoneNumbertd> </Telephone> </ContactInfo> <DocumentInfo DocType="A" DocNum="123456" CountryCodetd class="RU" DocElapsedTime=col3"01.01.2020"/> </Traveller> </Travellers> </BookFlight> </Request> <Source> <ClientId>---</ClientId> <APIKey>---</APIKey> <Language>RU</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:BookFlight> </soapenv:Body></soapenv:Envelope></syntaxhighlight></div>Контейнер для такс, при поиске цены не возвращается</divtd>
<div /tr> <tr class="row80"> <td class="col0">Tax</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Одна такса</td> </tr> <tr class="row81"> <td class="col0">CurCode</td><td class="toccolours mw-collapsible mw-collapsedcol1" style>да</td><td class="width:1000pxcol2">строка</td><td class="col3">Трёх буквенный код валюты для таксы</td>
===== Ответ =====<div class="mw-collapsible-content"><syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"tr> <SOAP-ENV:Body> <ns1:BookFlightResponse> <ResponseBin> <Response> <BookFlight IDtr class="262872" Status="booked" Code="LQHZWUrow82"> <QueryPlace xsi:niltd class="truecol0"/> <Flight FlightId="171430002"> <WebService>SABRETaxCode</WebServicetd> <ValCompany>SU</ValCompany> <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D14290%26flight%3D171430002</URL> <Segments> <Segment SegNum="1" SegGroupNumtd class="0col1"> <DepAirp CodeType="IATA">SVOда</DepAirptd> <DepTerminal>D</DepTerminal> <ArrAirp CodeTypetd class="IATAcol2">BCNстрока</ArrAirptd> <ArrTerminal>1</ArrTerminal> <OpAirline>SU</OpAirline> <MarkAirline>SU</MarkAirline> <FlightNumber>2512</FlightNumber> <AircraftType>321</AircraftType> <DepDateTime>2014-03-20T20:40:00</DepDateTime> <ArrDateTime>2014-03-20T22:20:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassTypetd class="economycol3"> <BookingCode>EКод таксы</BookingCodetd> </BookingCodetr> </BookingCodes> <FlightTime>280</FlightTime> <TimeZone Departure="4" Arrivaltr class="1row83"/> <ETicket>true</ETicket> </Segment> <Segment SegNum="2" SegGroupNum="0"> <DepAirp CodeTypetd class="IATAcol0">BCN</DepAirp> <DepTerminal>1</DepTerminal> <ArrAirp CodeType="IATA">MAD</ArrAirp> <ArrTerminal>2</ArrTerminal> <OpAirline>UX</OpAirline> <MarkAirline>SU</MarkAirline> <FlightNumber>3403</FlightNumber> <AircraftType>738</AircraftType> <DepDateTime>2014-03-21T12:05:00</DepDateTime> <ArrDateTime>2014-03-21T13:25:00</ArrDateTime> <StopNum>0</StopNum> <BookingCodes> <BookingCode ClassType="economy"> <BookingCode>E</BookingCode> </BookingCode> </BookingCodes> <FlightTime>80</FlightTime> <TimeZone Departure="1" Arrival="1"/> <ETicket>true</ETicket> </Segment> </Segments> <PricingInfo Refundable="false"> <PassengerFare Type="ADT" Quantity="1"> <BaseFare Currency="EUR" Amount="165"/> <EquiveFare Currency="RUB" Amount="8335"/td> <TotalFare Currencytd class="RUBcol1" Amount="14025"/> <Taxes> да<Tax CurCode="RUB" TaxCode="YQF" Amount="4242"/td> <Tax CurCodetd class="RUBcol2" TaxCode="YRI" Amount="374"/> число с плавающей точкой<Tax CurCode="RUB" TaxCode="JD" Amount="844"/td> <Tax CurCodetd class="RUBcol3" TaxCode="QV" Amount="230"/> </Taxes> <Tariffs/> <FareCalc>MOW SU X/BCN SU MAD225.45NUC225.45END ROE0.731857</FareCalc> <LastTicketDateTime>2014-03-14T12:45:00</LastTicketDateTime> </PassengerFare> </PricingInfo> <Commission Currency="RUB">0</Commission> <Charges Currency="RUB">140.25</Charges> <TotalPrice Currency="RUB">14165.25</TotalPrice> </Flight> <Agency/> <ItinReceipts xsi:nil="true"/> <FareStored xsi:nil="true"/> <Travellers> <Traveller Type="ADT" IsContact="true" Num="1"> <Meal/> <Ticket/> <Seats/> <PersonalInfo DateOfBirth="20.05.1980" Nationality="RU" Gender="M"> <FirstName>PETR</FirstName> <LastName>IVANOV</LastName> <MiddleName/> </PersonalInfo> <LoyaltyCard/> <ContactInfo> <EmailID>TESTMAIL@MAIL.ru</EmailID> <Telephone Type="M"> <PhoneNumber>79051234567</PhoneNumber> <CountryAccessCode/> <AreaCityCode/> </Telephone> </ContactInfo> <DocumentInfo DocType="A" DocNum="123456" CountryCode="RU" DocElapsedTime="01.01.2020"/> <VisaInfo/> <ArrAddress/> <PreferedPlace/> <DocStringFormats/> </Traveller> </Travellers> </BookFlight> <Requisites/> <RequestType xsi:nil="true"/> <UserID xsi:nil="true"/> <Errors xsi:nil="true"/> </Response> </ResponseBin> </ns1:BookFlightResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlight></div>Значение таксы</divtd>
</tr> <tr class="row84"> <td class="col0">Tariffs</td><td class= Общий формат запроса "col1">да</ ответа отмены бронирования td><td class="col2">сложный</td><td class="col3">Контейнер для тарифов</td> </tr> <tr class="row85"> <td class="col0">Tariff</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для одного тарифа</td>
После бронирования </tr> <tr class="row86"> <td class="col0">Code</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код тарифа</td> </tr> <tr class="row87"> <td class="col0">SegNum</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер сегмента для которого применяется тариф, если не истек таймлимит можно аннулировать сделанный заказ. Аннуляция заказа в Nemo может быть ручной (сделанной пользователем) и автоматической — по истечению таймлимитатариф применяется для всех сегментов, установленного для заказа система сама аннулирует заказто возвращается 0.</td>
WSDL: http: </tr> <tr class="row88"> <td class="col0">FareCalc</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Строка расчёта цены</td> </tr> <tr class="row89"> <td class="col0">LastTicketDateTime</CLIENT_DOMAINtd><td class="col1">да</nemoflightstd><td class="col2">строка</wsdltd><td class="col3">Дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС.php?for=CancelBookЕсли бронирование не будет аннулировано или выписано до этого времени, то могут быть применены штрафы.</td>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">===== Запрос =====<div class="mw-collapsible-content"><syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DCancelBook"> <soapenv:Header/> <soapenv:Body> <ver:CancelBook> <RequestBin> <Request> <CancelBook BookID="?"/> <!--BookID — Id брони в системе Nemo, целое число--> </Request> <Source> <ClientId>?</ClientId> <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе "Администрирование" ? "Веб-служба. Авторизация".--> <APIKey>?</APIKey> <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе "Администрирование" ? "Веб-служба. Авторизация".--> <Language>?</Language> <!--Language — язык--> <Currency>?</Currency> <!-- CUrrency — валюта--> </Source> </RequestBin> </ver:CancelBook> </soapenv:Body> </soapenv:Envelopetr></syntaxhighlighttable>
</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">===== Ответ ===API Отелей==<div class="mw'''Агентский API Отелей''' -collapsible-content"><syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DCancelBook" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:CancelBookResponse> <ResponseBin> <Response> <CancelBook BookID="?"> <!--BookID — Id брони в системе Nemoсистема, которая предоставляет возможность поиска и бронирования отелей а так же получение информации о времени и размерах штрафов, целое число--> <Result Success="?"/> <!--Success — результат отмены брониуникальной информации об отеле, true или false--> </CancelBook> <Requisites/> <RequestType xsi:nil="true"/> <UserID xsi:nil="true"/> <Errors xsi:nil="true"/> </Response> </ResponseBin> </ns1:CancelBookResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlight></div></div>получение статической информации.
==API бронирования, отмены Подробнее можно узнать в нашей специальной статье [http://support.nemo.travel/ru/%D0%90%D0%B3%D0%B5%D0%BD%D1%82%D1%81%D0%BA%D0%B8%D0%B9_API_%D0%9E%D1%82%D0%B5%D0%BB%D0%B5%D0%B9 Агентский АПИ отелей==]
==== Штрафы за аннуляцию ====
Всегда в явном виде нужно указывать пользователю информацию о штрафах за аннуляцию до бронирования.
Штрафы получаются по каждой услуге отдельным запросом. Нужно указать тип услуги, идентификатор результата поиска и выбранную категорию.==Выгрузки статистики продаж через API (Метапоиск)==
Внимание. Для отелей из Hotelbeds '''Метапоисковая система''' (Supplier=HOTELBEDSметапоисковая машина, метапоисковик) штрафы до бронирования получить невозможно— это поисковая система, которая в отличие от классических поисковых машин не имеет собственной базы данных и собственного поискового индекса, а формирует поисковую выдачу за счет смешивания и переранжирования результатов поиска других поисковых систем.
'''WSDL''' В разделе статистики заказов из метапоисков можно получить данные по статистике метапоиска (тестовый серверпо источнику переходов модуля метрики): http:<u>за определенный период бронирования заказов<//tst.nemo-ibe.com/wsdev/wsdlu> в виде файла данных в формате XML.php?for=Penalty
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">===== Запрос =====<div class="mw-collapsible-content"><syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><soapenv:Envelope xmlns:soapenv="http://schemasМожно получить список заказов с их статусом (забронирован, выписан, аннулирован), сделанных через метапоисковую систему.xmlsoap.org/soap/envelope/" xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DPenalty"> <soapenv:Header/> <soapenv:Body> <ver:penalty> <RequestBin> <Request> <Penalty> <Item> <Type>HOTELS</Type> <CacheId>1867246</CacheId> <CategoryId>1</CategoryId> </Item> </Penalty> </Request> <Source> <ClientId></ClientId> <APIKey></APIKey> <Language>ru</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:penalty> </soapenv:Body></soapenv:Envelope></syntaxhighlight>
Элемент '''Item'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Type| Обязательный. Тип объекта.| HOTELS|-| CacheId| Обязательный. Идентификатор результата поиска Подробнее можно узнать в системе Nemo.| Целое число|-| CategoryId| Обязательный. Идентификатор категории.| Целое число|}статье посвященной взаимодействию с метопоисковиками [[Взаимодействие с метапоисковиками]]
Элемент ==Выгрузка информации о заказах =='''SourceВыгрузка заказов'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| ClientID| Обязательный— это экспорт данных заказа или заказов для различных компонентов системы Nemo. ID клиента в Модуль позволяет внешней системе Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemoполучать данные по заказам для дальнейшей обработки.Можно посмотреть/добавить Подробнее о процессе выгрузки, настройках, форматах выгрузки для различных компонент можно прочитать в "Администрирование" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.|}</div></div>статье [[Выгрузка]]
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">API Синхронизации пользователей и субагентов ===== Ответ =====<div class="mw-collapsible-content"><syntaxhighlight lang="xml" line enclose="div" style=Назначение данного модуля — обеспечение взаимодействия между сторонней программой (например, системой автоматизации туроператора "fontСАМО-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;тур"><SOAP) и Nemo в части синхронизации списка B2B-ENV:Envelope xmlns:SOAP-ENV="http://schemasпользователей.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DPenalty"> <SOAP-ENV:Body> <ns1:penaltyResponse> <ResponseBin> <Response> <Penalty> <ItemDateBegin>2013-10-15 00:00:00</ItemDateBegin> <CancelCharges> <Charge> <DateFrom>2013-10-12 00:00:00</DateFrom> <DateTo>2013-10-15 23:59:59</DateTo> <Money Currency="RUB">74733Модуль является компонентом, включаемым и отключаемым из административной части.84</Money> </Charge> <Charge> <DateFrom>2013-09-23 00:00:00</DateFrom> <DateTo>2013-10-11 00:00:00</DateTo> <Money Currency="RUB">67260.46</Money> </Charge> <Charge> <DateFrom>2013-08-01 17:59:00</DateFrom> <DateTo>2013-09-22 00:00:00</DateTo> <Money Currency="RUB">12455.64</Money> </Charge> </CancelCharges> <ModifyCharges/> </Penalty> </Response> </ResponseBin> </ns1:penaltyResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlight>
Элемент '''Penalty'''{| style="width: 800px" class="wikitable"|О механизме авторизации B2B-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| ItemDateBegin| Обязательный. Дата начала услуги (дата заселения пользователей, синхронизации учетных записей можно прочитать в отель).| Формат гггг-мм-дд чч:мм:сс|-| CancelCharges| Необязательный. Содержит информацию о штрафах за аннуляцию.| Элемент Charge|-| ModifyCharges| Необязательный. Содержит информацию о штрафах за модификацию.| Элемент Charge|}статье [[Синхронизация пользователей]]
Штрафы разбиваются по временным интервалам. На каждом интервале указывается значение штрафа.==API Кросс­авторизации== Элемент '''ChargeАвторизация пользователей из внешних систем'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| DateFrom| Обязательный— Система Nemo позволяет обращаться к ней как базе пользователей для авторизации из других систем (например форума на сайте, собственного ПО компании и т. Дата/время начала интервала.| Формат гггг-мм-дд чч:мм:сс|-| DateTo| Необязательный. Дата/время окончания интервала.| Формат гггг-мм-дд чч:мм:сс|-| Money| Обязательный. Сумма штрафа.| Вещественное число.Атрибут: Currency - код валюты.|}</div></div>п)
Для этого нужно подключиться к веб-службе авторизации, WSDL-описание которой располагается по адресу:
[http://hostname/authorization_reol.wsdl http://hostname/authorization_reol.wsdl]
==== Бронирование ====
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
===== Запрос =====
<div class="mw-collapsible-content">
Схема запроса позволяет указывать несколько услуг для бронирования сразу. Это было сделано с заделом на возможность расширения функциональности в будущем при сохранении совместимости.
Сейчас же необходимо указывать только <pre>?xml version ='1 услугу.0' encoding ='UTF-8' ?><definitions name='Authorization' targetNamespace='http://example.org/Authorization' xmlns:tns=' http://example.org/Authorization ' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' xmlns='http://schemas.xmlsoap.org/wsdl/'> <message name='getAuthorizationRequest'> <part name='login' type='xsd:string'/> <part name='pass' type='xsd:string'/></message><message name='getAuthorizationResponse'> <part name='session_id' type='xsd:string'/> <part name='user_id' type='xsd:string'/> <part name='login' type='xsd:string'/> <part name='status' type='xsd:string'/></message> <portType name='AuthorizationPortType'> <operation name='getAuthorization'> <input message='tns:getAuthorizationRequest'/> <output message='tns:getAuthorizationResponse'/> </operation></portType> <binding name='AuthorizationBinding' type='tns:AuthorizationPortType'> <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/> <operation name='getAuthorization'> <soap:operation soapAction='urn:xmethods-отель (элемент Item) в запросе на бронированиеdelayed-quotes#getAuthorization'/> <input> <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> </input> <output> <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> </output> </operation></binding> <service name='AuthorizationService'> <port name='AuthorizationPort' binding='AuthorizationBinding'> <soap:address location='http://nemo.local/controllers/authorization/auth_server.php'/> </port></service></definitions></pre></div></div>
Для успешного запроса нужно указать:#Услугу. В запросе не требуется перечислять все параметры из результатов ==Передача параметров в форму поиска, достаточно указать уникальный ID результата.#Информация о клиентах. Все клиенты перечисляются в отдельной ветке и нумеруются по порядку. Указатели (элементы с номером клиентаFastSearch), также добавляются в описание услуги.#Заказчик. Указатель на одну персону.==
'''WSDL''' (тестовый сервер): http://tstВ системе Nemo имеется возможность перенаправлять пользователей на страницу с уже заполненными параметрами поиска или сразу напрямую на результаты поиска.nemo-ibe.com/wsdev/wsdl.php?for=Booking
<syntaxhighlight lang="xml" line enclose="div" style="fontПримеры FastSearch запросов и используемые переменные подробно описаны в статье [[FastSearch -size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DBooking"> <soapenv:Header/> <soapenv:Body> <ver:booking> <RequestBin> <Request> <Booking> <Items> <!--Zero or more repetitions:--> <Item> <!--You have a CHOICE of the next 3 items at this level--> <HotelBookData> <CacheId>1872666</CacheId> <CategoryId>1</CategoryId> <Rooms> <!--Zero or more repetitions:--> <Room Id="2"> <Persons> <!--Zero or more repetitions:--> <Person Number="1"/> <Person Number="2"/> </Persons> </Room> <Room Id="1"> <Persons> <!--Zero or more repetitions:--> <Person Number="3"/> </Persons> </Room> </Rooms> </HotelBookData> <Customer> <Person Number="1"/> </Customer> </Item> </Items> <Persons> <!--Zero or more repetitions:--> <Person Number="1" Type="ADT"> <!--Optional:--> <Lastname>IVANOV</Lastname> <!--Optional:--> <Name>IVAN</Name> <!--Optional:--> <Middlename>IVANOVICH</Middlename> <!--Optional:--> <DateOfBirth>1987-12-12</DateOfBirth> <!--Optional:--> <Phone>+79871231212</Phone> <!--Optional:--> <Email>m.rudenko@mute-lab.com</Email> <!--Optional:--> <Gender>MR</Gender> <!--Optional:--> <Document Type="P"> <Series>1811</Series> <Number>912219</Number> <!--Optional:--> <IssueDate>2012-12-12</IssueDate> <!--Optional:--> <ExpiryDate>2014-12-12</ExpiryDate> </Document> </Person> <Person Number="2" Type="CHD"> <!--Optional:--> <Lastname>PETROV</Lastname> <!--Optional:--> <Name>IVAN</Name> <!--Optional:--> <Middlename>MIKHAILOVICH</Middlename> <!--Optional:--> <DateOfBirth>2008-12-12</DateOfBirth> <!--Optional:--> <Phone>+79871231212</Phone> <!--Optional:--> <Email>m.rudenko@mute-lab.com</Email> <!--Optional:--> <Gender>MR</Gender> <!--Optional:--> <Document Type="P"> <Series>1866</Series> <Number>913319</Number> <!--Optional:--> <IssueDate>2012-12-12</IssueDate> <!--Optional:--> <ExpiryDate>2014-12-12</ExpiryDate> </Document> </Person> <Person Number="3" Type="ADT"> <!--Optional:--> <Lastname>SIDOROV</Lastname> <!--Optional:--> <Name>IVAN</Name> <!--Optional:--> <Middlename>SERGEEVICH</Middlename> <!--Optional:--> <DateOfBirth>1987-12-12</DateOfBirth> <!--Optional:--> <Phone>+79871231212</Phone> <!--Optional:--> <Email>m.rudenko@mute-lab.com</Email> <!--Optional:--> <Gender>MR</Gender> <!--Optional:--> <Document Type="P"> <Series>1866</Series> <Number>913319</Number> <!--Optional:--> <IssueDate>2012-12-12</IssueDate> <!--Optional:--> <ExpiryDate>2014-12-12</ExpiryDate> </Document> </Person> </Persons> </Booking> </Request> <Source> <ClientId></ClientId> <APIKey></APIKey> <Language>ru</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:booking> </soapenv:Body></soapenv:Envelope></syntaxhighlight>передача параметров в форму]]
Элемент '''Booking'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Items| Обязательный. Массив элементов Item.| Элемент Item|-| Customer| Обязательный. Элемент установки заказчика.| &nbsp;|-| Persons| Обязательный. Массив клиентов.| &nbsp;|}FastSearch так же работает и для отелей, подробности в статье [[Fast Search для отелей]]
Данные об услугах записываются в элементы &lt;Item&gt;. Элемент '''Item'''{| style="width: 800px" class="wikitable"|-<! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| HotelBookData| Обязательный. В зависимости от типа объекта бронирования. В данный момент возможно указать только данные для отеля.| &nbsp;|-| Persons| НеобязательныйТ. Привязка клиентов к услуге. Если не указаныэто внутренний формат обмена данными между Немо и одним клиентом, будут привязаны все из указанных то данную инфу скроем в главном элементе Booking.| [<Person Number=''"1"'' />]|} <u>Бронирование отеля.</u>Для бронирования отеля необходимы следующие параметры:# ID результата поиска - один отель# ID выбранной категории этого отеля# Распределение клиентов по комнатам. Элемент '''HotelBookData'''{| style="width: 800px" class="wikitable"|-комментарии! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| CacheId| Обязательный. Идентификатор результата поиска для данного отеля Проверка в сторонней системе Nemo.| Целое число|-| CategoryId| Обязательный. Идентификатор категории.| Целое число|-| Rooms| Обязательный. Распределение клиентов по комнатам.| Список элементов Room|-| Room| Атрибут IdИд комнаты из результата поиска Элемент Persons| Целое число|-| Persons| Обязательный.Список людей| Список элементов Person|-| Person| Обязательный.Атрибут NumberНомер пассажира из Booking ->Persons->Person->Number| Целое число|} <u>Информация о клиентах.</u>Для успешного завершения бронирования нужно указать как минимум одного клиента. Максимальное число клиентов в текущей версии не ограничено. Набор обязательных данных может меняться в зависимости от типов услуг в бронировании. Рекомендуемый набор обязательных параметров: Lastname, Name, DateOfBirth. Остальные обязательные параметры будут устанавливаться индивидуально при подключении к сервису. Элемент '''Person'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Атрибут Number| Обязательный. Номер клиента, необходим для правильной привязки к услугам.| Целое число|-| Type| Обязательный.Тип пассажира.| Строка.Возможные значения:ADTCLDINF|-| Lastname| Фамилия.| Строка в произвольном формате.|-| Name| Имя.| Строка в произвольном формате.|-| Middlename| Отчество.| Строка в произвольном формате.|-| DateOfBirth| Дата рождения.| Формат гггг-мм-дд.|-| Phone| Телефон.Рекомендуемый формат:+79871234567| Строка|-| Email| Электронный адрес.| Строка|-| Gender| Пол.| MR - мужчина,MS - женщина.|-| Document| Документ| Элемент Document|} Для некоторых услуг может потребоваться информация о документах. Элемент '''Document'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scopeвозможности тикетинга="col" width="300" | Допустимые значения|-| Атрибут Type| Обязательный. Тип документа.| P - загранпаспортC - внутренний гражданский паспортB - свидетельство о рождении|-| Series| Необязательный. Серия документа. Можно указать слитно с номером в Number.| Строка в произвольном формате|-| Number| Обязательный. Номер документа.| Строка в произвольном формате|-| IssueDate| Необязательный. Дата выдачи документа.| Формат гггг-мм-дд|-| ExpiryDate| Необязательный. Дата истечения срока действия документа.| Формат гггг-мм-дд|} Элемент '''Source'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.|}</div></div>
<div class=При выписки билета через стороннюю систему 1С, отправляется запрос "toccolours mw-collapsible mw-collapsedGetDebtCounterparty" style=, который спрашивает, можно ли с счета в 1С списать средства для оплаты. В ответе содержится заключение от 1С, в случае если ошибок нет, то в ответе будет <pre><m:Opportunity>Да</m:Opportunity></pre>Пример запроса "width:1000pxGetDebtCounterparty"<pre><?xml version===== Ответ =====<div class"1.0" encoding="mw-collapsibleUTF-content8"?>После выполнения запроса сразу поступит информация о бронировании. В первую очередь нужно внимательно проверить статусы &lt;Status&gt; всех услуг в бронировании. Если бронировалась услуга со статусом в результатах поиска RQ (по запросу), то статус скорее всего будет не равен «booked». Через некоторое время проверять реальный статус бука отправляя запрос на чтение данных о бронировании.
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DBooking"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:bookingResponseGetDebtCounterparty> <ResponseBin> <Responsens1:ExternalUserId> <Booking> <Items> <Item Id="386610"> <Hotel Id="1872666"> <Supplier>GTA00000001</Supplierns1:ExternalUserId> <CityIdns1:ExternalPaymentId>2204600000001</CityIdns1:ExternalPaymentId> <DateBeginns1:BaseFare>2013-10-152490</DateBeginns1:BaseFare> <DateEndns1:Tax>2013-10-18643</DateEndns1:Tax> <CacheIdns1:ValVendorCommission>1872666</CacheId> <Name>ADLON KEMPINSKI</Name> <Categories> <Category Id="1"> <Rooms> <Room Count="1" Id="1" ServiceId="1"/> <Room Count="1" Id="2" ServiceId="2"/> </Rooms> <TotalPrice Currency="RUB">7473349.848</TotalPrice> </Category> </Categories> <Services> <Service Id="1" Status="OK"> <Desc>Standard Twin</Desc> <Meal>Full Breakfast</Meal> <Price Currency="RUB">37366.92</Price> </Service> <Service Id="2" Status="OK"> <Desc>Standard Twin</Desc> <Meal>Full Breakfast</Meal> <Price Currency="RUB">37366.92</Price> </Service> </Services> <Rooms> <Room Id="1" Type="TWIN"/> <Room Id="2" Type="SNGL"/> </Rooms> </Hotel> <Type>HOTELS</Type> <Status>waiting</Status> <Prices> <Price Currency="RUB">74733.84</Price> <Charges Currency="RUB">0</Charges> <Commission Currency="RUB">0</Commission> <Penalty Currency="RUB">0</Penalty> <TotalPrice Currency="RUB">74733.84</TotalPrice> </Prices> <Dates> <BookingDate>2013-08-01 19:49ns1:56</BookingDateValVendorCommission> <UpdateDate>2013-08-01 19ns1:49:57</UpdateDateLocator> 0X97T6<CancelDate xsi:nil="true"/> <PenaltyDate>2013-07-31 19:10ns1:37</PenaltyDateLocator> <AutoCancelDate>2013-08-01 19ns1:51:56</AutoCancelDateDiscount> 0<ConfirmationLimit/> </Dates> <Statuses> <PaymentStatus>1</PaymentStatus> <DocumentStatus>1</DocumentStatus> <DeliveryStatus>1</DeliveryStatus> <InvoiceStatus>1</InvoiceStatus> <ProblemStatus>1</ProblemStatus> </Statuses> <Customer> <Person Number="1"/> </Customer> <Persons> <Person Number="1"/> <Person Number="2"/> <Person Number="3"/> </Persons> </Item> </Items> <Persons> <Person Number="1"> <Lastname>IVANOV</Lastname> <Name>IVAN</Name> <Middlename>IVANOVICH</Middlename> <DateOfBirth xsins1:nil="true"/Discount> <Phone>+79871231212</Phone> <Email>m.rudenko@mute-lab.com</Email> <Gender xsins1:nil="true"/Charge> <Document Type="P"> <Series>18110</Series> <Number>912219</Number> <IssueDate>2012-12-12 00:00ns1:00</IssueDateCharge> <ExpiryDate>2014-12-12 00:00ns1:00</ExpiryDateSum> 3133</Documentns1:Sum> </Person> <Person Number="2"> <Lastname>PETROV</Lastname> <Name>IVAN</Name> <Middlename>MIKHAILOVICH</Middlename> <DateOfBirth xsins1:nil="true"/TotalPrice> <Phone>+79871231212</Phone> <Email>m3658.rudenko@mute-lab.com1</Emailns1:TotalPrice> <Gender xsins1:nil="true"/GDSCurrency> <Document Type="P"> <Series>1866RUB</Series> <Number>913319</Number> <IssueDate>2012-12-12 00ns1:00:00</IssueDateGDSCurrency> <ExpiryDate>2014-12-12 00ns1:00:00</ExpiryDateOrderCurrency> RUB</Documentns1:OrderCurrency> </Person> <Person Number="3"> <Lastname>SIDOROV</Lastname> <Name>IVAN</Name> <Middlename>SERGEEVICH</Middlename> <DateOfBirth xsins1:nil="true"/OrderCurrencyRate> <Phone>+798712312121</Phone> <Email>m.rudenko@mute-lab.com</Email> <Gender xsins1:nil="true"/OrderCurrencyRate> <Document Type="P"> <Series>1866</Series> <Number>913319</Number> <IssueDate>2012-12-12 00ns1:00:00</IssueDate> <ExpiryDatebeginDate>2014-1208-12 0030T11:0005:00</ExpiryDate> </Document> </Person> </Persons> </Booking> </Response> </ResponseBinns1:beginDate> </ns1:bookingResponseGetDebtCounterparty>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</syntaxhighlight>
 
Структура ответа очень похожа на запрос. Выделяются те же основные элементы.
 
Элемент '''Booking'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| Items
| Обязательный. Содержит элемент(ы) Item.
| Элемент Item
|-
| Persons
| Обязательный. Здесь перечислены все клиенты заказа.
| Элемент Person
|}
 
В элементах Item раскрывается подробнейшая информация об одной услуге в бронировании.
 
Элемент '''Item'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| Атрибут Id
| Обязательный.
Номер заказа в системе Nemo.
| Целое число
|-
| Type
| Обязательный.
Тип объекта бронирования.
| HOTELS
|-
| Status
| Обязательный. Статус объекта бронирования .
| booked - забронирован
cancelled - аннулирован
pending confirmation - в процессе подтверждения
pending – произошла попытка бронирования, которое не было завершено
waiting – ожидается результат запроса на бронирование
|-
| Prices
| Обязательный. Данные о ценах.
| см. Элемент Prices
|-
| Dates
| Обязательный. Данные о датах.
| см. Элемент Dates
|-
| Statuses
| Обязательный. Различные дополнительные статусы заказанной услуги.
| см. Элемент Statuses
|-
| Persons
| Обязательный. Содержит клиентов привязанных к услуге.
| элементы Person
|-
| Hotel
| Необязательный. Элемент с данными об отеле.
| см. элемент Hotel (результат поиска отеля)
|}
 
Информация о цене услуги вынесена в отдельную ветку:
 
Элемент '''Prices'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| Price
| Обязательный. Базовая цена услуги.
| Вещественное число.
Атрибут Currency - код валюты.
|-
| Charges
| Необязательный. Сумма дополнительных сборов.
| Вещественное число.
Атрибут Currency - код валюты.
|-
| Commission
| Необязательный. Сумма комиссий (вычитается из общей стоимости).
| Вещественное число.
Атрибут Currency - код валюты.
|-
| Penalty
| Необязательный. Сумма штрафов.
| Вещественное число.
Атрибут Currency - код валюты.
|-
| TotalPrice
| Обязательный. Итоговая стоимость.
= Price + Charges + Commission
| Вещественное число.
Атрибут Currency - код валюты.
|}
 
Информация о датах услуги также вынесена в отдельную ветку:
 
Элемент '''Dates'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| BookingDate
| Обязательный. Дата бронирования.
| Формат гггг-мм-дд чч:мм:сс
|-
| UpdateDate
| Необязательный. Дата обновления.
| Формат гггг-мм-дд чч:мм:сс
|-
| CancelDate
| Необязательный. Дата аннуляции.
| Формат гггг-мм-дд чч:мм:сс
|-
| PenaltyDate
| Необязательный. Дата наступления штрафов.
| Формат гггг-мм-дд чч:мм:сс
|-
| AutoCancelDate
| Необязательный. Дата автоаннулирования.
| Формат гггг-мм-дд чч:мм:сс
|}
 
Дополнительные статусы:
 
Элемент '''Statuses'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| PaymentStatus
| Необязательный.
Статус оплаты.
| Целое число
1 - неоплачено
2 - частично оплачено
3 - оплачено
|-
| DocumentStatus
| Необязательный.
Статус ваучера.
| Целое число
1 - документ не сформирован
2 - документ сформирован
|-
| DeliveryStatus
| Необязательный.
Статус доставки.
| Целое число
1 - не доставлен
2 - доставлен
|-
| InvoiceStatus
| Необязательный.
Статус счета.
| Целое число
1 - счет выставлен.
2 - счет не выставлен.
|}
 
Информация о клиентах заказа полностью повторяет структуру запроса.
</div>
</div>
</pre>
Пример ответа "GetDebtCounterparty"
<pre>
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header/>
<soap:Body>
<m:GetDebtCounterpartyResponse xmlns:m="http://DOMEN_NAME/avia">
<m:return xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="m:AnswerDebt">
<m:Opportunity>Да</m:Opportunity>
<m:Message1/>
</m:return>
</m:GetDebtCounterpartyResponse>
</soap:Body>
</soap:Envelope>
</pre>
==Загрузка счетов из сторонней системы == Подтверждение бронирования ====<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">===== Запрос =====<div class="mw-collapsible-content">Подтверждение бронирования заказа. '''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=ConfirmBooking <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DConfirmBooking"> <soapenv:Header/> <soapenv:Body> <ver:confirm> <RequestBin> <Request> <BookingId>179547</BookingId> </Request> <Source> <ClientId></ClientId> <APIKey></APIKey> <Language>ru</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:confirm> </soapenv:Body></soapenv:Envelope></syntaxhighlight> Элемент '''Request'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| BookingID| Обязательный. Идентификатор заказа в системе Nemo.| Целое число|} Элемент '''Source'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.|}</div></div> <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">===== Ответ =====<div class="mw-collapsible-content"> <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DConfirmBooking"> <SOAP-ENV:Body> <ns1:confirmResponse> <ResponseBin> <Response> <Books> <Book> <Id>179547</Id> <Status>booked</Status> </Book> </Books> </Response> </ResponseBin> </ns1:confirmResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlight></div></div> 
==== Выгрузка актуальных данных по заказу(ам) ====Используется для экспорта бронирований и для обновления данных При взаимодействии с веб-сервисом 1С, на этапе бронирования отправляется запрос, на создание аккаунта 1С, содержащий в локальной клиентской базесебе данные счета.В системе логирования этот запрос можно найти под именем «[GDS] Запрос "NewAccount"» и ответ «[GDS] Ответ "NewAccount"»
'''WSDL''' (тестовый сервер): http://tst.nemo<div class="toccolours mw-collapsible mw-ibe.com/wsdev/wsdl.php?forcollapsed" style=Export"width:800px">
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">===== Запрос ==Пример запроса ===
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DExport">
<soapenv:Header/>
<soapenv:Body>
<ver:export>
<RequestBin>
<Request>
<Export>
<Items>
<!--Zero or more repetitions:-->
<Item Id="386621"/>
</Items>
</Export>
</Request>
<Source>
<ClientId></ClientId>
<APIKey></APIKey>
<Language>ru</Language>
<Currency>RUB</Currency>
</Source>
</RequestBin>
</ver:export>
</soapenv:Body>
</soapenv:Envelope>
</syntaxhighlight>
 
Элемент '''Item'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="200" | Элемент
! scope="col" width="300" | Описание
! scope="col" width="300" | Допустимые значения
|-
| Атрибут Id
| Обязательный. Идентификатор заказа в системе Nemo.
| Целое число
|}
Элемент '''Source'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.|}</div></divpre>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">===== Ответ =====<div class?xml version="mw-collapsible-content">Ответ содержит элементы результатов бронирований1. См. описание выше.<syntaxhighlight lang=0"xml" line enclose="div" styleencoding="fontUTF-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DExportDOMEN_NAME" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:exportResponseNewAccount> <ResponseBinns1:Input> <Response> <Export> <Items> <Item Id="386621"> <Hotel Id="1872666"> <Supplierns1:CompanyID>GTA0001</Supplierns1:CompanyID> <CityIdns1:ID>22046123321</CityIdns1:ID> <DateBeginns1:ExternalUserId>2013-10-1500123321</DateBeginns1:ExternalUserId> <DateEndns1:Locator>2013-10-1811KW22</DateEndns1:Locator> <CacheIdns1:ExternalPaymentId>18726660</CacheIdns1:ExternalPaymentId> <Name>ADLON KEMPINSKI</Namens1:Tickets> <Categoriesns1:IATAValidator> 92222616<Category Id="1"> <Rooms> <Room Count="1" Id="1" ServiceId="1"/ns1:IATAValidator> <Room Count="1" Id="2" ServiceId="2"/ns1:ValVendor> UT</Roomsns1:ValVendor> <TotalPrice Currency="RUB">74733.84</TotalPrice> </Category> </Categoriesns1:GDSCurrency> <Services> <Service Id="1" Status="OK"> <Desc>Standard Twin</Desc> <Meal>Full Breakfast</Meal> <Price Currency="RUB">37366.92</Pricens1:GDSCurrency> </Service> <Service Id="2" Status="OK"ns1:OrderCurrency> <Desc>Standard Twin</Desc> <Meal>Full Breakfast</Meal> <Price Currency="RUB">37366.92</Pricens1:OrderCurrency> </Service> </Services> <Roomsns1:OrderCurrencyRate> <Room Id="1" Type="TWIN"/> <Room Id="2" Type="SNGL"/ns1:OrderCurrencyRate> </Roomsns1:BaseFare> 8990</Hotelns1:BaseFare> <Type>HOTELS</Typens1:Tax> <Statusns1:Code>waitingYQ</Statusns1:Code> <Pricesns1:Amount> <Price Currency="RUB">74733.84975</Pricens1:Amount> <Charges Currency="RUB">0 </Chargesns1:Tax> <Commission Currency="RUB">0</Commissionns1:Tax> <Penalty Currency="RUB"ns1:Code>0YR</Penaltyns1:Code> <TotalPrice Currency="RUB"ns1:Amount>74733.8475</TotalPricens1:Amount> </Prices> <Dates> <BookingDate>2013-08-01 20:21ns1:47</BookingDateTax> <UpdateDate>2013-08-01 20ns1:35:01</UpdateDateSegment> <CancelDate xsins1:nil="true"/StartDate> <PenaltyDate>20132015-0702-31 1917T20:1020:3700</PenaltyDatens1:StartDate> <AutoCancelDate>2013-08-01 20ns1:23:47</AutoCancelDateStartAirportCode> VKO<ConfirmationLimit/ns1:StartAirportCode> </Dates> <Statuses> <PaymentStatusns1:EndAirportCode>1SGC</PaymentStatusns1:EndAirportCode> <DocumentStatusns1:CompanyCode>1UT</DocumentStatusns1:CompanyCode> <DeliveryStatusns1:Tariffs>1OSSOW</DeliveryStatusns1:Tariffs> <InvoiceStatusns1:FlightNumber>1295</InvoiceStatusns1:FlightNumber> <ProblemStatusns1:StopOver>1O</ProblemStatusns1:StopOver> </Statuses> <Customerns1:ClassTypeCode> O<Person Number="1"/ns1:ClassTypeCode> </Customerns1:Segment> <Personsns1:FullName> PASSANGER NAME<Person Number="1"/ns1:FullName> <Person Number="2"/ns1:Tickets> <Person Number="3"/ns1:Options> </Persons> </Item> </Items> <Persons> <Person Number="1"> <Lastname>IVANOV</Lastname> <ns1:Name>IVANService</ns1:Name> <Middlenamens1:StringValue>IVANOVICHGALILEO</Middlenamens1:StringValue> <DateOfBirth ns1:NumericValue xsi:nil="true"/> <Phone>+79871231212</Phone> <Email>m.rudenko@mute-lab.com</Email> <Gender ns1:DateValue xsi:nil="true"/> <Document Type="P"> <Series>1811 </Seriesns1:Options> <Number>912219</Number> <IssueDate>2012-12-12 00:00ns1:00</IssueDateOptions> <ExpiryDate>2014-12-12 00ns1:00:00</ExpiryDate> </Document> </Person> <Person Number="2"> <Lastname>PETROV</Lastname> <Name>IVANAAA</ns1:Name> <Middlenamens1:StringValue>MIKHAILOVICH000A</Middlenamens1:StringValue> <DateOfBirth ns1:NumericValue xsi:nil="true"/> <Phone>+79871231212</Phone> <Email>m.rudenko@mute-lab.com</Email> <Gender ns1:DateValue xsi:nil="true"/> <Document Type="P"> <Series>1866 </Seriesns1:Options> <Number>913319</Number> <IssueDate>2012-12-12 00:00ns1:00</IssueDateOptions> <ExpiryDate>2014-12-12 00:00ns1:00</ExpiryDate> </Document> </Person> <Person Number="3"> <Lastname>SIDOROV</Lastname> <Name>IVANCheckbox</ns1:Name> <Middlenamens1:StringValue>SERGEEVICHYES</Middlenamens1:StringValue> <DateOfBirth ns1:NumericValue xsi:nil="true"/> <Phone>+79871231212</Phone> <Email>m.rudenko@mute-lab.com</Email> <Gender ns1:DateValue xsi:nil="true"/> <Document Type="P"> <Series>1866 </Series> <Number>913319</Number> <IssueDate>2012-12-12 00:00ns1:00</IssueDate> <ExpiryDate>2014-12-12 00:00:00</ExpiryDate> </Document> </Person> </Persons> </Export> </ResponseOptions> </ResponseBinns1:Input> </ns1:exportResponseNewAccount>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</syntaxhighlight>
 
Формат ответа аналогичен результату бронирования.
</div>
</div>
</pre>
</div></div>
==== Аннуляция заказа ===='''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=CancelBooking<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px800px">===== Запрос ==Пример ответа ===
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"pre><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCancelBooking"> <soapenv:Header/> <soapenv:Body> <ver:cancel> <RequestBin> <Request> <CancelBooking> <Item Id="386621"/> </CancelBooking> </Request> <Source> <ClientId></ClientId> <APIKey></APIKey> <Language>ru</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:cancel> </soapenv:Body></soapenv:Envelope></syntaxhighlight> Элемент '''Item'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Атрибут Id| Обязательный. Идентификатор заказа в системе Nemo.| Целое число|} Элемент '''Source'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| ClientID| Обязательный. ID клиента в системе Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.|}</div></div> ===== Ответ =====см. результаты бронирования. ==Выгрузки статистики продаж через API==  === Общие положения === Агрегация - слияние массива объектов с данными в один объект(в идеале) или в несколько объектов(если в объектах есть св-ва неподдающиеся агрегации).Агрегации обычно поддаются свойства объектов с количественными значениями (кол-во времени, кол-во денег и т.д.). Объекты с такими свойствами будут автоматически агрегироваться при получении статистики. Если в этих объектах есть свойство, обозначающее количество чего-нибудь, то в соответствующее свойство конечного объекта запишется сумма свойств исходных объектов.Если в этих объектах есть свойство, обозначающее максимальное кол-во чего-нибудь за время формирования объекта, то в соответствующее свойство конечного объекта запишется максимальное значение из свойств исходных объектов.Если в этих объектах есть свойство, обозначающее минимальное кол-во чего-нибудь за время формирования объекта, то в соответствующее свойство конечного объекта запишется минимальное значение из свойств исходных объектов.Если в этих объектах есть свойство, обозначающее среднее кол-во чего-нибудь за время формирования объекта, то в соответствующее свойство конечного объекта запишется усреднённое значение свойств исходных объектов. Многие свойства не всегда поддаются агрегации (например названия или идентификаторы чего-нибудь), их нельзя просуммировать, или взять среднее, максимальное или минимальное значение. Такие свойства аггрегируются только, когда у них одинаковые значения; в свойство конечного объекта запишется это самое значение.Объекты с такими свойствами не агрегируются, даже если в этих объектах есть свойства, поддающиеся агрегации.Однако если нам всё же необходимо проагрегировать объекты с неагрегируемыми свойстами, то следует явно указать эти свойства.При агрегации таких объектов все неагрегируемые свойства, указанные нами в результатирующем объекте останутся без значений. === Методы получения статистики ===---- ==== <span style="color:green;">Общее о методах получения статистики.</span> ====Во всех запросах получения статистики присутствуют следующие параметры:* '''DateStart''' - Дата начала временного промежутка получения статистики в формате dd.mm.yyyy. Тип данных - строка.* '''DateEnd''' - Дата окончания временного промежутка получения статистики в формате dd.mm.yyyy. Тип данных - строка.Эти две даты по сути являются временным промежутком по которому получается статистика.* '''GroupBy''' - Временная единица, по которой следует группировать данные. Например, если выбран параметр группировки по дням, то записи статистики из одного дня будут агрегироваться с другими записями из этого же дня и в результате будут возвращены эти проагрегированные записи. Тип данных - перечисление. Возможные значения:** Hour - По часам.** Day - По дням.** Week - По неделям.** Month - По месяцам.** Year - По годам. ==== <span style="color:green;">Получение статистики поисков.</span> ========= Запрос =====* '''DateStart'''* '''DateEnd'''* '''GroupBy'''* '''SubAgenciesIDs''' - Идентификаторы субагентств, по которым получаем статистику. Тип данных - массив элементов ID.* '''SubAgenciesIDs.ID''' - Идентификатор субагента. Тип данных - целое 32-битное число.* '''AgencyID''' - Идентификатор агенства. Тип данных - целое 32-битное число (может быть пустым).* '''AggregateBy''' - Агрегировать данные. тип данных - перечисление. Возможные значения (может быть несколько через пробел)(может быть пустым):** None - Не агрегировать** Agencies (1) по агентствам** SubAgencies (2) по субагентствам** Users (4) по пользователям** Requisites (8) по реквизитам** SuppliersAndRequisites (24) по поставщикам и реквизитам* '''SortParams''' - Параметры сортировки результатов статистики. Можно указать до двух параметров. Тип данных - массив элементов SortParam.* '''SortParams.SortParam''' - Параметр сортировки элементов. Тип данных - сложный.* '''SortParams.SortParam.SortValue''' - Поле, по которому элементы будут сортироваться. Тип данных - перечисление. Возможные значения:** DateTime (0) по дате** SearchCount (1) по количеству поисков* '''SortParams.SortParam.OrderBy''' - Порядок сортировки. Тип данных - перечисление. Возможные значения (может быть пустым):** Asc (0) по возрастанию** Desc (1) по убыванию* '''Top''' - Ограничение сверху количества элементов в результате. тип данных - целое 32-битное число. ===== Пример запроса (XML)===== <code> <font color="blue"><GetSearchStatistics></font> <font color="blue"><request></font> <font color="blue"><RequestBody></font> <font color="blue"><DateStart></font>04.08.2014<font color="blue"></DateStart></font> <font color="blue"><DateEnd></font>12.08.2014<font color="blue"></DateEnd></font> <font color="blue"><GroupBy></font>Week<font color="blue"></GroupBy></font> <font color="green">&#60;!--Optional:--&#62;</font> <font color="blue"><SubAgenciesIDs></font> <font color="green">&#60;!--Zero or more repetitions:--&#62;</font> <font color="blue"><ID></font>2<font color="blue"></ID></font> <font color="blue"></SubAgenciesIDs></font> <font color="green">&#60;!--Optional:--&#62;</font> <font color="blue"><AgencyID></font>2<font color="blue"></AgencyID></font> <font color="green">&#60;!--Optional:--&#62;</font> <font color="blue"><AggregateBy></font>SuppliersAndRequisites<font color="blue"></AggregateBy></font> <font color="green">&#60;!--Optional:--&#62;</font> <font color="blue"><SortParams></font> <font color="green">&#60;!--Zero or more repetitions:--&#62;</font> <font color="blue"><SortParam></font> <font color="blue"><SortValue></font>DateTime<font color="blue"></SortValue></font> <font color="blue"><OrderBy></font>Desc<font color="blue"></OrderBy></font> <font color="blue"></SortParam></font> <font color="blue"><SortParam></font> <font color="blue"><SortValue></font>SearchCount<font color="blue"></SortValue></font> <font color="blue"><OrderBy></font>Asc<font color="blue"></OrderBy></font> <font color="blue"></SortParam></font> <font color="blue"></SortParams></font> <font color="green">&#60;!--Optional:--&#62;</font> <font color="blue"><Top></font>2<font color="blue"></Top></font> <font color="blue"></RequestBody></font> <font color="blue"></request></font> <font color="blue"></GetSearchStatistics></font></code> ===== Ответ =====* '''StatisticsItems''' - Объекты статистики. Тип данных - массив элементов SearchStatsItem.* '''StatisticsItems.SearchStatsItem''' - Объект статистики поисков. Тип данных - сложный.* '''StatisticsItems.SearchStatsItem.ServiceType''' - Тип услуги (авиа/отели/...). Тип данных - перечисление. Возможные значения:** Avia (0) авиа услуга (перелёт)** Hotel (1) отель** Rail (2) ж/д услуга** Other (33) прочие услуги неизвестного типа* '''StatisticsItems.SearchStatsItem.DateTime''' - Время начала периода сбора статистики.* '''StatisticsItems.SearchStatsItem.UserID''' - Идентификатор пользователя. Тип данных - целое 32-битное число (может быть пустым).* '''StatisticsItems.SearchStatsItem.AgencyID''' - Идентификатор агенства. Тип данных - целое 32-битное число (может быть пустым).* '''StatisticsItems.SearchStatsItem.SubAgencyID''' - Идентификатор субагенства. Тип данных - целое 32-битное число (может быть пустым).* '''StatisticsItems.SearchStatsItem.Supplier''' - Поставщик. Тип данных - перечисление. Возможные значения:* '''StatisticsItems.SearchStatsItem.SearchRequisites''' - Поисковые реквизиты. Тип данных - строка.* '''StatisticsItems.SearchStatsItem.SearchCount''' - Число поисков. Тип данных - целое 32-битное число.* '''StatisticsItems.SearchStatsItem.SearchWithErrorCount''' - Число поисков с ошибками. Тип данных - целое 32-битное число.* '''StatisticsItems.SearchStatsItem.EmptySearchCount''' - Число поисков без результатов. Тип данных - целое 32-битное число.* '''StatisticsItems.SearchStatsItem.AvgResultsCount''' - Среднее кол-во результатов в поиске. Тип данных - целое 32-битное число.* '''StatisticsItems.SearchStatsItem.MinResultsCount''' - Минимальное кол-во результатов в поиске. Тип данных - целое 32-битное число.* '''StatisticsItems.SearchStatsItem.MaxResultsCount''' - Максимальное кол-во результатов в поиске. Тип данных - целое 32-битное число.* '''StatisticsItems.SearchStatsItem.AvgSearchDuration''' - Средняя продолжительность поиска. Тип данных - TimeSpan.* '''StatisticsItems.SearchStatsItem.MinSearchDuration''' - Минимальная продолжительность поиска. Тип данных - TimeSpan.* '''StatisticsItems.SearchStatsItem.MaxSearchDuration''' - Максимальная продолжительность поиска. Тип данных - TimeSpan.* '''StatisticsItems.SearchStatsItem.Supplier''' - Название поставщика. Тип данных - строка.* '''StatisticsItems.SearchStatsItem.SearchRequisites''' - Поисковые реквизиты. Тип данных - строка.* '''StatisticsItems.SearchStatsItem.GDSScans''' - Число запросов к ГДС во время поиска. Тип данных - целое 32-битное число.* '''StatisticsItems.SearchStatsItem.CacheSearchCount''' - Число поисков в кэше. Тип данных - целое 32-битное число.* '''StatisticsItems.SearchStatsItem.AvgGDSSearchDuration''' - Средняя продолжительность поиска в ГДС. Тип данных - TimeSpan.* '''StatisticsItems.SearchStatsItem.MinGDSSearchDuration''' - Минимальная продолжительность поиск в ГДС. Тип данных - TimeSpan.* '''StatisticsItems.SearchStatsItem.MaxGDSSearchDuration''' - Максимальная продолжительность поиска в ГДС. Тип данных - TimeSpan.===== Пример ответа (XML)===== <code> <font color="blue"><GetSearchStatisticsResponse></font> <font color="blue"><GetSearchStatisticsResult></font> <font color="blue"><RequestID></font>62393<font color="blue"></RequestID></font> <font color="blue"><ResponseBody></font> <font color="blue"><StatisticsItems></font> <font color="blue"><SearchStatsItem></font> <font color="blue"><ServiceType></font>Avia<font color="blue"></ServiceType></font> <font color="blue"><DateTime></font>2014-08-11T00:00:00<font color="blue"></DateTime></font> <font color="blue"><UserID></font>2<font color="blue"></UserID></font> <font color="blue"><AgencyID></font>2<font color="blue"></AgencyID></font> <font color="blue"><SubAgencyID></font>2<font color="blue"></SubAgencyID></font> <font color="blue"><Supplier <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><SearchRequisites <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><SearchCount></font>20575<font color="blue"></SearchCount></font> <font color="blue"><SearchWithErrorCount></font>0<font color="blue"></SearchWithErrorCount></font> <font color="blue"><EmptySearchCount></font>924<font color="blue"></EmptySearchCount></font> <font color="blue"><GDSScans></font>468<font color="blue"></GDSScans></font> <font color="blue"><CacheSearchCount></font>746<font color="blue"></CacheSearchCount></font> <font color="blue"><AvgResultsCount></font>9<font color="blue"></AvgResultsCount></font> <font color="blue"><MinResultsCount></font>1<font color="blue"></MinResultsCount></font> <font color="blue"><MaxResultsCount></font>19<font color="blue"></MaxResultsCount></font> <font color="blue"><AvgSearchDuration></font>PT0.4400852S<font color="blue"></AvgSearchDuration></font> <font color="blue"><MinSearchDuration></font>PT0.001S<font color="blue"></MinSearchDuration></font> <font color="blue"><MaxSearchDuration></font>PT4.2582435S<font color="blue"></MaxSearchDuration></font> <font color="blue"><AvgGDSSearchDuration></font>PT0S<font color="blue"></AvgGDSSearchDuration></font> <font color="blue"><MinGDSSearchDuration></font>PT0S<font color="blue"></MinGDSSearchDuration></font> <font color="blue"><MaxGDSSearchDuration></font>PT0S<font color="blue"></MaxGDSSearchDuration></font> <font color="blue"></SearchStatsItem></font> <font color="blue"><SearchStatsItem></font> <font color="blue"><ServiceType></font>Avia<font color="blue"></ServiceType></font> <font color="blue"><DateTime></font>2014-08-04T00:00:00<font color="blue"></DateTime></font> <font color="blue"><UserID></font>2<font color="blue"></UserID></font> <font color="blue"><AgencyID></font>2<font color="blue"></AgencyID></font> <font color="blue"><SubAgencyID></font>2<font color="blue"></SubAgencyID></font> <font color="blue"><Supplier <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><SearchRequisites <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><SearchCount></font>341322<font color="blue"></SearchCount></font> <font color="blue"><SearchWithErrorCount></font>0<font color="blue"></SearchWithErrorCount></font> <font color="blue"><EmptySearchCount></font>17804<font color="blue"></EmptySearchCount></font> <font color="blue"><GDSScans></font>7572<font color="blue"></GDSScans></font> <font color="blue"><CacheSearchCount></font>11434<font color="blue"></CacheSearchCount></font> <font color="blue"><AvgResultsCount></font>9<font color="blue"></AvgResultsCount></font> <font color="blue"><MinResultsCount></font>1<font color="blue"></MinResultsCount></font> <font color="blue"><MaxResultsCount></font>19<font color="blue"></MaxResultsCount></font> <font color="blue"><AvgSearchDuration></font>PT0.5500934S<font color="blue"></AvgSearchDuration></font> <font color="blue"><MinSearchDuration></font>PT0.001S<font color="blue"></MinSearchDuration></font> <font color="blue"><MaxSearchDuration></font>PT3.5072006S<font color="blue"></MaxSearchDuration></font> <font color="blue"><AvgGDSSearchDuration></font>PT0S<font color="blue"></AvgGDSSearchDuration></font> <font color="blue"><MinGDSSearchDuration></font>PT0S<font color="blue"></MinGDSSearchDuration></font> <font color="blue"><MaxGDSSearchDuration></font>PT0S<font color="blue"></MaxGDSSearchDuration></font> <font color="blue"></SearchStatsItem></font> <font color="blue"></StatisticsItems></font> <font color="blue"></ResponseBody></font> <font color="blue"></GetSearchStatisticsResult></font> <font color="blue"></GetSearchStatisticsResponse></font></code> === <span style="color:green;">Получение количества поисков. (Облегчённый вариант запроса на получение статистики поисков)</span> ======== Запрос ========== Пример запроса (XML)===== <code> <font color="blue"><GetSearchCountStatistics></font> <font color="blue"><request></font> <font color="blue"><RequestBody></font> <font color="blue"><DateStart></font>01.08.2014<font color="blue"></DateStart></font> <font color="blue"><DateEnd></font>13.08.2014<font color="blue"></DateEnd></font> <font color="blue"><GroupBy></font>Month<font color="blue"></GroupBy></font> <font color="blue"><SubAgencyId></font>4<font color="blue"></SubAgencyId></font> <font color="blue"></RequestBody></font> <font color="blue"></request></font> <font color="blue"></GetSearchCountStatistics></font></code> ===== Ответ =====* '''StatisticsItems''' - Объекты статистики. Тип данных - массив элементов SearchCountItem.* '''StatisticsItems.SearchCountItem''' - Объект статистики количества поисков. Тип данных - сложный.* '''StatisticsItems.SearchCountItem.DateTime''' - Дата и время начала периода, по которому группируется статистика. Формат yyyy-MM-ddThh:mm:ss. Тип данных - дата и время.* '''StatisticsItems.SearchCountItem.ServiceType''' - Тип услуги (авиа/отели/...). Тип данных - перечисление. Возможные значения аналогичны параметру '''''StatisticsItems.SearchStatsItem.ServiceType''''' из [[#Ответ|ответа на получение статистики поисков]].* '''StatisticsItems.SearchCountItem.Supplier''' - Поставщик. Тип данных - строка.* '''StatisticsItems.SearchCountItem.SearchRequisites''' - Реквизиты поиска. Тип данных - строка.* '''StatisticsItems.SearchCountItem.GDSScans''' - Количество поисковых запросов к ГДС. Тип данных - целое 32-битное число.* '''StatisticsItems.SearchCountItem.CacheSearchCount''' - Количество поисков в кеше (поиски без обращений к ГДС). Тип данных - целое 32-битное число. * '''StatisticsItems.SearchCountItem.SearchCount''' - Общее количество поисков. Тип данных - целое 32-битное число.===== Пример ответа (XML)===== <code> <font color="blue"><GetSearchCountStatisticsResponse></font> <font color="blue"><GetSearchCountStatisticsResult></font> <font color="blue"><RequestID></font>5969455<font color="blue"></RequestID></font> <font color="blue"><ResponseBody></font> <font color="blue"><StatisticsItems></font> <font color="blue"><SearchCountItem></font> <font color="blue"><DateTime></font>2014-08-01T00:00:00<font color="blue"></DateTime></font> <font color="blue"><ServiceType></font>Avia<font color="blue"></ServiceType></font> <font color="blue"><Supplier></font>Sabre<font color="blue"></Supplier></font> <font color="blue"><SearchRequisites></font>FJ9F<font color="blue"></SearchRequisites></font> <font color="blue"><GDSScans></font>0<font color="blue"></GDSScans></font> <font color="blue"><CacheSearchCount></font>4<font color="blue"></CacheSearchCount></font> <font color="blue"><SearchCount></font>4<font color="blue"></SearchCount></font> <font color="blue"></SearchCountItem></font> <font color="blue"></StatisticsItems></font> <font color="blue"></ResponseBody></font> <font color="blue"></GetSearchCountStatisticsResult></font> <font color="blue"></GetSearchCountStatisticsResponse></font></code> === <span style="color:green;">Получение статистики направлений</span> ======== Запрос =====* '''DateStart'''* '''DateEnd'''* '''GroupBy'''* '''SubAgenciesIDs''' - Идентификаторы субагентств, по которым получаем статистику. Тип данных - массив элементов ID.* '''SubAgenciesIDs.ID''' - Идентификатор субагента. Тип данных - целое 32-битное число.* '''AgencyID''' - Идентификатор агенства. Тип данных - целое 32-битное число (может быть пустым).* '''AggregateBy''' - По каким полям следует агрегировать объекты статистики. Тип данных - перечисление. Возможные значения (может быть несколько через пробел)(может быть пустым):** None (0) не аггрегировать объекты с неагрегируемыми свойствами** Agencies (1) по агенствам** SupAgencies (2) по субагенствам** Users (4) по пользователям.** RequisitesPackages (8) по пакетам реквизитов** Suppliers (16) по поставщикам** DestTypes (32) по типам направлений** BookingPlaces (64) по местам бронирования** DepPoints (128) по пунктам отправления** ArrPoints (256) по пунктам прибытия* '''SortParams''' - Параметры сортировки результатов статистики. Тип данных - массив элементов SortParam. Аналогичен параметру '''''SortParams''''' из [[#Запрос|запроса на получение статистики поисков]].* '''Top''' - Ограничение сверху количества элементов в результате. тип данных - целое 32-битное число. ===== Пример запроса (XML)===== <code> <font color="blue"><GetDestinationsStatistics></font> <font color="blue"><request></font> <font color="blue"><RequestBody></font> <font color="blue"><DateStart></font>10.08.2014<font color="blue"></DateStart></font> <font color="blue"><DateEnd></font>14.08.2014<font color="blue"></DateEnd></font> <font color="blue"><GroupBy></font>Day<font color="blue"></GroupBy></font> <font color="green">&#60;!--Optional:--&#62;</font> <font color="blue"><SubAgenciesIDs></font> <font color="green">&#60;!--Zero or more repetitions:--&#62;</font> <font color="blue"><ID></font>2<font color="blue"></ID></font> <font color="blue"></SubAgenciesIDs></font> <font color="green">&#60;!--Optional:--&#62;</font> <font color="blue"><AgencyID></font>2<font color="blue"></AgencyID></font> <font color="green">&#60;!--Optional:--&#62;</font> <font color="blue"><AggregateBy></font>RequisitesPackages Suppliers DestTypes BookingPlaces DepPoints ArrPoints<font color="blue"></AggregateBy></font> <font color="green">&#60;!--Optional:--&#62;</font> <font color="blue"><SortParams></font> <font color="green">&#60;!--Zero or more repetitions:--&#62;</font> <font color="blue"><SortParam></font> <font color="blue"><SortValue></font>DateTime<font color="blue"></SortValue></font> <font color="blue"><OrderBy></font>Desc<font color="blue"></OrderBy></font> <font color="blue"></SortParam></font> <font color="blue"><SortParam></font> <font color="blue"><SortValue></font>SearchCount<font color="blue"></SortValue></font> <font color="blue"><OrderBy></font>Asc<font color="blue"></OrderBy></font> <font color="blue"></SortParam></font> <font color="blue"></SortParams></font> <font color="green">&#60;!--Optional:--&#62;</font> <font color="blue"><Top></font>2<font color="blue"></Top></font> <font color="blue"></RequestBody></font> <font color="blue"></request></font> <font color="blue"></GetDestinationsStatistics></font></code> ===== Ответ =====* '''StatisticsItems''' - Объекты статистики. Тип данных - массив элементов DestinationStatsItem.* '''StatisticsItems.DestinationStatsItem''' - Объект статистики направлений. Тип данных - сложный.* '''StatisticsItems.DestinationStatsItem.ServiceType''' - Тип услуги (авиа/отели/...). Тип данных - перечисление. Возможные значения аналогичны параметру '''''StatisticsItems.SearchStatsItem.ServiceType''''' из [[#Ответ|ответа на получение статистики поисков]].* '''StatisticsItems.DestinationStatsItem.DateTime''' - Дата и время начала периода, по которому группируется статистика. Формат yyyy-MM-ddThh:mm:ss. Тип данных - дата и время.* '''StatisticsItems.DestinationStatsItem.UserID''' - Идентификатор пользователя. Тип данных - целое 32-битное число (может быть пустым).* '''StatisticsItems.DestinationStatsItem.AgencyID''' - Идентификатор агенства. Тип данных - целое 32-битное число (может быть пустым).* '''StatisticsItems.DestinationStatsItem.SubAgencyID''' - Идентификатор субагенства. Тип данных - целое 32-битное число (может быть пустым).* '''StatisticsItems.DestinationStatsItem.Supplier''' - Поставщик. Тип данных - перечисление. Возможные значения аналогичны параметру* '''StatisticsItems.DestinationStatsItem.DeparturePoint''' - Пункт отправления. Тип данных - сложный.* '''StatisticsItems.DestinationStatsItem.DeparturePoint.TransportPointCode''' - Код пункта. Тип данных - строка.* '''StatisticsItems.DestinationStatsItem.DeparturePoint.TransportPointCodeType''' - Тип пункта. Тип данных - перечисление. Возможные значения:** IATAAirportCode (0) ИАТА код аэропорта* '''StatisticsItems.DestinationStatsItem.DeparturePoint.TransportSubPointCode''' - Дополнительный код пункта, например, терминал в аэропорту. Тип данных - строка.* '''StatisticsItems.DestinationStatsItem.DeparturePoint.CityCode''' - Код города. Тип данных - строка.* '''StatisticsItems.DestinationStatsItem.ArrivalPoint''' - Пункт прибытия. Тип данных - сложный, аналогичен параметру '''''StatisticsItems.DestinationStatsItem.DeparturePoint'''''.* '''StatisticsItems.DestinationStatsItem.FlightDirectionType''' - Тип направления. Тип данных - перечисление (может быть пустым). Возможные значения:** OW (0) В одну сторону** RT (1) Туда - обратно** CT (2) Сложный маршрут** SingleOJ (3) Вылет из точки А в точку Б и возврат в точку В. Т.е. есть разрыв между ап прилета и вылета** DoubleOJ (4) Как single OJ, но есть 2 разрыва между ап прилета и вылета.** hRT (5) HalfRT, он же RT/2** mOW (6) MultiOW, он же OW+OW+* '''StatisticsItems.DestinationStatsItem.SearchCount''' - Число поисков. Тип данных - целое 32-битное число.* '''StatisticsItems.DestinationStatsItem.AvgResultsCount''' - Среднее число результатов в поиске. Тип данных - целое 32-битное число.* '''StatisticsItems.DestinationStatsItem.MinResultsCount''' - Минимальное число результатов в поиске. Тип данных - целое 32-битное число.* '''StatisticsItems.DestinationStatsItem.MaxResultsCount''' - Максимальное число результатов в поиске. Тип данных - целое 32-битное число.* '''StatisticsItems.DestinationStatsItem.SuccessBooksCount''' - Количество успешно созданных броней. Тип данных - целое 32-битное число.* '''StatisticsItems.DestinationStatsItem.FailedBooksCount''' - Количество отменённых броней и неудачных попыток бронирования. Тип данных - целое 32-битное число.* '''StatisticsItems.DestinationStatsItem.MadeBooksCount''' - Количество выполненных броней (не отменённые до начала выполнения). Тип данных - целое 32-битное число.* '''StatisticsItems.DestinationStatsItem.BookingPlace''' - Место создания брони. Тип данных - перечисление (может быть пустым). Возможные значения:** UNKNOWN - неизвестно.* '''StatisticsItems.DestinationStatsItem.RequisitesPackageID''' - Идентификатор пакета реквизитов бронирования (может быть пустым). Тип данных - целое 32-битное число (может быть пустым).* '''StatisticsItems.DestinationStatsItem.AdultPassengerCount''' - Число забронированных пассажиров - взрослых. Тип данных - целое 32-битное число.* '''StatisticsItems.DestinationStatsItem.ChildPassengerCount''' - Число забронированных пассажиров - детей. Тип данных - целое 32-битное число.* '''StatisticsItems.DestinationStatsItem.TotalPassengersCount''' - Общее число забронированных пассажиров. Тип данных - целое 32-битное число.===== Пример ответа (XML)===== <code> <font color="blue"><GetDestinationsStatisticsResponse></font> <font color="blue"><GetDestinationsStatisticsResult></font> <font color="blue"><RequestID></font>62403<font color="blue"></RequestID></font> <font color="blue"><ResponseBody></font> <font color="blue"><StatisticsItems></font> <font color="blue"><DestinationStatsItem></font> <font color="blue"><ServiceType></font>Avia<font color="blue"></ServiceType></font> <font color="blue"><DateTime></font>2014-08-12T00:00:00<font color="blue"></DateTime></font> <font color="blue"><UserID></font>2<font color="blue"></UserID></font> <font color="blue"><AgencyID></font>2<font color="blue"></AgencyID></font> <font color="blue"><SubAgencyID></font>2<font color="blue"></SubAgencyID></font> <font color="blue"><Supplier <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><DeparturePoint <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><ArrivalPoint <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><FlightDirectionType <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><SearchCount></font>291<font color="blue"></SearchCount></font> <font color="blue"><AvgResultsCount></font>10<font color="blue"></AvgResultsCount></font> <font color="blue"><MinResultsCount></font>0<font color="blue"></MinResultsCount></font> <font color="blue"><MaxResultsCount></font>19<font color="blue"></MaxResultsCount></font> <font color="blue"><SuccessBooksCount></font>0<font color="blue"></SuccessBooksCount></font> <font color="blue"><FailedBooksCount></font>0<font color="blue"></FailedBooksCount></font> <font color="blue"><MadeBooksCount></font>0<font color="blue"></MadeBooksCount></font> <font color="blue"><BookingPlace <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><RequisitesPackageID <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><AdultPassengerCount></font>0<font color="blue"></AdultPassengerCount></font> <font color="blue"><ChildPassengerCount></font>0<font color="blue"></ChildPassengerCount></font> <font color="blue"><TotalPassengersCount></font>0<font color="blue"></TotalPassengersCount></font> <font color="blue"></DestinationStatsItem></font> <font color="blue"><DestinationStatsItem></font> <font color="blue"><ServiceType></font>Avia<font color="blue"></ServiceType></font> <font color="blue"><DateTime></font>2014-08-11T00:00:00<font color="blue"></DateTime></font> <font color="blue"><UserID></font>2<font color="blue"></UserID></font> <font color="blue"><AgencyID></font>2<font color="blue"></AgencyID></font> <font color="blue"><SubAgencyID></font>2<font color="blue"></SubAgencyID></font> <font color="blue"><Supplier <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><DeparturePoint <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><ArrivalPoint <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><FlightDirectionType <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><SearchCount></font>923<font color="blue"></SearchCount></font> <font color="blue"><AvgResultsCount></font>9<font color="blue"></AvgResultsCount></font> <font color="blue"><MinResultsCount></font>0<font color="blue"></MinResultsCount></font> <font color="blue"><MaxResultsCount></font>19<font color="blue"></MaxResultsCount></font> <font color="blue"><SuccessBooksCount></font>0<font color="blue"></SuccessBooksCount></font> <font color="blue"><FailedBooksCount></font>0<font color="blue"></FailedBooksCount></font> <font color="blue"><MadeBooksCount></font>0<font color="blue"></MadeBooksCount></font> <font color="blue"><BookingPlace <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><RequisitesPackageID <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><AdultPassengerCount></font>0<font color="blue"></AdultPassengerCount></font> <font color="blue"><ChildPassengerCount></font>0<font color="blue"></ChildPassengerCount></font> <font color="blue"><TotalPassengersCount></font>0<font color="blue"></TotalPassengersCount></font> <font color="blue"></DestinationStatsItem></font> <font color="blue"></StatisticsItems></font> <font color="blue"></ResponseBody></font> <font color="blue"></GetDestinationsStatisticsResult></font> <font color="blue"></GetDestinationsStatisticsResponse></font></code> === <span style="color:green;">Получение статистики LookToBook.</span> ======== Запрос =====* '''DateStart'''* '''DateEnd'''* '''GroupBy'''* '''SubAgenciesIDs''' - Идентификаторы субагентств, по которым получаем статистику. Тип данных - массив элементов ID.* '''SubAgenciesIDs.ID''' - Идентификатор субагента. Тип данных - целое 32-битное число.* '''AgencyID''' - Идентификатор агенства. Тип данных - целое 32-битное число (может быть пустым).* '''AggregateBy''' - По каким полям следует агрегировать объекты статистики. Тип данных - перечисление. Возможные значения (может быть несколько через пробел)(может быть пустым):** None (0) не аггрегировать объекты с неагрегируемыми свойствами** Agencies (1) по агенствам** SupAgencies (2) по субагенствам** UserTypes (4) по типам пользователей (анонимы и зарегистрированные)** DepPoints (8) по пунктам отправления** ArrPoints (16) по пунктам прибытия** BookingPlaces (32) по местам бронирования** RequisitesPackages (64) по пакетам реквизитов ===== Пример запроса (XML)=====
<code> <font color?xml version="blue1.0"><GetLookToBookStatistics></font?> <font colorsoap:Envelope xmlns:soap="bluehttp://schemas.xmlsoap.org/soap/envelope/"> <requestsoap:Header/> </fontsoap:Body> <font colorm:NewAccountResponse xmlns:m="bluehttp://DOMEN_NAME"><RequestBody></font> <font colorm:return xmlns:xs="blue"><DateStart><http://font>28www.07w3.2014<font color="blue"><org/DateStart><2001/font> <font colorXMLSchema" xmlns:xsi="blue"><DateEnd><http://font>10www.08w3.2014<font color="blue"><org/DateEnd><2001/font> <font color=XMLSchema-instance"blue"><GroupBy></font>Week<font colorxsi:type="bluem:outInvoice"> </GroupBym:NoDoc>00015365</fontm:NoDoc> <font color="green"m:DateInvoice>&#60;!2015-02-Optional04T00:00:--&#62;00</fontm:DateInvoice> <font color="blue"><SubAgenciesIDsm:ExternalUserId>00017483</fontm:ExternalUserId> <font color="green">&#60;!--Zero or more repetitionsm:--&#62;</fontTicketsSum> <font color="blue"><IDm:Price>10040</fontm:Price>2 <font color="blue"m:Discount>0</ID></fontm:Discount> <font color="blue"m:Charge>0</SubAgenciesIDs></fontm:Charge> <font color="green">&#60;!--Optionalm:--&#62;</font> <font color="blue"><AgencyIDSum>10040</font>2<font color="blue"></AgencyID></font> <font color="green">&#60;!--Optionalm:--&#62;</fontSum> <font color="blue"><AggregateBy> </font>DepPoints ArrPoints<font color="blue"></AggregateBy></fontm:TicketsSum> <font color="blue"> </RequestBody></fontm:return> <font color="blue"> </request></fontm:NewAccountResponse> <font color="blue"> </GetLookToBookStatistics></fontsoap:Body></codesoap:Envelope>
===== Ответ =====
* '''StatisticsItems''' - Объекты статистики. Тип данных - массив элементов LookToBookStatsItem.
* '''StatisticsItems.LookToBookStatsItem.ServiceType''' - Тип услуги (авиа/отели/...). Тип данных - перечисление. Возможные значения аналогичны параметру
* '''StatisticsItems.LookToBookStatsItem.DateTime''' - Дата и время начала периода, по которому группируется статистика. Формат yyyy-MM-ddThh:mm:ss. Тип данных - дата и время.
* '''StatisticsItems.LookToBookStatsItem.IsAnonimUser''' - Анонимные пользователи. Тип данных - булев (может быть пустым).
* '''StatisticsItems.LookToBookStatsItem.AgencyID''' - Идентификатор агенства. Тип данных - целое 32-битное число (может быть пустым).
* '''StatisticsItems.LookToBookStatsItem.SubAgencyID''' - Идентификатор субагенства. Тип данных - целое 32-битное число (может быть пустым).
* '''StatisticsItems.LookToBookStatsItem.RequisitesPackageID''' - Идентификатор пакета реквизитов бронирования (может быть пустым). Тип данных - целое 32-битное число (может быть пустым).
* '''StatisticsItems.LookToBookStatsItem.BookingPlace''' - Место создания брони. Тип данных - перечисление (может быть пустым). Возможные значения аналогичны параметру '''StatisticsItems.DestinationStatsItem.BookingPlace''' из [[#Ответ_3|ответа на получение статистики направлений]].
* '''StatisticsItems.LookToBookStatsItem.DepartureCityCode''' - Код города отправления. Тип данных - строка.
* '''StatisticsItems.LookToBookStatsItem.ArrivalCityCode''' - Код города прибытия. Тип данных - строка.
* '''StatisticsItems.LookToBookStatsItem.LookToBookCoef''' - Отношение поисков к броням. Рассчитывается по формуле (ЕСЛИ кол-во броней > 0, ТО кол-во поисков / кол-во броней, ИНАЧЕ кол-во поисков). Тип данных - дробное число.
===== Пример ответа (XML)=====
<code> <font color="blue"><GetLookToBookStatisticsResponse></font> <font color="blue"><GetLookToBookStatisticsResult></font> <font color="blue"><RequestID></font>62429<font color="blue"></RequestID></font> <font color="blue"><ResponseBody></font> <font color="blue"><StatisticsItems></font> <font color="blue"><LookToBookStatsItem></font> <font color="blue"><ServiceType></font>Avia<font color="blue"></ServiceType></font> <font color="blue"><DateTime></font>2014-08-04T00:00:00<font color="blue"></DateTime></font> <font color="blue"><IsAnonimUser></font>false<font color="blue"></IsAnonimUser></font> <font color="blue"><AgencyID></font>2<font color="blue"></AgencyID></font> <font color="blue"><SubAgencyID></font>2<font color="blue"></SubAgencyID></font> <font color="blue"><RequisitesPackageID <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><BookingPlace <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><DepartureCityCode <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><ArrivalCityCode <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><LookToBookCoef></font>18749<font color="blue"></LookToBookCoef></font> <font color="blue"></LookToBookStatsItem></font> <font color="blue"><LookToBookStatsItem></font> <font color="blue"><ServiceType></font>Avia<font color="blue"></ServiceType></fontpre> <font color="blue"><DateTime></font>2014-07-28T00:00:00<font color="blue"div></DateTime></font> <font color="blue"><IsAnonimUser></font>false<font color="blue"></IsAnonimUser></font> <font color="blue"><AgencyID></font>2<font color="blue"></AgencyID></font> <font color="blue"><SubAgencyID></font>2<font color="blue"></SubAgencyID></font> <font color="blue"><RequisitesPackageID <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><BookingPlace <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><DepartureCityCode <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><ArrivalCityCode <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><LookToBookCoef></font>20<font color="blue"></LookToBookCoef></font> <font color="blue"></LookToBookStatsItem></font> <font color="blue"></StatisticsItems></font> <font color="blue"></ResponseBody></font> <font color="blue"></GetLookToBookStatisticsResult></font> <font color="blue"></GetLookToBookStatisticsResponse></font></codediv>
=== <span style="color:green;">Получение статистики BookToCancel.</span> ======== Запрос =====Запрос аналогичен [[#Запрос_4|запросу на получение статистики LookToBook]]===== Пример запроса (XML)===== <code> <font color="blue"><GetBookToCancelStatistics></font> <font color="blue"><request></font> <font color="blue"><RequestBody></font> <font color="blue"><DateStart></font>12.08.2014<font color="blue"></DateStart></font> <font color="blue"><DateEnd></font>12.08.2014<font color="blue"></DateEnd></font> <font color="blue"><GroupBy></font>Day<font color="blue"></GroupBy></font> <font color="green">&#60;!--Optional:--&#62;</font> <font color="blue"><SubAgenciesIDs></font> <font color="green">&#60;!--Zero or more repetitions:--&#62;</font> <font color="blue"><ID></font>2<font color="blue"></ID></font> <font color="blue"></SubAgenciesIDs></font> <font color="green">&#60;!--Optional:--&#62;</font> <font color="blue"><AgencyID></font>2<font color="blue"></AgencyID></font> <font color="green">&#60;!--Optional:--&#62;</font> <font color="blue"><AggregateBy></font>DepPoints ArrPoints<font color="blue"></AggregateBy></font> <font color="blue"></RequestBody></font> <font color="blue"></request></font> <font color="blue"></GetBookToCancelStatistics></font></code> ===== Ответ =====* '''StatisticsItems''' - Объекты статистики. Тип данных - массив элементов BookToCancelStatsItem.* '''StatisticsItems.BookToCancelStatsItem.ServiceType''' - Тип услуги (авиа/отели/...). Тип данных - перечисление. Возможные значения аналогичны параметру* '''StatisticsItems.BookToCancelStatsItem.DateTime''' - Дата и время начала периода, по которому группируется статистика. Формат yyyy-MM-ddThh:mm:ss. Тип данных - дата и время.* '''StatisticsItems.BookToCancelStatsItem.IsAnonimUser''' - Анонимные пользователи. Тип данных - булев (может быть пустым).* '''StatisticsItems.BookToCancelStatsItem.AgencyID''' - Идентификатор агенства. Тип данных - целое 32-битное число (может быть пустым).* '''StatisticsItems.BookToCancelStatsItem.SubAgencyID''' - Идентификатор субагенства. Тип данных - целое 32-битное число (может быть пустым).* '''StatisticsItems.BookToCancelStatsItem.RequisitesPackageID''' - Идентификатор пакета реквизитов бронирования (может быть пустым). Тип данных - целое 32-битное число (может быть пустым).* '''StatisticsItems.BookToCancelStatsItem.BookingPlace''' - Место создания брони. Тип данных - перечисление (может быть пустым). Возможные значения аналогичны параметру '''StatisticsItems.DestinationStatsItem.BookingPlace''' из [[#Ответ_2|ответа на получение статистики направлений]].* '''StatisticsItems.BookToCancelStatsItem.DepartureCityCode''' - Код города отправления. Тип данных - строка.* '''StatisticsItems.BookToCancelStatsItem.ArrivalCityCode''' - Код города прибытия. Тип данных - строка.* '''StatisticsItems.BookToCancelStatsItem.BookToCancelCoef''' - Отношение броней к отменённым броням. Рассчитывается по формуле (ЕСЛИ кол-во броней > 0 И кол-во отменённых броней > 0, ТО кол-во броней / кол-во отменённых броней, ИНАЧЕ 0). Тип данных - дробное число. ===== Пример ответа (XML)===== <code> <font color="blue"><GetBookToCancelStatisticsResponse></font> <font color="blue"><GetBookToCancelStatisticsResult></font> <font color="blue"><RequestID></font>62437<font color="blue"></RequestID></font> <font color="blue"><ResponseBody></font> <font color="blue"><StatisticsItems></font> <font color="blue"><BookToCancelStatsItem></font> <font color="blue"><ServiceType></font>Avia<font color="blue"></ServiceType></font> <font color="blue"><DateTime></font>2014-08-12T00:00:00<font color="blue"></DateTime></font> <font color="blue"><IsAnonimUser></font>false<font color="blue"></IsAnonimUser></font> <font color="blue"><AgencyID></font>2<font color="blue"></AgencyID></font> <font color="blue"><SubAgencyID></font>2<font color="blue"></SubAgencyID></font> <font color="blue"><RequisitesPackageID <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><BookingPlace <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><DepartureCityCode <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><ArrivalCityCode <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><BookToCancelCoef></font>0<font color="blue"></BookToCancelCoef></font> <font color="blue"></BookToCancelStatsItem></font> <font color="blue"></StatisticsItems></font> <font color="blue"></ResponseBody></font> <font color="blue"></GetBookToCancelStatisticsResult></font> <font color="blue"></GetBookToCancelStatisticsResponse></font></code> === <span style="color:green;">Получение ТОПов поисковых запросов.</span> ===Позволяет делать выборки, отвечающие на вопросы:<br/>Какие аэропорты или страны отправления чаще всего искали?<br/>Какие аэропорты или страны прибытия чаще всего искали?<br/>У каких агентств, субагентств или пользователей больше всего поисков? ===== Запрос =====* '''DateStart'''* '''DateEnd'''* '''GroupBy'''* '''SubAgenciesIDs''' - Идентификаторы субагентств, по которым получаем статистику. Тип данных - массив элементов ID.* '''SubAgenciesIDs.ID''' - Идентификатор субагента. Тип данных - целое 32-битное число.* '''AgencyID''' - Идентификатор агенства. Тип данных - целое 32-битное число (может быть пустым).* '''ServiceType''' - Тип услуги (авиа/отели/...). Тип данных - перечисление. Возможные значения аналогичны параметру '''''StatisticsItems.SearchStatsItem.ServiceType''''' из [[#Ответ|ответа на получение статистики поисков]].* '''TopBy''' - Определяет по какому параметру формируется ТОП поисковых запросов. Тип данных - перечисление. Возможные значения:** DepPoint - по точке отправления** ArrPoint - по точке прибытия** DepCountry - по стране отправления** ArrCountry - по стране прибытия** Agency - по агентствам** SubAgency - по субагентствам** User - по пользователям* '''Top''' - Ограничение количества результатов сверху. Тип данных - целое 32-битное число. ===== Пример запроса (XML)===== <code> <font color="blue"><GetSearchTopStatistics></font> <font color="blue"><request></font> <font color="blue"><RequestBody></font> <font color="blue"><DateStart></font>01.12.2014<font color="blue"></DateStart></font> <font color="blue"><DateEnd></font>31.12.2014<font color="blue"></DateEnd></font> <font color="blue"><GroupBy></font>Month<font color="blue"></GroupBy></font> <font color="green">&#60;!--Optional:--&#62;</font> <font color="blue"><SubAgenciesIDs></font> <font color="blue"><ID></font>5<font color="blue"></ID></font> <font color="blue"><ID></font>6<font color="blue"></ID></font> <font color="blue"></SubAgenciesIDs></font> <font color="green">&#60;!--Optional:--&#62;</font> <font color="blue"><AgencyID></font>4<font color="blue"></AgencyID></font> <font color="green">&#60;!--Optional:--&#62;</font> <font color="green">&#60;!<ServiceType>Avia</ServiceType>&#62;</font> <font color="blue"><TopBy></font>DepCountry<font color="blue"></TopBy></font> <font color="green">&#60;!--Optional:--&#62;</font> <font color="blue"><Top></font>2<font color="blue"></Top></font> <font color="blue"></RequestBody></font> <font color="blue"></request></font> <font color="blue"></GetSearchTopStatistics></font></code> ===== Ответ =====* '''StatisticsItems''' - Объекты статистики. Тип данных - массив элементов * '''StatisticsItems.SearchTopStatsItem.DateTime''' - Дата и время начала периода, по которому группируется статистика. Формат yyyy-MM-ddThh:mm:ss. Тип данных - дата и время.* '''StatisticsItems.SearchTopStatsItem.UserID''' - Идентификатор пользователя. Тип данных - целое 32-битное число (может быть пустым).* '''StatisticsItems.SearchTopStatsItem.AgencyID''' - Идентификатор агентства. Тип данных - целое 32-битное число (может быть пустым).* '''StatisticsItems.SearchTopStatsItem.SubAgencyID''' - Идентификатор субагентства. Тип данных - целое 32-битное число (может быть пустым).* '''StatisticsItems.SearchTopStatsItem.SearchCount''' - Число поисков. Тип данных - целое 32-битное число.* '''StatisticsItems.SearchTopStatsItem.DepPoint''' - Код точки отправления. Тип данных - строка.* '''StatisticsItems.SearchTopStatsItem.ArrPoint''' - Код точки прибытия. Тип дынных - строка.* '''StatisticsItems.SearchTopStatsItem.DepCountry''' - Двубуквенный код страны отправления. Тип данных - строка.* '''StatisticsItems.SearchTopStatsItem.ArrCountry''' - Двубуквенный код страны прибытия. Тип данных - строка. ===== Пример ответа (XML)===== <code> <font color="blue"><GetSearchTopStatisticsResponse></font> <font color="blue"><GetSearchTopStatisticsResult></font> <font color="blue"><RequestID></font>22945<font color="blue"></RequestID></font> <font color="blue"><ResponseBody></font> <font color="blue"><StatisticsItems></font> <font color="blue"><SearchTopStatsItem></font> <font color="blue"><DateTime></font>2014-12-01T00:00:00<font color="blue"></DateTime></font> <font color="blue"><UserID <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><AgencyID <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><SubAgencyID <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><SearchCount></font>120<font color="blue"></SearchCount></font> <font color="blue"><DepPoint <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><ArrPoint <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><DepCountry></font>RU<font color="blue"></DepCountry></font> <font color="blue"><ArrCountry <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"></SearchTopStatsItem></font> <font color="blue"><SearchTopStatsItem></font> <font color="blue"><DateTime></font>2014-12-01T00:00:00<font color="blue"></DateTime></font> <font color="blue"><UserID <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><AgencyID <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><SubAgencyID <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><SearchCount></font>4<font color="blue"></SearchCount></font> <font color="blue"><DepPoint <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><ArrPoint <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"><DepCountry></font>EG<font color="blue"></DepCountry></font> <font color="blue"><ArrCountry <font color="orangered">nil</font>=<font color="purple">"true"</font>/></font> <font color="blue"></SearchTopStatsItem></font> <font color="blue"></StatisticsItems></font> <font color="blue"></ResponseBody></font> <font color="blue"></GetSearchTopStatisticsResult></font> <font color="blue"></GetSearchTopStatisticsResponse></font></code==Выгрузка информации о продажах в формате Nemo XML====Выгрузка информации о продажах в формате СОФИ XML====Фиксация оплаты внешним запросом====Выгрузка заказов по критериям в формате Nemo XML====Выгрузка определенного заказа по критериям в формате Nemo XML====API универсального платежного шлюза====API Синхронизации пользователей и субагентов====API Кросс­авторизации====Передача параметров в форму поиска====Проверка в сторонней системе возможности тикетинга====API загрузки счетов из сторонней системы====API загрузки сальдо компаний из СОФИ==
1382
правки
'