ПОДПИСЫВАЙТЕСЬ НА НАШ ТЕЛЕГРАМ-КАНАЛ @nemo_travel_official

Интеграция со сторонними системами АПИ: различия между версиями

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
(Выгрузка информации о заказах)
м (API Авиабилетов)
 
(не показано 11 промежуточных версий 4 участников)
Строка 1: Строка 1:
 
'''!!!СТАТЬЯ В РАЗРАБОТКЕ!!!'''
 
 
 
==API Авиабилетов==
 
==API Авиабилетов==
  
Для авторизации в системе, в запросе необходимо указать APIKey и ClientID. Эти данные можно узнать в разделе Администрирование - Веб-сервис. Авторизация. Там же можно включить/выключить нотификацию для действий сделанных через АПИ.
+
Чтобы авторизоваться в системе, в запросе необходимо указать APIKey и ClientID. Эти данные можно узнать в разделе Администрирование - Веб-сервис. Авторизация. Там же можно включить/выключить нотификацию для действий, совершенных через АПИ.
  
 
=== API Поиска авиабилетов ===
 
=== API Поиска авиабилетов ===
Строка 98: Строка 95:
 
</tr>
 
</tr>
 
<tr class="row24">
 
<tr class="row24">
<td>Type</td><td>да</td><td>строка</td><td>Тип пассажира возможные значения: ADT - взрослые, CNN - дети со взрослыми, UNN - дети без сопровождения взрослых, INF - младенцы,INS - младенцы с местом</td>
+
<td>Type</td><td>да</td><td>строка</td><td>Тип пассажира возможные значения: ADT - взрослые, CNN - дети, UNN - дети без сопровождения взрослых, INF - младенцы, INS - младенцы с местом</td>
  
 
</tr>
 
</tr>
Строка 105: Строка 102:
 
</tr>
 
</tr>
 
<tr class="row26">
 
<tr class="row26">
<td class="col0">LinkedTo </td><td class="col1">нет </td><td class="col2">целое число </td><td class="col3">Номер взрослого, к которому привязан младенец/ребёнок</td>
+
<td class="col0">LinkedTo </td><td class="col1">нет </td><td class="col2">целое число </td><td class="col3">Номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)</td>
  
 
</tr>
 
</tr>
Строка 695: Строка 692:
 
'''Выгрузка заказов''' — это экспорт данных заказа или заказов для различных компонентов системы Nemo. Модуль позволяет внешней системе получать данные по заказам для дальнейшей обработки.  
 
'''Выгрузка заказов''' — это экспорт данных заказа или заказов для различных компонентов системы Nemo. Модуль позволяет внешней системе получать данные по заказам для дальнейшей обработки.  
 
Подробнее о процессе выгрузки, настройках, форматах выгрузки для различных компонент можно прочитать в статье [[Выгрузка]]
 
Подробнее о процессе выгрузки, настройках, форматах выгрузки для различных компонент можно прочитать в статье [[Выгрузка]]
 
==Фиксация оплаты внешним запросом==
 
!!! не нашел, есть просто фиксация оплаты, но это вроде немного не то !!!
 
 
==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-описание которой располагается по адресу:
Строка 929: Строка 762:
 
</div></div>
 
</div></div>
  
 +
==Передача параметров в форму поиска (FastSearch)==
  
==Передача параметров в форму поиска==
 
{{Contract}}
 
 
В системе Nemo имеется возможность перенаправлять пользователей на страницу с уже заполненными параметрами поиска или сразу напрямую на результаты поиска.
 
В системе Nemo имеется возможность перенаправлять пользователей на страницу с уже заполненными параметрами поиска или сразу напрямую на результаты поиска.
  
=== Применение ===
+
Примеры FastSearch запросов и используемые переменные подробно описаны в статье [[FastSearch - передача параметров в форму]]
Эта технология может использоватся к примеру для формирования ссылок с баннеров, при клике на которые пользователь попадает на форму, на которой уже могут быть заполнены пункты назначения, даты, количество пассажиров и прочие параметры.
 
 
 
