Интеграция с reCAPTCHA


Zenky.io позволяет защитить некоторые методы API с помощью reCAPTCHA v3.

Если интеграция активна и корректно настроена, клиентские приложения, работающие с API Zenky.io, должны выполнить интеграцию с reCAPTCHA для передачи токена в API Zenky.io.

При успешной валидации запроса метод API будет выполнен точно так же, как если бы был запрошен без интеграции с reCAPTCHA.

Если же валидация завершается ошибкой, метод и все связанные с ним действия не выполняется, а клиентскому приложению возвращается ошибка со HTTP-стаусом 401.

Настройка reCAPTCHA

Настройки reCAPTCHA доступны в панели администратора магазина.

Для корректной работы необходимо указать публичный ключ reCAPTCHA v3, секретный ключ reCAPTCHA v3, адрес сайта магазина и выбрать действия, которые необходимо защитить.

Для защиты доступны следующие действия:

Получение настроек

Для получения настроек reCAPTCHA на стороне клиентского приложения необходимо загрузить магазин вместе с его настройками, выполнив GET-запрос на URL https://api.zenky.io/v2/store?with=settings.

Объект настроек reCAPTCHA (data.settings.recaptcha) имеет следующую структуру:

Использование reCAPTCHA

Публичный ключ reCAPTCHA v3 необходимо использовать для использования SDK reCAPTCHA. В случае, если интеграция с reCAPTCHA активна, запросы на следующие адреса могут требовать передачи токена reCAPTCHA:

Действие HTTP-метод URL
passwordless_request POST https://api.zenky.io/v2/auth/passwordless/request
order_submission POST https://api.zenky.io/v2/orders/{orderId}/submit
feedback_request POST https://api.zenky.io/v2/feedback
callback_request POST https://api.zenky.io/v2/interactions/callback

Определить, требует ли то или иное действие передачи токена, можно по наличию объекта с соответствующим значением поля id в параметре actions.

В случае, если передача токена обязательна, к отправляемым данным должен быть добавлен объект recaptcha:

{
  "recaptcha": {
    "token": "RECAPTCHA_TOKEN"
  }
}