Подтверждение отправки форм по СМС

Данная интеграция позволит вам разрешать отправку форм в баннере только после СМС-подтверждения номера телефона, указанного при заполнении формы пользователем.

Вебхук подтверждения телефона для форм – это отдельный вебхук, он никак не связан с подтверждением телефона при логине/регистрации.

Обратитесь к вашему product-менеджеру для подключения вашего вебхука отправки СМС-подтверждений.

Заведение сабтудея с поддержкой подтверждения заполнения по СМС

Product-менеджер заводит сабтудей с флагом "otpRequired": true

Механизм работы webhook - интеграции запроса СМС-кода

При первичном запросе СМС-кода сервер принимает название запрашиваемой формы:

{
  "formName": string, идентификатор формы
  "installId": string, уникальный идентификатор установки приложения
  "data": {
    ... поля формы, включая телефон ...
  }
}

В ответ сервер должен отправить сообщение об успешной/неуспешной отправке СМС-кода:

{
  "success": boolean
  "message": string, опицонально, только при неуспешной отправке
}

При повторных запросах СМС-кода формат запросов и ответов остается тем же самым.

Проверка СМС-кода в форме

Запрос

Проверка смс-кода происходит в момент экспорта формы. В форме появляется поле "otpCode" типа string, содержащее введенное пользователем значение смс-кода.

{
  "formName": string, имя формы
  "installId": string, уникальный идентификатор установки приложения
  "data": {
    ... поля формы ...
    "otpCode": string
  }
}

Ответ

В случае, если введенный пользователем код некорректен, необходимо в ответе передать поле "otpFailed" со значением true

Сервер отвечает на запрос экспорта формы с переданным смс-кодом в следующем формате:

{
  "success": boolean
  "otpFailed": boolean, успех/неуспех проверки смс-кода
}

Если код корректен и сохранение формы возможно, сервер отправляет флаг об успешном сохранении формы, также, как и при обычном экспорте форм.

{
  "success": true
}

Если по какой-либо причине сохранение данной формы стало невозможно после ввода кода смс (например, стал недоступен выбранный пользователем тайм-слот), то можно отправить сообщение об ошибке:

{
  "success": false,
  "message": "Извините, данное время для записи уже занято"
}

Last updated