OAuth-авторизация в ЮKassa
Если вы хотите, чтобы в вашем приложении пользователь мог работать с платежами через ЮKassa, вам необходимо получить разрешение на выполнение операций от его имени — OAuth-токен. Для этого нужно реализовать авторизацию по протоколу OAuth 2.0.
 
Права для работы по API
Для взаимодействия с API ЮKassa от имени пользователя вам нужно получить разрешение на выполнение конкретных операций. Вы можете запросить такие права:
  • создание платежей;
  • подтверждение платежей;
  • просмотр информации о платежах;
  • отмена платежей;
  • создание возвратов;
  • просмотр информации о возвратах;
  • просмотр информации о комиссиях (просмотр магазином комиссии ЮKassa за операцию).
Выберите тот набор прав, который нужен вашему приложению для полноценной работы.
 
Описание процесса
Порядок OAuth-авторизации в ЮKassa:
  1. Перенаправьте пользователя на OAuth-сервер ЮKassa и получите код подтверждения.
  2. Обменяйте код подтверждения на OAuth-токен.
  3. Используйте полученный токен для обращения к API ЮKassa.
Процесс OAuth-авторизации в ЮKassa
 
Код подтверждения
Когда пользователь разрешит вам действовать от его имени, OAuth-сервер сформирует код подтверждения и передаст его одним из двух способов: в Callback URL или через пользователя, который вручную введет код в вашем приложении.
Callback URL: Вы предварительно указываете Callback URL — адрес страницы на вашей стороне, на которую пользователь вернется после выдачи разрешения. Когда пользователь выдаст права, OAuth-сервер добавит к Callback URL код подтверждения и перенаправит пользователя по полученному URL. Вам нужно извлечь код из URL. Этот способ подойдет тем приложениям, которые могут обрабатывать Callback URL.
Ввод кода пользователем: Когда пользователь выдаст права, OAuth-сервер отобразит на странице код подтверждения. Вам нужно дать пользователю возможность ввести код в вашем приложении. Этот способ подойдет тем приложениям, которые не могут обрабатывать Callback URL (например, Smart TV).
Полученный код подтверждения нужно обменять на OAuth-токен в течение пяти минут.
 
OAuth-токен
Время жизни OAuth-токена ЮKassa — 5 лет. После этого нужно заново запросить права и получить токен.
Если OAuth-токен устарел, ЮKassa вернет ошибку в момент проведения операции (платежа или возврата) через API ЮKassa.
OAuth-токен ЮKassa дает право выполнять финансовые операции от имени пользователя. Токен должен быть доступен только вашему приложению, поэтому не публикуйте его в открытых источниках и не сохраняйте в cookie браузера.
 
Порядок интеграции
Вам нужно зарегистрировать свое приложение на OAuth-сервере ЮKassa, а затем реализовать работу с OAuth-токенами.
 
Шаг 1. Зарегистрируйте приложение на OAuth-сервере
Для регистрации:
  1. Перейдите на страницу OAuth-авторизация в ЮKassa. Войдите в существующий профиль ЮKassa или создайте новый.
  2. На странице приложений для OAuth-авторизации нажмите Зарегистрировать.
  3. При регистрации приложения укажите его название, краткое описание, которое увидит пользователь, и ссылку на сайт приложения.
  4. Выберите способ получения кода подтверждения:
    • Если хотите извлекать токен из Callback URL, выберите Передавать в Callback URL и укажите адрес, на который нужно перенаправлять пользователя после выдачи разрешения.
    • Если хотите, чтобы пользователь вводил код вручную, выберите Показывать на странице.
  5. В разделе Доступы, в блоке API ЮKassa, выберите те права, которые необходимы для полноценной работы с вашим приложением. Права из других блоков выбирать не надо: для взаимодействия с API они не нужны.
  6. Нажмите Зарегистрировать.
Готово!
Для работы с OAuth-токенами понадобятся идентификатор (Client ID) пароль (Client Secret), которые вы получите после регистрации приложения. Они также будут доступны в свойствах приложения (нажмите название приложения, чтобы открыть его свойства).
 
Шаг 2. Реализуйте работу с токенами
Для отладки используйте тестовый магазин.
Готово!
 
Что почитать еще
Получение OAuth-токенаТестирование работы с OAuth-токенамиУправление зарегистрированными приложениями