Изменения

Перейти к навигации Перейти к поиску
Нет описания правки
[[Category:Функции]] [[Category:Интеграция]]Система Nemo {{NameSystemLink}} позволяет обращаться к ней как базе пользователей для авторизации из других систем (например , с форума на сайте, собственного ПО компании и т.п).
Для этого нужно сделать следующеенеобходимо на адрес вида <syntaxhighlight lang="text" enclose="none" style="font-size:1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">https://domain/api__external_authorization</syntaxhighlight> отправить POST-запрос в стандартном формате ответа об авторизуемом пользователе. При получении запроса система {{NameSystem}} обрабатывает полученные данные, авторизует пользователя и перенаправляет пользователя на страницу поиска авиабилетов. В случае неудачной авторизации, у пользователя появится возможность стандартной авторизации по номеру телефона.
необходимо === Запрос передачи авторизуемого пользователя ===Системе {{NameSystem}} можно передать информацию об авторизованном во внешней системе пользователе путем отправки на адрес вида URL <presyntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">https://domain/api__external_authorization</presyntaxhighlight> отправить POST-запрос запроса в стандартном следующем формате ответа об авторизуемом пользователе. При получении запроса система Nemo.Travel обрабатывает полученные данные, авторизует пользователя и перенаправляет пользователя на страницу поиска авиабилетов. В случае неудачной авторизации, у пользователя появится возможность стандартной авторизации по номеру телефона.:
* POST — параметр* Пример значения параметра: <pre>{ "user": {"id": 12,"email": "test@test.ru","phone": "79123456789","firstName": "Konstantin","lastName": "Konstantinov","middleName": "Konstantinovich","birthDate": "1990-11-15","nationality": "RU","gender": "F","docNumber": "6522232232","loyaltyNumber": "1231233213223"},"passengers": [{"id": 433,"firstName": "Alexander","lastName": "Alexandrov","middleName": "Alexandrovich","birthDate": "1990-10-05","nationality": "RU","gender": "M","docNumber": "7844454454","loyaltyNumber": "1231223213223"}],"restrictions": {"directionType": "OW"},"orderId": "630890"}</pre> <!--> <pre>?xml version ='1.0' encoding ='UTF-8' ?>
<definitions name='Authorization'
targetNamespace='http://example.org/Authorization'
</port>
</service>
</definitions></pre></!--> * <syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">directionType</syntaxhighlight> не является обязательным полем и означает допустимый тип перелета (если указан параметр OW, то пользователю доступны для бронирования только OW-перелеты).* <syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">orderId</syntaxhighlight> — номер заказа, который сделан анонимом. Данный параметр(необязательный) привяжет созданный заказ к авторизованному пользователю и сделает его владельцем, чтобы можно было далее с этими данными работать.* Пример расчета hash на языке PHP: <pre>$hash = hash('sha256', $request . $salt);</pre> <syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">$request</syntaxhighlight> — значение POST-параметра из запроса, <syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">$salt</syntaxhighlight> — секретная строка, известная только получателю и отправителю. В настройках {{NameSystem}} должна быть включена возможность авторизации во внешней системе и задана секретная строка. Секретное слово для генерации хеша будет отдельно выдано специалистами технической поддержки.  == Особенности авторизации из внешних систем == * Привязка пользователей идет по домену. Если необходимо добавить пользователей в корневое агентство, то запросы будут идти на домен:<syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">https://domain/tests/nsa/frame.php</syntaxhighlight>. Если же нужно авторизовать пользователей для субагента, то необходимо прописать данному субагенту домен в настройках: '''Управление сайтом''' → '''Домены и протоколы'''в поле {{Setting|Доменное имя сайта для загрузки настроек}}.* Чтобы после авторизации пользователя перенаправлять его не на страницу поиска, а на любую другую выбранную страницу, необходимо указать в json после хеша домен перенаправления. * Авторизация пользователя происходит по его ID. Для добавления нового пользователя, которого нет в системе {{NameSystem}}, нужно также указать его ID. * Если данные пользователя переданы частично, они останутся без изменений до передачи новых данных.* Если часть данных данных отличается от имеющихся в системе {{NameSystem}}, то они перезапишутся.* Если необходимо ограничить изменения пассажиров (туристов), подтянутых при авторизации, в разделе '''Управление продажами''' → '''Авиабилеты''' → '''Процессы''' → '''Форма бронирования''' можно включить настройку {{Setting|Режим работы: сотрудники авиакомпании}}. Если настройка включена и в процессе оформления заказа пользователь изменит ФИО или дату рождения подтянутого пассажира, то при попытке забронировать заказ пользователь получит ошибку «Разрешено бронирование пассажиров только из списка туристов».
== См. также ==
*[[Авторизация]]*[[Пользователь]]

Навигация

'