Также, при указании всех необходимых параметров, пользователя можно перебрасывать сразу на процесс поиска авиабилетов с указанными критериями.
 
 
 
Для использования заполнения формы из URL следует включить опцию: '''Администрирование''' → '''Настройки системы''' → '''''Включить FastSearch (передачу параметров поиска)'''''
 
 
 
После этого можно использовать ссылки на форму поиска вида
 
 
 
<pre>http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=BER&departure_date=21.10.2009&adults=1&children=0&input_vendors=SU,PS&param_by_get=on</pre>
 
 
 
=== Переменные FastSearch ===
 
Имена полей - такие же как имена инпутов на поисковой форме.
 
 
 
Следите за тем, чтобы значения соответствовали установленным в настройках ограничениям.
 
 
 
Переменные, которые предполагают в качестве значения "true" можно просто не включать в запрос, чтобы их логика не отработала.
 
 
 
==== Форма поиска ====
 
Чтобы перенаправить пользователя на страницу с заполненными параметрами поиска, необходимо указать get-параметр '''&param_by_get=on''', иначе сработают стандартные предустановки полей формы поиска.
 
 
 
==== Процесс поиска ====
 
Если вы указываете все необходимые для поиска параметры, то для того чтобы отправить пользователя сразу на результаты поиска, нужно указать get-параметр '''&fast_search=on'''.
 
 
 
==== Маршрут «В одну сторону» и «Туда и обратно» ====
 
{| style="width: 800px;" class="wikitable"
 
|-
 
! scope="col" width="300" | Элемент
 
! scope="col" width="250" | Переменная
 
! scope="col" width="250" | Допустимые значения
 
|-
 
| Тип маршрута
 
| trip_type
 
| style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| width="80" | OW
 
| В одну сторону
 
|-
 
| RT
 
| Туда и обратно
 
|-
 
| CR
 
| Сложный маршрут
 
|}
 
 
 
|-
 
| Пункт вылета
 
| out_iata
 
| style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| width="80" | MOW
 
| Код аэропорта ИАТА
 
|}
 
 
 
|-
 
| Пункт прилета
 
| in_iata
 
| style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| width="80" | LED
 
| Код аэропорта ИАТА
 
|}
 
 
 
|-
 
| Дата вылета
 
| departure_date
 
| style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| width="80" | 25.10.2013
 
| Дата в формате ДД.ММ.ГГГГ
 
|}
 
 
 
|-
 
| Дата обратного вылета
 
| back_departure_date
 
| style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| width="80" | 27.10.2013
 
| Дата в формате ДД.ММ.ГГГГ
 
|}
 
 
 
|-
 
| Время вылета
 
| prefered_departure_type
 
| style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| width="80" | not_important
 
| Любое время
 
|-
 
| morning
 
| Утром
 
|-
 
| afternoon
 
| Днем
 
|-
 
| evening
 
| Вечером
 
|-
 
| night
 
| Ночью
 
|}
 
 
 
|-
 
| Время обратного вылета
 
| prefered_back_departure_type
 
| style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| width="80" | not_important
 
| Любое время
 
|-
 
| morning
 
| Утром
 
|-
 
| afternoon
 
| Днем
 
|-
 
| evening
 
| Вечером
 
|-
 
| night
 
| Ночью
 
|}
 
 
 
|-
 
| Поиск только среди прямых рейсов ("Без пересадок")
 
| direct
 
| true
 
|}
 
 
 
===== Дополнительные параметры =====
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="300" | Элемент
 
! scope="col" width="250" | Переменная
 
! scope="col" width="250" | Допустимые значения
 
|-
 
| Нижнее ограничение по цене по умолчанию
 
| money_from
 
| style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| width="80" | 0
 
| Целое число большее либо равное 0
 
|}
 
 
 
|-
 
| Верхнее ограничение по цене по умолчанию
 
| money_to
 
| style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| width="80" | 10000
 
