|
|
(не показаны 74 промежуточные версии 4 участников) |
Строка 1: |
Строка 1: |
| + | ==API Авиабилетов== |
| | | |
− | '''!!!СТАТЬЯ В РАЗРАБОТКЕ!!!'''
| + | Чтобы авторизоваться в системе, в запросе необходимо указать APIKey и ClientID. Эти данные можно узнать в разделе Администрирование - Веб-сервис. Авторизация. Там же можно включить/выключить нотификацию для действий, совершенных через АПИ. |
− | | |
− | ==API Поиска авиабилетов==
| |
− | === Подключение ===
| |
| | | |
| + | === API Поиска авиабилетов === |
| Это сервис внутри Nemo, который позволяет получить результаты поиска. | | Это сервис внутри Nemo, который позволяет получить результаты поиска. |
| | | |
| Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе '''«Администрирование»''' ⇨ '''«Веб-служба. Авторизация»'''. | | Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе '''«Администрирование»''' ⇨ '''«Веб-служба. Авторизация»'''. |
| | | |
− | После добавления пользователя, ему будут присвоены Номер (ClientId) и API ключ клиента, которые нужно использовать для подключения.
| + | Подробнее можно узнать в специальной статье [[Веб-служба поиска авиабилетов]] |
− | | |
− | WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=SearchFlights
| |
− | | |
− | === Общий формат запроса / ответа поиска ===
| |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| + | === API Бронирования авиабилетов === |
− | ===== Запрос ===== | + | Сервис позволяет забронировать/войдировать авиабилет с использованием 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 — искать только доступные, возможные значения: 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="toccolours mw-collapsible mw-collapsed" style="width:1000px"> |
− | ===== Запрос ===== | + | ==== Параметры, используемые в запросах ==== |
| <div class="mw-collapsible-content"> | | <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;"> | + | <table border="1"> |
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights">
| + | <tr bgcolor="#CCCCCC"> |
− | <soapenv:Header/>
| + | <th> Имя элемента </th><th> Обязательный </th><th> Тип </th><th> Описание </th> |
− | <soapenv:Body>
| + | </tr> |
− | <ver:search>
| + | <tr> |
− | <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 Type="CNN" Count="1"/>
| |
− | </Travellers>
| |
− | <Restrictions>
| |
− | <ClassPref>economy</ClassPref>
| |
− | <OnlyAvail>false</OnlyAvail>
| |
− | <AirVPrefs>
| |
− | <!--Zero or more repetitions:-->
| |
− | <AirVPref Code="SU" Include="true" Type="IATA"/>
| |
− | </AirVPrefs>
| |
− | <IncludePrivateFare>false</IncludePrivateFare>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Restrictions>
| |
− | </SearchFlights>
| |
− | </Request>
| |
− | <Source>
| |
− | <ClientId>---</ClientId>
| |
− | <APIKey>---</APIKey>
| |
− | <Language>RU</Language>
| |
− | <Currency>RUB</Currency>
| |
− | <ShowNames>true</ShowNames>
| |
− | </Source>
| |
− | </RequestBin>
| |
− | </ver:search>
| |
− | </soapenv:Body> | |
− | </soapenv:Envelope> | |
− | </syntaxhighlight> | |
− | </div>
| |
− | </div>
| |
− | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| |
| | | |
− | ===== Ответ =====
| + | <td>BookFlight </td><td>да </td><td>сложный </td><td>Контейнер для тела запроса бронирования</td> |
− | <div class="mw-collapsible-content">
| + | </tr> |
− | <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:ns1="http://CLIEN_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
| + | <td>FlightId </td><td class="col1">да </td><td>число</td><td >Id перелёта для которого будет производится бронирование(поиск тарифных правил, проверка доступности)</td> |
− | <SOAP-ENV:Body>
| + | </tr> |
− | <ns1:searchResponse>
| + | <tr> |
− | <ResponseBin>
| + | <td>CurrencyCode </td><td>нет</td><td>строка</td><td>Трёх буквенный код валюты (обязателен для комиссии в валюте)</td> |
− | <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"/>
| |
− | </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="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>
| |
− | </div> | |
| | | |
− | ==== Перелет туда-обратно ====
| + | </tr> |
| + | <tr> |
| + | <td>Agency </td><td>да </td><td>сложный </td><td>Информация об агентстве</td> |
| | | |
− | Пример перелета туда-обратно: Москва — Париж, 2 взрослых, бизнес класс. '''Выдача с именами авиакомпаний, воздушных судов, аэропортов.'''
| + | </tr> |
| + | <tr> |
| + | <td>Name </td><td>да </td><td>строка </td><td>Название агентства</td> |
| + | </tr> |
| + | <tr> |
| + | <td>Telephone </td><td>нет </td><td>сложный </td><td>Контактный телефон агентства</td> |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | + | </tr> |
− | ===== Запрос =====
| + | <tr> |
− | <div class="mw-collapsible-content">
| + | <td>Type</td><td>да </td><td>строка </td><td>Тип номера, возможные значения: M - мобильный, H - домашний, B - рабочий, A - агентство</td> |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| + | </tr> |
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights">
| + | <tr> |
− | <soapenv:Header/>
| + | <td>PhoneNumber </td><td>да </td><td>строка </td><td>Номер телефона</td> |
− | <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</DepAirp>
| |
− | <ArrAirp CodeType="IATA">MOW</ArrAirp>
| |
− | </ODPair>
| |
− | </ODPairs>
| |
− | <Travellers>
| |
− | <!--Zero or more repetitions:-->
| |
− | <Traveller Type="ADT" Count="2"/>
| |
− | </Travellers>
| |
− | <Restrictions>
| |
− | <ClassPref>business</ClassPref>
| |
− | <OnlyAvail>false</OnlyAvail>
| |
− | <AirVPrefs/>
| |
− | <IncludePrivateFare>false</IncludePrivateFare>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Restrictions>
| |
− | </SearchFlights>
| |
− | </Request>
| |
− | <Source>
| |
− | <ClientId>---</ClientId>
| |
− | <APIKey>---</APIKey>
| |
− | <Language>RU</Language>
| |
− | <Currency>RUB</Currency>
| |
− | <ShowNames>true</ShowNames>
| |
− | </Source>
| |
− | </RequestBin>
| |
− | </ver:search>
| |
− | </soapenv:Body>
| |
− | </soapenv:Envelope>
| |
− | </syntaxhighlight>
| |
− | </div> | |
− | </div> | |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | + | </tr> |
| + | <tr> |
| + | <td>CountryAccessCode </td><td>нет </td><td>строка </td><td>Код страны</td> |
| + | </tr> |
| + | <tr> |
| + | <td>AreaCityCode </td><td>нет </td><td>строка</td><td>Код региона/города</td> |
| | | |
− | ===== Ответ =====
| + | </tr> |
− | <div class="mw-collapsible-content">
| + | <tr> |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> | + | <td>Address</td><td>да </td><td>сложный </td><td class="col3">Адрес агентства</td> |
− | <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>
| + | <tr> |
− | <ns1:searchResponse>
| + | <td>City</td><td>да </td><td class="col2">строка </td><td>Город, в котором расположено агентство</td> |
− | <ResponseBin>
| |
− | <Response>
| |
− | <SearchFlights>
| |
− | <Flights SearchId="190484987" ResultURL="http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D190484987">
| |
− | <Flight FlightId="372384680001">
| |
− | <WebService>SABRE</WebService>
| |
− | <ValCompany/>
| |
− | <URL>http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dbooking%2Finfo%26uid%3D190484987%26flight%3D372384680001%26utm_source%3Dalias1</URL>
| |
− | <Segments>
| |
− | <Segment SegNum="1" SegGroupNum="0">
| |
− | <DepAirp CodeType="IATA" Name="Шереметьево, Москва">SVO</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>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</FareCalc>
| |
− | <LastTicketDateTime>2014-12-20T04:05:00</LastTicketDateTime>
| |
− | </PassengerFare>
| |
− | </PricingInfo>
| |
− | <Commission/>
| |
− | <Charges Currency="RUB">0</Charges>
| |
− | <TotalPrice Currency="RUB">88860</TotalPrice>
| |
− | </Flight>
| |
− | .........
| |
− | <Flight>...</Flight>
| |
− | </Flights>
| |
− | <Errors xsi:nil="true"/>
| |
− | </SearchFlights>
| |
− | </Response>
| |
− | </ResponseBin>
| |
− | </ns1:searchResponse>
| |
− | </SOAP-ENV:Body>
| |
− | </SOAP-ENV:Envelope>
| |
− | </syntaxhighlight>
| |
− | </div>
| |
− | </div> | |
| | | |
− | ==== Сложный маршрут ====
| + | </tr> |
| + | <tr> |
| + | <td>StreetAddress </td><td>нет </td><td>сложный </td><td>Адрес агентства в городе (улица, дом, корпус, офис и т.д.)</td> |
| + | </tr> |
| + | <tr> |
| + | <td>PostalCode </td><td>нет </td><td>строка </td><td>Почтовый код, индекс.</td> |
| | | |
− | Пример сложного маршрута: Прага — Москва — Милан — Мадрид, 1 взрослый, 1 младенец, эконом класс. '''Выдача с именами авиакомпаний, воздушных судов, аэропортов.'''
| + | </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> |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | + | </tr> |
− | ===== Запрос =====
| + | <tr> |
− | <div class="mw-collapsible-content"> | + | <td class="col0">Traveller </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> |
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights"> | + | <tr class="row24"> |
− | <soapenv:Header/>
| + | <td>Type</td><td>да</td><td>строка</td><td>Тип пассажира возможные значения: ADT - взрослые, CNN - дети, UNN - дети без сопровождения взрослых, INF - младенцы, INS - младенцы с местом</td> |
− | <soapenv:Body>
| |
− | <ver:search>
| |
− | <RequestBin>
| |
− | <Request>
| |
− | <SearchFlights LinkOnly="false">
| |
− | <ODPairs Type="CR" Direct="false" AroundDates="0">
| |
− | <!--Zero or more repetitions:-->
| |
− | <ODPair>
| |
− | <DepDate>2014-12-20</DepDate>
| |
− | <DepAirp CodeType="IATA">PRG</DepAirp>
| |
− | <ArrAirp CodeType="IATA">MOW</ArrAirp>
| |
− | </ODPair>
| |
− | <ODPair>
| |
− | <DepDate>2014-12-23</DepDate>
| |
− | <DepAirp CodeType="IATA">MOW</DepAirp>
| |
− | <ArrAirp CodeType="IATA">MIL</ArrAirp>
| |
− | </ODPair>
| |
− | <ODPair>
| |
− | <DepDate>2014-12-27</DepDate>
| |
− | <DepAirp CodeType="IATA">MIL</DepAirp>
| |
− | <ArrAirp CodeType="IATA">MAD</ArrAirp>
| |
− | </ODPair>
| |
− | </ODPairs>
| |
− | <Travellers>
| |
− | <!--Zero or more repetitions:-->
| |
− | <Traveller Type="ADT" 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>
| |
− | </div> | |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | + | </tr> |
| + | <tr class="row25"> |
| + | <td class="col0">IsContact </td><td class="col1">нет</td><td class="col2">булевский </td><td class="col3">Индикатор показывающий является ли данное лицо контактным, возможные значение: true - пассажир является контактным лицом, false - не является. Контактное лицо может быть только одно, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом. Если не указано, то по умолчанию false.</td> |
| + | </tr> |
| + | <tr class="row26"> |
| + | <td class="col0">LinkedTo </td><td class="col1">нет </td><td class="col2">целое число </td><td class="col3">Номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)</td> |
| | | |
− | ===== Ответ =====
| + | </tr> |
− | <div class="mw-collapsible-content">
| + | <tr class="row27"> |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| + | <td class="col0">Num </td><td class="col1">да </td><td class="col2">число </td><td class="col3">Номер пассажира.</td> |
− | <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>
| + | <tr class="row28"> |
− | <ns1:searchResponse>
| + | <td class="col0">PreferedPlace </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Информация о предпочитаемом месте. Если указаны номер ряда и номер места, то параметры Smoking и Location игнорируются и могут быть не указаны.</td> |
− | <ResponseBin>
| |
− | <Response>
| |
− | <SearchFlights>
| |
− | <Flights SearchId="190491108" ResultURL="http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D190491108">
| |
− | <Flight FlightId="372394480001">
| |
− | <WebService>SABRE</WebService>
| |
− | <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" Name="Прага">PRG</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>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 ClassType="economy">
| |
− | <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>2014-12-23T09:05:00</DepDateTime>
| |
− | <ArrDateTime>2014-12-23T10:50:00</ArrDateTime>
| |
− | <StopNum>0</StopNum>
| |
− | <BookingCodes>
| |
− | <BookingCode ClassType="economy">
| |
− | <BookingCode>V</BookingCode>
| |
− | </BookingCode>
| |
− | </BookingCodes>
| |
− | <FlightTime>225</FlightTime>
| |
− | <TimeZone Departure="3" Arrival="1"/>
| |
− | <ETicket>true</ETicket>
| |
− | </Segment>
| |
− | <Segment SegNum="4" SegGroupNum="1">
| |
− | <DepAirp CodeType="IATA" Name="Цюрих">ZRH</DepAirp>
| |
− | <DepTerminal xsi:nil="true"/>
| |
− | <ArrAirp CodeType="IATA" Name="Мальпенса, Милан">MXP</ArrAirp>
| |
− | <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" SegGroupNum="2">
| |
− | <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>2014-12-27T07:05:00</DepDateTime>
| |
− | <ArrDateTime>2014-12-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-12-27T12:30:00</DepDateTime>
| |
− | <ArrDateTime>2014-12-27T14:50:00</ArrDateTime>
| |
− | <StopNum>0</StopNum>
| |
− | <BookingCodes>
| |
− | <BookingCode ClassType="economy">
| |
− | <BookingCode>V</BookingCode>
| |
− | </BookingCode>
| |
− | </BookingCodes>
| |
− | <FlightTime>140</FlightTime>
| |
− | <TimeZone Departure="1" Arrival="1"/>
| |
− | <ETicket>true</ETicket>
| |
− | </Segment>
| |
− | </Segments>
| |
− | <PricingInfo Refundable="false">
| |
− | <PassengerFare Type="ADT" Quantity="1">
| |
− | <BaseFare Currency="CZK" Amount="8440"/>
| |
− | <EquiveFare Currency="RUB" Amount="17305"/>
| |
− | <TotalFare Currency="RUB" Amount="31456"/>
| |
− | <Taxes>
| |
− | <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/>
| |
− | <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/>
| |
− | <Tax CurCode="RUB" TaxCode="YQI" Amount="1960"/>
| |
− | <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/>
| |
− | <Tax CurCode="RUB" TaxCode="YQI" Amount="840"/>
| |
− | <Tax CurCode="RUB" TaxCode="YQI" Amount="1960"/>
| |
− | <Tax CurCode="RUB" TaxCode="RI" Amount="378"/>
| |
− | <Tax CurCode="RUB" TaxCode="RI" Amount="378"/>
| |
− | <Tax CurCode="RUB" TaxCode="UH" Amount="284"/>
| |
− | <Tax CurCode="RUB" TaxCode="CZ" Amount="1159"/>
| |
− | <Tax CurCode="RUB" TaxCode="CH2" Amount="1112"/>
| |
− | <Tax CurCode="RUB" TaxCode="CH2" 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>
| |
− | </div> | |
| | | |
| + | </tr> |
| + | <tr class="row29"> |
| + | <td class="col0">SmokingAllowed </td><td class="col1">нет </td><td class="col2">булевский </td><td class="col3">true - место для курящих, false - место для некурящих. По умолчанию false.</td> |
| + | </tr> |
| + | <tr class="row30"> |
| + | <td class="col0">Location </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Расположение места, возможные значения: W - у окна (Window); M - где-то в середине ряда (Middle); NPW - возле прохода (NearPassengerWay); NS - нет предпочтения (NotSpecified).</td> |
| + | </tr> |
| + | <tr class="row31"> |
| + | <td class="col0">RowNumber</td><td class="col1">нет</td><td class="col2">строка </td><td class="col3">Номер ряда</td> |
| + | </tr> |
| + | <tr class="row32"> |
| + | <td class="col0">PlaceNumber </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Номер места</td> |
| | | |
| + | </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> |
| | | |
− | ==API Поиска отелей== | + | </tr> |
− | '''Агентский API Отелей''' - система, которая предоставляет возможность поиска и бронирования отелей а так же получение информации о времени и размерах штрафов, уникальной информации об отеле, получение статической информации.
| + | <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="col2">сложный </td><td class="col3">Информация о визе</td> |
| + | </tr> |
| + | <tr class="row40"> |
| + | <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> |
| | | |
− | '''WSDL''' (тестовый сервер): [http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelsSearch http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelsSearch]
| + | </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> |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | + | </tr> |
− | ===== Запрос =====
| + | <tr class="row47"> |
− | <div class="mw-collapsible-content"> | + | <td class="col0">CountryCode </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">IATA код страны</td> |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> | + | </tr> |
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" | + | <tr class="row48"> |
− | xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelsSearch">
| + | <td class="col0">State </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Штат или область въезда</td> |
− | <soapenv:Header/>
| |
− | <soapenv:Body>
| |
− | <ver:search>
| |
− | <RequestBin>
| |
− | <Request>
| |
− | <HotelSearch>
| |
− | <CityId>22046</CityId>
| |
− | <DateBegin>2013-10-15</DateBegin>
| |
− | <DateEnd>2013-10-18</DateEnd>
| |
− | <Rooms>
| |
− | <!--Zero or more repetitions:-->
| |
− | <Room>
| |
− | <Persons>
| |
− | <!--Zero or more repetitions:-->
| |
− | <Person Id="1" Type="ADT" Age="30"/>
| |
− | <Person Id="2" Type="CLD" Age="10"/>
| |
− | </Persons>
| |
− | <!--Optional:-->
| |
− | <DoubleBed>false</DoubleBed>
| |
− | </Room>
| |
− | <Room>
| |
− | <Persons>
| |
− | <!--Zero or more repetitions:-->
| |
− | <Person Id="1" Type="ADT" Age="30"/>
| |
− | </Persons>
| |
− | </Room>
| |
− | </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>
| |
− | </syntaxhighlight> | |
| | | |
− | Элемент '''HotelSearch'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row49"> |
− | |-
| + | <td class="col0">PostalCode </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Почтовый код</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row50"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">City </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Город</td> |
− | |-
| |
− | | CityId
| |
− | | Обязательный. Идентификатор города в системе Nemo.
| |
− | | Целое число
| |
− | |-
| |
− | | DateBegin
| |
− | | Обязательный. Дата заселения.
| |
− | | Формат гггг-мм-дд.
| |
− | |-
| |
− | | DateEnd
| |
− | | Обязательный. Дата выезда.
| |
− | | Формат гггг-мм-дд.
| |
− | |-
| |
− | | Rooms
| |
− | | Обязательный. Содержит массив запрашиваемых номеров/апартаментов.
| |
− | | Элемент Room. Максимум 4 элемента Room.
| |
− | |-
| |
− | | Filters
| |
− | | Необязательный. Содержит различные фильтры поиска отелей.
| |
− | | Элемент Hotels.
| |
− | |}
| |
| | | |
− | Элемент '''Room'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row51"> |
− | |-
| + | <td class="col0">StreetAddress </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Адрес: улица, номер дома, квартиры и тп</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row52"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">DocStringFormats </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Список форматов строк паспортных данных, которые будут отправлены в дополнение к стандартным.</td> |
− | |-
| |
− | | Persons
| |
− | | Обязательный. Содержит данные о клиентах в номерах.
| |
− | | Элемент Person
| |
− | |-
| |
− | | DoubleBed
| |
− | | Необязательный. Может быть использован только если сумма количества детей и взрослых равна 2-м, а также
| |
− | Если в запросе сумма детей и взрослых не равна 2, то данный элемент будет проигнорирован.
| |
− | | true/false
| |
− | true означает, что номер должен иметь двуспальную кровать
| |
− | |}
| |
| | | |
− | Элемент '''Person'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row53"> |
− | |-
| + | <td class="col0">DocStringFormat </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Формат данных, возможные значения: DOCS - строка формата DOCS, FOID - строка формата FOID. Установка данных в формате DOCS как правило необходима для последующей выписки в BSP среде. Установка FOID - всреде ТКП.</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row54"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">PersonalInfo </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Персональные данные пассажира</td> |
− | |-
| + | </tr> |
− | | Атрибут Id
| + | <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> |
− | | Целое число
| + | </tr> |
− | |-
| + | <tr class="row56"> |
− | | Атрибут Type
| + | <td class="col0">Nationality </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Национальность/гражданство, двух буквенный код страны (RU, UA, US и т.д.)</td> |
− | | Тип клиента.
| |
− | Если не указан, будет определен по возрасту Age.
| |
− | | Константы:
| |
− | ADT - взрослый
| |
− | CLD - ребенок 2-12 лет
| |
− | INF - младенец до 2х лет
| |
− | |-
| |
− | | Атрибут Age
| |
− | | Возраст. Обязателен для детей (CLD).
| |
− | | Целое число. Количество лет.
| |
− | |}
| |
| | | |
− | Элемент '''Filters'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row57"> |
− | |-
| + | <td class="col0">Gender </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Пол пассажира, обязательный, возможные значения: M - мужской(Male); F - женский(Female).</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row58"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">FirstName </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Имя пассажира</td> |
− | |-
| |
− | | Hotels
| |
− | | Необязательный. Набор идентификаторов отелей в системе Nemo.
| |
− | Результаты поиска будут ограничены только этими отелями. Данная опция может существенно ускорить поиск - рекомендуется всегда устанавливать при поиске конкретных отелей.
| |
− | | Элемент Id – целое число
| |
− | |}
| |
| | | |
− | Элемент '''Source'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row59"> |
− | |-
| + | <td class="col0">LastName </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Фамилия пассажира</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row60"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">BMiddleName </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Отчество пассажира</td> |
− | |-
| + | </tr> |
− | | ClientID
| + | <tr class="row61"> |
− | | Обязательный. ID клиента в системе Nemo.
| + | <td class="col0">Meal </td><td class="col1">нет</td><td class="col2">строка </td><td class="col3">Код типа питания, возможные значения: 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 - Восточное вегетарианское питание.</td> |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| + | </tr> |
− | | Целое число.
| + | <tr class="row62"> |
− | |-
| + | <td class="col0">LoyaltyCard </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Карточка часто летающего пассажира</td> |
− | | APIKey
| |
− | | Обязательный. APIKey - секретный ключ доступа к API Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Латинские буквы и цифры. Всего 32 символа.
| |
− | |}
| |
− | </div> | |
− | </div> | |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | + | </tr> |
− | ===== Ответ ===== | + | <tr class="row63"> |
− | <div class="mw-collapsible-content"> | + | <td class="col0">OpCode </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">IATA код компании авиаперевозчика</td> |
− | Система по заданным параметрам ищет отели и возвращает результаты поиска. Все результаты поиска хранятся в базе Nemo определенный срок и доступны для бронирования по идентификатору CacheId.
| + | </tr> |
| + | <tr class="row64"> |
| + | <td class="col0">Number </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер карточки</td> |
| + | </tr> |
| + | <tr class="row65"> |
| + | <td class="col0">ContactInfo</td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Контактная информация для пассажира</td> |
| + | </tr> |
| + | <tr class="row66"> |
| + | <td class="col0">EmailID </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Контактный email</td> |
| | | |
− | Структура ответа - это набор уникальных отелей. У каждого указан Id - это идентификатор из базы Nemo. По нему можно получить дополнительную статичную информацию из путеводителя Nemo.
| + | </tr> |
| + | <tr class="row67"> |
| + | <td class="col0">Telephone </td><td class="col1">нет </td><td class="col2">сложный </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><td class="col3">Номер брони, которая будет отменяться (для которой будет производится выписка, отмена выписки)</td> |
| | | |
− | Каждый отель содержит:
| + | </tr> |
− | * Набор номеров <Rooms>. Типы номеров (одноместный, двухместный и т.д.) : устанавливается автоматически по количеству клиентов из запроса.
| + | <tr class="row70"> |
− | * Сервисы <Services>. Каждый отель предлагает различные типы обслуживания в номерах. Цена и доступность может различаться.
| + | <td class="col0">GetAirRules</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса поиска тарифных правил</td> |
− | * Категория <Categories>. Это допустимые комбинации номер + обслуживание. Для бронирования отеля пользователь должен выбрать одну из предлагаемых ему категорий.
| + | </tr> |
| + | <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/" | + | <tr class="row72"> |
− | xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelsSearch">
| + | <td class="col0">Ticketing</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса выписки брони</td> |
− | <SOAP-ENV:Body>
| + | </tr> |
− | <ns1:searchResponse>
| + | <tr class="row73"> |
− | <ResponseBin>
| + | <td class="col0">ValCompany</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Валидирующий перевозчик, на бланке которого выписывается билет</td> |
− | <Response>
| |
− | <HotelSearch>
| |
− | <Hotels>
| |
− | <Hotel Id="1872666">
| |
− | <Supplier>GTA</Supplier>
| |
− | <CityId>22046</CityId>
| |
− | <DateBegin>2013-10-15</DateBegin>
| |
− | <DateEnd>2013-10-18</DateEnd>
| |
− | <CacheId>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">74733.84</TotalPrice>
| |
− | </Category>
| |
− | </Categories>
| |
− | <Services>
| |
− | <Service Id="1" Status="OK">
| |
− | <Desc>Standard Twin</Desc>
| |
− | <Meal>Full Breakfast</Meal>
| |
− | <Price/>
| |
− | </Service>
| |
− | <Service Id="2" Status="OK">
| |
− | <Desc>Standard Twin</Desc>
| |
− | <Meal>Full Breakfast</Meal>
| |
− | <Price/>
| |
− | </Service>
| |
− | </Services>
| |
− | <Rooms>
| |
− | <Room Id="1" Type="TWIN"/>
| |
− | <Room Id="2" Type="SNGL"/>
| |
− | </Rooms>
| |
− | </Hotel>
| |
− | ...
| |
− | </Hotels>
| |
− | </HotelSearch>
| |
− | </Response>
| |
− | </ResponseBin>
| |
− | </ns1:searchResponse>
| |
− | </SOAP-ENV:Body>
| |
− | </SOAP-ENV:Envelope>
| |
− | </syntaxhighlight> | |
| | | |
− | Элемент '''Hotel'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row74"> |
− | |-
| + | <td class="col0">Comission</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Комиссия</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row75"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">Amount</td><td class="col1">нет</td><td class="col2">число с плавающей точкой</td><td class="col3">Значение комиссии в валюте, если указано, то комиссия в процентах игнорируется</td> |
− | |-
| |
− | | Атрибут Id
| |
− | | Обязательный. Идентификатор отеля как одного из результатов поиска в системе Nemo.
| |
− | | Целое число.
| |
− | |-
| |
− | | Supplier
| |
− | | Обязательный. Тип поставщика, в котором найден отель.
| |
− | | Строка.
| |
− | Возможные значения:
| |
− | GTA
| |
− | HOTELBEDS
| |
− | DOTW
| |
− | SERHS
| |
− | MIKI
| |
− | TRAVCO
| |
− | ACADEM
| |
− | TOURICO
| |
− | |-
| |
− | | CityId
| |
− | | Обязательный. Идентификатор города в системе Nemo.
| |
− | | Целое число.
| |
− | |-
| |
− | | CacheId
| |
− | | Обязательный. Идентификатор результата поиска для данного отеля в системе Nemo.
| |
− | | Целое число.
| |
− | |-
| |
− | | Name
| |
− | | Обязательный. Название отеля.
| |
− | | Строка в произвольном формате.
| |
− | |-
| |
− | | Services
| |
− | | Обязательный. Услуги в отеле.
| |
− | | Элемент Service
| |
− | |-
| |
− | | Rooms
| |
− | | Обязательный. Комнаты в отеле.
| |
− | | Элемент Room
| |
− | |-
| |
− | | Categories
| |
− | | Обязательный. Категории, доступные для бронирования в отеле.
| |
− | | Элемент Category
| |
− | |}
| |
| | | |
− | Элемент '''Service'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row76"> |
− | |-
| + | <td class="col0">Percent</td><td class="col1">нет</td><td class="col2">число</td><td class="col3">Комиссия в процентах</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row77"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">VoidTicket</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса отмены выписки брони</td> |
− | |-
| |
− | | Атрибут Id
| |
− | | Обязательный. Идентификатор услуги.
| |
− | | Целое число
| |
− | |-
| |
− | | Атрибут Status
| |
− | | Обязательный. Доступность отеля. ОК означает доступен (мгновенное подтверждение).
| |
− | RQ - недоступен (по запросу).
| |
− | | ОК/RQ
| |
− | |-
| |
− | | Desc
| |
− | | Необязательный. Описание отеля.
| |
− | | Строка в произвольном формате.
| |
− | |-
| |
− | | Meal
| |
− | | Обязательный. Питание для данного сервиса.
| |
− | | Строка в произвольном формате.
| |
− | |-
| |
− | | Price
| |
− | | Необязательный. Указывает на стоимость номера с данной услугой.
| |
− | | Вещественное число.
| |
− | Атрибут Currency - код валюты.
| |
− | |}
| |
| | | |
− | Элемент '''Room'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row78"> |
− | |-
| + | <td class="col0">Search</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса поиска</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row79"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">ODPairs</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для информации о перелёте</td> |
− | |-
| |
− | | Атрибут Id
| |
− | | Обязательный. Идентификатор комнаты в отеле.
| |
− | | Целое число.
| |
− | |-
| |
− | | Type
| |
− | | Обязательный. Тип номера.
| |
− | | Строка. Возможные значения:
| |
− | SNGL – одноместный
| |
− | DBL – двухместный с двухспальной кроватью
| |
− | TWIN – двухместный с двумя кроватями
| |
− | TRIP – трёхместный
| |
− | QUAD – четырёхместный
| |
− | |}
| |
| | | |
− | Элемент '''Category'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row80"> |
− | |-
| + | <td class="col0">Type</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Тип перелёта, возможные значения: OW - в одну сторону, RT - туда-обратно, CR - сложный маршрут</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row81"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">Direct</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Индикатор, указывающий какие перелёты искать, только прямые или с пересадками, возможные значения: false - с пересадками, true - только прямые. Если не указан, значение по умолчанию false.</td> |
− | |-
| + | </tr> |
− | | Атрибут Id
| + | <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> |
− | | Целое число.
| + | </tr> |
− | |-
| + | <tr class="row83"> |
− | | Rooms
| + | <td class="col0">ODPair</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для информации о сегменте перелёта. Может повторяться 1-6 раз. Поиск по расписанию использует только первый сегмент, поиск сложных перелётов и перелётов туда и обратно не поддерживается</td> |
− | | Обязательный. Массив комнат с соответствием услуг.
| |
− | | Целое число.
| |
− | |-
| |
− | | Room
| |
− | | Атрибут: Count
| |
| | | |
− | Обязательный.
| + | </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> |
| | | |
− | Обязательный. Идентификатор комнаты из атрибута Id в элементе Hotel-> Rooms-> Room.
| + | </tr> |
| + | <tr class="row88"> |
| + | <td class="col0">Restrictions</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Контейнер дополнительной информации для поиска.</td> |
| + | </tr> |
| + | <tr class="row89"> |
| + | <td class="col0">ClassPref</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Предпочитаемый класс перелёта, возможные значения: All - все, Economy - эконом, Business - бизнес, First - первый. Если не указан, то по умолчанию All.</td> |
| | | |
− | Атрибут: ServiceId
| + | </tr> |
| + | <tr class="row90"> |
| + | <td class="col0">OnlyAvail</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Искать только доступные, возможные значения: true - только доступные, false - все. Если не указан, то по умолчанию false.</td> |
| + | </tr> |
| + | <tr class="row91"> |
| + | <td class="col0">AirVPrefs</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Обёртка для списка авиакомпаний, по которым будет или не будет проводиться поиск.</td> |
| | | |
− | - Идентификатор услуги из атрибута Id элемента Service. | + | </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 - исключить. Если не указан, то по умолчанию 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> |
− | |-
| + | <tr class="row96"> |
− | | TotalPrice
| + | <td class="col0">ServiceType</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Тип веб-сервиса(поставщика). При указании нескольких элементов ServiceType поиск будет проведён для каждого сервиса. Возможные значения: Sirena2000 - поиск в Сирене; SirenaSchedule - поиск в Сирене по расписанию; SabreLFS - поиск в Сэйбр LFS; SabreBFM - поиск в Сэйбр BFM; SabreSchedule - поиск Сэйбр по расписанию; Galileo - поиск в Галилео; AmadeusMPTBS - поиск в Амадеус.</td> |
− | | Обязательный. Суммарная стоимость бронируемого сочетания “Комнаты - услуги”.
| + | </tr> |
− | | Вещественное число.
| + | </table> |
− | Атрибут Currency - код валюты.
| |
− | |}
| |
| </div> | | </div> |
| </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="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"> | | <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;"> | + | <table border="1"> |
− | <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="width: 800px" class="wikitable"
| + | <th class="col0 leftalign"> Имя элемента </th><th class="col1 leftalign"> Обязательный </th><th class="col2 leftalign"> Тип </th><th class="col3 centeralign"> Описание </th> |
− | |-
| + | </tr> |
− | ! scope="col" width="200" | Элемент
| + | <tr class="row1"> |
− | ! scope="col" width="300" | Описание
| + | <td class="col0">BookFlightResult </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Контейнер для тела ответа бронирования</td> |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | CategoryId
| |
− | | Обязательный. Идентификатор категории.
| |
− | | Целое число
| |
− | |-
| |
− | | PriceInfo
| |
− | | Обязательный. Элемент содержащий информацию о цене
| |
− | | см. Элемент PriceInfo
| |
− | |}
| |
| | | |
− | Элемент '''PriceInfo'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row2"> |
− | |-
| + | <td class="col0">ID </td><td class="col1">да </td><td class="col2">число</td><td class="col3">Номер бронирования в системе Nemo.</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row3"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0 leftalign">Status </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Статус брони, возможные значения: booked - забронировано, canceled - бронь отменена, ticket - выписана; UNDEFINED - статус не определён.</td> |
− | |-
| |
− | | style="width:208px; height:35px" |
| |
− | PriceBreakDown
| |
− | | style="width:208px; height:35px" |
| |
− | Необязательный. Информация о ценах, расписанная по каждому дню.
| |
− | | style="width:208px; height:35px" |
| |
− | Список элементов Date
| |
− | |-
| |
− | | Netto
| |
− | | Обязательный. Стоимость от поставщика.
| |
− | | Вещественное число.
| |
− | Атрибут Currency - код валюты.
| |
− | |-
| |
− | | Gross
| |
− | | Обязательный. Общая стоимость.
| |
− | | Вещественное число.
| |
− | Атрибут Currency - код валюты.
| |
− | |}
| |
| | | |
− | Элемент '''Date'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row4"> |
− | |-
| + | <td class="col0">Code </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер бронирования в системе поставщика (в sabre, sirena и т.д.)/код тарифного правила</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row5"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">QueryPlace </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Очередь, в которую помещено бронирование</td> |
− | |-
| |
− | | From
| |
− | | Обязательный. Дата начала действия тарифа
| |
− | | Формат гггг-мм-дд
| |
− | |-
| |
− | | To
| |
− | | Обязательный. Дата окончания действия тарифа
| |
− | | Формат гггг-мм-дд
| |
− | |-
| |
− | | Price
| |
− | | Цена за одну ночь.
| |
− | | Вещественное число.
| |
− | Атрибут Currency - код валюты.
| |
− | |}
| |
− | </div> | |
− | </div> | |
| | | |
− | === Статические данные ===
| + | </tr> |
− | Для работы с веб-сервисом Nemo необходимо выгрузить статичные данные. Это данные о странах, городах и отелях.
| + | <tr class="row6"> |
− | ==== Страна ====
| + | <td class="col0 leftalign">Number </td><td class="col1">да </td><td class="col2">число </td><td class="col3">Номер очереди</td> |
− | '''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=CountryStatic
| + | </tr> |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | + | <tr class="row7"> |
− | ===== Запрос =====
| + | <td class="col0">Flight </td><td class="col1">да </td><td class="col2">сложный </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;"> | |
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" | |
− | xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCountryStatic">
| |
− | <soapenv:Header/>
| |
− | <soapenv:Body>
| |
− | <ver:countries>
| |
− | <RequestBin>
| |
− | <Request>
| |
− | <CountryStatic>
| |
− | </CountryStatic>
| |
− | </Request>
| |
− | <Source>
| |
− | <ClientId></ClientId>
| |
− | <APIKey></APIKey>
| |
− | <Language>ru</Language>
| |
− | <Currency>RUB</Currency>
| |
− | </Source>
| |
− | </RequestBin>
| |
− | </ver:countries>
| |
− | </soapenv:Body>
| |
− | </soapenv:Envelope> | |
− | </syntaxhighlight> | |
| | | |
− | Элемент '''Request'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row8"> |
− | |-
| + | <td class="col0">Agency </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Информация об агентстве</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row9"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">ItinReceipts</td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Маршрут квитанция. Содержит строку в кодировки Encoding (как правило в base64), представляющую маршрут квитанцию в формате Format.</td> |
− | |-
| |
− | | CountryStatic
| |
− | | Пустой элемент
| |
− | | <br/>
| |
− | |}
| |
| | | |
− | Элемент '''Source'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row10"> |
− | |-
| + | <td class="col0">Encoding </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Кодировка</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row11"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">Format </td><td class="col1">да </td><td class="col2">строка</td><td class="col3">Формат</td> |
− | |-
| |
− | | ClientID
| |
− | | Обязательный. ID клиента в системе Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Целое число.
| |
− | |-
| |
− | | APIKey
| |
− | | Обязательный. APIKey - секретный ключ доступа к API Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Латинские буквы и цифры. Всего 32 символа.
| |
− | |}
| |
− | </div>
| |
− | </div> | |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | + | </tr> |
− | ===== Ответ =====
| + | <tr class="row12"> |
− | <div class="mw-collapsible-content"> | + | <td class="col0">Travellers</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/" | + | <tr class="row13"> |
− | xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCountryStatic"
| + | <td class="col0">Traveller </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Информация о пассажире</td> |
− | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
| |
− | <SOAP-ENV:Body>
| |
− | <ns1:countriesResponse>
| |
− | <ResponseBin>
| |
− | <Response>
| |
− | <CountryStatic>
| |
− | <Countries>
| |
− | <Country Id="4">
| |
− | <Code>AF</Code>
| |
− | <Continent>asia</Continent>
| |
− | <Data>
| |
− | <Info Language="RU">
| |
− | <Name>Афганистан</Name>
| |
− | </Info>
| |
− | <Info Language="EN">
| |
− | <Name>Afghanistan</Name>
| |
− | </Info>
| |
− | </Data>
| |
− | </Country>
| |
− | </Countries>
| |
− | </CountryStatic>
| |
− | </Response>
| |
− | </ResponseBin>
| |
− | </ns1:countriesResponse>
| |
− | </SOAP-ENV:Body>
| |
− | </SOAP-ENV:Envelope> | |
− | </syntaxhighlight> | |
| | | |
− | Элемент '''CountryStatic'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row14"> |
− | |-
| + | <td class="col0">Ticket </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Билет пассажира.</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row15"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">TickectNum </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер билета</td> |
− | |-
| |
− | | Countries
| |
− | | Обязательный
| |
− | | Набор элементов Country
| |
− | |}
| |
| | | |
− | Элемент '''Country'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row16"> |
− | |-
| + | <td class="col0">Seats</td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Контейнер мест пассажира.</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row17"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">Seat </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Место в самолёте</td> |
− | |-
| |
− | | Атрибут Id
| |
− | | Обязательный. Идентификатор страны (ISO).
| |
− | | Целое число
| |
− | |-
| |
− | | Code
| |
− | | Обязательный. Код страны ISO.
| |
− | | Строка из 2-х латинских букв
| |
− | |-
| |
− | | Continent
| |
− | | Обязательный. Название континента.
| |
− | | Строка.
| |
− | |-
| |
− | | Data
| |
− | | Обязательный. Информация требующая перевода.
| |
− | | Набор элементов Info.
| |
− | |}
| |
| | | |
− | Элемент '''Info'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row18"> |
− | |-
| + | <td class="col0">Number </td><td class="col1">да </td><td class="col2">строка</td><td class="col3">Номер места(ряд+номер в ряду)</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row19"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">Characteristic </td><td class="col1">нет</td><td class="col2">строка </td><td class="col3">Характеристика места в соответствии со стандартом EDIFACT. См справочник “Таблица характеристик мест”.</td> |
− | |-
| |
− | | Атрибут Language
| |
− | | Обязательный. Язык в котором представлена информация.
| |
− | | Строка из 2-х латинских букв.
| |
− | |-
| |
− | | Name
| |
− | | Обязательный. Наименование страны.
| |
− | | Строка в произвольном формате.
| |
− | |}
| |
− | </div>
| |
− | </div> | |
| | | |
| + | </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> |
− | Параметры поиска всех услуг требуют указания ID города. Города выгружаются по каждой стране следующим запросом:
| + | <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="col2">срока: Yes/No </td><td class="col3">Указывает установлена ли / гарантируется ли цена у поставщика. Если параметр отсутствует в ответе, то по умолчанию значение “Yes”.</td> |
| | | |
− | '''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=CityStatic
| + | </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</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер брони, которая отменялась (Номер выписанной брони, выписка которой отменялась)</td> |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | + | </tr> |
− | ===== Запрос =====
| + | <tr class="row28"> |
− | <div class="mw-collapsible-content"> | + | <td class="col0">Result</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> |
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" | + | <tr class="row29"> |
− | xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCityStatic">
| + | <td class="col0">Success</td><td class="col1">да</td><td class="col2">булевский</td><td class="col3">Индикатор, показывающий успешно или нет прошла отмена, возможные значения: true - успешно отменена (войдирование); false - не отменена</td> |
− | <soapenv:Header/>
| |
− | <soapenv:Body>
| |
− | <ver:cities>
| |
− | <RequestBin>
| |
− | <Request>
| |
− | <CityStatic>
| |
− | <CountryId>4</CountryId>
| |
− | </CityStatic>
| |
− | </Request>
| |
− | <Source>
| |
− | <ClientId></ClientId>
| |
− | <APIKey></APIKey>
| |
− | <Language>ru</Language>
| |
− | <Currency>RUB</Currency>
| |
− | </Source>
| |
− | </RequestBin>
| |
− | </ver:cities>
| |
− | </soapenv:Body>
| |
− | </soapenv:Envelope>
| |
− | </syntaxhighlight> | |
| | | |
− | Элемент '''CityStatic'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row30"> |
− | |-
| + | <td class="col0">GetAirRulesResult</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела ответа поиска тарифных правил</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row31"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">FlightId</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер перелёта, для которого найдены тарифные правила (будет проводилась проверка доступности)</td> |
− | |-
| |
− | | CountryId
| |
− | | Обязательный. Идентификатор страны.
| |
− | | Целое число
| |
− | |}
| |
| | | |
− | Элемент '''Source'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row32"> |
− | |-
| + | <td class="col0">Rules</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для правил</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row33"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">Rule</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Правило</td> |
− | |-
| |
− | | ClientID
| |
− | | Обязательный. ID клиента в системе Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Целое число.
| |
− | |-
| |
− | | APIKey
| |
− | | Обязательный. APIKey - секретный ключ доступа к API Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Латинские буквы и цифры. Всего 32 символа.
| |
− | |}
| |
− | </div>
| |
− | </div> | |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | + | </tr> |
− | ===== Ответ =====
| + | <tr class="row34"> |
− | <div class="mw-collapsible-content"> | + | <td class="col0">Tarrif</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/" | + | <tr class="row35"> |
− | xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCityStatic">
| + | <td class="col0">Name</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Имя правила</td> |
− | <SOAP-ENV:Body>
| |
− | <ns1:citiesResponse>
| |
− | <ResponseBin>
| |
− | <Response>
| |
− | <CityStatic>
| |
− | <Cities>
| |
− | <City Id="1">
| |
− | <Name>Кабул</Name>
| |
− | <CountryId>4</CountryId>
| |
− | <Data>
| |
− | <Info Language="EN">
| |
− | <Name>Kabul</Name>
| |
− | </Info>
| |
− | <Info Language="RU">
| |
− | <Name>Кабул</Name>
| |
− | </Info>
| |
− | </Data>
| |
− | </City>
| |
− | <City Id="204793">
| |
− | <Name>Aibak</Name>
| |
− | <CountryId>4</CountryId>
| |
− | <Data>
| |
− | <Info Language="EN">
| |
− | <Name>Aibak</Name>
| |
− | </Info>
| |
− | <Info Language="RU">
| |
− | <Name>Aibak</Name>
| |
− | </Info>
| |
− | </Data>
| |
− | </City>
| |
− | <City Id="204785">
| |
− | <Name>Anar Darah</Name>
| |
− | <CountryId>4</CountryId>
| |
− | <Data>
| |
− | <Info Language="EN">
| |
− | <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>
| |
− | </syntaxhighlight> | |
| | | |
− | Элемент '''CityStatic'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row36"> |
− | |-
| + | <td class="col0">RuleText</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Текст правила</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row37"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">AirAvailResult</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела ответа помещения брони в очередь</td> |
− | |-
| |
− | | Cities
| |
− | | Обязательный. Массив городов.
| |
− | | Набор элементов City
| |
− | |}
| |
| | | |
− | Элемент '''City'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row38"> |
− | |-
| + | <td class="col0">IsAvail</td><td class="col1">да</td><td class="col2">булевский</td><td class="col3">Индикатор, показывающий доступность перелёта, возможные значения: true - доступен; false - недоступен</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row39"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">VoidTicketResult</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела ответа отмены выписки брони</td> |
− | |-
| |
− | | Атрибут '''Id'''
| |
− | | Обязательный. Идентификатор города.
| |
− | | Целое число
| |
− | |-
| |
− | | Name
| |
− | | Название города.
| |
− | |
| |
− | |-
| |
− | | Data
| |
− | | Названия городов на разных языках. В данный момент поддерживаются названия на русском и английском.
| |
− | | См. описание элемента Data в ответе получения информации о стране.
| |
− | |}
| |
− | </div> | |
− | </div> | |
| | | |
− | ==== Статика по отелям и апартаментам ==== | + | </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''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelStatic
| + | </tr> |
| + | <tr class="row42"> |
| + | <td class="col0">Flight</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Представляет информацию о перелёте. Отсутствует если перелётов не найдено (используется в поисковом ответе)</td> |
| + | </tr> |
| + | <tr class="row43"> |
| + | <td class="col0">WebService</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Веб-сервис (поставщик) от которого был получен перелёт.</td> |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | + | </tr> |
− | ===== Запрос =====
| + | <tr class="row44"> |
− | <div class="mw-collapsible-content"> | + | <td class="col0">ValCompany</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">IATA код авиакомпании. Валидирующий перевозчик, на бланках которого должен выписываться билет.</td> |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"> | + | </tr> |
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" | + | <tr class="row45"> |
− | xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelStatic">
| + | <td class="col0">Segments</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для сегментов перелёта</td> |
− | <soapenv:Header/>
| |
− | <soapenv:Body>
| |
− | <ver:hotels>
| |
− | <RequestBin>
| |
− | <Request>
| |
− | <HotelStatic>
| |
− | <CityId>58166</CityId>
| |
− | </HotelStatic>
| |
− | </Request>
| |
− | <Source>
| |
− | <ClientId></ClientId>
| |
− | <APIKey></APIKey>
| |
− | <Language>ru</Language>
| |
− | <Currency>RUB</Currency>
| |
− | </Source>
| |
− | </RequestBin>
| |
− | </ver:hotels>
| |
− | </soapenv:Body>
| |
− | </soapenv:Envelope>
| |
− | </syntaxhighlight> | |
| | | |
− | Элемент '''Hotels'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row46"> |
− | |-
| + | <td class="col0">Segment</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Представляет информацию о сегменте</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row47"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">SegNum</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер сегмента в перелёте</td> |
− | |-
| |
− | | CityId
| |
− | | Обязательный. Идентификатор города из которого необходимо получить отели.
| |
− | | Целое число
| |
− | |}
| |
| | | |
− | Элемент '''Source'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row48"> |
− | |-
| + | <td class="col0">DepAirp</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">IATA код аэропорта отправления</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row49"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">DepTerminal</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Код терминала отправления</td> |
− | |-
| |
− | | ClientID
| |
− | | Обязательный. ID клиента в системе Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Целое число.
| |
− | |-
| |
− | | APIKey
| |
− | | Обязательный. APIKey - секретный ключ доступа к API Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Латинские буквы и цифры. Всего 32 символа.
| |
− | |}
| |
− | </div>
| |
− | </div> | |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | + | </tr> |
− | ===== Ответ =====
| + | <tr class="row50"> |
− | <div class="mw-collapsible-content"> | + | <td class="col0">ArrAirp</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">IATA код аэропорта прибытия</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/" | + | <tr class="row51"> |
− | xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelStatic"
| + | <td class="col0">ArrTerminal</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Код терминала прибытия</td> |
− | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
| |
− | <SOAP-ENV:Body>
| |
− | <ns1:hotelsResponse>
| |
− | <ResponseBin>
| |
− | <Response>
| |
− | <HotelStatic>
| |
− | <Hotels>
| |
− | <Hotel Id="271714" Apartment="false">
| |
− | <CityId>58166</CityId>
| |
− | <CountryId>643</CountryId>
| |
− | <Latitude xsi:nil="true"/>
| |
− | <Longitude xsi:nil="true"/>
| |
− | <Rating>3</Rating>
| |
− | <Floors xsi:nil="true"/>
| |
− | <Data>
| |
− | <Info>
| |
− | <Name>* Azimut (business)</Name>
| |
− | <Area xsi:nil="true"/>
| |
− | <Location>Within city</Location>
| |
− | <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 Id="159535" Apartment="false">
| |
− | <CityId>58166</CityId>
| |
− | <CountryId>643</CountryId>
| |
− | <Latitude>59.935011</Latitude>
| |
− | <Longitude>30.309284</Longitude>
| |
− | <Rating>5</Rating>
| |
− | <Floors xsi:nil="true"/>
| |
− | <Data>
| |
− | <Info>
| |
− | <Name>W St.petersburg</Name>
| |
− | <Area xsi:nil="true"/>
| |
− | <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>
| |
− | </syntaxhighlight> | |
| | | |
− | Элемент '''Hotel'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row52"> |
− | |-
| + | <td class="col0">OpAirline</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код авиакомпании, выполняющей рейс</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row53"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">MarkAirline</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код авиакомпании, продающей билет</td> |
− | |-
| |
− | | Атрибут Id
| |
− | | Обязательный. Идентификатор отеля в системе Nemo.
| |
− | | Целое число.
| |
− | |-
| |
− | | CityId
| |
− | | Обязательный. Идентификатор города.
| |
− | | Целое число.
| |
− | |-
| |
− | | CountryId
| |
− | | Обязательный. Идентификатор страны .
| |
− | | Целое число.
| |
− | |-
| |
− | | Latitude
| |
− | | Необязательный. Широта.
| |
− | | Вещественное число.
| |
− | |-
| |
− | | Longitude
| |
− | | Необязательный. Долгота.
| |
− | | Вещественное число.
| |
− | |-
| |
− | | Rating
| |
− | | Необязательный. Рейтинг.
| |
− | | Вещественное число.
| |
− | |-
| |
− | | Floors
| |
− | | Необязательный. Количество этажей
| |
− | | Целое число.
| |
− | |-
| |
− | | Data
| |
− | | Необязательный.
| |
− | | Набор элементов Info.
| |
− | |-
| |
− | | Phones
| |
− | | Необязательный. Массив телефонов.
| |
− | | Набор элементов Phone.
| |
− | |-
| |
− | | Fax
| |
− | | Необязательный. Факс.
| |
− | | Строка в произвольном формате.
| |
− | |-
| |
− | | Images
| |
− | | Необязательный. Маcсив изображений.
| |
− | | Набор элементов Image.
| |
− | |}
| |
| | | |
− | Элемент '''Info'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row54"> |
− | |-
| + | <td class="col0">FlightNumber</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер рейса</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row55"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">AircraftType</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код типа самолёта</td> |
− | |-
| |
− | | Name
| |
− | | Обязательный. Наименование отеля.
| |
− | | Строка в произвольном формате.
| |
− | |-
| |
− | | Area
| |
− | | Необязательный. Описание места расположения отеля.
| |
− | | Строка в произвольном формате.
| |
− | |-
| |
− | | Location
| |
− | | Необязательный. Район города.
| |
− | | Строка в произвольном формате.
| |
− | |-
| |
− | | Desc
| |
− | | Необязательный. Описание отеля.
| |
− | | Строка в произвольном формате.
| |
− | |-
| |
− | | Address
| |
− | | Необязательный. Адрес отеля.
| |
− | | Строка в произвольном формате.
| |
− | |}
| |
| | | |
− | Элемент '''Phones'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row56"> |
− | |-
| + | <td class="col0">DepDateTime</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row57"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">ArrDateTime</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС</td> |
− | |-
| |
− | | Phone
| |
− | | Обязательный. Телефон.
| |
− | | Строка в произвольном формате.
| |
− | |}
| |
| | | |
− | Элемент '''Image'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row58"> |
− | |-
| + | <td class="col0">StopNum</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Число остановок</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row59"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <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> |
− | |-
| |
− | | Path
| |
− | | Необязательный. Путь к полному изображению.
| |
− | | Строка в произвольном формате.
| |
− | |-
| |
− | | Icon
| |
− | | Необязательный. Путь к миниатюре, иконке.
| |
− | | Строка в произвольном формате.
| |
− | |}
| |
− | </div>
| |
− | </div> | |
| | | |
| + | </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="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> |
| | | |
− | ==API бронирования, аннуляции, войдирования авиабилетов== | + | </tr> |
− | === Подключение === | + | <tr class="row64"> |
| + | <td class="col0">Departure</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Часовой пояс отправления, UTC (смещение относительно Гринвича)</td> |
| + | </tr> |
| + | <tr class="row65"> |
| + | <td class="col0">Arrival</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Часовой пояс прибытия, UTC (смещение относительно Гринвича)</td> |
| | | |
− | Получить доступ к результатам бронирования в данном сервисе можно через SOAP клиента. Для получения результата необходим параметр — «FlightId» — Id перелёта, для которого будет производится бронирование. WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=BookFlight.
| + | </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> |
| | | |
− | === Общий формат запроса / ответа бронирования === | + | </tr> |
| + | <tr class="row68"> |
| + | <td class="col0">Measure</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Мера веса. K - килограммы, PC - сумки/клади</td> |
| + | </tr> |
| + | <tr class="row69"> |
| + | <td class="col0">Value</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Количество багажа</td> |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | + | </tr> |
− | ===== Запрос =====
| + | <tr class="row70"> |
− | <div class="mw-collapsible-content"> | + | <td class="col0">PricingInfo</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> |
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight"> | + | <tr class="row71"> |
− | <soapenv:Header/>
| + | <td class="col0">Refundable</td><td class="col1">да</td><td class="col2">булевский</td><td class="col3">Индикатор показывающий является ли билет возвратным или нет, возможные значения: true - возвратный (нет штрафов за возврат), false - невозвратный (могут быть штрафы за возврат)</td> |
− | <soapenv:Body>
| |
− | <ver:BookFlight>
| |
− | <RequestBin>
| |
− | <Request>
| |
− | <BookFlight>
| |
− | <FlightId>?</FlightId>
| |
− | <!--FlightId — Id перелёта в системе Nemo-->
| |
− | <!--Optional:-->
| |
− | <ValidatingCompany>?</ValidatingCompany> <!--необязательный-->
| |
− | <!--ValidatingCompany — валидирующий перевозчик (тот кто выписывает билет)-->
| |
− | <!--Optional:-->
| |
− | <BookingCodes>
| |
− | <!--Zero or more repetitions:-->
| |
− | <BookingCode Code="?" SegNumber="?"/>
| |
− | <!--Code — код класса перелёта-->
| |
− | <!--SegNumber — номер сегмента в перелёте (начинаются с 1)-->
| |
− | </BookingCodes>
| |
− | <!--Optional:-->
| |
− | <CurrencyCode>?</CurrencyCode> <!--необязательный-->
| |
− | <!--CurrencyCode — код валюты-->
| |
− | <!--Optional:-->
| |
− | <TicketTimeLimit>?</TicketTimeLimit> <!--необязательный-->
| |
− | <!--TicketTimeLimit — таймлимит на оплату, формат: ГГГГ-ММ-ДДTЧЧ:ММ:СС-->
| |
− | <!--Optional:-->
| |
− | <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>
| |
− | <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>
| |
− | <!--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>
| |
− | </div> | |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | + | </tr> |
| + | <tr class="row72"> |
| + | <td class="col0">PassengerFare</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Информация о ценах для конкретного типа пассажиров.</td> |
| + | </tr> |
| + | <tr class="row73"> |
| + | <td class="col0">Quantity</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Число пассажиров данного типа</td> |
| | | |
− | ===== Ответ =====
| + | </tr> |
− | <div class="mw-collapsible-content">
| + | <tr class="row74"> |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| + | <td class="col0">BaseFare</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Цена в базовой валюте(за одного пассажира)</td> |
− | <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>
| + | <tr class="row75"> |
− | <ns1:BookFlightResponse>
| + | <td class="col0">EquiveFare</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Цена в эквивалентной валюте(за одного пассажира), при поиске цены не возвращается</td> |
− | <ResponseBin>
| |
− | <Response>
| |
− | <BookFlight ID="?" Status="?" Code="?">
| |
− | <!--ID — Id брони в системе Nemo, целое число, обязательный-->
| |
− | <!--Status — индикатор состояния брони, возможные значения:
| |
− | booked — забронировано,
| |
− | canceled — бронь отменена,
| |
− | ticket — выписана
| |
− | UNDEFINED — статус не определён-->
| |
− | <!--Code — код брони в системе поставщика-->
| |
− | <QueryPlace xsi:nil="true"/>
| |
− | <!--QueryPlace — положение брони в очереди, Number — номер брони в очереди-->
| |
− | <Flight FlightId="?">
| |
− | <!--FlightId — Id перелёта в системе Nemo-->
| |
− | <WebService>?</WebService>
| |
− | <!--WebService — поставщик перелёта-->
| |
− | <ValCompany>?</ValCompany>
| |
− | <!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA-->
| |
− | <URL>?</URL>
| |
− | <!--URL — ссылка на бронирование конкретного перелета-->
| |
− | <Segments>
| |
− | <Segment SegNum="?" SegGroupNum="?">
| |
− | <!--SegNum — номер сегмента в перелёте-->
| |
− | <!--SegGroupNum – номер плеча перелёта-->
| |
− | <DepAirp CodeType="IATA">?</DepAirp>
| |
− | <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва
| |
− | или SVO — Шереметьево-->
| |
− | <DepTerminal>?</DepTerminal>
| |
− | <!--DepTerminal — терминал пункта отправления, если пустое значение,
| |
− | то в аэропорту всего 1 терминал-->
| |
− | <ArrAirp CodeType="IATA">?</ArrAirp>
| |
− | <!--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 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>
| |
− | <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 Encoding="?" Format="?">
| |
− | <!--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>
| |
− | </div> | |
| | | |
− | === Пример использования === | + | </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> |
| | | |
− | Пример одностороннего перелета Москва — Мадрид.
| + | </tr> |
| + | <tr class="row78"> |
| + | <td class="col0">Amount</td><td class="col1">да</td><td class="col2">число с плавающей точкой</td><td class="col3">Значение стоимости.</td> |
| + | </tr> |
| + | <tr class="row79"> |
| + | <td class="col0">Taxes</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Контейнер для такс, при поиске цены не возвращается</td> |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | + | </tr> |
− | ===== Запрос =====
| + | <tr class="row80"> |
− | <div class="mw-collapsible-content"> | + | <td class="col0">Tax</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> |
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight"> | + | <tr class="row81"> |
− | <soapenv:Header/>
| + | <td class="col0">CurCode</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Трёх буквенный код валюты для таксы</td> |
− | <soapenv:Body>
| |
− | <ver:BookFlight>
| |
− | <RequestBin>
| |
− | <Request>
| |
− | <BookFlight>
| |
− | <FlightId>171430002</FlightId>
| |
− | <BookingCodes>
| |
− | <!--Zero or more repetitions:-->
| |
− | <BookingCode Code="E" SegNumber="2"/>
| |
− | </BookingCodes>
| |
− | <Travellers>
| |
− | <!--Zero or more repetitions:-->
| |
− | <Traveller Type="ADT" IsContact="true" Num="1">
| |
− | <PersonalInfo DateOfBirth="20.05.1980" Nationality="RU" Gender="M">
| |
− | <FirstName>Petr</FirstName>
| |
− | <LastName>Ivanov</LastName>
| |
− | </PersonalInfo>
| |
− | <ContactInfo>
| |
− | <!--Optional:-->
| |
− | <EmailID>testmail@mail.ru</EmailID>
| |
− | <!--Optional:-->
| |
− | <Telephone Type="M">
| |
− | <!--Optional:-->
| |
− | <PhoneNumber>79051234567</PhoneNumber>
| |
− | </Telephone>
| |
− | </ContactInfo>
| |
− | <DocumentInfo DocType="A" DocNum="123456" CountryCode="RU" DocElapsedTime="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>
| |
− | </div>
| |
− | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| |
| | | |
− | ===== Ответ =====
| + | </tr> |
− | <div class="mw-collapsible-content">
| + | <tr class="row82"> |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| + | <td class="col0">TaxCode</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код таксы</td> |
− | <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>
| + | <tr class="row83"> |
− | <ns1:BookFlightResponse>
| + | <td class="col0">Amount</td><td class="col1">да</td><td class="col2">число с плавающей точкой</td><td class="col3">Значение таксы</td> |
− | <ResponseBin>
| |
− | <Response>
| |
− | <BookFlight ID="262872" Status="booked" Code="LQHZWU">
| |
− | <QueryPlace xsi:nil="true"/>
| |
− | <Flight FlightId="171430002">
| |
− | <WebService>SABRE</WebService>
| |
− | <ValCompany>SU</ValCompany>
| |
− | <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D14290%26flight%3D171430002</URL>
| |
− | <Segments>
| |
− | <Segment SegNum="1" SegGroupNum="0">
| |
− | <DepAirp CodeType="IATA">SVO</DepAirp>
| |
− | <DepTerminal>D</DepTerminal>
| |
− | <ArrAirp CodeType="IATA">BCN</ArrAirp>
| |
− | <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 ClassType="economy">
| |
− | <BookingCode>E</BookingCode>
| |
− | </BookingCode>
| |
− | </BookingCodes>
| |
− | <FlightTime>280</FlightTime>
| |
− | <TimeZone Departure="4" Arrival="1"/>
| |
− | <ETicket>true</ETicket>
| |
− | </Segment>
| |
− | <Segment SegNum="2" SegGroupNum="0">
| |
− | <DepAirp CodeType="IATA">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"/>
| |
− | <TotalFare Currency="RUB" Amount="14025"/>
| |
− | <Taxes>
| |
− | <Tax CurCode="RUB" TaxCode="YQF" Amount="4242"/>
| |
− | <Tax CurCode="RUB" TaxCode="YRI" Amount="374"/>
| |
− | <Tax CurCode="RUB" TaxCode="JD" Amount="844"/>
| |
− | <Tax CurCode="RUB" 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>
| |
− | </div> | |
| | | |
− | === Общий формат запроса / ответа отмены бронирования === | + | </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> |
| | | |
− | После бронирования, если не истек таймлимит можно аннулировать сделанный заказ. Аннуляция заказа в Nemo может быть ручной (сделанной пользователем) и автоматической — по истечению таймлимита, установленного для заказа система сама аннулирует заказ.
| + | </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">Номер сегмента для которого применяется тариф, если тариф применяется для всех сегментов, то возвращается 0.</td> |
| | | |
− | WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=CancelBook
| + | </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</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС. Если бронирование не будет аннулировано или выписано до этого времени, то могут быть применены штрафы.</td> |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| + | </tr> |
− | ===== Запрос =====
| + | </table> |
− | <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:Envelope> | |
− | </syntaxhighlight> | |
| </div> | | </div> |
| </div> | | </div> |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| + | ==API Отелей== |
− | ===== Ответ =====
| + | '''Агентский 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%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://tst.nemo-ibe.com/wsdev/wsdl.php?for=Penalty
| + | В разделе статистики заказов из метапоисков можно получить данные по статистике метапоиска (по источнику переходов модуля метрики) <u>за определенный период бронирования заказов</u> в виде файла данных в формате XML. |
− | | |
− | <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
| |
− | | Обязательный. ID клиента в системе Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Целое число.
| |
− | |-
| |
− | | APIKey
| |
− | | Обязательный. APIKey - секретный ключ доступа к API Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Латинские буквы и цифры. Всего 32 символа.
| |
− | |}
| |
− | </div>
| |
− | </div>
| |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| + | ==Выгрузка информации о заказах == |
− | ===== Ответ =====
| + | '''Выгрузка заказов''' — это экспорт данных заказа или заказов для различных компонентов системы Nemo. Модуль позволяет внешней системе получать данные по заказам для дальнейшей обработки. |
− | <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%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'''
| + | == API Синхронизации пользователей и субагентов == |
− | {| style="width: 800px" class="wikitable"
| + | Назначение данного модуля — обеспечение взаимодействия между сторонней программой (например, системой автоматизации туроператора "САМО-тур") и Nemo в части синхронизации списка B2B-пользователей. |
− | |-
| + | Модуль является компонентом, включаемым и отключаемым из административной части. |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | ItemDateBegin
| |
− | | Обязательный. Дата начала услуги (дата заселения в отель).
| |
− | | Формат гггг-мм-дд чч:мм:сс
| |
− | |-
| |
− | | CancelCharges
| |
− | | Необязательный. Содержит информацию о штрафах за аннуляцию.
| |
− | | Элемент Charge
| |
− | |-
| |
− | | ModifyCharges
| |
− | | Необязательный. Содержит информацию о штрафах за модификацию.
| |
− | | Элемент Charge
| |
− | |}
| |
| | | |
− | Штрафы разбиваются по временным интервалам. На каждом интервале указывается значение штрафа.
| + | О механизме авторизации B2B-пользователей, синхронизации учетных записей можно прочитать в статье [[Синхронизация пользователей]] |
| | | |
− | Элемент '''Charge'''
| + | ==API Кроссавторизации== |
− | {| style="width: 800px" class="wikitable"
| + | '''Авторизация пользователей из внешних систем''' — Система Nemo позволяет обращаться к ней как базе пользователей для авторизации из других систем (например форума на сайте, собственного ПО компании и т.п) |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | DateFrom
| |
− | | Обязательный. Дата/время начала интервала.
| |
− | | Формат гггг-мм-дд чч:мм:сс
| |
− | |-
| |
− | | 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="toccolours mw-collapsible mw-collapsed" style="width:1000px"> |
| ===== Запрос ===== | | ===== Запрос ===== |
| <div class="mw-collapsible-content"> | | <div class="mw-collapsible-content"> |
− | Схема запроса позволяет указывать несколько услуг для бронирования сразу. Это было сделано с заделом на возможность расширения функциональности в будущем при сохранении совместимости.
| |
| | | |
− | Сейчас же необходимо указывать только 1 услугу-отель (элемент Item) в запросе на бронирование.
| + | <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-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> |
| | | |
− | Для успешного запроса нужно указать:
| + | ==Передача параметров в форму поиска (FastSearch)== |
− | #Услугу. В запросе не требуется перечислять все параметры из результатов поиска, достаточно указать уникальный ID результата.
| |
− | #Информация о клиентах. Все клиенты перечисляются в отдельной ветке и нумеруются по порядку. Указатели (элементы с номером клиента), также добавляются в описание услуги.
| |
− | #Заказчик. Указатель на одну персону.
| |
| | | |
− | '''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=Booking
| + | В системе Nemo имеется возможность перенаправлять пользователей на страницу с уже заполненными параметрами поиска или сразу напрямую на результаты поиска. |
| | | |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| + | Примеры FastSearch запросов и используемые переменные подробно описаны в статье [[FastSearch - передача параметров в форму]] |
− | <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'''
| + | FastSearch так же работает и для отелей, подробности в статье [[Fast Search для отелей]] |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Items
| |
− | | Обязательный. Массив элементов Item.
| |
− | | Элемент Item
| |
− | |-
| |
− | | Customer
| |
− | | Обязательный. Элемент установки заказчика.
| |
− | |
| |
− | |-
| |
− | | Persons
| |
− | | Обязательный. Массив клиентов.
| |
− | |
| |
− | |}
| |
| | | |
− | Данные об услугах записываются в элементы <Item>.
| + | <!-- Т.к. это внутренний формат обмена данными между Немо и одним клиентом, то данную инфу скроем в комментарии |
− | | + | ==Проверка в сторонней системе возможности тикетинга== |
− | Элемент '''Item'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание | |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | HotelBookData
| |
− | | Обязательный. В зависимости от типа объекта бронирования. В данный момент возможно указать только данные для отеля.
| |
− | |
| |
− | |-
| |
− | | 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
| |
− | | Обязательный.
| |
− | Тип пассажира.
| |
− | | Строка.
| |
− | Возможные значения:
| |
− | ADT
| |
− | CLD
| |
− | INF
| |
− | |-
| |
− | | 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'''
| + | При выписки билета через стороннюю систему 1С, отправляется запрос "GetDebtCounterparty", который спрашивает, можно ли с счета в 1С списать средства для оплаты. В ответе содержится заключение от 1С, в случае если ошибок нет, то в ответе будет |
− | {| style="width: 800px" class="wikitable"
| + | <pre><m:Opportunity>Да</m:Opportunity></pre> |
− | |-
| + | Пример запроса "GetDebtCounterparty" |
− | ! scope="col" width="200" | Элемент
| + | <pre> |
− | ! scope="col" width="300" | Описание
| + | <?xml version="1.0" encoding="UTF-8"?> |
− | ! 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">
| |
− | После выполнения запроса сразу поступит информация о бронировании. В первую очередь нужно внимательно проверить статусы <Status> всех услуг в бронировании. Если бронировалась услуга со статусом в результатах поиска 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> | | <SOAP-ENV:Body> |
− | <ns1:bookingResponse> | + | <ns1:GetDebtCounterparty> |
− | <ResponseBin> | + | <ns1:ExternalUserId>00000001</ns1:ExternalUserId> |
− | <Response>
| + | <ns1:ExternalPaymentId>00000001</ns1:ExternalPaymentId> |
− | <Booking>
| + | <ns1:BaseFare>2490</ns1:BaseFare> |
− | <Items>
| + | <ns1:Tax>643</ns1:Tax> |
− | <Item Id="386610">
| + | <ns1:ValVendorCommission>49.8</ns1:ValVendorCommission> |
− | <Hotel Id="1872666">
| + | <ns1:Locator>0X97T6</ns1:Locator> |
− | <Supplier>GTA</Supplier>
| + | <ns1:Discount>0</ns1:Discount> |
− | <CityId>22046</CityId>
| + | <ns1:Charge>0</ns1:Charge> |
− | <DateBegin>2013-10-15</DateBegin>
| + | <ns1:Sum>3133</ns1:Sum> |
− | <DateEnd>2013-10-18</DateEnd>
| + | <ns1:TotalPrice>3658.1</ns1:TotalPrice> |
− | <CacheId>1872666</CacheId>
| + | <ns1:GDSCurrency>RUB</ns1:GDSCurrency> |
− | <Name>ADLON KEMPINSKI</Name>
| + | <ns1:OrderCurrency>RUB</ns1:OrderCurrency> |
− | <Categories>
| + | <ns1:OrderCurrencyRate>1</ns1:OrderCurrencyRate> |
− | <Category Id="1">
| + | <ns1:beginDate>2014-08-30T11:05:00</ns1:beginDate> |
− | <Rooms>
| + | </ns1:GetDebtCounterparty> |
− | <Room Count="1" Id="1" ServiceId="1"/>
| |
− | <Room Count="1" Id="2" ServiceId="2"/>
| |
− | </Rooms>
| |
− | <TotalPrice Currency="RUB">74733.84</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:49:56</BookingDate>
| |
− | <UpdateDate>2013-08-01 19:49:57</UpdateDate>
| |
− | <CancelDate xsi:nil="true"/>
| |
− | <PenaltyDate>2013-07-31 19:10:37</PenaltyDate>
| |
− | <AutoCancelDate>2013-08-01 19:51:56</AutoCancelDate>
| |
− | <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 xsi:nil="true"/>
| |
− | <Phone>+79871231212</Phone>
| |
− | <Email>m.rudenko@mute-lab.com</Email>
| |
− | <Gender xsi:nil="true"/>
| |
− | <Document Type="P">
| |
− | <Series>1811</Series>
| |
− | <Number>912219</Number>
| |
− | <IssueDate>2012-12-12 00:00:00</IssueDate>
| |
− | <ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
| |
− | </Document>
| |
− | </Person>
| |
− | <Person Number="2">
| |
− | <Lastname>PETROV</Lastname>
| |
− | <Name>IVAN</Name>
| |
− | <Middlename>MIKHAILOVICH</Middlename>
| |
− | <DateOfBirth xsi:nil="true"/>
| |
− | <Phone>+79871231212</Phone>
| |
− | <Email>m.rudenko@mute-lab.com</Email>
| |
− | <Gender xsi:nil="true"/>
| |
− | <Document Type="P">
| |
− | <Series>1866</Series>
| |
− | <Number>913319</Number>
| |
− | <IssueDate>2012-12-12 00:00:00</IssueDate>
| |
− | <ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
| |
− | </Document>
| |
− | </Person>
| |
− | <Person Number="3">
| |
− | <Lastname>SIDOROV</Lastname>
| |
− | <Name>IVAN</Name>
| |
− | <Middlename>SERGEEVICH</Middlename>
| |
− | <DateOfBirth xsi:nil="true"/>
| |
− | <Phone>+79871231212</Phone>
| |
− | <Email>m.rudenko@mute-lab.com</Email>
| |
− | <Gender xsi:nil="true"/>
| |
− | <Document Type="P">
| |
− | <Series>1866</Series>
| |
− | <Number>913319</Number>
| |
− | <IssueDate>2012-12-12 00:00:00</IssueDate>
| |
− | <ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
| |
− | </Document>
| |
− | </Person>
| |
− | </Persons>
| |
− | </Booking>
| |
− | </Response>
| |
− | </ResponseBin>
| |
− | </ns1:bookingResponse> | |
| </SOAP-ENV:Body> | | </SOAP-ENV:Body> |
| </SOAP-ENV:Envelope> | | </SOAP-ENV:Envelope> |
− | </syntaxhighlight>
| |
| | | |
− | Структура ответа очень похожа на запрос. Выделяются те же основные элементы.
| + | </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> |
| | | |
− | Элемент '''Booking'''
| + | </pre> |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Items
| |
− | | Обязательный. Содержит элемент(ы) Item.
| |
− | | Элемент Item
| |
− | |-
| |
− | | Persons
| |
− | | Обязательный. Здесь перечислены все клиенты заказа.
| |
− | | Элемент Person
| |
− | |}
| |
| | | |
− | В элементах Item раскрывается подробнейшая информация об одной услуге в бронировании.
| + | == Загрузка счетов из сторонней системы == |
| | | |
− | Элемент '''Item'''
| + | При взаимодействии с веб-сервисом 1С, на этапе бронирования отправляется запрос, на создание аккаунта 1С, содержащий в себе данные счета. В системе логирования этот запрос можно найти под именем «[GDS] Запрос "NewAccount"» и ответ «[GDS] Ответ "NewAccount"» |
− | {| 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 (результат поиска отеля)
| |
− | |}
| |
| | | |
− | Информация о цене услуги вынесена в отдельную ветку:
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> |
− | | |
− | Элемент '''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>
| |
− | | |
− | | |
− | | |
− | ==== Подтверждение бронирования ====
| |
− | <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>
| |
− | | |
− | | |
− | ==== Выгрузка актуальных данных по заказу(ам) ====
| |
− | Используется для экспорта бронирований и для обновления данных в локальной клиентской базе.
| |
− | | |
− | '''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=Export
| |
− | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| |
− | ===== Запрос =====
| |
| <div class="mw-collapsible-content"> | | <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'''
| + | <pre> |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Атрибут Id
| |
− | | Обязательный. Идентификатор заказа в системе Nemo.
| |
− | | Целое число
| |
− | |}
| |
| | | |
− | Элемент '''Source'''
| + | <?xml version="1.0" encoding="UTF-8"?> |
− | {| style="width: 800px" class="wikitable"
| + | <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://DOMEN_NAME" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
− | |-
| |
− | ! 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%3DExport" | |
− | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | |
| <SOAP-ENV:Body> | | <SOAP-ENV:Body> |
− | <ns1:exportResponse> | + | <ns1:NewAccount> |
− | <ResponseBin> | + | <ns1:Input> |
− | <Response> | + | <ns1:CompanyID>0001</ns1:CompanyID> |
− | <Export>
| + | <ns1:ID>123321</ns1:ID> |
− | <Items>
| + | <ns1:ExternalUserId>00123321</ns1:ExternalUserId> |
− | <Item Id="386621">
| + | <ns1:Locator>11KW22</ns1:Locator> |
− | <Hotel Id="1872666">
| + | <ns1:ExternalPaymentId>0</ns1:ExternalPaymentId> |
− | <Supplier>GTA</Supplier>
| + | <ns1:Tickets> |
− | <CityId>22046</CityId>
| + | <ns1:IATAValidator>92222616</ns1:IATAValidator> |
− | <DateBegin>2013-10-15</DateBegin>
| + | <ns1:ValVendor>UT</ns1:ValVendor> |
− | <DateEnd>2013-10-18</DateEnd>
| + | <ns1:GDSCurrency>RUB</ns1:GDSCurrency> |
− | <CacheId>1872666</CacheId>
| + | <ns1:OrderCurrency>RUB</ns1:OrderCurrency> |
− | <Name>ADLON KEMPINSKI</Name>
| + | <ns1:OrderCurrencyRate>1</ns1:OrderCurrencyRate> |
− | <Categories>
| + | <ns1:BaseFare>8990</ns1:BaseFare> |
− | <Category Id="1">
| + | <ns1:Tax> |
− | <Rooms>
| + | <ns1:Code>YQ</ns1:Code> |
− | <Room Count="1" Id="1" ServiceId="1"/>
| + | <ns1:Amount>975</ns1:Amount> |
− | <Room Count="1" Id="2" ServiceId="2"/>
| + | </ns1:Tax> |
− | </Rooms>
| + | <ns1:Tax> |
− | <TotalPrice Currency="RUB">74733.84</TotalPrice>
| + | <ns1:Code>YR</ns1:Code> |
− | </Category>
| + | <ns1:Amount>75</ns1:Amount> |
− | </Categories>
| + | </ns1:Tax> |
− | <Services>
| + | <ns1:Segment> |
− | <Service Id="1" Status="OK">
| + | <ns1:StartDate>2015-02-17T20:20:00</ns1:StartDate> |
− | <Desc>Standard Twin</Desc>
| + | <ns1:StartAirportCode>VKO</ns1:StartAirportCode> |
− | <Meal>Full Breakfast</Meal>
| + | <ns1:EndAirportCode>SGC</ns1:EndAirportCode> |
− | <Price Currency="RUB">37366.92</Price>
| + | <ns1:CompanyCode>UT</ns1:CompanyCode> |
− | </Service>
| + | <ns1:Tariffs>OSSOW</ns1:Tariffs> |
− | <Service Id="2" Status="OK">
| + | <ns1:FlightNumber>295</ns1:FlightNumber> |
− | <Desc>Standard Twin</Desc>
| + | <ns1:StopOver>O</ns1:StopOver> |
− | <Meal>Full Breakfast</Meal>
| + | <ns1:ClassTypeCode>O</ns1:ClassTypeCode> |
− | <Price Currency="RUB">37366.92</Price>
| + | </ns1:Segment> |
− | </Service>
| + | <ns1:FullName>PASSANGER NAME</ns1:FullName> |
− | </Services>
| + | </ns1:Tickets> |
− | <Rooms>
| + | <ns1:Options> |
− | <Room Id="1" Type="TWIN"/>
| + | <ns1:Name>Service</ns1:Name> |
− | <Room Id="2" Type="SNGL"/>
| + | <ns1:StringValue>GALILEO</ns1:StringValue> |
− | </Rooms>
| + | <ns1:NumericValue xsi:nil="true"/> |
− | </Hotel>
| + | <ns1:DateValue xsi:nil="true"/> |
− | <Type>HOTELS</Type>
| + | </ns1:Options> |
− | <Status>waiting</Status>
| + | <ns1:Options> |
− | <Prices>
| + | <ns1:Name>AAA</ns1:Name> |
− | <Price Currency="RUB">74733.84</Price>
| + | <ns1:StringValue>000A</ns1:StringValue> |
− | <Charges Currency="RUB">0</Charges>
| + | <ns1:NumericValue xsi:nil="true"/> |
− | <Commission Currency="RUB">0</Commission>
| + | <ns1:DateValue xsi:nil="true"/> |
− | <Penalty Currency="RUB">0</Penalty>
| + | </ns1:Options> |
− | <TotalPrice Currency="RUB">74733.84</TotalPrice>
| + | <ns1:Options> |
− | </Prices>
| + | <ns1:Name>Checkbox</ns1:Name> |
− | <Dates>
| + | <ns1:StringValue>YES</ns1:StringValue> |
− | <BookingDate>2013-08-01 20:21:47</BookingDate>
| + | <ns1:NumericValue xsi:nil="true"/> |
− | <UpdateDate>2013-08-01 20:35:01</UpdateDate>
| + | <ns1:DateValue xsi:nil="true"/> |
− | <CancelDate xsi:nil="true"/>
| + | </ns1:Options> |
− | <PenaltyDate>2013-07-31 19:10:37</PenaltyDate>
| + | </ns1:Input> |
− | <AutoCancelDate>2013-08-01 20:23:47</AutoCancelDate>
| + | </ns1:NewAccount> |
− | <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 xsi:nil="true"/>
| |
− | <Phone>+79871231212</Phone>
| |
− | <Email>m.rudenko@mute-lab.com</Email>
| |
− | <Gender xsi:nil="true"/>
| |
− | <Document Type="P">
| |
− | <Series>1811</Series>
| |
− | <Number>912219</Number>
| |
− | <IssueDate>2012-12-12 00:00:00</IssueDate>
| |
− | <ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
| |
− | </Document>
| |
− | </Person>
| |
− | <Person Number="2">
| |
− | <Lastname>PETROV</Lastname>
| |
− | <Name>IVAN</Name>
| |
− | <Middlename>MIKHAILOVICH</Middlename>
| |
− | <DateOfBirth xsi:nil="true"/>
| |
− | <Phone>+79871231212</Phone>
| |
− | <Email>m.rudenko@mute-lab.com</Email>
| |
− | <Gender xsi:nil="true"/>
| |
− | <Document Type="P">
| |
− | <Series>1866</Series>
| |
− | <Number>913319</Number>
| |
− | <IssueDate>2012-12-12 00:00:00</IssueDate>
| |
− | <ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
| |
− | </Document>
| |
− | </Person>
| |
− | <Person Number="3">
| |
− | <Lastname>SIDOROV</Lastname>
| |
− | <Name>IVAN</Name>
| |
− | <Middlename>SERGEEVICH</Middlename>
| |
− | <DateOfBirth xsi:nil="true"/>
| |
− | <Phone>+79871231212</Phone>
| |
− | <Email>m.rudenko@mute-lab.com</Email>
| |
− | <Gender xsi:nil="true"/>
| |
− | <Document Type="P">
| |
− | <Series>1866</Series>
| |
− | <Number>913319</Number>
| |
− | <IssueDate>2012-12-12 00:00:00</IssueDate>
| |
− | <ExpiryDate>2014-12-12 00:00:00</ExpiryDate>
| |
− | </Document>
| |
− | </Person>
| |
− | </Persons>
| |
− | </Export>
| |
− | </Response>
| |
− | </ResponseBin> | |
− | </ns1:exportResponse> | |
| </SOAP-ENV:Body> | | </SOAP-ENV:Body> |
| </SOAP-ENV:Envelope> | | </SOAP-ENV:Envelope> |
− | </syntaxhighlight>
| |
− |
| |
− | Формат ответа аналогичен результату бронирования.
| |
− | </div>
| |
− | </div>
| |
− |
| |
− |
| |
− |
| |
− | ==== Аннуляция заказа ====
| |
− | '''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=CancelBooking
| |
− | <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%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'''
| + | </pre> |
− | {| style="width: 800px" class="wikitable"
| + | </div></div> |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | ClientID
| |
− | | Обязательный. ID клиента в системе Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Целое число.
| |
− | |-
| |
− | | APIKey
| |
− | | Обязательный. APIKey - секретный ключ доступа к API Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Латинские буквы и цифры. Всего 32 символа.
| |
− | |}
| |
− | </div> | |
− | </div> | |
| | | |
− | ===== Ответ =====
| |
− | см. результаты бронирования.
| |
− |
| |
− | ==Выгрузки статистики продаж через API==
| |
− |
| |
− | '''Метапоисковая система''' (метапоисковая машина, метапоисковик) — это поисковая система, которая в отличие от классических поисковых машин не имеет собственной базы данных и собственного поискового индекса, а формирует поисковую выдачу за счет смешивания и переранжирования результатов поиска других поисковых систем.
| |
− |
| |
− | Необходимо убедиться, что API запросы на поиск отправляются на доменное имя, указанное для агентства (субагента) в разделе '''Администрирование''' -> '''Настройки агентства'''
| |
− |
| |
− |
| |
− | ===== Запрос =====
| |
− | Пример запроса
| |
− | <syntaxhighlight lang="text" enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | http://host/index.php?go=settings/download_metasearch_stat&date1=2012-05-01&date2=2012-06-01&partner=aviasales&password=secret
| |
− | </syntaxhighlight>
| |
− |
| |
− | Параметры запроса
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" | Параметр запроса
| |
− | ! scope="col" | Описание
| |
− | |-
| |
− | | date1
| |
− | | YYYY-MM-DD дата.
| |
− | |-
| |
− | | date2
| |
− | | YYYY-MM-DD дата.
| |
− | |-
| |
− | | partner
| |
− | | Идентификатор партнёра - алиас источника переходов модуля метрики.
| |
− | |-
| |
− | | password
| |
− | | Пароль партнёра - пароль источника переходов модуля метрики.
| |
− | |}
| |
| <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> | | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> |
− | ===== Ответ ===== | + | === Пример ответа === |
| <div class="mw-collapsible-content"> | | <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> |
− | <bookings>
| |
− | <booking>
| |
− | <nemo_id>123123</nemo_id>
| |
− | <id>JHKHVR</id>
| |
− | <created_at>2012-05-02 00:02:01</created_at>
| |
− | <marker>1232:1222.t</marker>
| |
− | <price>1199</price>
| |
− | <profit>200</profit>
| |
− | <currency>RUB</currency>
| |
− | <state>PAID</state>
| |
− | <validatingCarrier>UN</validatingCarrier>
| |
− | <segment>
| |
− | <flight>
| |
− | <operatingCarrier>UN</operatingCarrier>
| |
− | <number>3</number>
| |
− | <departure>DME</departure>
| |
− | <departureDate>2012-09-25</departureDate>
| |
− | <departureTime>09:55</departureTime>
| |
− | <arrival>LED</arrival>
| |
− | <arrivalDate>2012-09-25</arrivalDate>
| |
− | <arrivalTime>11:10</arrivalTime>
| |
− | <equipment>735</equipment>
| |
− | <cabin>Y</cabin>
| |
− | </flight>
| |
− | </segment>
| |
− | <adults>1</adults>
| |
− | <children>0</children>
| |
− | <infants>0</infants>
| |
− | </booking>
| |
− | ...more bookings...
| |
− | </bookings>
| |
− | </syntaxhighlight>
| |
| | | |
− | Описание параметров
| + | <?xml version="1.0"?> |
| + | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
| + | <soap:Header/> |
| + | <soap:Body> |
| + | <m:NewAccountResponse xmlns:m="http://DOMEN_NAME"> |
| + | <m:return xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="m:outInvoice"> |
| + | <m:NoDoc>00015365</m:NoDoc> |
| + | <m:DateInvoice>2015-02-04T00:00:00</m:DateInvoice> |
| + | <m:ExternalUserId>00017483</m:ExternalUserId> |
| + | <m:TicketsSum> |
| + | <m:Price>10040</m:Price> |
| + | <m:Discount>0</m:Discount> |
| + | <m:Charge>0</m:Charge> |
| + | <m:Sum>10040</m:Sum> |
| + | </m:TicketsSum> |
| + | </m:return> |
| + | </m:NewAccountResponse> |
| + | </soap:Body> |
| + | </soap:Envelope> |
| | | |
− | <syntaxhighlight lang="text" enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | /bookings - корневой элемент содержащий информацию о бронированиях.
| |
− | //booking - информации об одном бронировании.
| |
− | nemo_id - ид заказа в системе Немо.
| |
− | id - уникальный идентификатор бронирования в системе поставщика (локатор).
| |
− | created_at - YYYY-MM-DD HH:MM время и дата бронирования в таймзоне UTC; если даты бронирования нет, то дата начала создания заказа.
| |
− | marker - маркер переданные в GET параметре marker при переходе на бронирование.
| |
− | price - цена билетов.
| |
− | profit - прибыль партнёра от данного бронирования.
| |
− | currency - валюта в которой указаны прибыль и цена билета.
| |
− | state - состояние брони. Допустимые значения PROCESSING/PAID/CANCELLED.
| |
− | segment - информация о перелётах.
| |
− | validatingCarrier - информация о бронировании.
| |
− | //flight - информация об одном перелёте.
| |
− | operatingCarrier - код авиакомпании осуществляющей рейс.
| |
− | number - номер рейса.
| |
− | departure - IATA код аэропорта отправления.
| |
− | departureDate - дата отправления, 'YYYY-MM-DD', местное время.
| |
− | departureTime - время отправления, 'HH:MM', местное время.
| |
− | arrival - IATA код аэропорта назначения.
| |
− | arrivalDate - дата прибытия, 'YYYY-MM-DD', местное время.
| |
− | arrivalTime - время прибытия, 'HH:MM', местное время.
| |
− | equipment - IATA транспортного средства осуществляющего перевозку.
| |
− | cabin - класс перелёта. "Y" - эконом , "C" - бизнес, "F" - первый.
| |
− | adults - кол-во взрослых пассажиров.
| |
− | children - кол-во детей.
| |
− | infants - кол-во детей до 2 лет.
| |
− | </syntaxhighlight>
| |
− | </div>
| |
− | </div>
| |
− |
| |
− | Время и дата бронирования '''''created_at''''' передается в таймзоне UTC+4.
| |
− |
| |
− | Состояние брони '''''state''''' может принимать значения:
| |
− | * '''''PROCESSING''''' - забронирован;
| |
− | * '''''PAID''''' - выписан;
| |
− | * '''''CANCELLED''''' - аннулирован (по любым причинам).
| |
− |
| |
− | Прибыль партнёра '''''profit''''' от данного бронирования в формате 00.99 (через точку).
| |
− | Размер прибыли партнера устанавливается для конкретного источника трафика в Модуле метрики и считается как процент от стоимости оплаченного заказа, включая комиссию платежного шлюза и апсейловые продажи. В последующем расчет прибыли может измениться. При возврате авиабилетов сумма ранее засчитанная как прибыль партнера (метапоисковой системы) должна подставляться с минусом в данном периоде.
| |
| | | |
− | Количество детей до 2 лет '''''infants''''' относится только к младенцам без места. Количество младенцев с местом объединяются с количеством детей до 12 лет '''''children'''''.
| + | </pre> |
| + | </div></div> |
| | | |
− | ==Выгрузка информации о продажах в формате Nemo XML==
| + | --> |
− | ==Выгрузка информации о продажах в формате СОФИ XML==
| |
− | ==Фиксация оплаты внешним запросом==
| |
− | ==Выгрузка заказов по критериям в формате Nemo XML==
| |
− | ==Выгрузка определенного заказа по критериям в формате Nemo XML==
| |
− | ==API универсального платежного шлюза==
| |
− | ==API Синхронизации пользователей и субагентов==
| |
− | ==API Кроссавторизации==
| |
− | ==Передача параметров в форму поиска==
| |
− | ==Проверка в сторонней системе возможности тикетинга==
| |
− | ==API загрузки счетов из сторонней системы==
| |
− | ==API загрузки сальдо компаний из СОФИ==
| |