Вебхук — это уведомление, которое платёжный сервис отправляет на адрес вашего сайта, когда меняется статус платежа. Именно он, а не возврат покупателя на страницу «спасибо», должен считаться источником истины: только так магазин узнаёт об оплате наверняка.
Почему нельзя полагаться на редирект
Покупатель может закрыть вкладку сразу после оплаты, потерять связь или не дождаться перехода. Деньги при этом спишутся, а магазин ничего не узнает — заказ останется в статусе «ожидает оплаты», и разбираться придётся вручную.
Вебхук приходит на сервер независимо от того, что делает покупатель.
Что должен делать ваш обработчик
- Принять запрос и сразу ответить кодом 200 — иначе сервис будет считать доставку неудачной.
- Найти заказ по идентификатору, который вы передавали при создании платежа.
- Проверить подпись запроса, прежде чем что-то менять в базе.
- Обновить статус заказа и записать идентификатор платежа для сверки.
Частые ошибки
- Адрес закрыт авторизацией или файрволом — уведомление не доходит.
- Обработчик отвечает 500 или таймаутит — из-за тяжёлой логики внутри; тяжёлое лучше выносить в фон.
- Нет проверки подписи — эндпоинт примет любой запрос, который на него придёт.
- Повторная обработка одного уведомления — оно может прийти дважды, обработчик должен быть к этому готов.
Подробности по интеграции — на странице платёжного API.