| Целое число большее 0
 
|}
 
  
|-
+
FastSearch так же работает и для отелей, подробности в статье [[Fast Search для отелей]]
| Поиск в окружных датах
 
| district_date
 
| true
 
|-
 
| Диапазон соседних дат +(-) [дней]
 
| date_range
 
| style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| width="80" | 1
 
| Целое число большее [1..3]
 
|}
 
 
 
|-
 
| Поиск по соседним аэропортам
 
| district_airport
 
| true
 
|-
 
| Класс обслуживания
 
| class
 
| style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| econom
 
| Перелет эконом-классом
 
|-
 
| business
 
| Перелет бизнес-классом
 
|-
 
| first
 
| Перелет первым-классом
 
|}
 
 
 
|-
 
| Фильтр по авиакомпании 
 
| input_vendors
 
| style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| width="80" | SU,PS
 
| Коды авиакомпании ИАТА через запятую без пробелов
 
|}
 
 
 
|-
 
| Сортировка
 
| sort
 
| style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| width="80" | price
 
| По стоимости
 
|-
 
| out_date
 
| По расписанию
 
|-
 
| company
 
| По авиакомпании
 
|-
 
| fltduration
 
| По длительности перелёта
 
|}
 
 
 
|}
 
 
 
==== Сложный маршрут ====
 
<span style="font-size: large; color: rgb(255, 0, 0);">!&nbsp;</span><span style="background-color: rgb(255, 240, 245);">&nbsp;Данные переменные применимы только для сложного маршрута ('''trip_type=CR''').</span>
 
 
 
'''[X]''' - номера отдельных перелетов. Нумерация начинается с 0, что означает первый перелет.
 
 
 
Максимальное количество сегментов для сложного маршрута определяется одноименной настройкой в разделе '''Авиабилеты ⇨ Поиск ⇨ Ограничения поиска'''.
 
 
 
{| style="width: 800px;" class="wikitable"
 
|-
 
! scope="col" width="300" | Элемент
 
! scope="col" width="250" | Переменная
 
! scope="col" width="250" colspan="2" | Допустимые значения
 
|-
 
| Пункты вылета
 
| cr_iata[0]<br/>
 
cr_iata[1]<br/>
 
...<br/>
 
cr_iata[8]
 
| width="80" | MOW
 
| Код аэропорта ИАТА
 
|-
 
| Пункты прилета
 
| cr_back_iata[0]<br/>
 
cr_back_iata[1]<br/>
 
...<br/>
 
cr_back_iata[8]
 
| width="80" | LED
 
| Код аэропорта ИАТА
 
|-
 
| Дата вылета
 
| cr_date[0]<br/>
 
cr_date[1]<br/>
 
...<br/>
 
cr_date[8]
 
| width="80" | 25.10.2013
 
| Дата в формате ДД.ММ.ГГГГ
 
|-
 
| Время вылета
 
| cr_pref_departure[0]<br/>
 
cr_pref_departure[1]<br/>
 
...<br/>
 
cr_pref_departure[8]
 
|  colspan="2" style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| width="80" | not_important
 
| Любое время
 
|-
 
| morning
 
| Утром
 
|-
 
| afternoon
 
| Днем
 
|-
 
| evening
 
| Вечером
 
|-
 
| night
 
| Ночью
 
|}
 
 
 
|-
 
| Класс обслуживания
 
| cr_class[0]<br/>
 
cr_class[1]<br/>
 
...<br/>
 
cr_class[8]
 
| colspan="2" style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| econom
 
| Перелет эконом-классом
 
|-
 
| business
 
| Перелет бизнес-классом
 
|-
 
| first
 
| Перелет первым классом
 
|}
 
 
 
|-
 
| Окружные аэропорты (±XX км)
 
| cr_district_airport[0]<br/>
 
cr_district_airport[1]<br/>
 
...<br/>
 
cr_district_airport[8]
 
| colspan="2" | true
 
|}
 
 
 
