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

Изменения

Агентский API Отели

30 031 байт добавлено, 18:45, 6 мая 2019
Нет описания правки
{{Attention|В системе реализован усовершенствованный API-проект «Nemo Connect», настоятельно рекомендуем подключаться по схеме, описанной в документации по [http://docs.nemo.travel/ ссылке]}}
 
[[Категория:Агентский API]]
[[Категория:Интеграция]]
[[Файл:Nemo-logo.png‎|right]]
'''Агентский API ОтелейОтели''' - система, которая предоставляет возможность поиска и бронирования отелей а так же получение информации о времени и размерах штрафов, уникальной информации об отеле, получение статической информации.
== Динамические данные ===== Поиск ===
Сервис предназначен для получения списка отелей, удовлетворяющих условиям запроса. В условия запроса входят: идентификатор города, где будет вестись поиск; дата заезда и дата выезда; информация о количестве людей и способе их размещения в комнатах. Так же указываются дополнительные необязательные поля фильтров.
Для получения списка доступных городов, воспользуйтесь запросом на выгрузку статики (см. ССЫЛКА). Список допустимых отелей для фильтра также доступен через сервис (см. ССЫЛКА). Рекомендуется выгрузить все данные по отелям, городам и странам в локальную базу, для экономии времени и запросов.
'''WSDL ''' (тестовый сервер): [http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelsSearch http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelsSearch]
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Запрос ====
<prediv 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%3DHotelsSearch">
<soapenv:Header/>
<soapenv:Body>
<!--Zero or more repetitions:-->
<Person Id="1" Type="ADT" Age="30"/>
<Person Id="12" Type="CLD" Age="10"/>
</Persons>
<!--Optional:-->
</soapenv:Body>
</soapenv:Envelope>
</presyntaxhighlight>
Элемент '''HotelSearch'''
|}
Элемент '''Room.'''
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''Person.'''
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''Filters.'''
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''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">
Система по заданным параметрам ищет отели и возвращает результаты поиска. Все результаты поиска хранятся в базе Nemo определенный срок и доступны для бронирования по идентификатору CacheId.
Каждый отель содержит:
* Набор номеров &lt;Rooms&gt;. Типы номеров (одноместный, двухместный и т.д.)&nbsp;: устанавливается автоматически по количеству клиентов из запроса.
* Сервисы &lt;Services&gt;. Каждый отель предлагает различные типы обслуживания в номерах. Цена и доступность может различаться.
* Категория &lt;Categories&gt;. Это допустимые комбинации номер + обслуживание. Для бронирования отеля пользователь должен выбрать одну из предлагаемых ему категорий.
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #Набор номеров &lt;Rooms&gt;. Типы номеров (одноместный, двухместный и т.д.)&nbspF9F9F9;border: устанавливается автоматически по количеству клиентов из запроса.1px dashed #Сервисы &lt2F6FAB;Services&gtpadding: 10px 5px;. Каждый отель предлагает различные типы обслуживания в номерах. Цена и доступность может различаться.#Категория &ltmargin: 10px 0;Categories&gt;. Это допустимые комбинации номер + обслуживание. Для бронирования отеля пользователь должен выбрать одну из предлагаемых ему категорий."><pre><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DHotelsSearch">
<SOAP-ENV:Body>
<ns1:searchResponse>
</Hotel>
...
</Hotels>
</HotelSearch>
</Response>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</presyntaxhighlight>
Элемент '''Hotel.'''
{| style="width: 800px" class="wikitable"
|-
|}
 Элемент '''Service.'''
{| style="width: 800px" class="wikitable"
|-
|}
 Элемент '''Room.'''
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''Category.'''
{| style="width: 800px" class="wikitable"
|-
Атрибут Currency - код валюты.
|}
</div>
</div>
==== Ошибки ====
=== Расширенная информация по одному отелю === 
Сервис получения дополнительной информации об отеле требует указания идентификатора отеля в системе Nemo и категории.
'''WSDL''' (тестовый сервер): [http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelExtInfo http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelExtInfo]
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Запрос ====
<prediv 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>
</soapenv:Body>
</soapenv:Envelope>
</presyntaxhighlight>
Элемент '''Item.'''
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''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">
==== Ответ ====
<prediv 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%3DHotelExtInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:extInfoResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</presyntaxhighlight>
Элемент '''HotelExtInfo.'''
{| style="width: 800px" class="wikitable"
|-
|}
 Элемент '''PriceInfo.'''
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''Date'''
{| style="width: 800px" class="wikitable"
|-
Атрибут Currency - код валюты.
|}
</div>
</div>
==== Ошибки ====
=== Штрафы за аннуляцию === 
Всегда в явном виде нужно указывать пользователю информацию о штрафах за аннуляцию до бронирования.
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=Penalty
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Запрос ====
<prediv 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>
</Request>
<Source>
<ClientId>134</ClientId> <APIKey>93632C10DA299034C03D742FB160C2D6</APIKey>
<Language>ru</Language>
<Currency>RUB</Currency>
</soapenv:Body>
</soapenv:Envelope>
</presyntaxhighlight>
Элемент '''Item.'''
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''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">
==== Ответ ====
<prediv class="mw-collapsible-content"><soapsyntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;"><SOAP-envENV:envelope Envelope xmlns:soapSOAP-envENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DPenalty"> <soapSOAP-envENV:bodyBody> <ns1:penaltyresponsepenaltyResponse> <responsebinResponseBin> <responseResponse> <penaltyPenalty> <itemdatebeginItemDateBegin>2013-10-15 00:00:00</itemdatebeginItemDateBegin> <cancelchargesCancelCharges> <chargeCharge> <datefromDateFrom>2013-10-12 00:00:00</datefromDateFrom> <datetoDateTo>2013-10-15 23:59:59</datetoDateTo> <money currencyMoney Currency="RUB">74733.84</moneyMoney> </chargeCharge> <chargeCharge> <datefromDateFrom>2013-09-23 00:00:00</datefromDateFrom> <datetoDateTo>2013-10-11 00:00:00</datetoDateTo> <money currencyMoney Currency="RUB">67260.46</moneyMoney> </chargeCharge> <chargeCharge> <datefromDateFrom>2013-08-01 17:59:00</datefromDateFrom> <datetoDateTo>2013-09-22 00:00:00</datetoDateTo> <money currencyMoney Currency="RUB">12455.64</moneyMoney> </chargeCharge> </cancelchargesCancelCharges> <modifychargesModifyCharges/> </modifycharges></penalty><modifychargesPenalty> </modifycharges></response><modifychargesResponse> </modifycharges></responsebin><modifychargesResponseBin> </modifycharges></ns1:penaltyresponse><modifychargespenaltyResponse> </modifycharges></soapSOAP-envENV:body><modifychargesBody></modifycharges></soapSOAP-envENV:envelopeEnvelope></presyntaxhighlight>
Элемент '''Penalty.'''
{| style="width: 800px" class="wikitable"
|-
Штрафы разбиваются по временным интервалам. На каждом интервале указывается значение штрафа.
Элемент '''Charge.'''
{| style="width: 800px" class="wikitable"
|-
Атрибут: Currency - код валюты.
|}
</div>
</div>
==== Ошибки ====
==Бронирование = Бронирование =<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Запрос ====
<div class="mw-collapsible-content">
Схема запроса позволяет указывать несколько услуг для бронирования сразу. Это было сделано с заделом на возможность расширения функциональности в будущем при сохранении совместимости.
Для успешного запроса нужно указать:
 
#Услугу. В запросе не требуется перечислять все параметры из результатов поиска, достаточно указать уникальный ID результата.
#Информация о клиентах. Все клиенты перечисляются в отдельной ветке и нумеруются по порядку. Указатели (элементы с номером клиента), также добавляются в описание услуги.
#Заказчик. Указатель на одну персону.
'''WSDL ''' (тестовый сервер): [http://tst.nemo-ibe.com/wsdev/wsdl.php?for=Booking http://tst.nemo-ibe.com/wsdev/wsdl.php?for=Booking] <presyntaxhighlight 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>
</Request>
<Source>
<ClientId>134</ClientId> <APIKey>93632C10DA299034C03D742FB160C2D6</APIKey>
<Language>ru</Language>
<Currency>RUB</Currency>
</soapenv:Body>
</soapenv:Envelope>
</presyntaxhighlight>
Элемент '''Booking.'''
{| style="width: 800px" class="wikitable"
|-
Данные об услугах записываются в элементы &lt;Item&gt;.
Элемент '''Item.'''
{| style="width: 800px" class="wikitable"
|-
# Распределение клиентов по комнатам.
Элемент '''HotelBookData.'''
{| style="width: 800px" class="wikitable"
|-
Набор обязательных данных может меняться в зависимости от типов услуг в бронировании. Рекомендуемый набор обязательных параметров: Lastname, Name, DateOfBirth. Остальные обязательные параметры будут устанавливаться индивидуально при подключении к сервису.
Элемент '''Person.'''
{| style="width: 800px" class="wikitable"
|-
Для некоторых услуг может потребоваться информация о документах.
Элемент '''Document.'''
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''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">
После выполнения запроса сразу поступит информация о бронировании. В первую очередь нужно внимательно проверить статусы &lt;Status&gt; всех услуг в бронировании. Если бронировалась услуга со статусом в результатах поиска RQ (по запросу), то статус скорее всего будет не равен «booked». Через некоторое время проверять реальный статус бука отправляя запрос на чтение данных о бронировании.
После выполнения запроса сразу поступит информация о бронировании. В первую очередь нужно внимательно проверить статусы &lt<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB;Status&gtpadding: 10px 5px; всех услуг в бронировании. Если бронировалась услуга со статусом в результатах поиска RQ (по запросу), то статус скорее всего будет не равен «booked». Через некоторое время проверять реальный статус бука отправляя запрос на чтение данных о бронировании.margin: 10px 0;"><pre><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>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</presyntaxhighlight>==== Ошибки ====Структура ответа очень похожа на запрос. Выделяются те же основные элементы.
=== Выгрузка актуальных данных по заказу(ам) ======= Запрос ======== Ответ ======== Ошибки ======= Аннуляция заказа ======= Запрос ======== Ответ ======== Ошибки ====== Статические данные ==Для работы с веб-сервисом Nemo необходимо выгрузить статичные данные. Это данные о странах, городах и отелях.=== Страна ===Элемент '''WSDLBooking''' (тестовый сервер){| style="width: http://tst.nemo800px" class="wikitable"|-ibe.com/wsdev/wsdl.php?for=CountryStatic! scope="col" width="200" | Элемент! scope="col" width= Запрос ===="300" | Описание<pre><soapenv:Envelope xmlns:soapenv! scope="http://schemas.xmlsoap.org/soap/envelope/col" xmlns:verwidth="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCountryStatic300">| Допустимые значения <soapenv:Header/>|- <soapenv:Body>| Items <ver:countries>| Обязательный. Содержит элемент(ы) Item. <RequestBin>| Элемент Item <Request>|- <CountryStatic>| Persons </CountryStatic>| Обязательный. Здесь перечислены все клиенты заказа. </Request>| Элемент Person <Source>|} <ClientId></ClientId> <APIKey></APIKey> <Language>ru</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:countries> </soapenv:Body></soapenv:Envelope></pre>В элементах Item раскрывается подробнейшая информация об одной услуге в бронировании.
Элемент '''RequestItem'''
{| style="width: 800px" class="wikitable"
|-
! 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> ==== Ответ ====см. результаты бронирования.==== Ошибки ====* '''You can cancel only booked order''' - возникает при попытке аннулировать незабронированный заказ.* '''Invalid Booking Id N''' - заказ с номером N отсутствует. = Статические данные =Для работы с веб-сервисом Nemo необходимо выгрузить статичные данные. Это данные о странах, городах и отелях.== Страна =='''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=CountryStatic<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%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'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| CountryStatic
| Пустой элемент
| <br/>|} Элемент '''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%3DCountryStatic" 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'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Countries| Обязательный| Набор элементов Country|} Элемент '''Country'''{| style="width: 800px" class="wikitable"|-! scope="col" width="200" | Элемент! scope="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Атрибут Id| Обязательный. Идентификатор страны (ISO).| Целое число|-| Code| Обязательный. Код страны ISO.| Строка из 2-х латинских букв|-| Continent| Обязательный. Название континента.| Строка.|-| Data| Обязательный. Информация требующая перевода.| Набор элементов Info.
|}
Элемент '''Info'''{| style="width: 800px" class=== Ответ ===="wikitable"<pre>|-<SOAP-ENV:Envelope xmlns:SOAP-ENV! scope="http://schemas.xmlsoap.org/soap/envelope/col" xmlns:ns1width="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCountryStatic200" xmlns:xsi| Элемент! scope="http://www.w3.org/2001/XMLSchema-instancecol"> <SOAP-ENV:Body> <ns1:countriesResponse> <ResponseBin> <Response> <CountryStatic> <Countries> <Country Idwidth="4300">| Описание <Code>AF</Code> <Continent>asia</Continent> <Data> <Info Language! scope="RUcol"> <Name>Афганистан</Name> </Info> <Info Languagewidth="EN300">| Допустимые значения <Name>Afghanistan</Name> </Info> </Data> </Country> </Countries> </CountryStatic> </Response> </ResponseBin> </ns1:countriesResponse> </SOAP|-ENV:Body></SOAP-ENV:Envelope></pre>| Атрибут Language| Обязательный. Язык в котором представлена информация.Элемент CountryStatic{| style="width: 800px" class="wikitable"Строка из 2-х латинских букв.
|-
! scope| Name| Обязательный. Наименование страны.| Строка в произвольном формате.|}</div></div> ==="col" width="200" | Элемент! scopeОшибки ="col" width="300" | Описание! scope="col" width="300" | Допустимые значения|-| Countries== Город ==| ОбязательныйПараметры поиска всех услуг требуют указания ID города. Города выгружаются по каждой стране следующим запросом:| Набор элементов Country|}'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=CityStatic
Элемент Country{| <div class="toccolours mw-collapsible mw-collapsed" style="width: 800px1000px" >==== Запрос ====<div class="wikitablemw-collapsible-content">|-! scope<syntaxhighlight lang="colxml" widthline enclose="200div" | Элемент! scopestyle="colfont-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;" width><soapenv:Envelope xmlns:soapenv="300http://schemas.xmlsoap.org/soap/envelope/" | Описание! scopexmlns:ver="colhttp://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCityStatic" width="300" | Допустимые значения> <soapenv:Header/> <soapenv:Body> <ver:cities>|- <RequestBin>| Атрибут Id <Request>| Обязательный. Идентификатор страны (ISO). <CityStatic>| Целое число <CountryId>4</CountryId>|- </CityStatic>| Code </Request>| Обязательный. Код страны ISO. <Source>| Строка из 2-х латинских букв <ClientId></ClientId>|- <APIKey></APIKey>| Continent <Language>ru</Language>| Обязательный. Название континента. <Currency>RUB</Currency>| Строка. </Source>|- </RequestBin>| Data </ver:cities>| Обязательный. Информация требующая перевода. </soapenv:Body>| Набор элементов Info.</soapenv:Envelope>|}</syntaxhighlight>
Элемент Info'''CityStatic'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="300" | Допустимые значения
|-
| Атрибут LanguageCountryId| Обязательный. Язык в котором представлена информация.| Строка из 2-х латинских букв.|-| Name| Обязательный. Наименование Идентификатор страны.| Строка в произвольном формате.Целое число
|}
==== Ошибки ==== === Город ===Параметры поиска всех услуг требуют указания ID города. Города выгружаются по каждой стране следующим запросом: Элемент '''WSDLSource''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=CityStatic ==== Запрос ====<pre><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://tst.nemo-ibe.com/wsdev/?version%3D1.0%26for%3DCityStatic"> <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></pre> Элемент CityStatic
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="300" | Допустимые значения
|-
| CountryIdClientID| Обязательный. Идентификатор страныID клиента в системе Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Целое число.|-| APIKey| Обязательный. APIKey - секретный ключ доступа к API Nemo.Можно посмотреть/добавить в "Администрирование" ⇨ "Веб-служба. Авторизация".| Латинские буквы и цифры. Всего 32 символа.
|}
</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Ответ ====
<prediv 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%3DCityStatic">
<SOAP-ENV:Body>
<ns1:citiesResponse>
<CityStatic>
<Cities>
<City Id="1">
<Name>Кабул</Name>
<CountryId>4</CountryId>
</City>
...
</Cities>
</CityStatic>
</Response>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</presyntaxhighlight>
Элемент '''CityStatic'''
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''City'''
{| style="width: 800px" class="wikitable"
|-
! scope="col" width="300" | Допустимые значения
|-
| Атрибут '''Id'''
| Обязательный. Идентификатор города.
| Целое число
| См. описание элемента Data в ответе получения информации о стране.
|}
</div>
</div>
==== Ошибки ====
=== Статика по отелям и апартаментам ===
Этот запрос будет использоваться для выгрузки статичной информации по одному или нескольким отелям.
'''WSDL''' (тестовый сервер): http://tst.nemo-ibe.com/wsdev/wsdl.php?for=HotelStatic
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Запрос ====
<prediv 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%3DHotelStatic">
<soapenv:Header/>
<soapenv:Body>
</soapenv:Body>
</soapenv:Envelope>
</presyntaxhighlight>
Элемент '''Hotels'''
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''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">
==== Ответ ====
<prediv 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%3DHotelStatic" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:hotelsResponse>
<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>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</presyntaxhighlight>
Элемент '''Hotel'''
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''Info.'''
{| style="width: 800px" class="wikitable"
|-
|}
Элемент '''Phones.'''
{| style="width: 800px" class="wikitable"
|-
| Строка в произвольном формате.
|}
 Элемент '''Image.'''
{| style="width: 800px" class="wikitable"
|-
| Строка в произвольном формате.
|}
</div>
</div>
==== Ошибки ====
 
==См. также==
* [[Агентский интерфейс прикладного программирования (Агентский API)]]
* [[Схема использования агентского API (workflow)]]
* [[Агентский API Авиабилеты]]
* [[Агентский API Оплата]]
'