Что такое Вебхук?

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

Простым языком: когда ваш сайт перенаправляет пользователя оплатить заказ - он теряет с ним связь, ведь оплата происходит на сайте платежной системы. Чтобы ваш сайт "понял", что оплата прошла успешно, платежный сервис выполнит к нему отдельный запрос с передачей информации об оплате. Такой запрос называется вебхук.

Как работает вебхук?

Вебхук работает по принципу "обратного вызова". Когда происходит определенное событие (например, клиент совершает платеж), платежная система отправляет HTTP-запрос (обычно POST) на заранее указанный URL вашего сервера. Этот URL называется endpoint.

Пример работы вебхука

  1. Клиент совершает платеж через ваш интернет-магазин.
  2. Платежная система обрабатывает платеж и фиксирует событие (например, "платеж успешен").
  3. Платежная система отправляет данные о событии на ваш сервер через вебхук.
  4. Ваш сервер принимает данные и выполняет необходимые действия (например, обновляет статус заказа).

Важно: Вебхуки работают в реальном времени, что позволяет мгновенно реагировать на изменения.

Зачем нужны вебхуки?

Вебхуки используются для автоматизации процессов и синхронизации данных между системами. В платежных системах они помогают:

  • Обновлять статус заказа в реальном времени.
  • Обрабатывать ошибки платежей (например, если платеж не прошел).
  • Отправлять уведомления клиентам (например, о успешной оплате).
  • Интегрировать платежную систему с CRM, ERP или другими системами.

Как настроить вебхук?

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

1. Создайте endpoint

Endpoint — это URL на вашем сервере, который будет принимать данные от платежной системы. Например:

https://вашмагазин.ру/api/webhook

Убедитесь, что endpoint доступен извне и может принимать POST-запросы.

2. Настройте вебхук в платежной системе

В личном кабинете платежной системы укажите URL вашего endpoint и выберите события, на которые хотите получать уведомления (например, "платеж успешен", "платеж отменен").

3. Обеспечьте безопасность

Чтобы защитить endpoint от несанкционированного доступа:

  • Используйте проверку подписи (например, HMAC).
  • Ограничьте доступ по IP-адресам (если платежная система предоставляет список своих IP).
  • Используйте HTTPS для шифрования данных.
  • Реализуйте проверку данных заказа (идентификатор заказа, сумма, и др).

4. Протестируйте вебхук

После настройки обязательно протестируйте вебхук:

  • Совершите тестовый платеж.
  • Проверьте, что ваш сервер получил данные и корректно их обработал.
  • Убедитесь, что статус заказа обновился в вашей системе.

Пример данных вебхука

Данные, которые отправляет платежная система, обычно содержат информацию о платеже. Например:

{ "event": "payment_success", "payment_id": "123456", "amount": 1000, "currency": "RUB", "status": "completed", "timestamp": "2023-10-01T12:34:56Z"}

Эти данные можно использовать для обновления статуса заказа или отправки уведомления клиенту.