==== Пассажиры ====
 
{| style="width: 800px" class="wikitable"
 
|-
 
! scope="col" width="300" | Элемент
 
! scope="col" width="250" | Переменная
 
! scope="col" width="250" | Допустимые значения
 
|-
 
| Взрослых от 12 лет
 
| adults
 
| style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| width="80" | 1
 
| Целое число большее либо равное 0
 
|}
 
 
 
|-
 
| Детей от 2 до 12 лет
 
| children
 
| style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| width="80" | 1
 
| Целое число большее либо равное 0
 
|}
 
 
 
|-
 
| Младенцев до 2 лет
 
| infants
 
| style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| width="80" | 1
 
| Целое число большее либо равное 0
 
|}
 
 
 
|-
 
| Младенцев с местом до 2 лет
 
| infants_seat
 
| style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| width="80" | 1
 
| Целое число большее либо равное 0
 
|}
 
 
 
|-
 
| Молодых от 12 до 24 лет <br/>
 
| youths
 
| style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| width="80" | 1
 
| Целое число большее либо равное 0<br/>
 
<span style="font-size: large; color: rgb(255, 0, 0);">!&nbsp;</span><span style="background-color: rgb(255, 240, 245);">&nbsp;Данный параметр доступен только в новой базовой теме.</span>
 
|}
 
 
 
|-
 
| Пожилых от 65 лет
 
| seniors
 
| style="padding: 0;" |
 
 
 
{| style="width: 257px; height: 100%; margin: -1px;" class="wikitable"
 
|-
 
| width="80" | 1
 
| Целое число большее либо равное 0<br/>
 
<span style="font-size: large; color: rgb(255, 0, 0);">!&nbsp;</span><span style="background-color: rgb(255, 240, 245);">&nbsp;Данный параметр доступен только в новой базовой теме.</span>
 
|}
 
 
 
|}
 
 
 
==== Примеры FastSearch запросов ====
 
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
 
<u>'''В одну сторону (простой)'''</u>
 
<div class="mw-collapsible-content">
 
'''Рейс в одну сторону из Москвы в Париж, дата вылета: 25.10.2013, без пересадок, 1 взрослый'''
 
* '''''форма поиска'''''
 
<pre>http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013
 
&direct=true&adults=2&param_by_get=on</pre>
 
* '''''процесс поиска'''''
 
<pre>http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013
 
&direct=true&adults=2&param_by_get=on&fast_search=on</pre>
 
</div>
 
</div>
 
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
 
<u>'''В одну сторону (с фильтрами по авиакомпаниям)'''</u>
 
<div class="mw-collapsible-content">
 
'''Рейс в одну сторону из Москвы в Париж, дата вылета 25.10.2013, Пассажиры: пожилых - 2, Авиакомпании: Аэрофлот - Российские авиалинии, Международные Авиалинии Украины'''
 
* '''''форма поиска'''''
 
<pre>http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013
 
&seniors=2&input_vendors=SU,PS&param_by_get=on</pre>
 
* '''''процесс поиска'''''
 
<pre>http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013
 
&seniors=2&input_vendors=SU,PS&param_by_get=on&fast_search=on</pre>
 
</div>
 
</div>
 
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
 
<u>'''Туда-обратно'''</u>
 
<div class="mw-collapsible-content">
 
'''Рейсы туда-обратно Москва ↔ Париж, дата вылета: 25.10.2013, обратно: 27.10.2013, класс перелета: Эконом, Пассажиры: взрослых - 2 младенцев - 1'''
 
* '''''форма поиска'''''
 
<pre>http://SITEMANE/?trip_type=RT&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013
 
&back_departure_date=27.10.2013&class=econom&adults=2&infants=1&param_by_get=on</pre>
 
* '''''процесс поиска'''''
 
<pre>http://SITEMANE/?trip_type=RT&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013
 
&back_departure_date=27.10.2013&class=econom&adults=2&infants=1&param_by_get=on&fast_search=on</pre>
 
