|
|
(не показано 65 промежуточных версий 4 участников) |
Строка 1: |
Строка 1: |
| + | ==API Авиабилетов== |
| | | |
− | '''!!!СТАТЬЯ В РАЗРАБОТКЕ!!!'''
| + | Чтобы авторизоваться в системе, в запросе необходимо указать APIKey и ClientID. Эти данные можно узнать в разделе Администрирование - Веб-сервис. Авторизация. Там же можно включить/выключить нотификацию для действий, совершенных через АПИ. |
− | | |
− | ==API Поиска авиабилетов==
| |
− | === Подключение ===
| |
| | | |
| + | === API Поиска авиабилетов === |
| Это сервис внутри Nemo, который позволяет получить результаты поиска. | | Это сервис внутри Nemo, который позволяет получить результаты поиска. |
| | | |
| Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе '''«Администрирование»''' ⇨ '''«Веб-служба. Авторизация»'''. | | Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе '''«Администрирование»''' ⇨ '''«Веб-служба. Авторизация»'''. |
| | | |
− | После добавления пользователя, ему будут присвоены Номер (ClientId) и API ключ клиента, которые нужно использовать для подключения.
| + | Подробнее можно узнать в специальной статье [[Веб-служба поиска авиабилетов]] |
| | | |
− | WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=SearchFlights
| + | === API Бронирования авиабилетов === |
| + | Сервис позволяет забронировать/войдировать авиабилет с использованием API, описание подключения, запроса, ответов находится в этой статье [[Веб-служба бронирования]] |
| | | |
− | === Общий формат запроса / ответа поиска === | + | === API Выписки авиабилетов === |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| + | Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета. [[Веб-служба выписки]] |
− | ===== Запрос =====
| |
− | <div class="mw-collapsible-content">
| |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights">
| |
− | <soapenv:Header/>
| |
− | <soapenv:Body>
| |
− | <ver:search>
| |
− | <RequestBin>
| |
− | <Request>
| |
− | <SearchFlights LinkOnly="?">
| |
− | <!--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 Оплаты === |
| | | |
− | ===== Ответ =====
| + | Сервис внутри 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://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 Дополнительных запросов авиабилетов === |
− | * Если текущий домен агентства/субагентства есть в настройках ('''Администрирование''' ⇨ '''Настройки агентства''' ⇨ '''Доменное имя сайта для загрузки настроек'''), то этот домен используется в ссылках.
| |
− | * Если текущего домена нет в настройках, то используется первый домен из настроек.
| |
− | * Если в настройках не прописано ни одного домена, то используется текущий домен.
| |
| | | |
− | На поиск действуют ограничения заданные в настройках агентства, в частности ограничения по пассажирам и ограничение ближайшей разрешенной даты поиска билетов.
| + | К дополнительных запросам относятся проверка на доступность, запрос на обновление заказа, чтение тарифных правил. [[Дополнительные запросы АПИ авиабилетов]] |
− | * Если дата поиска меньше ближайшей разрешенной даты для поиска билетов, то выводится сообщение об ошибке Invalid search param: Неверная дата вылета: слишком близкая
| |
− | * Если количество взрослых пассажиров превышает допустимое ограничение - Invalid search param: Слишком много взрослых
| |
− | * Если количество детей в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много детей
| |
− | * Если количество младенцев в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантов
| |
− | * Если количество младенцев с местом в поисковом запросе превышает допустимое ограничение - Invalid search param: Слишком много инфантов
| |
| | | |
− | === Примеры использования === | + | === Используемые параметры === |
− | | |
− | ==== Односторонний перелет ====
| |
− | | |
− | Пример одностороннего перелета: Москва — Мадрид, 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> |
| + | </tr> |
| + | <tr> |
| + | <td>FlightId </td><td class="col1">да </td><td>число</td><td >Id перелёта для которого будет производится бронирование(поиск тарифных правил, проверка доступности)</td> |
| + | </tr> |
| + | <tr> |
| + | <td>CurrencyCode </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>Agency </td><td>да </td><td>сложный </td><td>Информация об агентстве</td> |
− | <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIEN_DOMAIN/nemoflights/?version%3D1.0%26for%3DSearchFlights" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
| |
− | <SOAP-ENV:Body>
| |
− | <ns1:searchResponse>
| |
− | <ResponseBin>
| |
− | <Response>
| |
− | <SearchFlights>
| |
− | <Flights SearchId="13949" ResultURL="http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D13949">
| |
− | <Flight FlightId="168090001">
| |
− | <WebService>SABRE</WebService>
| |
− | <ValCompany/>
| |
− | <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D13949%26flight%3D168090001</URL>
| |
− | <Segments>
| |
− | <Segment SegNum="1" SegGroupNum="0">
| |
− | <DepAirp CodeType="IATA" Name="Шереметьево, Москва">SVO</DepAirp>
| |
− | <DepTerminal/>
| |
− | <ArrAirp CodeType="IATA" Name="Мадрид">MAD</ArrAirp>
| |
− | <ArrTerminal/>
| |
− | <OpAirline>SU</OpAirline>
| |
− | <OpAirlineName>Аэрофлот - Российские авиалинии</OpAirlineName>
| |
− | <MarkAirline>SU</MarkAirline>
| |
− | <MarkAirlineName>Аэрофлот - Российские авиалинии</MarkAirlineName>
| |
− | <FlightNumber>2500</FlightNumber>
| |
− | <AircraftName>Airbus 320</AircraftName>
| |
− | <AircraftType>320</AircraftType>
| |
− | <DepDateTime>2014-03-20T08:05:00</DepDateTime>
| |
− | <ArrDateTime>2014-03-20T10:15:00</ArrDateTime>
| |
− | <StopNum>0</StopNum>
| |
− | <BookingCodes>
| |
− | <BookingCode ClassType="economy">
| |
− | <BookingCode>E</BookingCode>
| |
− | </BookingCode>
| |
− | </BookingCodes>
| |
− | <FlightTime>310</FlightTime>
| |
− | <TimeZone Departure="4" Arrival="1"/>
| |
− | <ETicket>true</ETicket>
| |
− | </Segment>
| |
− | </Segments>
| |
− | <PricingInfo Refundable="false">
| |
− | <PassengerFare Type="ADT" Quantity="1">
| |
− | <BaseFare Currency="EUR" Amount="165"/>
| |
− | <EquiveFare Currency="RUB" Amount="8250"/>
| |
− | <TotalFare Currency="RUB" Amount="10535"/>
| |
− | <Taxes>
| |
− | <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
| |
− | <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
| |
− | </Taxes>
| |
− | <Tariffs/>
| |
− | <FareCalc>MOW SU MAD225.45NUC225.45END ROE0.731857</FareCalc>
| |
− | <LastTicketDateTime>2014-03-09T23:59:59</LastTicketDateTime>
| |
− | </PassengerFare>
| |
− | <PassengerFare Type="CNN" Quantity="1">
| |
− | <BaseFare Currency="EUR" Amount="124"/>
| |
− | <EquiveFare Currency="RUB" Amount="6200"/>
| |
− | <TotalFare Currency="RUB" Amount="8485"/>
| |
− | <Taxes>
| |
− | <Tax CurCode="RUB" TaxCode="YQF" Amount="2100"/>
| |
− | <Tax CurCode="RUB" TaxCode="YRI" Amount="185"/>
| |
− | </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>Name </td><td>да </td><td>строка </td><td>Название агентства</td> |
| + | </tr> |
| + | <tr> |
| + | <td>Telephone </td><td>нет </td><td>сложный </td><td>Контактный телефон агентства</td> |
| | | |
− | Пример перелета туда-обратно: Москва — Париж, 2 взрослых, бизнес класс. '''Выдача с именами авиакомпаний, воздушных судов, аэропортов.'''
| + | </tr> |
| + | <tr> |
| + | <td>Type</td><td>да </td><td>строка </td><td>Тип номера, возможные значения: M - мобильный, H - домашний, B - рабочий, A - агентство</td> |
| + | </tr> |
| + | <tr> |
| + | <td>PhoneNumber </td><td>да </td><td>строка </td><td>Номер телефона</td> |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| + | </tr> |
− | ===== Запрос =====
| + | <tr> |
− | <div class="mw-collapsible-content">
| + | <td>CountryAccessCode </td><td>нет </td><td>строка </td><td>Код страны</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>AreaCityCode </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>Address</td><td>да </td><td>сложный </td><td class="col3">Адрес агентства</td> |
| + | </tr> |
| + | <tr> |
| + | <td>City</td><td>да </td><td class="col2">строка </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>StreetAddress </td><td>нет </td><td>сложный </td><td>Адрес агентства в городе (улица, дом, корпус, офис и т.д.)</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>PostalCode </td><td>нет </td><td>строка </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>CountryCode </td><td>нет </td><td>строка </td><td>Код страны (RU, UA, US и т.д.)</td> |
| + | </tr> |
| + | <tr> |
| + | <td>Travellers </td><td>да </td><td>сложный </td><td>Контейнер для информации о пассажирах (для которых будет производится поиск перелёта, бронирование)</td> |
| | | |
− | Пример сложного маршрута: Прага — Москва — Милан — Мадрид, 1 взрослый, 1 младенец, эконом класс. '''Выдача с именами авиакомпаний, воздушных судов, аэропортов.'''
| + | </tr> |
| + | <tr> |
| + | <td class="col0">Traveller </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Информация о пассажире</td> |
| + | </tr> |
| + | <tr class="row24"> |
| + | <td>Type</td><td>да</td><td>строка</td><td>Тип пассажира возможные значения: ADT - взрослые, CNN - дети, UNN - дети без сопровождения взрослых, INF - младенцы, INS - младенцы с местом</td> |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | + | </tr> |
− | ===== Запрос =====
| + | <tr class="row25"> |
− | <div class="mw-collapsible-content"> | + | <td class="col0">IsContact </td><td class="col1">нет</td><td class="col2">булевский </td><td class="col3">Индикатор показывающий является ли данное лицо контактным, возможные значение: true - пассажир является контактным лицом, false - не является. Контактное лицо может быть только одно, если среди пассажиров есть взрослые, то только кто-то из них может быть контактным лицом. Если не указано, то по умолчанию false.</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="row26"> |
− | <soapenv:Header/>
| + | <td class="col0">LinkedTo </td><td class="col1">нет </td><td class="col2">целое число </td><td class="col3">Номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)</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="row27"> |
| + | <td class="col0">Num </td><td class="col1">да </td><td class="col2">число </td><td class="col3">Номер пассажира.</td> |
| + | </tr> |
| + | <tr class="row28"> |
| + | <td class="col0">PreferedPlace </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Информация о предпочитаемом месте. Если указаны номер ряда и номер места, то параметры Smoking и Location игнорируются и могут быть не указаны.</td> |
| | | |
− | ===== Ответ =====
| + | </tr> |
− | <div class="mw-collapsible-content">
| + | <tr class="row29"> |
− | <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">SmokingAllowed </td><td class="col1">нет </td><td class="col2">булевский </td><td class="col3">true - место для курящих, false - место для некурящих. По умолчанию false.</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="row30"> |
− | <ns1:searchResponse>
| + | <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> |
− | <ResponseBin>
| + | </tr> |
− | <Response>
| + | <tr class="row31"> |
− | <SearchFlights>
| + | <td class="col0">RowNumber</td><td class="col1">нет</td><td class="col2">строка </td><td class="col3">Номер ряда</td> |
− | <Flights SearchId="190491108" ResultURL="http%3A%2F%2Ftst.nemo.travel%2F%3Fgo%3Dsearch%2Fview_results%26uid%3D190491108">
| + | </tr> |
− | <Flight FlightId="372394480001">
| + | <tr class="row32"> |
− | <WebService>SABRE</WebService>
| + | <td class="col0">PlaceNumber </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Номер места</td> |
− | <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="row33"> |
| + | <td class="col0">SegNumber </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер сегмента</td> |
| + | </tr> |
| + | <tr class="row34"> |
| + | <td class="col0">DocumentInfo </td><td class="col1">да </td><td class="col2">сложный </td><td class="col3">Паспортные данные</td> |
| | | |
| + | </tr> |
| + | <tr class="row35"> |
| + | <td class="col0">DocType </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Тип документа, обязательный.</td> |
| + | </tr> |
| + | <tr class="row36"> |
| + | <td class="col0">DocNum </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер документа</td> |
| + | </tr> |
| + | <tr class="row37"> |
| + | <td class="col0">CountryCode </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Страна выдачи, двух буквенный код(RU, US и т.д.)</td> |
| + | </tr> |
| + | <tr class="row38"> |
| + | <td class="col0">DocElapsedTime</td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Срок истечения срока действия паспорта в фирмате dd.mm.yyyy (например 31.12.2012)</td> |
| | | |
− | ==API Поиска отелей== | + | </tr> |
− | '''Агентский API Отелей''' - система, которая предоставляет возможность поиска и бронирования отелей а так же получение информации о времени и размерах штрафов, уникальной информации об отеле, получение статической информации.
| + | <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> |
| | | |
− | Для получения списка доступных городов, воспользуйтесь запросом на выгрузку статики (см. ССЫЛКА). Список допустимых отелей для фильтра также доступен через сервис (см. ССЫЛКА). Рекомендуется выгрузить все данные по отелям, городам и странам в локальную базу, для экономии времени и запросов.
| + | </tr> |
| + | <tr class="row45"> |
| + | <td class="col0">BirthCity </td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Город рождения (название)</td> |
| + | </tr> |
| + | <tr class="row46"> |
| + | <td class="col0">ArrAddress </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Адрес прибытия, для въезжающих в США (не граждан США) информация является обязательной. Если она не заполняется при оформлении брони, то её всё равно придётся заполнять при посадке на самолёт.</td> |
| | | |
− | '''WSDL''' (тестовый сервер): [http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelsSearch http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelsSearch]
| + | </tr> |
| + | <tr class="row47"> |
| + | <td class="col0">CountryCode </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">IATA код страны</td> |
| + | </tr> |
| + | <tr class="row48"> |
| + | <td class="col0">State </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="row49"> |
− | <div class="mw-collapsible-content"> | + | <td class="col0">PostalCode </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="row50"> |
− | xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelsSearch">
| + | <td class="col0">City </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="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> |
− | |-
| |
− | | CityId
| |
− | | Обязательный. Идентификатор города в системе Nemo.
| |
− | | Целое число
| |
− | |-
| |
− | | DateBegin
| |
− | | Обязательный. Дата заселения.
| |
− | | Формат гггг-мм-дд.
| |
− | |-
| |
− | | DateEnd
| |
− | | Обязательный. Дата выезда.
| |
− | | Формат гггг-мм-дд.
| |
− | |-
| |
− | | Rooms
| |
− | | Обязательный. Содержит массив запрашиваемых номеров/апартаментов.
| |
− | | Элемент Room. Максимум 4 элемента Room.
| |
− | |-
| |
− | | Filters
| |
− | | Необязательный. Содержит различные фильтры поиска отелей.
| |
− | | Элемент Hotels.
| |
− | |}
| |
| | | |
− | Элемент '''Room'''
| + | </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> |
− | | Persons
| + | <tr class="row55"> |
− | | Обязательный. Содержит данные о клиентах в номерах.
| + | <td class="col0">DateOfBirth</td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Дата рождения в формате dd.mm.yyyy (например 31.12.2000)</td> |
− | | Элемент Person
| + | </tr> |
− | |-
| + | <tr class="row56"> |
− | | DoubleBed
| + | <td class="col0">Nationality </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Национальность/гражданство, двух буквенный код страны (RU, UA, US и т.д.)</td> |
− | | Необязательный. Может быть использован только если сумма количества детей и взрослых равна 2-м, а также
| |
− | Если в запросе сумма детей и взрослых не равна 2, то данный элемент будет проигнорирован.
| |
− | | true/false
| |
− | true означает, что номер должен иметь двуспальную кровать
| |
− | |}
| |
| | | |
− | Элемент '''Person'''
| + | </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> |
− | |-
| |
− | | Атрибут Id
| |
− | | Уникальный идентификатор. См. результаты бронирования.
| |
− | | Целое число
| |
− | |-
| |
− | | Атрибут Type
| |
− | | Тип клиента.
| |
− | Если не указан, будет определен по возрасту Age.
| |
− | | Константы:
| |
− | ADT - взрослый
| |
− | CLD - ребенок 2-12 лет
| |
− | INF - младенец до 2х лет
| |
− | |-
| |
− | | Атрибут Age
| |
− | | Возраст. Обязателен для детей (CLD).
| |
− | | Целое число. Количество лет.
| |
− | |}
| |
| | | |
− | Элемент '''Filters'''
| + | </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> |
− | | Hotels
| + | <tr class="row61"> |
− | | Необязательный. Набор идентификаторов отелей в системе 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> |
− | | Элемент Id – целое число
| + | <tr class="row62"> |
− | |}
| + | <td class="col0">LoyaltyCard </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Карточка часто летающего пассажира</td> |
| | | |
− | Элемент '''Source'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row63"> |
− | |-
| + | <td class="col0">OpCode </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="row64"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">Number </td><td class="col1">да </td><td class="col2">строка </td><td class="col3">Номер карточки</td> |
− | |-
| + | </tr> |
− | | ClientID
| + | <tr class="row65"> |
− | | Обязательный. ID клиента в системе Nemo.
| + | <td class="col0">ContactInfo</td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Контактная информация для пассажира</td> |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| + | </tr> |
− | | Целое число.
| + | <tr class="row66"> |
− | |-
| + | <td class="col0">EmailID </td><td class="col1">нет </td><td class="col2">строка </td><td class="col3">Контактный email</td> |
− | | APIKey
| |
− | | Обязательный. APIKey - секретный ключ доступа к API Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Латинские буквы и цифры. Всего 32 символа.
| |
− | |}
| |
− | </div> | |
− | </div> | |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | + | </tr> |
− | ===== Ответ ===== | + | <tr class="row67"> |
− | <div class="mw-collapsible-content"> | + | <td class="col0">Telephone </td><td class="col1">нет </td><td class="col2">сложный </td><td class="col3">Контактный телефон пассажира, описание аналогично описанию телефона агентства</td> |
− | Система по заданным параметрам ищет отели и возвращает результаты поиска. Все результаты поиска хранятся в базе Nemo определенный срок и доступны для бронирования по идентификатору CacheId.
| + | </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> |
| | | |
− | Структура ответа - это набор уникальных отелей. У каждого указан Id - это идентификатор из базы Nemo. По нему можно получить дополнительную статичную информацию из путеводителя Nemo.
| + | </tr> |
| + | <tr class="row70"> |
| + | <td class="col0">GetAirRules</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса поиска тарифных правил</td> |
| + | </tr> |
| + | <tr class="row71"> |
| + | <td class="col0">AirAvail</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса проверки доступности перелёта</td> |
| | | |
− | Каждый отель содержит:
| + | </tr> |
− | * Набор номеров <Rooms>. Типы номеров (одноместный, двухместный и т.д.) : устанавливается автоматически по количеству клиентов из запроса.
| + | <tr class="row72"> |
− | * Сервисы <Services>. Каждый отель предлагает различные типы обслуживания в номерах. Цена и доступность может различаться.
| + | <td class="col0">Ticketing</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса выписки брони</td> |
− | * Категория <Categories>. Это допустимые комбинации номер + обслуживание. Для бронирования отеля пользователь должен выбрать одну из предлагаемых ему категорий.
| + | </tr> |
| + | <tr class="row73"> |
| + | <td class="col0">ValCompany</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="row74"> |
− | xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelsSearch">
| + | <td class="col0">Comission</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Комиссия</td> |
− | <SOAP-ENV:Body>
| + | </tr> |
− | <ns1:searchResponse>
| + | <tr class="row75"> |
− | <ResponseBin>
| + | <td class="col0">Amount</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="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
| |
− | | Обязательный. Идентификатор отеля как одного из результатов поиска в системе 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="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
| |
− | | Обязательный. Идентификатор услуги.
| |
− | | Целое число
| |
− | |-
| |
− | | Атрибут Status
| |
− | | Обязательный. Доступность отеля. ОК означает доступен (мгновенное подтверждение).
| |
− | RQ - недоступен (по запросу).
| |
− | | ОК/RQ
| |
− | |-
| |
− | | Desc
| |
− | | Необязательный. Описание отеля.
| |
− | | Строка в произвольном формате.
| |
− | |-
| |
− | | Meal
| |
− | | Обязательный. Питание для данного сервиса.
| |
− | | Строка в произвольном формате.
| |
− | |-
| |
− | | Price
| |
− | | Необязательный. Указывает на стоимость номера с данной услугой.
| |
− | | Вещественное число.
| |
− | Атрибут Currency - код валюты.
| |
− | |}
| |
| | | |
− | Элемент '''Room'''
| + | </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"> |
− | | Type
| + | <td class="col0">ODPair</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для информации о сегменте перелёта. Может повторяться 1-6 раз. Поиск по расписанию использует только первый сегмент, поиск сложных перелётов и перелётов туда и обратно не поддерживается</td> |
− | | Обязательный. Тип номера.
| |
− | | Строка. Возможные значения:
| |
− | SNGL – одноместный
| |
− | DBL – двухместный с двухспальной кроватью
| |
− | TWIN – двухместный с двумя кроватями
| |
− | TRIP – трёхместный
| |
− | QUAD – четырёхместный
| |
− | |}
| |
| | | |
− | Элемент '''Category'''
| + | </tr> |
− | {| style="width: 800px" class="wikitable"
| + | <tr class="row84"> |
− | |-
| + | <td class="col0">DepDate</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата вылета, Формат ГГГГ-MM-DDTЧЧ:ММ:СС</td> |
− | ! scope="col" width="200" | Элемент
| + | </tr> |
− | ! scope="col" width="300" | Описание
| + | <tr class="row85"> |
− | ! scope="col" width="300" | Допустимые значения
| + | <td class="col0">DepAirp</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Трёх буквенный код города отправления или конкретного аэропорта в городе отправления.</td> |
− | |-
| |
− | | Атрибут Id
| |
− | | Обязательный. Идентификатор категории.
| |
− | | Целое число.
| |
− | |-
| |
− | | Rooms
| |
− | | Обязательный. Массив комнат с соответствием услуг.
| |
− | | Целое число.
| |
− | |-
| |
− | | Room
| |
− | | Атрибут: Count
| |
| | | |
− | Обязательный.
| + | </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
| + | </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> |
| | | |
− | Обязательный. Идентификатор комнаты из атрибута Id в элементе Hotel-> Rooms-> Room.
| + | </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> |
| | | |
− | Атрибут: ServiceId
| + | </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> |
| | | |
− | - Идентификатор услуги из атрибута Id элемента Service. | + | </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"> |
− | Целое число.
| + | <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> |
− | | TotalPrice
| + | </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> |
| + | <tr class="row82"> |
| + | <td class="col0">TaxCode</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Код таксы</td> |
| + | </tr> |
| + | <tr class="row83"> |
| + | <td class="col0">Amount</td><td class="col1">да</td><td class="col2">число с плавающей точкой</td><td class="col3">Значение таксы</td> |
| | | |
− | ===== Ответ =====
| + | </tr> |
− | <div class="mw-collapsible-content"> | + | <tr class="row84"> |
− | <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">Tariffs</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="row85"> |
− | <ns1:BookFlightResponse>
| + | <td class="col0">Tariff</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="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> |
| | | |
− | После бронирования, если не истек таймлимит можно аннулировать сделанный заказ. Аннуляция заказа в Nemo может быть ручной (сделанной пользователем) и автоматической — по истечению таймлимита, установленного для заказа система сама аннулирует заказ.
| + | </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> |
| | | |
− | WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=CancelBook
| + | </tr> |
− | | + | </table> |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| |
− | ===== Запрос =====
| |
− | <div class="mw-collapsible-content">
| |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DCancelBook">
| |
− | <soapenv:Header/>
| |
− | <soapenv:Body>
| |
− | <ver:CancelBook>
| |
− | <RequestBin>
| |
− | <Request>
| |
− | <CancelBook BookID="?"/>
| |
− | <!--BookID — Id брони в системе Nemo, целое число-->
| |
− | </Request>
| |
− | <Source>
| |
− | <ClientId>?</ClientId>
| |
− | <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе
| |
− | "Администрирование" ? "Веб-служба. Авторизация".-->
| |
− | <APIKey>?</APIKey>
| |
− | <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе
| |
− | "Администрирование" ? "Веб-служба. Авторизация".-->
| |
− | <Language>?</Language>
| |
− | <!--Language — язык-->
| |
− | <Currency>?</Currency>
| |
− | <!-- CUrrency — валюта-->
| |
− | </Source>
| |
− | </RequestBin>
| |
− | </ver:CancelBook>
| |
− | </soapenv:Body>
| |
− | </soapenv: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 бронирования, отмены отелей== | |
− | | |
− | ==== Штрафы за аннуляцию ====
| |
− | | |
− | Всегда в явном виде нужно указывать пользователю информацию о штрафах за аннуляцию до бронирования.
| |
− | | |
− | Штрафы получаются по каждой услуге отдельным запросом. Нужно указать тип услуги, идентификатор результата поиска и выбранную категорию.
| |
− | | |
− | Внимание. Для отелей из Hotelbeds (Supplier=HOTELBEDS) штрафы до бронирования получить невозможно.
| |
− | | |
− | '''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=Penalty | |
− | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| |
− | ===== Запрос =====
| |
− | <div class="mw-collapsible-content">
| |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
| |
− | xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DPenalty">
| |
− | <soapenv:Header/>
| |
− | <soapenv:Body>
| |
− | <ver:penalty>
| |
− | <RequestBin>
| |
− | <Request>
| |
− | <Penalty>
| |
− | <Item>
| |
− | <Type>HOTELS</Type>
| |
− | <CacheId>1867246</CacheId>
| |
− | <CategoryId>1</CategoryId>
| |
− | </Item>
| |
− | </Penalty>
| |
− | </Request>
| |
− | <Source>
| |
− | <ClientId></ClientId>
| |
− | <APIKey></APIKey>
| |
− | <Language>ru</Language>
| |
− | <Currency>RUB</Currency>
| |
− | </Source>
| |
− | </RequestBin>
| |
− | </ver:penalty>
| |
− | </soapenv:Body>
| |
− | </soapenv:Envelope>
| |
− | </syntaxhighlight>
| |
− | | |
− | Элемент '''Item'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Type
| |
− | | Обязательный. Тип объекта.
| |
− | | HOTELS
| |
− | |-
| |
− | | CacheId
| |
− | | Обязательный. Идентификатор результата поиска в системе Nemo.
| |
− | | Целое число
| |
− | |-
| |
− | | CategoryId
| |
− | | Обязательный. Идентификатор категории.
| |
− | | Целое число
| |
− | |}
| |
− | | |
− | Элемент '''Source'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | ClientID
| |
− | | Обязательный. 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%3DPenalty">
| |
− | <SOAP-ENV:Body>
| |
− | <ns1:penaltyResponse>
| |
− | <ResponseBin>
| |
− | <Response>
| |
− | <Penalty>
| |
− | <ItemDateBegin>2013-10-15 00:00:00</ItemDateBegin>
| |
− | <CancelCharges>
| |
− | <Charge>
| |
− | <DateFrom>2013-10-12 00:00:00</DateFrom>
| |
− | <DateTo>2013-10-15 23:59:59</DateTo>
| |
− | <Money Currency="RUB">74733.84</Money>
| |
− | </Charge>
| |
− | <Charge>
| |
− | <DateFrom>2013-09-23 00:00:00</DateFrom>
| |
− | <DateTo>2013-10-11 00:00:00</DateTo>
| |
− | <Money Currency="RUB">67260.46</Money>
| |
− | </Charge>
| |
− | <Charge>
| |
− | <DateFrom>2013-08-01 17:59:00</DateFrom>
| |
− | <DateTo>2013-09-22 00:00:00</DateTo>
| |
− | <Money Currency="RUB">12455.64</Money>
| |
− | </Charge>
| |
− | </CancelCharges>
| |
− | <ModifyCharges/>
| |
− | </Penalty>
| |
− | </Response>
| |
− | </ResponseBin>
| |
− | </ns1:penaltyResponse>
| |
− | </SOAP-ENV:Body>
| |
− | </SOAP-ENV:Envelope>
| |
− | </syntaxhighlight>
| |
− | | |
− | Элемент '''Penalty'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | ItemDateBegin
| |
− | | Обязательный. Дата начала услуги (дата заселения в отель).
| |
− | | Формат гггг-мм-дд чч:мм:сс
| |
− | |-
| |
− | | CancelCharges
| |
− | | Необязательный. Содержит информацию о штрафах за аннуляцию.
| |
− | | Элемент Charge
| |
− | |-
| |
− | | ModifyCharges
| |
− | | Необязательный. Содержит информацию о штрафах за модификацию.
| |
− | | Элемент Charge
| |
− | |}
| |
− | | |
− | Штрафы разбиваются по временным интервалам. На каждом интервале указывается значение штрафа.
| |
− | | |
− | Элемент '''Charge'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | DateFrom
| |
− | | Обязательный. Дата/время начала интервала.
| |
− | | Формат гггг-мм-дд чч:мм:сс
| |
− | |-
| |
− | | DateTo
| |
− | | Необязательный. Дата/время окончания интервала.
| |
− | | Формат гггг-мм-дд чч:мм:сс
| |
− | |-
| |
− | | Money
| |
− | | Обязательный. Сумма штрафа.
| |
− | | Вещественное число.
| |
− | Атрибут: Currency - код валюты.
| |
− | |}
| |
− | </div>
| |
− | </div>
| |
− | | |
− | | |
− | | |
− | ==== Бронирование ====
| |
− | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
| |
− | ===== Запрос =====
| |
− | <div class="mw-collapsible-content">
| |
− | Схема запроса позволяет указывать несколько услуг для бронирования сразу. Это было сделано с заделом на возможность расширения функциональности в будущем при сохранении совместимости.
| |
− | | |
− | Сейчас же необходимо указывать только 1 услугу-отель (элемент Item) в запросе на бронирование.
| |
− | | |
− | Для успешного запроса нужно указать:
| |
− | #Услугу. В запросе не требуется перечислять все параметры из результатов поиска, достаточно указать уникальный ID результата.
| |
− | #Информация о клиентах. Все клиенты перечисляются в отдельной ветке и нумеруются по порядку. Указатели (элементы с номером клиента), также добавляются в описание услуги.
| |
− | #Заказчик. Указатель на одну персону.
| |
− | | |
− | '''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=Booking
| |
− | | |
− | <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%3DBooking">
| |
− | <soapenv:Header/>
| |
− | <soapenv:Body>
| |
− | <ver:booking>
| |
− | <RequestBin>
| |
− | <Request>
| |
− | <Booking>
| |
− | <Items>
| |
− | <!--Zero or more repetitions:-->
| |
− | <Item>
| |
− | <!--You have a CHOICE of the next 3 items at this level-->
| |
− | <HotelBookData>
| |
− | <CacheId>1872666</CacheId>
| |
− | <CategoryId>1</CategoryId>
| |
− | <Rooms>
| |
− | <!--Zero or more repetitions:-->
| |
− | <Room Id="2">
| |
− | <Persons>
| |
− | <!--Zero or more repetitions:-->
| |
− | <Person Number="1"/>
| |
− | <Person Number="2"/>
| |
− | </Persons>
| |
− | </Room>
| |
− | <Room Id="1">
| |
− | <Persons>
| |
− | <!--Zero or more repetitions:-->
| |
− | <Person Number="3"/>
| |
− | </Persons>
| |
− | </Room>
| |
− | </Rooms>
| |
− | </HotelBookData>
| |
− | <Customer>
| |
− | <Person Number="1"/>
| |
− | </Customer>
| |
− | </Item>
| |
− | </Items>
| |
− | <Persons>
| |
− | <!--Zero or more repetitions:-->
| |
− | <Person Number="1" Type="ADT">
| |
− | <!--Optional:-->
| |
− | <Lastname>IVANOV</Lastname>
| |
− | <!--Optional:-->
| |
− | <Name>IVAN</Name>
| |
− | <!--Optional:-->
| |
− | <Middlename>IVANOVICH</Middlename>
| |
− | <!--Optional:-->
| |
− | <DateOfBirth>1987-12-12</DateOfBirth>
| |
− | <!--Optional:-->
| |
− | <Phone>+79871231212</Phone>
| |
− | <!--Optional:-->
| |
− | <Email>m.rudenko@mute-lab.com</Email>
| |
− | <!--Optional:-->
| |
− | <Gender>MR</Gender>
| |
− | <!--Optional:-->
| |
− | <Document Type="P">
| |
− | <Series>1811</Series>
| |
− | <Number>912219</Number>
| |
− | <!--Optional:-->
| |
− | <IssueDate>2012-12-12</IssueDate>
| |
− | <!--Optional:-->
| |
− | <ExpiryDate>2014-12-12</ExpiryDate>
| |
− | </Document>
| |
− | </Person>
| |
− | <Person Number="2" Type="CHD">
| |
− | <!--Optional:-->
| |
− | <Lastname>PETROV</Lastname>
| |
− | <!--Optional:-->
| |
− | <Name>IVAN</Name>
| |
− | <!--Optional:-->
| |
− | <Middlename>MIKHAILOVICH</Middlename>
| |
− | <!--Optional:-->
| |
− | <DateOfBirth>2008-12-12</DateOfBirth>
| |
− | <!--Optional:-->
| |
− | <Phone>+79871231212</Phone>
| |
− | <!--Optional:-->
| |
− | <Email>m.rudenko@mute-lab.com</Email>
| |
− | <!--Optional:-->
| |
− | <Gender>MR</Gender>
| |
− | <!--Optional:-->
| |
− | <Document Type="P">
| |
− | <Series>1866</Series>
| |
− | <Number>913319</Number>
| |
− | <!--Optional:-->
| |
− | <IssueDate>2012-12-12</IssueDate>
| |
− | <!--Optional:-->
| |
− | <ExpiryDate>2014-12-12</ExpiryDate>
| |
− | </Document>
| |
− | </Person>
| |
− | <Person Number="3" Type="ADT">
| |
− | <!--Optional:-->
| |
− | <Lastname>SIDOROV</Lastname>
| |
− | <!--Optional:-->
| |
− | <Name>IVAN</Name>
| |
− | <!--Optional:-->
| |
− | <Middlename>SERGEEVICH</Middlename>
| |
− | <!--Optional:-->
| |
− | <DateOfBirth>1987-12-12</DateOfBirth>
| |
− | <!--Optional:-->
| |
− | <Phone>+79871231212</Phone>
| |
− | <!--Optional:-->
| |
− | <Email>m.rudenko@mute-lab.com</Email>
| |
− | <!--Optional:-->
| |
− | <Gender>MR</Gender>
| |
− | <!--Optional:-->
| |
− | <Document Type="P">
| |
− | <Series>1866</Series>
| |
− | <Number>913319</Number>
| |
− | <!--Optional:-->
| |
− | <IssueDate>2012-12-12</IssueDate>
| |
− | <!--Optional:-->
| |
− | <ExpiryDate>2014-12-12</ExpiryDate>
| |
− | </Document>
| |
− | </Person>
| |
− | </Persons>
| |
− | </Booking>
| |
− | </Request>
| |
− | <Source>
| |
− | <ClientId></ClientId>
| |
− | <APIKey></APIKey>
| |
− | <Language>ru</Language>
| |
− | <Currency>RUB</Currency>
| |
− | </Source>
| |
− | </RequestBin>
| |
− | </ver:booking>
| |
− | </soapenv:Body>
| |
− | </soapenv:Envelope>
| |
− | </syntaxhighlight>
| |
− | | |
− | Элемент '''Booking'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Items
| |
− | | Обязательный. Массив элементов Item.
| |
− | | Элемент Item
| |
− | |-
| |
− | | Customer
| |
− | | Обязательный. Элемент установки заказчика.
| |
− | |
| |
− | |-
| |
− | | 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>
| + | Подробнее можно узнать в нашей специальной статье [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 Агентский АПИ отелей] |
− | Для успешного завершения бронирования нужно указать как минимум одного клиента. Максимальное число клиентов в текущей версии не ограничено.
| |
| | | |
− | Набор обязательных данных может меняться в зависимости от типов услуг в бронировании. Рекомендуемый набор обязательных параметров: 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'''
| |
− | {| 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">
| + | ==Выгрузки статистики продаж через API (Метапоиск)== |
− | ===== Ответ =====
| |
− | <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>
| |
− | <ns1:bookingResponse>
| |
− | <ResponseBin>
| |
− | <Response>
| |
− | <Booking>
| |
− | <Items>
| |
− | <Item Id="386610">
| |
− | <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 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:Envelope>
| |
− | </syntaxhighlight>
| |
− | | |
− | Структура ответа очень похожа на запрос. Выделяются те же основные элементы.
| |
− | | |
− | Элемент '''Booking'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Items
| |
− | | Обязательный. Содержит элемент(ы) Item.
| |
− | | Элемент Item
| |
− | |-
| |
− | | Persons
| |
− | | Обязательный. Здесь перечислены все клиенты заказа.
| |
− | | Элемент Person
| |
− | |}
| |
− | | |
− | В элементах Item раскрывается подробнейшая информация об одной услуге в бронировании.
| |
− | | |
− | Элемент '''Item'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Атрибут Id
| |
− | | Обязательный.
| |
− | Номер заказа в системе Nemo.
| |
− | | Целое число
| |
− | |-
| |
− | | Type
| |
− | | Обязательный.
| |
− | Тип объекта бронирования.
| |
− | | HOTELS
| |
− | |-
| |
− | | Status
| |
− | | Обязательный. Статус объекта бронирования .
| |
− | | booked - забронирован
| |
− | cancelled - аннулирован
| |
− | pending confirmation - в процессе подтверждения
| |
− | pending – произошла попытка бронирования, которое не было завершено
| |
− | waiting – ожидается результат запроса на бронирование
| |
− | |-
| |
− | | Prices
| |
− | | Обязательный. Данные о ценах.
| |
− | | см. Элемент Prices
| |
− | |-
| |
− | | Dates
| |
− | | Обязательный. Данные о датах.
| |
− | | см. Элемент Dates
| |
− | |-
| |
− | | Statuses
| |
− | | Обязательный. Различные дополнительные статусы заказанной услуги.
| |
− | | см. Элемент Statuses
| |
− | |-
| |
− | | Persons
| |
− | | Обязательный. Содержит клиентов привязанных к услуге.
| |
− | | элементы Person
| |
− | |-
| |
− | | Hotel
| |
− | | Необязательный. Элемент с данными об отеле.
| |
− | | см. элемент Hotel (результат поиска отеля)
| |
− | |}
| |
− | | |
− | Информация о цене услуги вынесена в отдельную ветку:
| |
− | | |
− | Элемент '''Prices'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Price
| |
− | | Обязательный. Базовая цена услуги.
| |
− | | Вещественное число.
| |
− | Атрибут Currency - код валюты.
| |
− | |-
| |
− | | Charges
| |
− | | Необязательный. Сумма дополнительных сборов.
| |
− | | Вещественное число.
| |
− | Атрибут Currency - код валюты.
| |
− | |-
| |
− | | Commission
| |
− | | Необязательный. Сумма комиссий (вычитается из общей стоимости).
| |
− | | Вещественное число.
| |
− | Атрибут Currency - код валюты.
| |
− | |-
| |
− | | Penalty
| |
− | | Необязательный. Сумма штрафов.
| |
− | | Вещественное число.
| |
− | Атрибут Currency - код валюты.
| |
− | |-
| |
− | | TotalPrice
| |
− | | Обязательный. Итоговая стоимость.
| |
− | = Price + Charges + Commission
| |
− | | Вещественное число.
| |
− | Атрибут Currency - код валюты.
| |
− | |}
| |
− | | |
− | Информация о датах услуги также вынесена в отдельную ветку:
| |
− | | |
− | Элемент '''Dates'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | BookingDate
| |
− | | Обязательный. Дата бронирования.
| |
− | | Формат гггг-мм-дд чч:мм:сс
| |
− | |-
| |
− | | UpdateDate
| |
− | | Необязательный. Дата обновления.
| |
− | | Формат гггг-мм-дд чч:мм:сс
| |
− | |-
| |
− | | CancelDate
| |
− | | Необязательный. Дата аннуляции.
| |
− | | Формат гггг-мм-дд чч:мм:сс
| |
− | |-
| |
− | | PenaltyDate
| |
− | | Необязательный. Дата наступления штрафов.
| |
− | | Формат гггг-мм-дд чч:мм:сс
| |
− | |-
| |
− | | AutoCancelDate
| |
− | | Необязательный. Дата автоаннулирования.
| |
− | | Формат гггг-мм-дд чч:мм:сс
| |
− | |}
| |
− | | |
− | Дополнительные статусы:
| |
− | | |
− | Элемент '''Statuses'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | PaymentStatus
| |
− | | Необязательный.
| |
− | Статус оплаты.
| |
− | | Целое число
| |
− | 1 - неоплачено
| |
− | 2 - частично оплачено
| |
− | 3 - оплачено
| |
− | |-
| |
− | | DocumentStatus
| |
− | | Необязательный.
| |
− | Статус ваучера.
| |
− | | Целое число
| |
− | 1 - документ не сформирован
| |
− | 2 - документ сформирован
| |
− | |-
| |
− | | DeliveryStatus
| |
− | | Необязательный.
| |
− | Статус доставки.
| |
− | | Целое число
| |
− | 1 - не доставлен
| |
− | 2 - доставлен
| |
− | |-
| |
− | | InvoiceStatus
| |
− | | Необязательный.
| |
− | Статус счета.
| |
− | | Целое число
| |
− | 1 - счет выставлен.
| |
− | 2 - счет не выставлен.
| |
− | |}
| |
− | | |
− | Информация о клиентах заказа полностью повторяет структуру запроса.
| |
− | </div>
| |
− | </div>
| |
− | | |
− | | |
− | | |
− | ==== Подтверждение бронирования ====
| |
− | <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">
| |
− | <syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
| |
− | <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
| |
− | xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DExport">
| |
− | <soapenv:Header/>
| |
− | <soapenv:Body>
| |
− | <ver:export>
| |
− | <RequestBin>
| |
− | <Request>
| |
− | <Export>
| |
− | <Items>
| |
− | <!--Zero or more repetitions:-->
| |
− | <Item Id="386621"/>
| |
− | </Items>
| |
− | </Export>
| |
− | </Request>
| |
− | <Source>
| |
− | <ClientId></ClientId>
| |
− | <APIKey></APIKey>
| |
− | <Language>ru</Language>
| |
− | <Currency>RUB</Currency>
| |
− | </Source>
| |
− | </RequestBin>
| |
− | </ver:export>
| |
− | </soapenv:Body>
| |
− | </soapenv:Envelope>
| |
− | </syntaxhighlight>
| |
− | | |
− | Элемент '''Item'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Атрибут Id
| |
− | | Обязательный. Идентификатор заказа в системе Nemo.
| |
− | | Целое число
| |
− | |}
| |
− | | |
− | Элемент '''Source'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | ClientID
| |
− | | Обязательный. ID клиента в системе Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Целое число.
| |
− | |-
| |
− | | APIKey
| |
− | | Обязательный. APIKey - секретный ключ доступа к API Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Латинские буквы и цифры. Всего 32 символа.
| |
− | |}
| |
− | </div>
| |
− | </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>
| |
− | <ns1:exportResponse>
| |
− | <ResponseBin>
| |
− | <Response>
| |
− | <Export>
| |
− | <Items>
| |
− | <Item Id="386621">
| |
− | <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 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 20:21:47</BookingDate>
| |
− | <UpdateDate>2013-08-01 20:35:01</UpdateDate>
| |
− | <CancelDate xsi:nil="true"/>
| |
− | <PenaltyDate>2013-07-31 19:10:37</PenaltyDate>
| |
− | <AutoCancelDate>2013-08-01 20:23:47</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>
| |
− | </Export>
| |
− | </Response>
| |
− | </ResponseBin>
| |
− | </ns1:exportResponse>
| |
− | </SOAP-ENV:Body>
| |
− | </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'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | ClientID
| |
− | | Обязательный. ID клиента в системе Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Целое число.
| |
− | |-
| |
− | | APIKey
| |
− | | Обязательный. APIKey - секретный ключ доступа к API Nemo.
| |
− | Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".
| |
− | | Латинские буквы и цифры. Всего 32 символа.
| |
− | |}
| |
− | </div>
| |
− | </div>
| |
− | | |
− | ===== Ответ =====
| |
− | см. результаты бронирования.
| |
− | | |
− | ==Выгрузки статистики продаж через API== | |
| | | |
| '''Метапоисковая система''' (метапоисковая машина, метапоисковик) — это поисковая система, которая в отличие от классических поисковых машин не имеет собственной базы данных и собственного поискового индекса, а формирует поисковую выдачу за счет смешивания и переранжирования результатов поиска других поисковых систем. | | '''Метапоисковая система''' (метапоисковая машина, метапоисковик) — это поисковая система, которая в отличие от классических поисковых машин не имеет собственной базы данных и собственного поискового индекса, а формирует поисковую выдачу за счет смешивания и переранжирования результатов поиска других поисковых систем. |
| | | |
− | Необходимо убедиться, что API запросы на поиск отправляются на доменное имя, указанное для агентства (субагента) в разделе '''Администрирование''' -> '''Настройки агентства'''
| + | В разделе статистики заказов из метапоисков можно получить данные по статистике метапоиска (по источнику переходов модуля метрики) <u>за определенный период бронирования заказов</u> в виде файла данных в формате XML. |
| | | |
| + | Можно получить список заказов с их статусом (забронирован, выписан, аннулирован), сделанных через метапоисковую систему. |
| | | |
− | ===== Запрос =====
| + | Подробнее можно узнать в статье посвященной взаимодействию с метопоисковиками [[Взаимодействие с метапоисковиками]] |
− | Пример запроса
| |
− | <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="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;">
| |
− | <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>
| |
− | | |
− | '''Описание параметров'''
| |
− | | |
− | <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'''''.
| |
| | | |
| ==Выгрузка информации о заказах == | | ==Выгрузка информации о заказах == |
− | '''Выгрузка заказов''' — это экспорт данных заказа или заказов для различных компонентов системы Nemo. | + | '''Выгрузка заказов''' — это экспорт данных заказа или заказов для различных компонентов системы Nemo. Модуль позволяет внешней системе получать данные по заказам для дальнейшей обработки. |
− | === Процесс выгрузки ===
| + | Подробнее о процессе выгрузки, настройках, форматах выгрузки для различных компонент можно прочитать в статье [[Выгрузка]] |
− | Схематично процесс выгрузки заказов представлен на блок-схеме.
| |
| | | |
− | [[Файл:Export.png]]
| |
− | === Статусы выгрузки заказа ===
| |
− | Коды статусов выгрузки заказа соответствуют кодам состояния HTTP. Фактически указывается последний полученный код состояния HTTP, полученный при выгрузке данных по адресу, указанному в настройках выгрузки. Коды относятся к серверу, на который происходит выгрузка заказов.
| |
− |
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="20" | Код
| |
− | ! scope="col" width="300" | Описание
| |
− | |-
| |
− | | 0
| |
− | | Неизвестный ответ. Адрес для выгрузки не доступен.
| |
− | |-
| |
− | | 200
| |
− | | OK — успешный запрос.
| |
− | |-
| |
− | | 301
| |
− | | Запрошенный документ был окончательно перенесен на новый URI, указанный в поле Location заголовка.
| |
− | |-
| |
− | | 403
| |
− | | Сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе для клиента к указанному ресурсу.
| |
− | |-
| |
− | | 404
| |
− | | Сервер понял запрос, но не нашёл соответствующего ресурса по указанному URI.
| |
− | |-
| |
− | | 422
| |
− | | Unprocessable Entity — сервер успешно принял запрос, может работать с указанным видом данных, в теле запроса XML-документ имеет верный синтаксис, но имеется какая-то логическая ошибка, из-за которой невозможно произвести операцию над ресурсом.
| |
− | |-
| |
− | | 500
| |
− | | Любая внутренняя ошибка сервера.
| |
− | |}
| |
− |
| |
− | === Выгрузка заказа для компонента «Авиабилеты»===
| |
− | Для компонента '''«Авиабилеты»''' доступна выгрузка заказов в форматах Nemo и/или Софи (при включенном модуле '''«Выгрузка заказов Софи»).
| |
− | <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;">
| |
− | <?xml version="1.0" encoding="UTF-8"?>
| |
− | <PNR>
| |
− | <Common>
| |
− | <id>277749</id>
| |
− | <Type>FLIGHTS</Type>
| |
− | <Service>SABRE</Service>
| |
− | <Locator>SQLJNK</Locator>
| |
− | <ExternalId>1234567</ExternalId> <!-- Внешний идентификатор -->
| |
− | <Stamp>123456789</Stamp>
| |
− | <UtmSource>100</UtmSource> <!-- Источник перехода -->
| |
− | <BeginDateTime>2014.12.18-10:45</BeginDateTime>
| |
− | <EndDateTime>2014.12.25-16:40</EndDateTime>
| |
− | <TicketingDateTime>2014.12.09-15:02</TicketingDateTime>
| |
− | <VoidDateTime/>
| |
− | <TotalPrice>
| |
− | <Amount>10773.8</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </TotalPrice>
| |
− | <UserId>2964</UserId>
| |
− | <EEUserId/>
| |
− | <UserLogin>userLogin</UserLogin>
| |
− | <GroupId>2963</GroupId>
| |
− | <CompanyId>2963</CompanyId>
| |
− | <UserStatus>Менеджер</UserStatus>
| |
− | <DateCreate>2014.12.09-14:59</DateCreate>
| |
− | <ExtServices> <!-- Дополнительные услуги -->
| |
− | <ExtService>
| |
− | <Type>AeroExpress</Type>
| |
− | <Price>
| |
− | <Amount>1440</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Price>
| |
− | </ExtService>
| |
− | <ExtService>
| |
− | <Type>AlphaInsurance</Type>
| |
− | <Price>
| |
− | <Amount>480</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Price>
| |
− | <Insurances>
| |
− | <Insurance>
| |
− | <Number>Z694.198TEST.2765282</Number>
| |
− | <Fio>IVANOV IVAN</Fio>
| |
− | </Insurance>
| |
− | <Insurance>
| |
− | <Number>Z694.198TEST.2765283</Number>
| |
− | <Fio>PETROV PETR</Fio>
| |
− | </Insurance>
| |
− | </Insurances>
| |
− | </ExtService>
| |
− | </ExtServices>
| |
− | </Common>
| |
− | <Payment>
| |
− | <Title>Testpay</Title>
| |
− | <Method>Testpay</Method>
| |
− | <BillingId>117607091</BillingId>
| |
− | <Date>2014-12-09 15:00:39</Date>
| |
− | <CreateDate>2014-12-09 15:00:34</CreateDate>
| |
− | <Status>ticket</Status>
| |
− | <PenaltyDate/>
| |
− | <Timelimit>2014-12-10 14:59:55</Timelimit>
| |
− | <PaymentCharge> <!-- Сбор платежного шлюза -->
| |
− | <Amount>313.8</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </PaymentCharge>
| |
− | <Charge> <!-- Общий сбор минус сбор платежного шлюза -->
| |
− | <Amount>1920</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Charge>
| |
− | <BaseFare> <!-- Тариф -->
| |
− | <Amount>1600</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </BaseFare>
| |
− | <Book> <!-- Тариф плюс таксы -->
| |
− | <Amount>8540</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Book>
| |
− | <Penalty>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Penalty>
| |
− | <Total>
| |
− | <Amount>10773.8</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Total>
| |
− | <Commission>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Commission>
| |
− | <PaidValue>
| |
− | <Amount>10773.8</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </PaidValue>
| |
− | </Payment>
| |
− | <Client>
| |
− | <LastName/>
| |
− | <Name>SIDOROV PETR</Name>
| |
− | <MiddleName/>
| |
− | <Number/>
| |
− | <Birth/>
| |
− | <Email>mail@host.com</Email>
| |
− | <Phone>+74950000000</Phone>
| |
− | </Client>
| |
− | <PassengersCount>2</PassengersCount>
| |
− | <Passengers>
| |
− | <Passenger>
| |
− | <passenger_type>ADT</passenger_type>
| |
− | <lastname>IVANOV</lastname>
| |
− | <name>IVAN</name>
| |
− | <gender>F</gender>
| |
− | <date_of_birth>12.12.1987</date_of_birth>
| |
− | <doc_type>C</doc_type>
| |
− | <passport_number>1234567890</passport_number>
| |
− | <currency_of_passport>24.03.2023</currency_of_passport>
| |
− | <middlename/>
| |
− | <passenger_id>37667</passenger_id>
| |
− | <nationality>RU</nationality>
| |
− | <email>mail@host.com</email>
| |
− | <Tickets>
| |
− | <Active>0</Active>
| |
− | <Seg/>
| |
− | <Num>5553984070962</Num>
| |
− | <Date>2014-12-09 16:01:00</Date>
| |
− | </Tickets>
| |
− | <Tickets>
| |
− | <Active>1</Active>
| |
− | <Seg/>
| |
− | <Num>5553984070964</Num>
| |
− | <Date>2014-12-09 16:03:00</Date>
| |
− | </Tickets>
| |
− | <PriceInfo>
| |
− | <BaseFare>
| |
− | <Amount>800</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </BaseFare>
| |
− | <TotalFare>
| |
− | <Amount>4270</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </TotalFare>
| |
− | <Commission>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Commission>
| |
− | <AirlineCommission>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </AirlineCommission>
| |
− | </PriceInfo>
| |
− | </Passenger>
| |
− | <Passenger>
| |
− | <passenger_type>ADT</passenger_type>
| |
− | <doc_type>C</doc_type>
| |
− | <middlename/>
| |
− | <passenger_id>37668</passenger_id>
| |
− | <lastname>PETROV</lastname>
| |
− | <name>PETR</name>
| |
− | <gender>M</gender>
| |
− | <date_of_birth>20.12.1984</date_of_birth>
| |
− | <passport_number>1234567899</passport_number>
| |
− | <currency_of_passport>20.12.2029</currency_of_passport>
| |
− | <nationality>RU</nationality>
| |
− | <email>mail@host.com</email>
| |
− | <Tickets>
| |
− | <Active>0</Active>
| |
− | <Seg/>
| |
− | <Num>5553984070963</Num>
| |
− | <Date>2014-12-09 16:01:00</Date>
| |
− | </Tickets>
| |
− | <Tickets>
| |
− | <Active>1</Active>
| |
− | <Seg/>
| |
− | <Num>5553984070965</Num>
| |
− | <Date>2014-12-09 16:03:00</Date>
| |
− | </Tickets>
| |
− | <PriceInfo>
| |
− | <BaseFare>
| |
− | <Amount>800</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </BaseFare>
| |
− | <TotalFare>
| |
− | <Amount>4270</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </TotalFare>
| |
− | <Commission>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Commission>
| |
− | <AirlineCommission>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </AirlineCommission>
| |
− | </PriceInfo>
| |
− | </Passenger>
| |
− | </Passengers>
| |
− | <FlightType>Внутренний</FlightType>
| |
− | <OrderInfo>
| |
− | <Info>
| |
− | <Company>Аэрофлот - Российские авиалинии</Company>
| |
− | <CompanyCode>FV</CompanyCode>
| |
− | <StartDate>2014.12.18</StartDate>
| |
− | <StartTime>10:45</StartTime>
| |
− | <StartDayOfWeek>Thursday</StartDayOfWeek>
| |
− | <FlightNumber>6128 (FV6128)</FlightNumber>
| |
− | <StartAirportCode>VKO</StartAirportCode>
| |
− | <StartAirportName>Внуково, Москва</StartAirportName>
| |
− | <StartCountry>Россия</StartCountry>
| |
− | <StartCountryCode>RU</StartCountryCode>
| |
− | <EndAirportCode>LED</EndAirportCode>
| |
− | <EndAirportName>Санкт-Петербург, Пулково</EndAirportName>
| |
− | <EndCountry>Россия</EndCountry>
| |
− | <EndCountryCode>RU</EndCountryCode>
| |
− | <Time>1:30</Time>
| |
− | <Equip>
| |
− | <Name>Airbus 319</Name>
| |
− | <Type>319</Type>
| |
− | </Equip>
| |
− | <ClassType>economy</ClassType>
| |
− | <ClassTypeCode>R</ClassTypeCode>
| |
− | <Meal/>
| |
− | </Info>
| |
− | <Info>
| |
− | <Company>Аэрофлот - Российские авиалинии</Company>
| |
− | <CompanyCode>FV</CompanyCode>
| |
− | <StartDate>2014.12.25</StartDate>
| |
− | <StartTime>15:10</StartTime>
| |
− | <StartDayOfWeek>Thursday</StartDayOfWeek>
| |
− | <FlightNumber>6153 (FV6153)</FlightNumber>
| |
− | <StartAirportCode>LED</StartAirportCode>
| |
− | <StartAirportName>Санкт-Петербург, Пулково</StartAirportName>
| |
− | <StartCountry>Россия</StartCountry>
| |
− | <StartCountryCode>RU</StartCountryCode>
| |
− | <EndAirportCode>VKO</EndAirportCode>
| |
− | <EndAirportName>Внуково, Москва</EndAirportName>
| |
− | <EndCountry>Россия</EndCountry>
| |
− | <EndCountryCode>RU</EndCountryCode>
| |
− | <Time>1:30</Time>
| |
− | <Equip>
| |
− | <Name>Airbus 319</Name>
| |
− | <Type>319</Type>
| |
− | </Equip>
| |
− | <ClassType>economy</ClassType>
| |
− | <ClassTypeCode>R</ClassTypeCode>
| |
− | <Meal/>
| |
− | </Info>
| |
− | </OrderInfo>
| |
− | <Remarks>Debit</Remarks>
| |
− | </PNR>
| |
− | </syntaxhighlight>
| |
− |
| |
− | Ремарка ''<Remarks>Debit</Remarks>'' является не обязательной, означает что заказ был оплачен с помощью способа оплаты «Депозит»;
| |
− | если же заказ был оплачен с использованием депозитного кредита, и депозит ушел в минус даже на 1 руб., то будет ''<Remarks>Credit</Remarks>''.
| |
− |
| |
− | Элемент ''<TotalFare>'' возвращает стоимость уже оплаченного заказа. Если же заказ забронирован, но не оплачен, то значение будет 0 RUB.
| |
− |
| |
− | Элемент ''<CreateDate>'' в зависимости от состояния брони возвращает время окончания бронирования, если бронирование было завершено, иначе возвращает время создания брони.
| |
− |
| |
− | Формат поддерживает возможность передачи нескольких номеров электронных билетов на одного пассажира (в том числе войдированных и аннулированных).
| |
− | </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;">
| |
− |
| |
− | <?xml version="1.0" encoding="UTF-8"?>
| |
− | <order_snapshot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
| |
− | <header currency="RUB" time_gmt="2015-01-13 08:10:54" time="2015-01-13 12:10:54" ord_id="279307" corp_ord_id="MKQFBZ" site="2806"/>
| |
− | <customer email="cepogilixe@lackmail.net" phone="XXXX9048" name="" corp_code="2806"/>
| |
− | <products>
| |
− | <product>
| |
− | <!--@stamp - валидатор. Парсится из заказа(Сирена и Галилео). Если получить из ГДС не удалось, то передаётся валидатор, настроенный в реквизитах подключения к ГДС.-->
| |
− | <air_ticket_prod prod_id="0" psg_type="A" title="Москва - Ленинград" taxes="1776" fare="400" origin="MOW" service_fee="100" form_owner="SU" validating_carrier="SU" destination="LED" comission="0.4" stamp="92354802">
| |
− | <air_seg segment_id="0" carrier="SU" flight_number="6128" op_carrier="FV" departure_datetime="2015-01-16 10:45:00" arrival_datetime="2015-01-16 12:15:00" departure_airport="VKO" arrival_airport="LED" fare_basis="RPROWRF"/>
| |
− | </air_ticket_prod>
| |
− | </product>
| |
− | <product>
| |
− | <ral_ticket_prod rsrv_id="2496500" prod_id="200" origin="Киевский вокзал" destination="Внуково, Москва" departure_datetime="2015-01-16 06:45:00" cartype="standart" fare="360"/>
| |
− | </product>
| |
− | <product>
| |
− | <service_prod prod_id="300" provider_type="INSURANCE" provider_id="AlphaInsurance" offer_type="alpha_insurance" ext_id="Z694.198TEST.2774397" price="100" count="1" psgr_id="0"/>
| |
− | </product>
| |
− | <product>
| |
− | <payment_prod price="123"/>
| |
− | </product>
| |
− | </products>
| |
− | <reservations>
| |
− | <reservation rsrv_id="279307" crs="SABRE" rloc="MKQFBZ"/>
| |
− | <reservation rsrv_id="2496500" crs="AeroExpress" rloc="218812"/>
| |
− | </reservations>
| |
− | <passengers>
| |
− | <passenger doc_number="1234567890" psgr_id="0" doc_country="RU" psgr_type="A" doc_type="C" birth_date="1990-01-04" name="IVAN" gender="M" first_name="IVANOV"/>
| |
− | </passengers>
| |
− | <travel_docs>
| |
− | <travel_doc>
| |
− | <air_ticket_doc tkt_oper="TKT" tkt_number="5555871998698" tkt_date="2015-01-13 12:10:50" prod_id="0" psgr_id="0" issuingAgent="2807"/>
| |
− | </travel_doc>
| |
− | <travel_doc>
| |
− | <aex_doc rsrv_id="2496500" prod_id="200" psgr_id="0" tkt_oper="TKT" tkt_date="2015-01-13 12:10:54" tkt_number="394612"/>
| |
− | </travel_doc>
| |
− | <travel_doc>
| |
− | <insur_doc main_prod_id="0" prod_id="300" psgr_id="0" tkt_oper="TKT" tkt_date="2015-01-13 12:10:54" tkt_number="Z694.198TEST.2774397"/>
| |
− | </travel_doc>
| |
− | </travel_docs>
| |
− | <payments>
| |
− | <payment pay_id="117607839" pay_oper="PAY" pay_time="2015-01-13 12:09:52" psp_code="024" psp_name="Rapida" psp_pay_id="" pay_system="ES" amount="2859" fop="CA"/>
| |
− | </payments>
| |
− | </order_snapshot>
| |
− | </syntaxhighlight>
| |
− |
| |
− | *service_fee — сбор агентский (только сервисный сбор, '''не включает''' в себя сбор за эквайринг).
| |
− | *comission - комиссия АК
| |
− | *stamp - код Валидатора в ПСС, берется из настроек Немо, если в настройках он не указан, то не передается.
| |
− | *ord_id — идентификатор заказа в НЕМО
| |
− | *corp_ord_id — PNR из ГДС
| |
− | *site — идентификатор агентства в Немо
| |
− | *payment pay_id — номер биллинга Немо.
| |
− | *pay_system — код платежной системы
| |
− | **SB — для сбербанка
| |
− | **ES — для Рапиды
| |
− | **UNT — для Юнителлера
| |
− | *cardholder — держатель карты.
| |
− | *expire_date — срок действия карты, у тех ПШ, что не приходит в ответе — пустой.
| |
− | *card_number — номер карты, в формате: 415481XXXXXX1734
| |
− | *approval_code — код подтверждения.
| |
− | *payment_prod price — сбор за эквайринг.
| |
− | *main_prod_id - ID основного продукта (авиабилета).
| |
− | *tkt_number - номер полиса для пассажира;
| |
− | *tkt_date - дата и время операции;
| |
− | *tkt_oper - тип операции (TKT/REF).
| |
− | *provider_type - тип поставщика (INSURANCE).
| |
− | *provider_id - AlphaInsurance;
| |
− | *offer_type - название полиса;
| |
− | *price - цена полиса для пассажира;
| |
− | *rloc - номер заказа у поставщика.
| |
− |
| |
− | </div>
| |
− | </div>
| |
− |
| |
− | === Выгрузка заказа для компонента «Отели» ===
| |
− | Для компонента '''«Отели»''' доступна выгрузка заказов в формате Nemo.
| |
− |
| |
− | <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;">
| |
− | <?xml version="1.0" encoding="UTF-8"?>
| |
− | <PNR>
| |
− | <Common>
| |
− | <id>263462</id>
| |
− | <Type>HOTELS</Type>
| |
− | <Service>ACADEM</Service>
| |
− | <Locator>3028655</Locator>
| |
− | <BeginDateTime>2014.04.15-00:00</BeginDateTime>
| |
− | <EndDateTime>2014.04.16-00:00</EndDateTime>
| |
− | <TotalPrice>
| |
− | <Amount>1950</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </TotalPrice>
| |
− | <UserId>123</UserId>
| |
− | <EEUserId />
| |
− | <UserLogin>userLogin</UserLogin>
| |
− | <GroupId>332</GroupId>
| |
− | <UserStatus>Менеджер</UserStatus>
| |
− | <DateCreate>2014.03.21-16:11</DateCreate>
| |
− | </Common>
| |
− | <Payment>
| |
− | <Status>booked</Status>
| |
− | <PenaltyDate>2014.04.13-00:00</PenaltyDate>
| |
− | <Timelimit>2014-04-13 00:00:00</Timelimit>
| |
− | <Charge>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Charge>
| |
− | <Book>
| |
− | <Amount>1950</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Book>
| |
− | <Penalty>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Penalty>
| |
− | <Total>
| |
− | <Amount>1950</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Total>
| |
− | <Commission>
| |
− | <Amount>112</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Commission>
| |
− | <PaidValue>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </PaidValue>
| |
− | </Payment>
| |
− | <Client>
| |
− | <LastName>Сидоров</LastName>
| |
− | <Name>Владимир</Name>
| |
− | <MiddleName>Константинович</MiddleName>
| |
− | <Number>1806326598</Number>
| |
− | <Birth>1987-05-20</Birth>
| |
− | <Email>mail@host.com</Email>
| |
− | <Phone>+79871234567</Phone>
| |
− | </Client>
| |
− | <Passengers>
| |
− | <Passenger>
| |
− | <nationality>RU</nationality>
| |
− | <lastname>IVANOV</lastname>
| |
− | <name>IVAN</name>
| |
− | </Passenger>
| |
− | </Passengers>
| |
− | <Info>
| |
− | <Name>Интурист</Name>
| |
− | <City>
| |
− | <Code>34</Code>
| |
− | <Name>Великий Новгород</Name>
| |
− | </City>
| |
− | <Location />
| |
− | <StarRating>3</StarRating>
| |
− | <Days>2</Days>
| |
− | <Nights>1</Nights>
| |
− | <CheckInDate>2014.04.15</CheckInDate>
| |
− | <CheckOutDate>2014.04.16</CheckOutDate>
| |
− | <CheckInTime>14:00</CheckInTime>
| |
− | <CheckOutTime>12:00</CheckOutTime>
| |
− | <OnRequest>false</OnRequest>
| |
− | </Info>
| |
− | <Rooms>
| |
− | <Room>
| |
− | <Name>Двухместный стандарт (две кровати)</Name>
| |
− | <Type>SNGL</Type>
| |
− | <FareId>1</FareId>
| |
− | </Room>
| |
− | </Rooms>
| |
− | <Fares>
| |
− | <Fare>
| |
− | <Id>1</Id>
| |
− | <Price>
| |
− | <Amount>1950</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Price>
| |
− | <Meals>Завтрак "Шведский стол",Отсутствует</Meals>
| |
− | <Description>Одноместный</Description>
| |
− | </Fare>
| |
− | </Fares>
| |
− | <CancelCharges>
| |
− | <Charge>
| |
− | <DateFrom>2014.04.13-00:00</DateFrom>
| |
− | <DateTo>2014.04.15-00:00</DateTo>
| |
− | <Amount>1488</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Charge>
| |
− | </CancelCharges>
| |
− | <ModifyCharges />
| |
− | <ModificationMethods>
| |
− | <Method>MOD_PASS_NAMES</Method>
| |
− | <Method>MOD_DATES</Method>
| |
− | </ModificationMethods>
| |
− | </PNR>
| |
− | </syntaxhighlight>
| |
− | </div>
| |
− | </div>
| |
− |
| |
− | === Выгрузка заказа для компонента «ЖД» ===
| |
− | Для компонента '''«ЖД»''' доступна выгрузка заказов в формате Nemo.
| |
− |
| |
− | <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;">
| |
− | <?xml version="1.0" encoding="UTF-8"?>
| |
− | <PNR>
| |
− | <Common>
| |
− | <id>123456</id>
| |
− | <Type>TRAINS</Type>
| |
− | <Service>UFS</Service>
| |
− | <Locator>64345987</Locator>
| |
− | <BeginDateTime>2014.04.26-00:15</BeginDateTime>
| |
− | <EndDateTime>2014.04.26-13:33</EndDateTime>
| |
− | <TicketingDateTime>2014.06.06-15:10</TicketingDateTime>
| |
− | <VoidDateTime>2014.06.07-14:19</VoidDateTime>
| |
− | <TotalPrice>
| |
− | <Amount>57505.8</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </TotalPrice>
| |
− | <UserId>123</UserId>
| |
− | <EEUserId />
| |
− | <UserLogin>mikhalevtur</UserLogin>
| |
− | <GroupId>122</GroupId>
| |
− | <UserStatus>Менеджер</UserStatus>
| |
− | <DateCreate>2014.04.24-15:03</DateCreate>
| |
− | </Common>
| |
− | <Payment>
| |
− | <Title>Testpay</Title>
| |
− | <Method>Testpay</Method>
| |
− | <BillingId>117603370</BillingId>
| |
− | <Date>2014-04-24 15:10:12</Date>
| |
− | <CreateDate>2014-06-06 15:10:00</CreateDate>
| |
− | <Status>cancelled</Status>
| |
− | <PenaltyDate />
| |
− | <Timelimit>2014-04-24 15:18:01</Timelimit>
| |
− | <Charge>
| |
− | <Amount>52278</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Charge>
| |
− | <Book>
| |
− | <Amount>5227.8</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Book>
| |
− | <Penalty>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Penalty>
| |
− | <TotalAgencyChargeForRefund>
| |
− | <Amount>100</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </TotalAgencyChargeForRefund>
| |
− | <Total>
| |
− | <Amount>57505.8</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </Total>
| |
− | <PaidValue>
| |
− | <Amount>0</Amount>
| |
− | <CurrencyCode>RUB</CurrencyCode>
| |
− | </PaidValue>
| |
− | </Payment>
| |
− | <Client>
| |
− | <LastName>Сидоров</LastName>
| |
− | <Name>Владимир</Name>
| |
− | <MiddleName>Константинович</MiddleName>
| |
− | <Number>1806326598</Number>
| |
− | <Birth>1987-05-20</Birth>
| |
− | <Email>mail@host.com</Email>
| |
− | <Phone>+79871234567</Phone>
| |
− | </Client>
| |
− | <Passengers>
| |
− | <Passenger>
| |
− | <name>Владимир</name>
| |
− | <middlename>Константинович</middlename>
| |
− | <phone>
| |
− | <country />
| |
− | <city />
| |
− | <number>+79271031610</number>
| |
− | <expansion />
| |
− | </phone>
| |
− | <email>mlsdsar@gmail.com</email>
| |
− | <nationality>RU</nationality>
| |
− | <passenger_type>ADT</passenger_type>
| |
− | <lastname>Сидоров</lastname>
| |
− | <doc_type>C</doc_type>
| |
− | <passport_number>1806326598</passport_number>
| |
− | <passenger_id>1</passenger_id>
| |
− | <gender>M</gender>
| |
− | <date_of_birth>20.04.1984</date_of_birth>
| |
− | <TotalPrice>28752.9</TotalPrice>
| |
− | <FarePrice>2613.9</FarePrice>
| |
− | <Charge>26139</Charge>
| |
− | <RefundMoney>8649.3</RefundMoney>
| |
− | <ChargeForRefund>100</ChargeForRefund>
| |
− | <TicketNumber>74944708487545</TicketNumber>
| |
− | <SeatNumber>033</SeatNumber>
| |
− | <HasSeat>true</HasSeat>
| |
− | </Passenger>
| |
− | <Passenger>
| |
− | <nationality>RU</nationality>
| |
− | <middlename>Константинович</middlename>
| |
− | <passenger_type>ADT</passenger_type>
| |
− | <lastname>Сидоров</lastname>
| |
− | <name>Иван</name>
| |
− | <doc_type>C</doc_type>
| |
− | <passport_number>1806326554</passport_number>
| |
− | <passenger_id>2</passenger_id>
| |
− | <gender>M</gender>
| |
− | <date_of_birth>05.04.1984</date_of_birth>
| |
− | <TotalPrice>28752.9</TotalPrice>
| |
− | <FarePrice>2613.9</FarePrice>
| |
− | <Charge>26139</Charge>
| |
− | <TicketNumber />
| |
− | <SeatNumber>034</SeatNumber>
| |
− | <HasSeat>true</HasSeat>
| |
− | </Passenger>
| |
− | </Passengers>
| |
− | <Info>
| |
− | <trainNumber>098ХА</trainNumber>
| |
− | <trainName />
| |
− | <departureStation>МОСКВА КАЗ</departureStation>
| |
− | <arrivalStation>КАЗАНЬ ПАС</arrivalStation>
| |
− | <trainCategory>1</trainCategory>
| |
− | <beginStation>Москва</beginStation>
| |
− | <endStation>Казань</endStation>
| |
− | <startDate>2014-04-26 00:15:00</startDate>
| |
− | <endDate>2014-04-26 13:33:00</endDate>
| |
− | <timeInRoad>47880</timeInRoad>
| |
− | <carNumber>8</carNumber>
| |
− | <carType>4</carType>
| |
− | <choosenSeats>
| |
− | <type>
| |
− | <lower>1</lower>
| |
− | </type>
| |
− | <type>
| |
− | <upper>1</upper>
| |
− | </type>
| |
− | <type>
| |
− | <lower_side>0</lower_side>
| |
− | </type>
| |
− | <type>
| |
− | <upper_side>0</upper_side>
| |
− | </type>
| |
− | <type>
| |
− | <undefined>0</undefined>
| |
− | </type>
| |
− | </choosenSeats>
| |
− | <choosenRange>
| |
− | <start>0</start>
| |
− | <end>0</end>
| |
− | </choosenRange>
| |
− | <serviceClass>В стоимость входит - постельное белье. Наличие установки кондиционирования воздуха не гарантировано.</serviceClass>
| |
− | </Info>
| |
− | </PNR>
| |
− | </syntaxhighlight>
| |
− |
| |
− | '''Элемент PNR'''
| |
− | Элемент '''PNR''' — Passenger Name Record — запись, состоящая из группы отдельных элементов (полей), содержащих информацию об одном или более пассажирах, путешествующих вместе, и деталях путешествия.
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Common
| |
− | | Общая информация по заказу.
| |
− | | Элементы id, Type, Service, Locator, BeginDateTime, EndDateTime, TicketingDateTime, TotalPrice, UserId, EEUserId, UserLogin, GroupId, UserStatus, DateCreate.
| |
− | |-
| |
− | | Payment
| |
− | | Информация о стоимости, штрафах, статусе заказа.
| |
− | | Элементы Status, PenaltyDate, Timelimit, Charge, Book, Penalty, Total, PaidValue.
| |
− | |-
| |
− | | Client
| |
− | | Информация о заказчике.
| |
− | | Элементы Name, MiddleName, Number, Birth, Email, Phone.
| |
− | |-
| |
− | | Passengers
| |
− | | Записи о пассажирах.
| |
− | | Элементы Passenger.
| |
− | |-
| |
− | | Info
| |
− | | Типовая информация по заказу в контексте услуги.
| |
− | | Элементы trainNumber, trainName, departureStation, arrivalStation, trainCategory, beginStation, endStation, startDate, endDate, timeInRoad, carNumber, carType, choosenSeats, choosenRange, serviceClass.
| |
− | |}
| |
− |
| |
− | '''Элемент Common'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | id
| |
− | | Номер заказа в Немо.
| |
− | | Число. Пример: 268281.
| |
− | |-
| |
− | | Type
| |
− | | Тип услуги.
| |
− | | Строка: Пример: FLIGHTS.<br/>Допустимые значения: <ul><li>FLIGHTS — авиа,</li><li>HOTELS — отели,</li><li>TRAINS — ЖД.</li></ul>
| |
− | |-
| |
− | | Service
| |
− | | Поставщик услуги.
| |
− | | Строка. Пример: UFS.
| |
− | |-
| |
− | | Locator
| |
− | | Идентификатор в системе поставщика.
| |
− | | Число. Пример: 65525140.
| |
− | |-
| |
− | | BeginDateTime
| |
− | | Дата и время отправления первого сегмента.
| |
− | | Дата и время. Пример: 2014.03.06-00:15.
| |
− | |-
| |
− | | EndDateTime
| |
− | | Дата и время прибытия последнего сегмента.
| |
− | | Дата и время. Пример: 2014.03.06-13:33.
| |
− | |-
| |
− | | TicketingDateTime
| |
− | | Дата и время выписки билета.
| |
− | | Дата и время. Пример: 2014.10.17-17:23
| |
− | |-
| |
− | | VoidDateTime
| |
− | | Дата и время возврата билета.
| |
− | | Дата и время. Пример: 2014.10.17-17:23
| |
− | |-
| |
− | | TotalPrice
| |
− | | Общая стоимость заказа.
| |
− | | Элементы Amount — номинал стоимости, CurrencyCode — валюта стоимости.
| |
− | |-
| |
− | | UserId
| |
− | | Идентификатор пользователя в системе Немо, оформившего заказ.
| |
− | | Число. Пример: 123.
| |
− | |-
| |
− | | UserLogin
| |
− | | Логин пользователя в системе Немо, оформившего заказ.
| |
− | | Строка. Пример: userLogin.
| |
− | |-
| |
− | | GroupId
| |
− | | Идентификатор группы пользователя в системе Немо, оформившего заказ.
| |
− | | Число. Пример: 122.
| |
− | |-
| |
− | | UserStatus
| |
− | | Тип пользователя в системе Немо.
| |
− | | Строка. Пример: Менеджер.
| |
− | |-
| |
− | | DateCreate
| |
− | | Дата и время резервирования в системе поставщика.
| |
− | | Дата и время. Пример: 2014.03.05-15:08
| |
− | |}
| |
− |
| |
− | '''Элемент TotalPrice'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Amount
| |
− | | Номинал.
| |
− | | Число. Пример: 1884.
| |
− | |-
| |
− | | CurrencyCode
| |
− | | Валюта.
| |
− | | Строка (Код ISO 4217 alfa-3). Пример: RUB.
| |
− | |}
| |
− |
| |
− | '''Элемент Payment'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Title
| |
− | | Название платежного шлюза<sup>*</sup>.
| |
− | | Строка. Пример: Testpay.
| |
− | |-
| |
− | | Method
| |
− | | Тип формы оплаты<sup>*</sup>.
| |
− | | Строка. Пример: Testpay.
| |
− | |-
| |
− | | BillingId
| |
− | | Идентификатор транзакции Немо.
| |
− | | Строка. Пример: 117603370.
| |
− | |-
| |
− | | Date
| |
− | | Дата и время оплаты платежной транзакции Немо.
| |
− | | Строка. Пример: 2014-04-24 15:10:12.
| |
− | |-
| |
− | | CreateDate
| |
− | | Дата и время создания платежной транзакции Немо.
| |
− | | Строка. Пример: 2014-06-06 15:10:00.
| |
− | |-
| |
− | | Status
| |
− | | Статус заказа в системе Немо.
| |
− | | Строка. Пример: booked.<br/>Допустимые значения:
| |
− | <ul>
| |
− | <li>pending — в ожидании,</li>
| |
− | <li>booked — зарезервирован,</li>
| |
− | <li>ticket — выписан,</li>
| |
− | <li>cancelled — отменен.</li>
| |
− | </ul>
| |
− | |-
| |
− | | PenaltyDate
| |
− | | Дата и время наступления штрафных санкций.
| |
− | | Дата и время. Пример: 2014-03-05 15:23:40.
| |
− | |-
| |
− | | Timelimit
| |
− | | Таймлимит на оплату и подтверждение заказа.
| |
− | | Дата и время. Пример: 2014-03-05 15:23:40.
| |
− | |-
| |
− | | Charge
| |
− | | Сбор агентства.
| |
− | | См. элемент Common.TotalPrice.
| |
− | |-
| |
− | | Book
| |
− | | Тариф.
| |
− | | См. элемент Common.TotalPrice.
| |
− | |-
| |
− | | Penalty
| |
− | | Штраф.
| |
− | <br/><span style="background-color:#fff0f5;">'''<span style="color:#ff0000;">Внимание!</span>''' На данный момент параметр неактуален и при выгрузке всегда принимает нулевое значение.</span>
| |
− | | См. элемент Common.TotalPrice.
| |
− | |-
| |
− | | TotalAgencyChargeForRefund
| |
− | | Общий сбор агентства за возврат.
| |
− | | См. элемент Common.TotalPrice.
| |
− | |-
| |
− | | Total
| |
− | | Общая стоимость.
| |
− | | См. элемент Common.TotalPrice.
| |
− | |-
| |
− | | PaidValue
| |
− | | Оплачено.
| |
− | | См. элемент Common.TotalPrice.
| |
− | |}
| |
− |
| |
− | <sup>*</sup> — список возможный платежных шлюзов:<br/>
| |
− | Acquiro, Chronopay, Copayco, CourierNew, Deposit, EasyPay, GatelineNew, ITransfer, Invoice, Offices, PayU, Payture, Platron, PrivatBank, Qiwi, Rapida, Receipt, Sberbank, Sirena, Sirena2, UnitellerNew, WebMoney.
| |
− |
| |
− | '''Элемент Client'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | Name
| |
− | | Фамилия и имя заказчика.
| |
− | | Строка. Пример: Иванов Иван.
| |
− | |-
| |
− | | MiddleName
| |
− | | Отчество заказчика.
| |
− | | Строка. Пример: Иванович.
| |
− | |-
| |
− | | Number
| |
− | | Серия и номер документа.
| |
− | | Строка. Пример: 1806123456.
| |
− | |-
| |
− | | Birth
| |
− | | Дата рождения заказчика.
| |
− | | Дата. Пример: 1984-06-30.
| |
− | |-
| |
− | | Email
| |
− | | Адрес электронной почты заказчика.
| |
− | | Строка. Пример: client@host.com.
| |
− | |-
| |
− | | Phone
| |
− | | Номер телефона заказчика.
| |
− | | Строка. Пример: +74951234567
| |
− | |}
| |
− |
| |
− | '''Элемент Passenger'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | lastname
| |
− | | Фамилия пассажира.
| |
− | | Строка. Пример: Сидоров.
| |
− | |-
| |
− | | name
| |
− | | Имя пассажира.
| |
− | | Строка. Пример: Владимир.
| |
− | |-
| |
− | | middlename
| |
− | | Отчество пассажира.
| |
− | | Строка. Пример: Константинович.
| |
− | |-
| |
− | | doc_type
| |
− | | Тип документа.
| |
− | | Строка. Пример: C.<br/>Допустимые значения:
| |
− | <ul>
| |
− | <li>C — Российский паспорт</li>
| |
− | <li>P — Заграничный паспорт</li>
| |
− | <li>A — Иностранный документ</li>
| |
− | <li>S — Паспорт моряка</li>
| |
− | <li>M — Военный билет</li>
| |
− | <li>B — Свидетельство о рождении</li>
| |
− | </ul>
| |
− | |-
| |
− | | passport_number
| |
− | | Серия и номер документа.
| |
− | | Строка. Пример: 1806123456.
| |
− | |-
| |
− | | gender
| |
− | | Пол пассажира.
| |
− | | Строка. Пример: M.<br/>Допустимые значения:
| |
− | <ul>
| |
− | <li>M — мужской</li>
| |
− | <li>F — женский</li>
| |
− | </ul>
| |
− | |-
| |
− | | date_of_birth
| |
− | | Дата рождения пассажира.
| |
− | | Дата. Пример: 20.05.1987.
| |
− | |-
| |
− | | nationality
| |
− | | Гражданство пассажира.
| |
− | | Строка (ISO 3166-1 Alpha-2). Пример: RU.
| |
− | |-
| |
− | | passenger_type
| |
− | | Тип пассажира.
| |
− | | Строка. Пример: ADT.<br/>Допустимые значения:
| |
− | <ul>
| |
− | <li>ADT — взрослый</li>
| |
− | <li>CLD — ребенок до 10 лет<sup>*, **</sup></li>
| |
− | <li>INF — ребенок до 5 лет<sup>*, ***</sup></li>
| |
− | </ul>
| |
− | |-
| |
− | | passenger_id
| |
− | | Порядковый номер пассажира в заказе.
| |
− | | Число. Пример: 2.
| |
− | |-
| |
− | | TotalPrice
| |
− | | Общая стоимость билета со сборами для данного пассажира.
| |
− | | Число. Пример: 1934.
| |
− | |-
| |
− | | FarePrice
| |
− | | Стоимость по тарифу тарифу.
| |
− | | Число. Пример: 1884.
| |
− | |-
| |
− | | Charge
| |
− | | Сбор агентства.
| |
− | | Число. Пример: 50.
| |
− | |-
| |
− | | RefundMoney
| |
− | | Сумма к возврату. Значение, полученное от поставщика, уменьшенное на сумму сбора агентства за возврат.
| |
− | | Число. Пример: 1643.
| |
− | |-
| |
− | | ChargeForRefund
| |
− | | Cбор агентства за возврат.
| |
− | | Число. Пример: 100.
| |
− | |-
| |
− | | TicketNumber
| |
− | | Номер билета.
| |
− | | Число. Пример: 73944708472624.
| |
− | |-
| |
− | | SeatNumber
| |
− | | Номер места.
| |
− | | число. Пример: 21.
| |
− | |-
| |
− | | TariffType
| |
− | | Наименование тарифа.
| |
− | | Строка. Пример: ПОЛНЫЙ.
| |
− | |-
| |
− | | HasSeat
| |
− | | Занимает ли пассажир отдельное место.
| |
− | | Допустимые значения:<ul><li>true — с местом,</li><li>false — без места.</li></ul>
| |
− | |}
| |
− |
| |
− | <sup>*</sup> — Не включая верхний предел. Возраст ребенка определяется на день совершения поездки.
| |
− |
| |
− | <sup>**</sup> — Нижний и верхний пределы определяются видом сообщения:
| |
− | * от 5 до 10 лет — Внутригосударственное сообщение, а также международное сообщение со странами-участниками СНГ, Литовской, Латвийской, Эстонской Республиками, Республикой Абхазия.
| |
− | * от 6 до 17 лет — Международное сообщение в дальнем зарубежье по глобальным ценам. Направление Россия-Финляндия.
| |
− | * от 4 до 12 лет — Международное сообщение в дальнем зарубежье по глобальным ценам. Направление Восток-Запад.
| |
− |
| |
− | <sup>***</sup> — Верхний предел определяется видом сообщения:
| |
− | * до 5 лет — Внутригосударственное сообщение, а также международное сообщение со странами-участниками СНГ, Литовской, Латвийской, Эстонской Республиками, Республикой Абхазия.
| |
− | * до 6 лет — Международное сообщение в дальнем зарубежье по глобальным ценам. Направление Россия-Финляндия.
| |
− | * до 4 лет — Международное сообщение в дальнем зарубежье по глобальным ценам. Направление Восток-Запад.
| |
− |
| |
− | '''Элемент Passenger'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | trainNumber
| |
− | | Номер поезда.
| |
− | | Строка. Пример: 098ХА.
| |
− | |-
| |
− | | trainName
| |
− | | Имя фирменного поезда. Приходит от поставщика.
| |
− | | Строка. Пример: Россия.
| |
− | |-
| |
− | | departureStation
| |
− | | Станция отправления пассажира.
| |
− | | Строка. Пример: МОСКВА КАЗ.
| |
− | |-
| |
− | | arrivalStation
| |
− | | Станция прибытия пассажира.
| |
− | | Строка. Пример: КАЗАНЬ ПАС.
| |
− | |-
| |
− | | trainCategory
| |
− | | Тип поезда.
| |
− | | Число. Пример: 1.<br/>Допустимые значения:
| |
− | <ul>
| |
− | <li>0 — неизвестный тип поезда</li>
| |
− | <li>1 — скорый поезд</li>
| |
− | <li>2 — фирменный поезд</li>
| |
− | <li>3 — скоростной поезд</li>
| |
− | <li>4 — фирменный скоростной поезд</li>
| |
− | </ul>
| |
− | |-
| |
− | | beginStation
| |
− | | Начальная станция в маршруте поезда.
| |
− | | Строка. Пример: Казань
| |
− | |-
| |
− | | endStation
| |
− | | Конечная станция в маршруте поезда.
| |
− | | Строка. Пример: Москва
| |
− | |-
| |
− | | startDate
| |
− | | Дата и время отправления со станции отправления пассажира.
| |
− | | Дата и время. Пример: 2014-03-06 00:15:00.
| |
− | |-
| |
− | | endDate
| |
− | | Дата и время прибытия со станции отправления пассажира.
| |
− | | Дата и время. Пример: 2014-03-06 13:33:00.
| |
− | |-
| |
− | | timeInRoad
| |
− | | Время в пути от станции отправления до станции прибытия пассажира.
| |
− | | Число (секунд). Пример: 47880.
| |
− | |-
| |
− | | carNumber
| |
− | | Номер вагона.
| |
− | | Число. Пример: 7.
| |
− | |-
| |
− | | carType
| |
− | | Тип вагона.
| |
− | | Число. Пример: 1.<br/>Допустимые значения:
| |
− | <ul>
| |
− | <li>1 - общий вагон</li>
| |
− | <li>2 - сидячий вагон</li>
| |
− | <li>3 - плацкарта</li>
| |
− | <li>4 - купе</li>
| |
− | <li>5 - люкс</li>
| |
− | <li>6 - мягкий</li>
| |
− | <li>7 - неизвестный тип</li>
| |
− | </ul>
| |
− | |-
| |
− | | choosenSeats
| |
− | | Элемент описывает количество нижних, нижних боковых, верхних, верхних боковых мест.
| |
− | | Элементы type.
| |
− | |-
| |
− | | choosenRange
| |
− | | Выбранный диапазон мест в вагоне.
| |
− | | Элементы start, end.
| |
− | |-
| |
− | | serviceClass
| |
− | | Описание услуг. Приходит от поставщика.
| |
− | | Текст. Пример: В стоимость входит - постельное белье. Наличие установки кондиционирования воздуха не гарантировано.
| |
− | |}
| |
− |
| |
− | '''Элемент type'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | lower
| |
− | | Количество нижних мест.
| |
− | | Число. Пример: 1.
| |
− | |-
| |
− | | upper
| |
− | | Количество верхних мест.
| |
− | | Число. Пример: 0.
| |
− | |-
| |
− | | lower_side
| |
− | | Количество нижних боковых мест.
| |
− | | Число. Пример: 1.
| |
− | |-
| |
− | | upper_side
| |
− | | Количество верхних боковых мест.
| |
− | | Число. Пример: 1.
| |
− | |-
| |
− | | undefined
| |
− | | Количество мест неопределенного типа.
| |
− | | Число. Пример: 0.
| |
− | |}
| |
− |
| |
− | '''Элемент choosenRange'''
| |
− | {| style="width: 800px" class="wikitable"
| |
− | |-
| |
− | ! scope="col" width="200" | Элемент
| |
− | ! scope="col" width="300" | Описание
| |
− | ! scope="col" width="300" | Допустимые значения
| |
− | |-
| |
− | | start
| |
− | | Начало выбранного диапазон мест в вагоне<sup>*</sup>.
| |
− | | Число. Пример: 4.
| |
− | |-
| |
− | | end
| |
− | | Конец выбранного диапазон мест в вагоне<sup>*</sup>.
| |
− | | Число. Пример: 17.
| |
− | |}
| |
− |
| |
− | <sup>*</sup> — Если диапазон не был зада пользователем на этапе выбора мест, то поля start и end будут содержать нули.
| |
− |
| |
− | </div>
| |
− | </div>
| |
− |
| |
− | === Пакетный экспорт заказов по категориям в формате Nemo ===
| |
− | Сервис выгрузки заказов позволяет экспортировать интересующие выборки по заказам в формате XML. Например, можно выбрать все заказы по дате бронирования и получить информацию по ним в XML-виде.
| |
− |
| |
− | ==== Экспорт заказов под авторизованным пользователем (в личном кабинете) ====
| |
− | [[Файл:Экспортировать_в_XML_(ЛК).png|400px|thumb|right|Фильтры пакетного экспорта заказов в личном кабинете]]
| |
− | Порядок пользования сервисом:
| |
− | # Перейти в личный кабинет
| |
− | # В адресной строке браузера к текущему адресу дописать параметр '''''&exportxml'''''. Должен получиться адрес вида: <syntaxhighlight lang="text" enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0; width: 800px;">
| |
− | http://DOMAIN/index.php?go=poffice/table&exportxml
| |
− | </syntaxhighlight>
| |
− | # После обновления страницы под блоком фильтров должна появиться кнопка '''«Экспортировать в XML»'''. При ее нажатии на странице появляется предложение сохранить в XML-файл выборку отфильтрованных заказов.
| |
− |
| |
− | Выгружаются только заказы выбранного пользователя/компании с учетом примененных параметров фильтра.
| |
− |
| |
− | Пользователь может произвести выгрузку только своих заказов.
| |
− |
| |
− | === Пакетный экспорт заказов по категориям в формате СОФИ ===
| |
− | Для использования выгрузки заказов в формате СОФИ у агентства должен быть включен модуль "Выгрузка заказов Софи" и заданы настройки:
| |
− | * "Тип выгрузки СОФИ" должен иметь значение "Выгрузка заказов СОФИ" или должна быть включена настройка "Выгрузка одновременно и Nemo, и Софи",
| |
− | * Должен быть указан "Url скрипта для выгрузки в формате СОФИ",
| |
− | * Должен быть указан "Код сайта в системе СОФИ".
| |
− |
| |
− | Выгрузка конкретного заказа:
| |
− | http://DOMAIN/booking__sofi_export_bookings&booking_id=123456
| |
− | где booking_id — номер заказа в системе Немо.
| |
− |
| |
− | Выгрузка заказов забронированных за определенный период:
| |
− | http://DOMAIN/booking__sofi_export_bookings&date_begin=01.01.2014&date_end=01.01.2015
| |
− | где [date_begin; date_end] — период бронирования заказа (забронированные заказы с датой бронирования совпадающей с началом/окончанием периода, заданного в запросе, попадают в экспорт), формат — дд.мм.гггг.
| |
− |
| |
− | ==Выгрузка информации о продажах в формате СОФИ XML==
| |
− | ==Фиксация оплаты внешним запросом==
| |
− | ==Выгрузка заказов по критериям в формате Nemo XML==
| |
− | ==Выгрузка определенного заказа по критериям в формате Nemo XML==
| |
− | ==API универсального платежного шлюза==
| |
| == API Синхронизации пользователей и субагентов == | | == API Синхронизации пользователей и субагентов == |
| Назначение данного модуля — обеспечение взаимодействия между сторонней программой (например, системой автоматизации туроператора "САМО-тур") и Nemo в части синхронизации списка B2B-пользователей. | | Назначение данного модуля — обеспечение взаимодействия между сторонней программой (например, системой автоматизации туроператора "САМО-тур") и Nemo в части синхронизации списка B2B-пользователей. |
| + | Модуль является компонентом, включаемым и отключаемым из административной части. |
| | | |
− | Модуль является компонентом, включаемым и отключаемым из административной части.
| + | О механизме авторизации B2B-пользователей, синхронизации учетных записей можно прочитать в статье [[Синхронизация пользователей]] |
− | === Авторизация B2B-пользователей ===
| |
− | | |
− | Все B2B-пользователи, загруженные через модуль взаимодействия со сторонней программой, будут иметь случайным образом сгенерированный криптостойкий [[пароль]]. Механизм авторизации работает следующим образом:
| |
− | | |
− | 1.Система пытается авторизовать пользователя через собственную службу авторизации.
| |
− | 2.В случае неудачи, но присутствия в системе введенного логина, она должна попытаться авторизовать пользователя во внешней службе авторизации («САМО-тур»), при включенном компоненте взаимодействия с «САМО-тур».
| |
− | 3.В случае неудачного опознавания пользователя выводится соответствующее сообщение и процедура может быть повторена путем повторного ввода логина и пароля.
| |
− | | |
− | Регистрация неудачных попыток входа производится только в двух случаях:
| |
− | *Компонент взаимодействия выключен.
| |
− | *Компонент взаимодействия включен и провалены обе попытки авторизации (внутренней и внешней).
| |
− | | |
− | Для сторонней авторизации пользователей в системе Nemo внешняя программа должна иметь веб-службу, основанную на WSDL определенного формата. Ссылка на веб-службу прописывается в настройках системы Nemo на странице конфигурации интеграции с внешней системой.
| |
− | | |
− | Для импортированных пользователей в Nemo имеется поле «Идентификатор внешней системы», который отвечает за сопоставление с ID пользователя в сторонней системе. Для менеджеров агентств оно равно номеру партнера (агента) во внешней системе, для пользователей — номеру пользователя в «САМО-туре».
| |
− | | |
− | Для пользователей, имеющих какое-либо значение в поле «идентификатор во внешней системе», запрещен функционал смены пароля или его восстановления по электронной почте.
| |
− | | |
− | Пример запросов и ответов на авторизацию:
| |
− | | |
− | '''Request'''
| |
− | <pre><?xml version="1.0" encoding="utf-8"?>
| |
− | <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
| |
− | xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
| |
− | <soap12:Body>
| |
− | <getAuthorization xmlns="http://tempuri.org/">
| |
− | <login>string</login>
| |
− | <pass>string</pass>
| |
− | </getAuthorization>
| |
− | </soap12:Body>
| |
− | </soap12:Envelope></pre>
| |
− | | |
− | '''Response'''
| |
− | <pre><?xml version="1.0" encoding="utf-8"?>
| |
− | <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
| |
− | xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
| |
− | <soap12:Body>
| |
− | <getAuthorizationResponse xmlns="http://tempuri.org/">
| |
− | <getAuthorizationResult>
| |
− | <session_id>string</session_id>
| |
− | <user_id>string</user_id>
| |
− | <login>string</login>
| |
− | <status>string</status>
| |
− | </getAuthorizationResult>
| |
− | </getAuthorizationResponse>
| |
− | </soap12:Body>
| |
− | </soap12:Envelope></pre>
| |
− | | |
− | Сервис реализует функцию «getAuthorization», на вход которой передается конструкция «getAuthorizationRequest»:
| |
− | | |
− | *login (строка) - введенный пользователем логин
| |
− | *pass (строка) - введенный пользователем пароль
| |
− | | |
− | Функция должна отдавать системе конструкцию getAuthorizationResponse:
| |
− | | |
− | *session_id (строка) - пустое значение
| |
− | *user_id (строка) - идентификатор менеджера в системе «САМО-тур»
| |
− | *login (строка) - логин пользователя (для контроля)
| |
− | *status (строка) - может иметь значения:
| |
− | 1. adm - администратор
| |
− | 2. mgr - менеджер
| |
− | 3. usr - пользователь (возвращается всегда это значение)
| |
− | | |
− | === Импорт и синхронизация учетных записей ===
| |
− | | |
− | Со стороны внешней системы должно быть приложение, отправляющее в формате XML данные по учетным записям B2B-клиентов (агентств и пользователей). Со стороны Nemo имеется скрипт, который принимает XML в формате, приведенном в описании документов, передаваемых в Nemo, с ключом авторизации, определенным в Nemo в административной части модуля.
| |
− | | |
− | Передаваемые элементы с описанием учетных записей и партнеров имеют аккаунт (Account ID) во внешней системе и атрибут action, который может быть в состоянии update или delete, т.е. обновления/добавления и удаления, соответственно.
| |
− | | |
− | В административной части модуля в Nemo задается ключ авторизации для защиты от несанкционированного доступа. Значение не должно быть пустым.
| |
− | | |
− | Скрипт получает данные об обновлении и добавлении (проходят как одно и то же действие) или удалении информации по аккаунту. XML-данные могут содержать несколько элементов.
| |
− | | |
− | Описание передаваемых в Nemo XML-документов:
| |
− | | |
− | <pre><?xml version="1.0" encoding="UTF-8" ?>
| |
− | <changes key="ключ_авторизации">
| |
− | <accounts> - список изменений по аккаунтам пользователей
| |
− | <item id=3 partnerId=10 action="update" admin="1">
| |
− | <login>Логин пользователя</login>
| |
− | </item>
| |
− | <item id=6 partnerId=15 action="update">
| |
− | ...
| |
− | </item>
| |
− | <item id=9 partnerId=30 action="delete" />
| |
− | </accounts>
| |
− | <partners> - список изменений по партнерам
| |
− | <item id=140 action="update">
| |
− | <name>Название агентства</name>
| |
− | <ofname>Официальное Название агентства</ofname>
| |
− | <phone>Телефон</phone>
| |
− | <tax>Форма налогообложения</tax>
| |
− | <group>123</group>
| |
− | <code>ABCD</item>
| |
− | </partners></changes></code></pre>
| |
− | | |
− | При импорте информации об агентствах будут возвращаться следующие значения:
| |
− | | |
− | <table border="1">
| |
− | <tr class="row0" bgcolor="#CCCCCC">
| |
− | <th class="col0">Поле во внешней системе </th><th class="col1"> Путь к элементу xml </th><th class="col2"> Тип данных </th><th class="col3"> Сопоставляемое поле в Nemo </th><th class="col4"> Примечание </th>
| |
− | | |
− | </tr>
| |
− | <tr class="row1">
| |
− | <td class="col0">Идентификатор партнера</td><td class="col1">/changes/partners/item[@id]</td><td class="col2 leftalign">Целое число </td><td class="col3 leftalign">Идентификатор во внешней системе для менеджера / администратора </td><td class="col4"></td>
| |
− | </tr>
| |
− | <tr class="row2">
| |
− | <td class="col0">Название юридического лица</td><td class="col1">/changes/partners/item/ofname</td><td class="col2">Строка</td><td class="col3">Полное официальное название юридического лица </td><td class="col4">Необходимо для выписки счетов юридическими лицами</td>
| |
− | | |
− | </tr>
| |
− | <tr class="row3">
| |
− | <td class="col0">Сокращенное название</td><td class="col1">/changes/partners/item/name</td><td class="col2">Строка</td><td class="col3 leftalign">Имя агентства </td><td class="col4"></td>
| |
− | </tr>
| |
− | <tr class="row4">
| |
− | <td class="col0">Код агентства</td><td class="col1">/changes/partners/item/code</td><td class="col2">Строка</td><td class="col3">Используется при создании логина администратора</td><td class="col4"></td>
| |
− | | |
− | </tr>
| |
− | <tr class="row5">
| |
− | <td class="col0">Номер группы в самотуре</td><td class="col1">/changes/partners/item/group</td><td class="col2">Целое число, либо пусто</td><td class="col3 leftalign">На основании таблицы сопоставлений (см. ниже) определяется, к какой группе агентство принадлежит в Nemo </td><td class="col4"></td>
| |
− | </tr>
| |
− | <tr class="row6">
| |
− | <td class="col0">Форма налогообложения</td><td class="col1">/changes/partners/item/tax</td><td class="col2">Целое число, равное идентификатору во внешней системе</td><td class="col3"></td><td class="col4"></td>
| |
− | </tr>
| |
− | </table>
| |
− | | |
− | Для каждого возвращенного агентства Nemo проверяет наличие его в своей базе. Если [[агентство]] не найдено, то создается новое, для него создается менеджер (админ) с логином ABCD-1234, где ABCD – буквенный идентификатор партнера во внешней системе, 1234 — id партнера во внешней системе. Пароль генерируется случайный и криптостойкий.
| |
− | | |
− | Если агентство найдено, то в случае необходимости производится обновление всех полей на основании данных из внешней системы. Если изменился буквенный код агентства, то Nemo переименовывает менеджера в соответствии с новым кодом. При импорте информации о пользователях агентств в Nemo будут посылаться следующие поля:
| |
− | | |
− | <table border="1">
| |
− | <tr class="row0" bgcolor="#CCCCCC">
| |
− | <th class="col0">Поле во внешней системе</th><th class="col1">Путь к элементу xml</th><th class="col2">Тип данных</th><th class="col3">Сопоставляемое поле в Nemo</th><th class="col4">Примечание</th>
| |
− | | |
− | </tr>
| |
− | <tr class="row1">
| |
− | <td class="col0">Идентификатор пользователя</td><td class="col1">/changes/accounts/item[@id]</td><td class="col2">Целое число</td><td class="col3">Идентификатор внешней системы</td><td class="col4">Храним как дополнительное поле </td>
| |
− | </tr>
| |
− | <tr class="row2">
| |
− | <td class="col0">Идентификатор партнера</td><td class="col1">/changes/accounts/item[@partnerId]</td><td class="col2">Целое число</td><td class="col3">Идентификатор внешней системы менеджера агентства</td><td class="col4"></td>
| |
− | | |
− | </tr>
| |
− | <tr class="row3">
| |
− | <td class="col0">Логин</td><td class="col1">/changes/accounts/item/login</td><td class="col2">Строка</td><td class="col3">Логин пользователя</td><td class="col4"></td>
| |
− | </tr>
| |
− | <tr class="row4">
| |
− | <td class="col0">Администратор</td><td class="col1">/changes/accounts/item[@admin]</td><td class="col2">0 - нет, 1 - да</td><td class="col3 leftalign">Эксперт по бронированию </td><td class="col4"></td>
| |
− | | |
− | </tr>
| |
− | </table>
| |
− | | |
− | Для каждого возвращенного пользователя Nemo проверяет наличие его в своей базе. Если пользователь не найден, то создается новый. Пароль генерируется случайный и криптостойкий.
| |
− | | |
− | Если [[пользователь]] найден, то в случае необходимости производится обновление всех полей на основании данных из внешней системы. При запросе на удаление пользователя, в Nemo указанный логин удаляться не будет в целях сохранения целостности старых данных, а просто помечается как удаленный, и логин переименовывается и становится вида [логин_пользователя]_X_[числовой идентификатор_пользователя в Само].
| |
− | | |
− | <pre><item id=[идентификатор] action="delete" /></pre>
| |
− | | |
− | === Таблица сопоставлений групп ===
| |
− | | |
− | В административной части Nemo надо создать отдельную страницу, на которой можно сопоставить имеющиеся [[Пользователь#Группы в Nemo|группы в Nemo]] номерам групп в САМО-тур (поле group в XML). Выводится список существующих групп для текущего (корневого) агентства.
| |
| | | |
| ==API Кроссавторизации== | | ==API Кроссавторизации== |
− | Система Nemo позволяет обращаться к ней как базе пользователей для авторизации из других систем (например форума на сайте, собственного ПО компании и т.п) | + | '''Авторизация пользователей из внешних систем''' — Система Nemo позволяет обращаться к ней как базе пользователей для авторизации из других систем (например форума на сайте, собственного ПО компании и т.п) |
| | | |
| Для этого нужно подключиться к веб-службе авторизации, WSDL-описание которой располагается по адресу: | | Для этого нужно подключиться к веб-службе авторизации, WSDL-описание которой располагается по адресу: |
| | | |
| [http://hostname/authorization_reol.wsdl http://hostname/authorization_reol.wsdl] | | [http://hostname/authorization_reol.wsdl http://hostname/authorization_reol.wsdl] |
| + | |
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> |
| + | ===== Запрос ===== |
| + | <div class="mw-collapsible-content"> |
| | | |
| <pre>?xml version ='1.0' encoding ='UTF-8' ?> | | <pre>?xml version ='1.0' encoding ='UTF-8' ?> |
Строка 5560: |
Строка 760: |
| </service> | | </service> |
| </definitions></pre> | | </definitions></pre> |
| + | </div></div> |
| + | |
| + | ==Передача параметров в форму поиска (FastSearch)== |
| + | |
| + | В системе Nemo имеется возможность перенаправлять пользователей на страницу с уже заполненными параметрами поиска или сразу напрямую на результаты поиска. |
| | | |
− | ==Передача параметров в форму поиска==
| + | Примеры FastSearch запросов и используемые переменные подробно описаны в статье [[FastSearch - передача параметров в форму]] |
| + | |
| + | FastSearch так же работает и для отелей, подробности в статье [[Fast Search для отелей]] |
| + | |
| + | <!-- Т.к. это внутренний формат обмена данными между Немо и одним клиентом, то данную инфу скроем в комментарии |
| ==Проверка в сторонней системе возможности тикетинга== | | ==Проверка в сторонней системе возможности тикетинга== |
− | ==API загрузки счетов из сторонней системы== | + | |
− | ==API загрузки сальдо компаний из СОФИ== | + | При выписки билета через стороннюю систему 1С, отправляется запрос "GetDebtCounterparty", который спрашивает, можно ли с счета в 1С списать средства для оплаты. В ответе содержится заключение от 1С, в случае если ошибок нет, то в ответе будет |
| + | <pre><m:Opportunity>Да</m:Opportunity></pre> |
| + | Пример запроса "GetDebtCounterparty" |
| + | <pre> |
| + | <?xml version="1.0" encoding="UTF-8"?> |
| + | |
| + | <SOAP-ENV:Body> |
| + | <ns1:GetDebtCounterparty> |
| + | <ns1:ExternalUserId>00000001</ns1:ExternalUserId> |
| + | <ns1:ExternalPaymentId>00000001</ns1:ExternalPaymentId> |
| + | <ns1:BaseFare>2490</ns1:BaseFare> |
| + | <ns1:Tax>643</ns1:Tax> |
| + | <ns1:ValVendorCommission>49.8</ns1:ValVendorCommission> |
| + | <ns1:Locator>0X97T6</ns1:Locator> |
| + | <ns1:Discount>0</ns1:Discount> |
| + | <ns1:Charge>0</ns1:Charge> |
| + | <ns1:Sum>3133</ns1:Sum> |
| + | <ns1:TotalPrice>3658.1</ns1:TotalPrice> |
| + | <ns1:GDSCurrency>RUB</ns1:GDSCurrency> |
| + | <ns1:OrderCurrency>RUB</ns1:OrderCurrency> |
| + | <ns1:OrderCurrencyRate>1</ns1:OrderCurrencyRate> |
| + | <ns1:beginDate>2014-08-30T11:05:00</ns1:beginDate> |
| + | </ns1:GetDebtCounterparty> |
| + | </SOAP-ENV:Body> |
| + | </SOAP-ENV:Envelope> |
| + | |
| + | </pre> |
| + | Пример ответа "GetDebtCounterparty" |
| + | <pre> |
| + | <?xml version="1.0"?> |
| + | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
| + | <soap:Header/> |
| + | <soap:Body> |
| + | <m:GetDebtCounterpartyResponse xmlns:m="http://DOMEN_NAME/avia"> |
| + | <m:return xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="m:AnswerDebt"> |
| + | <m:Opportunity>Да</m:Opportunity> |
| + | <m:Message1/> |
| + | </m:return> |
| + | </m:GetDebtCounterpartyResponse> |
| + | </soap:Body> |
| + | </soap:Envelope> |
| + | |
| + | </pre> |
| + | |
| + | == Загрузка счетов из сторонней системы == |
| + | |
| + | При взаимодействии с веб-сервисом 1С, на этапе бронирования отправляется запрос, на создание аккаунта 1С, содержащий в себе данные счета. В системе логирования этот запрос можно найти под именем «[GDS] Запрос "NewAccount"» и ответ «[GDS] Ответ "NewAccount"» |
| + | |
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> |
| + | |
| + | === Пример запроса === |
| + | <div class="mw-collapsible-content"> |
| + | |
| + | <pre> |
| + | |
| + | <?xml version="1.0" encoding="UTF-8"?> |
| + | <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"> |
| + | <SOAP-ENV:Body> |
| + | <ns1:NewAccount> |
| + | <ns1:Input> |
| + | <ns1:CompanyID>0001</ns1:CompanyID> |
| + | <ns1:ID>123321</ns1:ID> |
| + | <ns1:ExternalUserId>00123321</ns1:ExternalUserId> |
| + | <ns1:Locator>11KW22</ns1:Locator> |
| + | <ns1:ExternalPaymentId>0</ns1:ExternalPaymentId> |
| + | <ns1:Tickets> |
| + | <ns1:IATAValidator>92222616</ns1:IATAValidator> |
| + | <ns1:ValVendor>UT</ns1:ValVendor> |
| + | <ns1:GDSCurrency>RUB</ns1:GDSCurrency> |
| + | <ns1:OrderCurrency>RUB</ns1:OrderCurrency> |
| + | <ns1:OrderCurrencyRate>1</ns1:OrderCurrencyRate> |
| + | <ns1:BaseFare>8990</ns1:BaseFare> |
| + | <ns1:Tax> |
| + | <ns1:Code>YQ</ns1:Code> |
| + | <ns1:Amount>975</ns1:Amount> |
| + | </ns1:Tax> |
| + | <ns1:Tax> |
| + | <ns1:Code>YR</ns1:Code> |
| + | <ns1:Amount>75</ns1:Amount> |
| + | </ns1:Tax> |
| + | <ns1:Segment> |
| + | <ns1:StartDate>2015-02-17T20:20:00</ns1:StartDate> |
| + | <ns1:StartAirportCode>VKO</ns1:StartAirportCode> |
| + | <ns1:EndAirportCode>SGC</ns1:EndAirportCode> |
| + | <ns1:CompanyCode>UT</ns1:CompanyCode> |
| + | <ns1:Tariffs>OSSOW</ns1:Tariffs> |
| + | <ns1:FlightNumber>295</ns1:FlightNumber> |
| + | <ns1:StopOver>O</ns1:StopOver> |
| + | <ns1:ClassTypeCode>O</ns1:ClassTypeCode> |
| + | </ns1:Segment> |
| + | <ns1:FullName>PASSANGER NAME</ns1:FullName> |
| + | </ns1:Tickets> |
| + | <ns1:Options> |
| + | <ns1:Name>Service</ns1:Name> |
| + | <ns1:StringValue>GALILEO</ns1:StringValue> |
| + | <ns1:NumericValue xsi:nil="true"/> |
| + | <ns1:DateValue xsi:nil="true"/> |
| + | </ns1:Options> |
| + | <ns1:Options> |
| + | <ns1:Name>AAA</ns1:Name> |
| + | <ns1:StringValue>000A</ns1:StringValue> |
| + | <ns1:NumericValue xsi:nil="true"/> |
| + | <ns1:DateValue xsi:nil="true"/> |
| + | </ns1:Options> |
| + | <ns1:Options> |
| + | <ns1:Name>Checkbox</ns1:Name> |
| + | <ns1:StringValue>YES</ns1:StringValue> |
| + | <ns1:NumericValue xsi:nil="true"/> |
| + | <ns1:DateValue xsi:nil="true"/> |
| + | </ns1:Options> |
| + | </ns1:Input> |
| + | </ns1:NewAccount> |
| + | </SOAP-ENV:Body> |
| + | </SOAP-ENV:Envelope> |
| + | |
| + | |
| + | </pre> |
| + | </div></div> |
| + | |
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> |
| + | === Пример ответа === |
| + | <div class="mw-collapsible-content"> |
| + | <pre> |
| + | |
| + | <?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> |
| + | |
| + | |
| + | </pre> |
| + | </div></div> |
| + | |
| + | --> |