Что это дает
Данная настройка позволяет получить разработчику персональные данные пользователя, тем самым упрощая процесс регистрации и, соответственно, увеличивая общую конверсию в подключение приложения.
Как включить
В Личном Кабинете, в режиме редактирования приложения перейти в «Настройки для разработки». Отметить чекбокс «Передавать данные пользователя при подключении интеграции». Пока чекбокс не отмечен, данные по умолчанию передаваться не будут.
Как передаются данные
При нажатии на кнопку «Подключить» в Маркетплейсе происходит переход по ссылке «Registration Redirect Url», указанной в Личном Кабинете партнера. К этой ссылке GET-параметром прикладывается параметр user_data
и user_data_sign
, помимо уже существующего параметра salon_id
. При отключении настройки подключение интеграции происходит по обычному флоу.
Как формируются данные
user_data
— это JSON, который кодируется алгоритмом base64.
user_data_sign
— это подпись, которую мы крайне рекомендуем проверять во избежание нежелательных регистраций от третьих лиц. Формируется он посредством шифрования алгоритмом SHA-256 раскодированного JSON (user_data
) вашим партнерским ключом (он находится в меню «Настройки аккаунта»).
Ниже приведен пример расшифровки данных на языке PHP:
<?php const PARTNER_TOKEN = '2t6u73mrh85btb8wgyfj'; $userData = $_GET['user_data']; // Строка eyJ1c2VyX2lkIjoxMjMsIm5hbWUiOiLQkNC90LTRgNC10Lkg0JjQstCw0L3QvtCyIiwiZW1haWwiOiJhbmRyZXlAZXhhbXBsZS5jb20iLCJwaG9uZSI6Ijc5OTkwMDA5OTAwIn0= // 1 этап - декодируем base64 $userData = base64_decode($userData); var_dump($userData); /** * Получаем после декодирования массив с информацией о пользователе * array(4) { * ["user_id"] => int(123) * ["name"] => string(25) "Alex Smith" * ["email"] => string(18) "alexsmith@example.com" * ["phone"] => string(11) "19990009900" * } */ // 2 этап - проверяем валидность подписи $isSignValid = $_GET['user_data_sign'] === hash_hmac('sha256', $userData, PARTNER_TOKEN); if (! $isSignValid) { die("Invalid sign!"); }
Комментарии