</div>
 
</div>
 
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
 
<u>'''Сложный маршрут'''</u>
 
<div class="mw-collapsible-content">
 
'''из Москвы в Париж, дата вылета 25.10.2013,'''<br/>
 
'''из Парижа в Санкт-Петербург, дата вылета 26.10.2013,'''<br/>
 
'''из Санкт-Петербурга в Москву, дата вылета 29.10.2013,'''<br/>
 
'''1 взрослый'''
 
* '''''форма поиска'''''
 
<pre>http://SITEMANE/?trip_type=CR
 
&cr_iata[0]=MOW&cr_back_iata[0]=PAR&cr_date[0]=25.10.2013
 
&cr_iata[1]=PAR&cr_back_iata[1]=LED&cr_date[1]=26.10.2013
 
&cr_iata[2]=LED&cr_back_iata[2]=MOW&cr_date[2]=29.10.2013
 
&adults=1&param_by_get=on</pre>
 
* '''''процесс поиска'''''
 
<pre>http://SITEMANE/?trip_type=CR
 
&cr_iata[0]=MOW&cr_back_iata[0]=PAR&cr_date[0]=25.10.2013
 
&cr_iata[1]=PAR&cr_back_iata[1]=LED&cr_date[1]=26.10.2013
 
&cr_iata[2]=LED&cr_back_iata[2]=MOW&cr_date[2]=29.10.2013
 
&adults=1&param_by_get=on&fast_search=on</pre>
 
</div>
 
</div>
 
 
 
=== Взаимодействие FastSearch и Метрики ===
 
Для того, чтобы переход был зарегистрирован системой как переход с определенного источника, необходимо передать в запросе дополнительный параметр utm_source (Metrics Session ID). Например:
 
<pre>http://SITEMANE/?(some_parameters=vals&)utm_source=source_alias</pre>
 
где source_alias - алиас источника переходов. [[Модуль метрики | Дополнительная информация по использованию модуля Метрики]].
 
 
 
==== Пример FastSearch запроса с параметром для модуля Метрики ====
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
 
<u>'''FastSearch (с учетом источника перехода для модуля Метрики)'''</u>
 
<div class="mw-collapsible-content">
 
'''Рейс в одну сторону из Москвы в Париж, дата вылета: 25.10.2013, без пересадок, 1 взрослый (с учетом источника перехода для модуля Метрики).'''
 
* '''''форма поиска'''''
 
<pre>
 
http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013
 
&direct=true&adults=2&param_by_get=on&utm_source=source_alias
 
</pre>
 
* '''''процесс поиска'''''
 
<pre>
 
http://SITEMANE/?trip_type=OW&out_iata=MOW&in_iata=PAR&departure_date=25.10.2013
 
&direct=true&adults=2&param_by_get=on&fast_search=on&utm_source=source_alias
 
</pre>
 
</div>
 
</div>
 
  
 +
<!-- Т.к. это внутренний формат обмена данными между Немо и одним клиентом, то данную инфу скроем в комментарии
 
==Проверка в сторонней системе возможности тикетинга==
 
==Проверка в сторонней системе возможности тикетинга==
  
При выписки билета через стороннюю систему 1С, отправляется запрос "GetDebtCounterparty", который спрашивает, можно ли с счета в 1С списать средства для оплаты. В ответе содержится заключение от 1С, в случае если ошибок нет, в ответе будет  
+
При выписки билета через стороннюю систему 1С, отправляется запрос "GetDebtCounterparty", который спрашивает, можно ли с счета в 1С списать средства для оплаты. В ответе содержится заключение от 1С, в случае если ошибок нет, то в ответе будет  
 
<pre><m:Opportunity>Да</m:Opportunity></pre>
 
<pre><m:Opportunity>Да</m:Opportunity></pre>
 
Пример запроса "GetDebtCounterparty"
 
Пример запроса "GetDebtCounterparty"
Строка 1576: Строка 920:
 
</pre>
 
</pre>
 
</div></div>
 
