Форма обратной связи
Имя, телефон, email, сообщение. Для стоп-слов обязательно передавайте `content.message`.
data-action="feedback"
'content' => [
'name' => $name,
'phone' => $phone,
'message' => $message,
]
Инструкция разложена по сценариям форм и платформам. Главное правило одно: виджет стоит в форме, а решение принимает сервер через `siteverify`.
В кабинете добавьте домен, получите `site_key` и один раз сохраните `secret key`.
В HTML формы добавьте JS-скрипт и `div.ms-captcha` с нужным `data-action`.
Перед отправкой письма или созданием пользователя вызовите `siteverify`.
`success: true` - продолжить. `success: false` - остановить форму.
<script src="https://dev-sreda.ru/captcha/api.js" async defer></script>
<div class="ms-captcha"
data-sitekey="msk_live_site_key"
data-action="feedback"></div>
POST https://dev-sreda.ru/api/captcha/v1/siteverify
secret=mss_live_secret_key
response=mst_response_token
action=feedback
content[message]=Текст заявки
Имя, телефон, email, сообщение. Для стоп-слов обязательно передавайте `content.message`.
data-action="feedback"
'content' => [
'name' => $name,
'phone' => $phone,
'message' => $message,
]
Короткая форма: имя, телефон, удобный способ связи. Email обычно не обязателен.
data-action="callback"
'content' => [
'name' => $name,
'phone' => $phone,
'contact_method' => $method,
]
Передавайте товар, комментарий, телефон и email. Это защищает корзину, бронь и заявки.
data-action="order"
'content' => [
'product' => $product,
'phone' => $phone,
'comment' => $comment,
]
Минимальная форма с телефоном и ID товара. Проверка нужна до создания заказа.
data-action="one_click"
'content' => [
'phone' => $phone,
'product_id' => $productId,
]
Это отдельный строгий сценарий. Email обязателен, запрещенные email-домены проверяются именно здесь, а пользователь создается только после `success: true`.
<div class="ms-captcha"
data-sitekey="msk_live_site_key"
data-action="registration"></div>
'action' => 'registration',
'email' => $request->input('email'),
'content' => [
'name' => $request->input('name'),
'email' => $request->input('email'),
'phone' => $request->input('phone'),
]
Согласие на обработку ПДн проверяется отдельно серверной валидацией. Капча не заменяет чекбокс согласия.
Чистый PHP через cURL и Laravel через `Http::asForm()`.
docs/sreda-captcha/platforms/php-laravel.md
Своя тема, `admin-post.php`, AJAX, Contact Form 7 hook.
docs/sreda-captcha/platforms/wordpress.md
Шаблон формы плюс проверка в обработчике до события/письма/заказа.
docs/sreda-captcha/platforms/cms-php.md
SPA показывает виджет, backend Express вызывает `siteverify`.
docs/sreda-captcha/platforms/node-spa.md
Честный ответ: если сайт на Tilda просто отправляет формы средствами конструктора и у вас нет своего серверного обработчика, капча не сможет полноценно защитить форму.
`secret key` нельзя вставить в HTML/JS Tilda. Он должен храниться на сервере. Без сервера некому безопасно вызвать `siteverify`.
Нужен свой endpoint или webhook-прокси: Tilda отправляет форму туда, endpoint проверяет капчу, потом пересылает письмо/CRM.
При размещении экспортированной Tilda на своем хостинге можно подключить обычный PHP/Node обработчик.
Подробная инструкция и схема webhook-прокси вынесены отдельно.
docs/sreda-captcha/platforms/tilda-builders.md
docs/sreda-captcha-integration.md
docs/sreda-captcha/01-core-flow.md
docs/sreda-captcha/02-form-scenarios.md
docs/sreda-captcha/platforms/php-laravel.md
docs/sreda-captcha/platforms/wordpress.md
docs/sreda-captcha/platforms/cms-php.md
docs/sreda-captcha/platforms/node-spa.md
docs/sreda-captcha/platforms/tilda-builders.md
docs/sreda-captcha/07-testing-and-errors.md