Интеграция СВАЙПЕР — WordPress, Bitrix, Tilda, Django, Laravel, Node.js
Возможности Сравнение Тарифы Блог Кейсы Интеграции Документация Начать бесплатно

Выберите стек

Виджет для всех платформ

Вставьте перед </body> на каждой странице с формами или глобально в шаблоне. Замените ваш_site_key на ключ из кабинета.

<script
  src="https://verifsite.ru/widget.js"
  data-site-key="ваш_site_key"
  data-api="https://verifsite.ru"
  data-lang="ru"
  data-mode="hard"
  defer></script>

После успешного свайпа виджет отправляет событие slider-captcha:passed с токеном в event.detail.token. Токен нужно проверить на сервере — примеры ниже.

Два способа подключения

Способ 1: плагин Insert Headers and Footers

  1. Установите плагин Insert Headers and Footers (или WPCode, Code Snippets).
  2. Откройте «Scripts in Footer» и вставьте скрипт виджета из блока выше.
  3. В кабинете СВАЙПЕР добавьте домен сайта в origins (https://ваш-сайт.ru).
  4. Для Contact Form 7 / WPForms — передавайте токен в скрытое поле и проверяйте на сервере.

Способ 2: footer.php темы

// themes/ваша-тема/footer.php — перед wp_footer()
<script
  src="https://verifsite.ru/widget.js"
  data-site-key=""
  data-api="https://verifsite.ru"
  data-lang="ru"
  defer></script>
<?php wp_footer(); ?>

Серверная проверка (PHP)

// functions.php — проверка при отправке формы
function swyper_verify_token( $token ) {
  $ch = curl_init( 'https://verifsite.ru/api/v1/introspect' );
  curl_setopt_array( $ch, [
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => json_encode([
      'siteKey' => 'ваш_site_key',
      'token' => $token
    ]),
    CURLOPT_HTTPHEADER => [
      'Content-Type: application/json',
      'X-Site-Secret: ваш_site_secret'
    ],
    CURLOPT_RETURNTRANSFER => true
  ]);
  $result = json_decode( curl_exec( $ch ), true );
  return ! empty( $result['valid'] );
}

Bitrix: шаблон и обработчик

  1. Откройте /local/templates/ваш_шаблон/footer.php (или header.php для глобального виджета).
  2. Вставьте widget.js перед закрывающим тегом шаблона.
  3. В настройках сайта Bitrix укажите домен в origins кабинета СВАЙПЕР.
  4. В обработчике формы (компонент main.feedback, заказ) — проверьте токен через introspect.
// footer.php шаблона
<script
  src="https://verifsite.ru/widget.js"
  data-site-key="ваш_site_key"
  data-api="https://verifsite.ru"
  data-lang="ru"
  defer></script>
// result_modifier.php или обработчик формы
use Bitrix\Main\Web\Json;

$token = $_POST['swyper_token'] ?? '';
$http = new \Bitrix\Main\Web\HttpClient();
$http->setHeader('Content-Type', 'application/json');
$http->setHeader('X-Site-Secret', 'ваш_site_secret');
$response = $http->post(
  'https://verifsite.ru/api/v1/introspect',
  Json::encode(['siteKey' => 'ваш_site_key', 'token' => $token])
);
$data = Json::decode($response);
if (empty($data['valid'])) {
  die('Captcha failed');
}

Tilda: без своего сервера

  1. Настройки сайта → Ещё → HTML-код для вставки внутри HEAD — не требуется для виджета.
  2. HTML-код перед </body> — вставьте скрипт виджета (глобально для всех страниц).
  3. Альтернатива: блок T123 «Embed HTML» внизу страницы с тем же скриптом.
  4. Добавьте домен Tilda (https://ваш-проект.tilda.ws или свой) в origins.
<script
  src="https://verifsite.ru/widget.js"
  data-site-key="ваш_site_key"
  data-api="https://verifsite.ru"
  data-lang="ru"
  data-mode="hard"
  defer></script>

Tilda не даёт серверной проверки на своём хостинге. Для критичных форм используйте Zero Block + webhook на свой бэкенд или Tilda CRM с дополнительной фильтрацией. Виджет отсекает большинство ботов до отправки.

Django: шаблон и view

# templates/base.html
<script
  src="https://verifsite.ru/widget.js"
  data-site-key="{{ SWYPER_SITE_KEY }}"
  data-api="https://verifsite.ru"
  data-lang="ru"
  defer></script>
# views.py
import requests
from django.conf import settings

def verify_swyper(token):
  r = requests.post(
    'https://verifsite.ru/api/v1/introspect',
    json={'siteKey': settings.SWYPER_SITE_KEY, 'token': token},
    headers={'X-Site-Secret': settings.SWYPER_SITE_SECRET},
    timeout=5
  )
  return r.json().get('valid')

def contact_view(request):
  if request.method == 'POST':
    token = request.POST.get('swyper_token')
    if not verify_swyper(token):
      return JsonResponse({'error': 'captcha'}, status=403)
    # ... обработка формы

Laravel: Blade и middleware

// resources/views/layouts/app.blade.php
<script
  src="https://verifsite.ru/widget.js"
  data-site-key="{{ config('services.swyper.site_key') }}"
  data-api="https://verifsite.ru"
  data-lang="ru"
  defer></script>
// app/Services/SwyperService.php
use Illuminate\Support\Facades\Http;

public function verify(string $token): bool
{
  $res = Http::withHeaders([
    'X-Site-Secret' => config('services.swyper.secret'),
  ])->post('https://verifsite.ru/api/v1/introspect', [
    'siteKey' => config('services.swyper.site_key'),
    'token' => $token,
  ]);
  return $res->json('valid') === true;
}

Node.js: Express + fetch

// public/index.html или EJS layout
<script
  src="https://verifsite.ru/widget.js"
  data-site-key="ваш_site_key"
  data-api="https://verifsite.ru"
  data-lang="ru"
  defer></script>
// routes/contact.js
const SITE_KEY = process.env.SWYPER_SITE_KEY;
const SITE_SECRET = process.env.SWYPER_SITE_SECRET;

async function verifySwyper(token) {
  const res = await fetch('https://verifsite.ru/api/v1/introspect', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-Site-Secret': SITE_SECRET
    },
    body: JSON.stringify({ siteKey: SITE_KEY, token })
  });
  const data = await res.json();
  return data.valid === true;
}

app.post('/api/contact', async (req, res) => {
  if (!await verifySwyper(req.body.token)) {
    return res.status(403).json({ error: 'captcha' });
  }
  // ...
});

Скрытое поле и событие

Для кастомных форм слушайте событие и записывайте токен перед submit:

window.addEventListener('slider-captcha:passed', function (e) {
  document.getElementById('swyper_token').value = e.detail.token;
});

<input type="hidden" name="swyper_token" id="swyper_token">

Полная документация API — на странице /docs. Вопросы по интеграции — /contact.

Подключите за 30 секунд

5 000 проверок в месяц бесплатно. Ключ и код вставки — в кабинете после регистрации.

Начать бесплатно