</div></div>
 +
 +
-->

Текущая версия на 14:43, 28 ноября 2018

API Авиабилетов

Чтобы авторизоваться в системе, в запросе необходимо указать APIKey и ClientID. Эти данные можно узнать в разделе Администрирование - Веб-сервис. Авторизация. Там же можно включить/выключить нотификацию для действий, совершенных через АПИ.

API Поиска авиабилетов

Это сервис внутри Nemo, который позволяет получить результаты поиска.

Для подключения к веб-службе поиска авиабилетов необходимо открыть доступ нужному пользователю. Это можно сделать в разделе «Администрирование»«Веб-служба. Авторизация».

Подробнее можно узнать в специальной статье Веб-служба поиска авиабилетов

API Бронирования авиабилетов

Сервис позволяет забронировать/войдировать авиабилет с использованием API, описание подключения, запроса, ответов находится в этой статье Веб-служба бронирования

API Выписки авиабилетов

Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета. Веб-служба выписки

API Оплаты

Сервис внутри Nemo, который предназначен для выполнения различных операций, относящихся к оплате заказов. Агентские АПИ оплаты

API Дополнительных запросов авиабилетов

К дополнительных запросам относятся проверка на доступность, запрос на обновление заказа, чтение тарифных правил. Дополнительные запросы АПИ авиабилетов

Используемые параметры

развернуть

Параметры, используемые в запросах

развернуть

Параметры, используемые в ответах

API Отелей

Агентский API Отелей - система, которая предоставляет возможность поиска и бронирования отелей а так же получение информации о времени и размерах штрафов, уникальной информации об отеле, получение статической информации.

Подробнее можно узнать в нашей специальной статье Агентский АПИ отелей


Выгрузки статистики продаж через API (Метапоиск)

Метапоисковая система (метапоисковая машина, метапоисковик) — это поисковая система, которая в отличие от классических поисковых машин не имеет собственной базы данных и собственного поискового индекса, а формирует поисковую выдачу за счет смешивания и переранжирования результатов поиска других поисковых систем.

В разделе статистики заказов из метапоисков можно получить данные по статистике метапоиска (по источнику переходов модуля метрики) за определенный период бронирования заказов в виде файла данных в формате XML.

Можно получить список заказов с их статусом (забронирован, выписан, аннулирован), сделанных через метапоисковую систему.

Подробнее можно узнать в статье посвященной взаимодействию с метопоисковиками Взаимодействие с метапоисковиками

Выгрузка информации о заказах

Выгрузка заказов — это экспорт данных заказа или заказов для различных компонентов системы Nemo. Модуль позволяет внешней системе получать данные по заказам для дальнейшей обработки. Подробнее о процессе выгрузки, настройках, форматах выгрузки для различных компонент можно прочитать в статье Выгрузка

API Синхронизации пользователей и субагентов

Назначение данного модуля — обеспечение взаимодействия между сторонней программой (например, системой автоматизации туроператора "САМО-тур") и Nemo в части синхронизации списка B2B-пользователей. Модуль является компонентом, включаемым и отключаемым из административной части.

О механизме авторизации B2B-пользователей, синхронизации учетных записей можно прочитать в статье Синхронизация пользователей

API Кросс­авторизации

Авторизация пользователей из внешних систем — Система Nemo позволяет обращаться к ней как базе пользователей для авторизации из других систем (например форума на сайте, собственного ПО компании и т.п)

Для этого нужно подключиться к веб-службе авторизации, WSDL-описание которой располагается по адресу:

http://hostname/authorization_reol.wsdl

развернуть
Запрос

Передача параметров в форму поиска (FastSearch)

В системе Nemo имеется возможность перенаправлять пользователей на страницу с уже заполненными параметрами поиска или сразу напрямую на результаты поиска.

Примеры FastSearch запросов и используемые переменные подробно описаны в статье FastSearch - передача параметров в форму

FastSearch так же работает и для отелей, подробности в статье Fast Search для отелей