Как использовать вебхуки для платежей в WordPress

Вебхуки — мощный инструмент для автоматизации обработки платежей в WordPress. Они позволяют получать уведомления от платежных систем о статусах транзакций и выполнять необходимые действия на сайте без вмешательства пользователя. В этой статье подробно разберём, как правильно настроить и использовать вебхуки для платежей, приведём примеры кода и советы по безопасности.

Что такое вебхуки и зачем они нужны в платежах

Вебхук — это HTTP-запрос, который платежная система отправляет на заранее заданный URL вашего сайта при наступлении определённых событий, например, успешной оплаты, отмены транзакции или возврата средств. Это позволяет вашему сайту моментально реагировать на изменения статусов платежей.

Без вебхуков часто приходится полагаться на ручные проверки или запросы к API, что замедляет процесс обработки и может привести к ошибкам. Вебхуки делают работу с платежами в WordPress более надёжной и автоматизированной.

Типичные действия, которые можно выполнить с помощью вебхуков:

  • Автоматическое обновление статуса заказа;
  • Начисление бонусов или активация подписки;
  • Отправка уведомлений клиенту и администратору;
  • Логирование и аналитика платежей.

Как настроить приём вебхуков в WordPress

Для приёма вебхуков нужно создать специальный endpoint — URL, на который будут приходить запросы от платежной системы. Рассмотрим создание такого endpoint на примере плагина и кастомного кода.

Создание endpoint через add_rewrite_rule

Можно зарегистрировать endpoint с помощью add_rewrite_rule и обработать запросы в собственном обработчике:

function wppay_add_webhook_endpoint() {
    add_rewrite_rule('^wppay-webhook/?$', 'index.php?wppay_webhook=1', 'top');
}
add_action('init', 'wppay_add_webhook_endpoint');

function wppay_add_query_vars($vars) {
    $vars[] = 'wppay_webhook';
    return $vars;
}
add_filter('query_vars', 'wppay_add_query_vars');

function wppay_template_redirect() {
    global $wp_query;
    if (isset($wp_query->query_vars['wppay_webhook'])) {
        wppay_handle_webhook_request();
        exit;
    }
}
add_action('template_redirect', 'wppay_template_redirect');

function wppay_handle_webhook_request() {
    // Получаем данные из POST
    $payload = file_get_contents('php://input');
    $data = json_decode($payload, true);

    // Проверяем подпись, чтобы убедиться, что запрос от платежной системы
    if (!wppay_verify_signature($_SERVER['HTTP_X_SIGNATURE'], $payload)) {
        status_header(403);
        echo 'Invalid signature';
        return;
    }

    // Обрабатываем событие
    if ($data['event'] === 'payment_succeeded') {
        // Логика обработки успешного платежа
        $order_id = intval($data['order_id']);
        update_post_meta($order_id, '_payment_status', 'paid');
        // Дополнительные действия
    }

    status_header(200);
    echo 'Webhook received';
}

function wppay_verify_signature($signature, $payload) {
    $secret = 'ваш_секретный_ключ_из_платёжной_системы';
    $hash = hash_hmac('sha256', $payload, $secret);
    return hash_equals($signature, $hash);
}

После добавления кода нужно обновить правила перезаписи (перейти в Настройки → Постоянные ссылки и сохранить).

Использование плагина для вебхуков

Если не хотите писать код, можно использовать плагин Clearfy Pro. В нём есть модуль для управления вебхуками, где можно настроить приём, фильтрацию и обработку запросов. Это удобно для пользователей без глубоких технических знаний.

Обработка данных из вебхуков: примеры и лучшие практики

После приёма данных нужно правильно их обработать. Рассмотрим типовые сценарии.

Обновление статуса заказа

Часто платежные системы присылают ID заказа и статус платежа. Используем функцию update_post_meta для изменения мета-поля:

function wppay_update_order_status($order_id, $status) {
    update_post_meta($order_id, '_payment_status', $status);
    // Можно добавить логику уведомлений
}

Важно учитывать, что данные должны быть валидированы и соответствовать внутренним идентификаторам заказов.

Отправка уведомлений после платежа

После успешной оплаты полезно отправить письмо клиенту и администратору. Пример:

function wppay_send_payment_notifications($order_id) {
    $order = get_post($order_id);
    $email = get_post_meta($order_id, '_customer_email', true);
    $subject = 'Ваш платеж успешно обработан';
    $message = 'Спасибо за оплату заказа №' . $order_id . '.';
    wp_mail($email, $subject, $message);

    // Уведомление админу
    $admin_email = get_option('admin_email');
    wp_mail($admin_email, 'Платеж получен', 'Оплата заказа №' . $order_id . ' выполнена успешно.');
}

Безопасность при работе с вебхуками

Безопасность — ключевой момент при работе с вебхуками, так как к endpoint могут обращаться злоумышленники.

Основные меры безопасности:

  • Проверка подписи запросов. Почти все платежные системы присылают подпись или токен, который нужно сверять с локальным секретом.
  • Использование HTTPS. Endpoint должен работать по защищённому протоколу, чтобы исключить перехват данных.
  • Ограничение доступа по IP. Если платежная система предоставляет список IP, с которых приходят запросы, можно ограничить доступ.
  • Логирование всех запросов. Это поможет быстро выявлять и устранять подозрительную активность.

Интеграция с плагинами WPGPT и Expert Review для улучшения обработки платежей

Для расширения функционала можно использовать плагины WPGPT и Expert Review. Например, WPGPT можно использовать для автоматического анализа данных платежей и генерации отчётов с помощью ИИ, а Expert Review — для сбора отзывов после оплаты.

Пример вызова функции из WPGPT для анализа платежа:

$report = wppay_wpgpt_generate_report($order_id);
echo $report;

Заключение по теме использования вебхуков в WordPress для платежей

Использование вебхуков позволяет сделать процесс обработки платежей максимально автоматизированным, быстрым и безопасным. Настроив endpoint, реализовав проверку подписи и обработку данных, вы значительно улучшите UX и упростите администрирование сайта.

Рекомендуется также периодически тестировать работу webhook и обновлять безопасность. А для расширения возможностей изучите плагины из экосистемы WPSHOP.

Как сделать подтверждение платежа в WordPress через вебхуки
23.01.2026
Как отображать платежные данные в админке WordPress
17.02.2026
Как автоматизировать управление возвратами в WordPress
22.02.2026
Как создать собственный платежный шорткод в WordPress
09.11.2025
Автоматизация управления возвратами в WordPress для платежных систем
26.01.2026