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

Изменения

Интеграция со сторонними системами АПИ

30 577 байт убрано, 14:43, 28 ноября 2018
м
API Авиабилетов
 
'''!!!СТАТЬЯ В РАЗРАБОТКЕ!!!'''
 
==API Авиабилетов==
Для авторизации Чтобы авторизоваться в системе, в запросе необходимо указать APIKey и ClientID. Эти данные можно узнать в разделе Администрирование - Веб-сервис. Авторизация. Там же можно включить/выключить нотификацию для действий сделанных , совершенных через АПИ.
=== API Поиска авиабилетов ===
</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>
'''Выгрузка заказов''' — это экспорт данных заказа или заказов для различных компонентов системы Nemo. Модуль позволяет внешней системе получать данные по заказам для дальнейшей обработки.
Подробнее о процессе выгрузки, настройках, форматах выгрузки для различных компонент можно прочитать в статье [[Выгрузка]]
 
==Фиксация оплаты внешним запросом==
!!! не нашел, есть просто фиксация оплаты, но это вроде немного не то !!!
 
==API универсального платежного шлюза==
!!! сказано спросить у КШ, я спросил, у него нет информации !!!
== API Синхронизации пользователей и субагентов ==
Назначение данного модуля — обеспечение взаимодействия между сторонней программой (например, системой автоматизации туроператора "САМО-тур") и Nemo в части синхронизации списка 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 Кросс­авторизации==
'''Авторизация пользователей из внешних систем''' — Система Nemo позволяет обращаться к ней как базе пользователей для авторизации из других систем (например форума на сайте, собственного ПО компании и т.п)
Для этого нужно подключиться к веб-службе авторизации, WSDL-описание которой располагается по адресу:
</div></div>
==Передача параметров в форму поиска (FastSearch)==
==Передача параметров в форму поиска==
{{Contract}}
В системе Nemo имеется возможность перенаправлять пользователей на страницу с уже заполненными параметрами поиска или сразу напрямую на результаты поиска.
=== Применение ===Эта технология может использоватся к примеру для формирования ссылок с баннеров, при клике на которые пользователь попадает на форму, на которой уже могут быть заполнены пункты назначения, даты, количество пассажиров и прочие параметры. Также, при указании всех необходимых параметров, пользователя можно перебрасывать сразу на процесс поиска авиабилетов с указанными критериями. Для использования заполнения формы из 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| Дата используемые переменные подробно описаны в формате ДД.ММ.ГГГГ|} |статье [[FastSearch -| Дата обратного вылета| 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|}форму]]
|-| Поиск в окружных датах| 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 - алиас источника переходов. статье [[Модуль метрики | Дополнительная информация по использованию модуля МетрикиFast Search для отелей]]. ==== Пример 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С, в случае если ошибок нет, то в ответе будет
<pre><m:Opportunity>Да</m:Opportunity></pre>
Пример запроса "GetDebtCounterparty"
</pre>
</div></div>
 
-->
1382
правки
'