Авторизация пользователей из внешних систем
Система Nemo.travel позволяет обращаться к ней как базе пользователей для авторизации из других систем (например, с форума на сайте, собственного ПО компании и т.п).
Для этого необходимо на адрес вида https://domain/api__external_authorization отправить POST-запрос в стандартном формате ответа об авторизуемом пользователе. При получении запроса система Nemo.Travel обрабатывает полученные данные, авторизует пользователя и перенаправляет пользователя на страницу поиска авиабилетов. В случае неудачной авторизации, у пользователя появится возможность стандартной авторизации по номеру телефона.
Запрос передачи авторизуемого пользователя
Системе Nemo.Travel можно передать информацию об авторизованном во внешней системе пользователе путем отправки на URL https://domain/api__external_authorization POST-запроса в следующем формате:
- POST — параметр
- Пример значения параметра:
{
"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"
}
directionTypeне является обязательным полем и означает допустимый тип перелета (если указан параметр OW, то пользователю доступны для бронирования только OW-перелеты).orderId— номер заказа, который сделан анонимом. Данный параметр(необязательный) привяжет созданный заказ к авторизованному пользователю и сделает его владельцем, чтобы можно было далее с этими данными работать.- Пример расчета hash на языке PHP:
$hash = hash('sha256', $request . $salt);
$request — значение POST-параметра из запроса, $salt — секретная строка, известная только получателю и отправителю.
В настройках Nemo.Travel должна быть включена возможность авторизации во внешней системе и задана секретная строка.
Секретное слово для генерации хеша будет отдельно выдано специалистами технической поддержки.
Особенности авторизации из внешних систем
- Привязка пользователей идет по домену. Если необходимо добавить пользователей в корневое агентство, то запросы будут идти на домен:
https://domain/tests/nsa/frame.php.
Если же нужно авторизовать пользователей для субагента, то необходимо прописать данному субагенту домен в настройках: Управление сайтом → Домены и протоколы в поле Доменное имя сайта для загрузки настроек.
- Чтобы после авторизации пользователя перенаправлять его не на страницу поиска, а на любую другую выбранную страницу, необходимо указать в json после хеша домен перенаправления.
- Авторизация пользователя происходит по его ID. Для добавления нового пользователя, которого нет в системе Nemo.Travel, нужно также указать его ID.
- Если данные пользователя переданы частично, они останутся без изменений до передачи новых данных.
- Если часть данных данных отличается от имеющихся в системе Nemo.Travel, то они перезапишутся.
- Если необходимо ограничить изменения пассажиров (туристов), подтянутых при авторизации, в разделе Управление продажами → Авиабилеты → Процессы → Форма бронирования можно включить настройку Режим работы: сотрудники авиакомпании. Если настройка включена и в процессе оформления заказа пользователь изменит ФИО или дату рождения подтянутого пассажира, то при попытке забронировать заказ пользователь получит ошибку «Разрешено бронирование пассажиров только из списка туристов».