451
правка
Изменения
→Схема использования агентского API (workflow)
{{Attention|В системе реализован усовершенствованный API-проект «Nemo Connect», настоятельно рекомендуем подключаться по схеме, описанной в документации по [http://docs.nemo.travel/ ссылке]}}
== Схема использования агентского API (workflow) ==
[[Категория:Интеграция]]
== Агентский АПИ выписки поиска авиабилетов ==
== Отмена бронирования Агентский АПИ выписки == После бронирования, если не истек таймлимит можно аннулировать сделанный заказ. Аннуляция заказа в Nemo может быть ручной (сделанной пользователем) и автоматической - по истечению таймлимита, установленного для заказа система сама аннулирует заказ. WSDL: http://sys.nemo-ibe.com/nemoflights/wsdl.php?for=CancelBook '''Пример запроса и ответа на аннуляцию заказа:''' <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://sys.nemo-ibe.com/nemoflights/?version%3D1.0%26for%3DCancelBook"> <soapenv:Header/> <soapenv:Body> <ver:CancelBook> <RequestBin> <Request> <!--Запрос, обязательный--> <!--BookID - Ид брони в системе немо, целое число, обязательный--> <CancelBook BookID="260646"/> </Request> <Source> <!--Авторизация, обязательный--> <!--ClientId, идентификатор клиента, обязательный--> <!--APIKey, API ключ клиента, обязательный--> <!--Language, код языка, обязательный--> <!--Currency код валюты, обязательный--> <ClientId>102</ClientId> <APIKey>7F48365D42B73307C99C12A578E92B36</APIKey> <Language>RU</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:CancelBook> </soapenv:Body></soapenv:Envelope></syntaxhighlight></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://sys.nemo-ibe.com/nemoflights/?version%3D1.0%26for%3DCancelBook" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:CancelBookResponse> <ResponseBin> <Response> <!--BookID - Ид брони в системе немо, целое число--> <CancelBook BookID="260646"> <!--Result, Отмена брони--> <!--Sucscess, Результат отмены брони, true или false--> <Result Success="true"/> </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> == Проверка на доступность == Данный запрос отправляется из Nemo после того как пользователь на результатах поиска нажимает ссылку «забронировать». Он необходим для того чтобы перед подтверждением бронирования повторно проверить перелет на доступность и исключить максимально возможное количество заказов, которые нельзя будет забронировать из-за сервисных ошибок, либо изменения условий (например, снятия мест). WSDL: http://sys.nemo-ibe.com/nemoflights/wsdl.php?for=AirAvail '''Пример запроса и ответа:''' <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://sys.nemo-ibe.com/nemoflights/?version%3D1.0%26for%3DAirAvail"> <soapenv:Header/> <soapenv:Body> <ver:AirAvail> <RequestBin> <Request> <AirAvail> <!--Запрос, обязательный--> <!--FlightId ид перелёта в системе Немо, обязательный--> <FlightId>142330001</FlightId> </AirAvail> </Request> <Source> <!--Авторизация, обязательный--> <!--ClientId, идентификатор клиента, обязательный--> <!--APIKey, API ключ клиента, обязательный--> <!--Language, код языка, обязательный--> <!--Currency код валюты, обязательный--> <ClientId>102</ClientId> <APIKey>7F48365D42B73307C99C12A578E92B36</APIKey> <Language>RU</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:AirAvail> </soapenv:Body></soapenv:Envelope></syntaxhighlight></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://sys.nemo-ibe.com/nemoflights/?version%3D1.0%26for%3DAirAvail" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:AirAvailResponse> <ResponseBin> <Response> <!--FlightId ид перелёта в системе Немо--> <!--IsAvail доступность перелёта, true или false--> <AirAvail FlightId="142330001" IsAvail="true"/> <Requisites/> <RequestType xsi:nil="true"/> <UserID xsi:nil="true"/> <Errors xsi:nil="true"/> </Response> </ResponseBin> </ns1:AirAvailResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope></syntaxhighlight></div></div> == Запрос на обновление заказа =='''Запрос на обновление заказа''' WSDL: http://sys.nemo-ibe.com/nemoflights/wsdl.php?for=UpdateBook <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://sys.nemo-ibe.com/nemoflights/?version%3D1.0%26for%3DUpdateBook"> <soapenv:Header/> <soapenv:Body> <ver:UpdateBook> <RequestBin> <Request> <UpdateBook> <!--Запрос, обязательный--> <!--BookID - Id заказа в системе Немо, обязательный--> <BookID>260647</BookID> </UpdateBook> </Request> <Source> <!--Авторизация, обязательный--> <!--ClientId, идентификатор клиента, обязательный--> <!--APIKey, API ключ клиента, обязательный--> <!--Language, код языка, обязательный--> <!--Currency код валюты, обязательный--> <ClientId>102</ClientId> <APIKey>7F48365D42B73307C99C12A578E92B36</APIKey> <Language>RU</Language> <Currency>RUB</Currency> </Source> </RequestBin> </ver:UpdateBook> </soapenv:Body></soapenv:Envelope></syntaxhighlight></div></div>
== Запрос на выписку Агентский АПИ возврата авиабилетов ==Данный запрос запускается после оплаты заказа, может быть запущен как в ручную - пользователем, у которого есть на это права, так и автоматически при использовании соответствующей опции. Выписать неоплаченный заказ через Nemo возможности нет. При запуске запроса на выписку также запускается процесс обновления заказа, в ходе которого сверяется цена и остальные параметры заказа, а также проверяется его актуальность. Заказы, с истекшим таймлимитом выписаны через Nemo быть не могут.
== Агентский АПИ дополнительных запросов ==
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
</tr>
<tr>
<td>FlightId </td><td class="col1">да </td><td>число</td><td >ИД Id перелёта для которого будет производится бронирование(поиск тарифных правил, проверка доступности)</td> </tr> <tr> <td>ValidatingCompany </td><td>нет</td><td>строка </td><td>Код авиакомпании, на бланке которой будет выписываться билет</td> </tr> <tr> <td>BookingCodes </td><td >нет</td><td>сложный </td><td>Список классов авиа перелётов для бронирования. Рекомендуется заполнять, если бронируется перелёт из результатов поиска по расписанию.</td> </tr> <tr> <td>BookingCode </td><td>да </td><td>сложный </td><td>Класс авиа перелёта для конкретного сегмента перелёта</td> </tr> <tr> <td>Code</td><td>да </td><td>строка </td><td>Литера класса перелёта (Двух буквенный код авиакомпании)</td> </tr> <tr> <td>SegNumber </td><td class="col1">да </td><td>число </td><td class="col>Номер сегмента</td> </tr>
<tr>
<td>CurrencyCode </td><td>нет</td><td>строка</td><td>Трёх буквенный код валюты (обязателен для комиссии в валюте)</td>
</tr>
<tr>
</tr>
<tr class="row24">
<td>Type</td><td>да</td><td>строка</td><td>Тип пассажира возможные значения: ADT - взрослые, CNN - дети со взрослыми, UNN - дети без сопровождения взрослых, INF - младенцы,INS - младенцы с местом</td>
</tr>
</tr>
<tr class="row26">
<td class="col0">LinkedTo </td><td class="col1">нет </td><td class="col2">целое число </td><td class="col3">Номер взрослого, к которому привязан младенец/ребёнок(привязка ребёнка ко взрослому является опциональной)</td>
</tr>
</tr>
<tr class="row68">
<td class="col0">QueueNum CancelBook</td><td class="col1">нет да</td><td class="col2">строкасложный</td><td class="col3">Номер очереди, в которую необходимо поместить бронирование (Специфична Контейнер для поставщика).тела запроса отмены брони</td>
</tr>
<tr class="row69">
<td class="col0">BookID</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Номер брони, которая будет отменяться (для которой будет производится выписка, отмена выписки)</td>
</tr>
<tr class="row71row70">
<td class="col0">GetAirRules</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса поиска тарифных правил</td>
</tr>
<tr class="row72row71">
<td class="col0">AirAvail</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса проверки доступности перелёта</td>
</tr>
<tr class="row73row72">
<td class="col0">Ticketing</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса выписки брони</td>
</tr>
<tr class="row74row73">
<td class="col0">ValCompany</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Валидирующий перевозчик, на бланке которого выписывается билет</td>
</tr>
<tr class="row75row74">
<td class="col0">Comission</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Комиссия</td>
</tr>
<tr class="row76row75">
<td class="col0">Amount</td><td class="col1">нет</td><td class="col2">число с плавающей точкой</td><td class="col3">Значение комиссии в валюте, если указано, то комиссия в процентах игнорируется</td>
</tr>
<tr class="row77row76">
<td class="col0">Percent</td><td class="col1">нет</td><td class="col2">число</td><td class="col3">Комиссия в процентах</td>
</tr>
<tr class="row78row77">
<td class="col0">VoidTicket</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса отмены выписки брони</td>
</tr>
<tr class="row79row78">
<td class="col0">Search</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для тела запроса поиска</td>
</tr>
<tr class="row80row79">
<td class="col0">ODPairs</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для информации о перелёте</td>
</tr>
<tr class="row81row80">
<td class="col0">Type</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Тип перелёта, возможные значения: OW - в одну сторону, RT - туда-обратно, CR - сложный маршрут</td>
</tr>
<tr class="row82row81">
<td class="col0">Direct</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Индикатор, указывающий какие перелёты искать, только прямые или с пересадками, возможные значения: false - с пересадками, true - только прямые. Если не указан, значение по умолчанию false.</td>
</tr>
<tr class="row83row82">
<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="row84row83">
<td class="col0">ODPair</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Контейнер для информации о сегменте перелёта. Может повторяться 1-6 раз. Поиск по расписанию использует только первый сегмент, поиск сложных перелётов и перелётов туда и обратно не поддерживается</td>
</tr>
<tr class="row85row84">
<td class="col0">DepDate</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата вылета, Формат ГГГГ-MM-DDTЧЧ:ММ:СС</td>
</tr>
<tr class="row86row85">
<td class="col0">DepAirp</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Трёх буквенный код города отправления или конкретного аэропорта в городе отправления.</td>
</tr>
<tr class="row87row86">
<td class="col0">ArrAirp</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Трёх буквенный код города прибытия или конкретного аэропорта в городе прибытия.</td>
</tr>
<tr class="row88row87">
<td class="col0">Count</td><td class="col1">да</td><td class="col2">число</td><td class="col3">Число пассажиров данного типа. Общее количество пассажиров всех типов должно быть не более 9.</td>
</tr>
<tr class="row89row88">
<td class="col0">Restrictions</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Контейнер дополнительной информации для поиска.</td>
</tr>
<tr class="row90row89">
<td class="col0">ClassPref</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Предпочитаемый класс перелёта, возможные значения: All - все, Economy - эконом, Business - бизнес, First - первый. Если не указан, то по умолчанию All.</td>
</tr>
<tr class="row91row90">
<td class="col0">OnlyAvail</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Искать только доступные, возможные значения: true - только доступные, false - все. Если не указан, то по умолчанию false.</td>
</tr>
<tr class="row92row91">
<td class="col0">AirVPrefs</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Обёртка для списка авиакомпаний, по которым будет или не будет проводиться поиск.</td>
</tr>
<tr class="row93row92">
<td class="col0">AirVPref</td><td class="col1">да</td><td class="col2">сложный</td><td class="col3">Информация об авиакомпании.</td>
</tr>
<tr class="row94row93">
<td class="col0">Include</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Индикатор, показывающий включить или исключить в результатах поиска перелёты данной авиакомпании: true - включить, false - исключить. Если не указан, то по умолчанию false.</td>
</tr>
<tr class="row95row94">
<td class="col0">IncludePrivateFare</td><td class="col1">нет</td><td class="col2">булевский</td><td class="col3">Включать приватные цены в результат или нет, возможные значения: true - включать, false - не включать. Если не указан, то по умолчанию false.</td>
</tr>
<tr class="row96row95">
<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>
<tr class="row97">
<td class="col0">ServiceTypeDataItems</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Уницифированный блок данных для хранения различного контента брони.</td> </tr> <tr class="row98"> <td class="col0">DataItem</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Контейнер для определенного типа передаваемой с запросом выписки информации.</td> </tr> <tr class="row99"> <td class="col0">Remark</td><td class="col1">нет</td><td class="col2">сложный</td><td class="col3">Контейнер для записи ремарок.</td> </tr> <tr class="row100"> <td class="col0">Type</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Тип веб-сервиса(поставщика)ремарки. При указании нескольких элементов ServiceType поиск будет проведён для каждого сервиса. Возможные Может принимать значения: Sirena2000 - поиск в Сирене; SirenaSchedule - поиск в Сирене по расписанию; SabreLFS - поиск в Сэйбр LFS; SabreBFM - поиск в Сэйбр BFM; SabreSchedule - поиск Сэйбр по расписанию; Galileo - поиск в Галилео; AmadeusMPTBS - поиск в АмадеусGeneral, Itinerary, Invoice, Historical, QueueControl, Vendor, NemoInternal, Confidential, MiniItinerary.</td> </tr> <tr class="row101"> <td class="col0">Text</td><td class="col1">нет</td><td class="col2">строка</td><td class="col3">Содержание ремаркаи.</td>
</tr>
</table>
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Параметры, используемые в ответах ====
<div class="mw-collapsible-content">
</tr>
<tr class="row2">
<td class="col0">ID </td><td class="col1">да </td><td class="col2">число</td><td class="col3">Номер бронирования в системе НемоNemo.</td>
</tr>
<tr class="row3">
</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>
<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">
</tr>
<tr class="row89">
<td class="col0">LastTicketDateTime</td><td class="col1">да</td><td class="col2">строка</td><td class="col3">Дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:ССпо московскому времени. Если бронирование не будет аннулировано или выписано до этого времени, то могут быть применены штрафы.</td>
</tr>
</div>
{{Attention|В системе реализован усовершенствованный API-проект «Nemo Connect», настоятельно рекомендуем подключаться по схеме, описанной в документации по [http://docs.nemo.travel/ ссылке]}}
== См. также ==
*[[Односторонний перелет]]*[[Односторонний перелетhttp://docs.nemo. Бронирование]travel Nemo Connect]*[[Подключение и просмотр результатов]]*[[Перелет туда-обратно]]*[[Сложный маршрут]]*[[АПИАгентский интерфейс прикладного программирования (Агентский API)]]*[[Агентский API ОтелейОтели]]
*[[Бронирование]]
*[[Электронный билет]]