Вебхуки и события: надежная синхронизация статусов платежей

Получить CloudPayments бесплатно

Table of contents

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

Вебхуки — это HTTP‑уведомления от провайдера в ваш backend, которые сигнализируют об изменении состояния ресурса: платеж совершился, возврат завершен, вывод средств выполнен. Они позволяют синхронизировать вашу базу с реальным результатом, избегая постоянного polling и ускоряя бизнес‑процессы (выдача доступа, печать чека, обновление статуса заказа).

Настройка endpoint и проверка подписи

Укажите публичный URL, принимающий POST JSON, например https://shop.example.ru/webhooks/payments. Каждый запрос содержит заголовки X-Event-Type, X-Request-Id и X-Signature (HMAC SHA‑256). Для валидации:

  1. Прочитайте сырое тело запроса без трансформаций.
  2. Вычислите HMAC по секрету endpoint.
  3. Сравните с X-Signature в постоянном времени. Ответ 200–204 подтверждает прием. Допускается ответ 202 с асинхронной обработкой через очередь.

Типы событий и полезные payload поля

Основные события:

Ретраи, порядок доставки и идемпотентность

Доставка событий «at least once»: возможны дубликаты и перестановки. Мы повторяем отправку по экспоненте до 24 часов или пока не получим 2xx. Рекомендуется:

Стратегии обработки: очереди, дедупликация, повтор

Схема: HTTP endpoint → очередь → worker. Worker проверяет подпись, делает проверку дубликатов, транзакционно обновляет БД и создает side‑effects (например, отправка письма). Для надежности используйте outbox‑pattern и транзакционные сообщения.

Защита вебхуков: сеть, WAF, аудит

Отладка и повторная отправка событий

В панели можно просматривать историю событий, payload, подписи и инициировать повторную отправку. В песочнице доступны симуляции сценариев: success, decline, chargeback, refund.

Типичные ошибки и чек‑лист надежности

Получить CloudPayments бесплатно