Что такое Вебхук?
Вебхук (Webhook) — это механизм, который позволяет одной системе автоматически отправлять данные другой системе в реальном времени. В контексте платежных систем вебхуки используются для уведомления вашего сервера о событиях, таких как успешный платеж, отмена платежа или ошибка.
Простым языком: когда ваш сайт перенаправляет пользователя оплатить заказ - он теряет с ним связь, ведь оплата происходит на сайте платежной системы. Чтобы ваш сайт "понял", что оплата прошла успешно, платежный сервис выполнит к нему отдельный запрос с передачей информации об оплате. Такой запрос называется вебхук.
Как работает вебхук?
Вебхук работает по принципу "обратного вызова". Когда происходит определенное событие (например, клиент совершает платеж), платежная система отправляет HTTP-запрос (обычно POST) на заранее указанный URL вашего сервера. Этот URL называется endpoint.
Пример работы вебхука
- Клиент совершает платеж через ваш интернет-магазин.
- Платежная система обрабатывает платеж и фиксирует событие (например, "платеж успешен").
- Платежная система отправляет данные о событии на ваш сервер через вебхук.
- Ваш сервер принимает данные и выполняет необходимые действия (например, обновляет статус заказа).
Важно: Вебхуки работают в реальном времени, что позволяет мгновенно реагировать на изменения.
Зачем нужны вебхуки?
Вебхуки используются для автоматизации процессов и синхронизации данных между системами. В платежных системах они помогают:
- Обновлять статус заказа в реальном времени.
- Обрабатывать ошибки платежей (например, если платеж не прошел).
- Отправлять уведомления клиентам (например, о успешной оплате).
- Интегрировать платежную систему с 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"}
Эти данные можно использовать для обновления статуса заказа или отправки уведомления клиенту.