ВЕБХУК ПРИШЁЛ, А ОПЛАТЫ НЕТ — ГДЕ ЛОГИКА СЛОМАЛАСЬ?
Платежи чаще всего ломаются не в «создании оплаты», а на стыках: вебхук пришёл дважды, задержался, прилетел не оттуда или статус в ЮKassa уже один, а у вас в базе — другой.
Что помогает не утонуть в этом хаосе:
1. Не верить вебхуку вслепую
Проверяйте IP. Если уведомление пришло не с ожидаемого адреса — это не повод обновлять заказ.
2. Сначала лог, потом действие
Каждое событие сначала пишется в event log, и только потом уходит в обработчик. Иначе потом не понять, почему заказ стал «оплачен», хотя денег не было.
3. Делать операции идемпотентными
Повторный вебхук не должен создавать второй платеж и второй заказ. Для capture нужен стабильный ключ, а не «что-нибудь на коленке».
4. Сверять не только статус, но и детали
Сумма, валюта, metadata — всё должно совпадать. Иначе можно принять «чужую» оплату за свою.
5. Держать аварийный ручной путь 🔧
Если автоматизация разошлась, должен быть confirm, который подтянет фактический статус из ЮKassa и синхронизирует базу.
Смысл простой: платежный контур должен не просто «принимать вебхук», а выдерживать сбои. Тогда система не врет сама себе и не теряет деньги.
Авито Практика
@AvitoPracticePro
ВЕБХУК ПРИШЁЛ, А ОПЛАТЫ НЕТ — ГДЕ ЛОГИКА СЛОМАЛАСЬ?
Этот пост опубликован в Telegram-канале Авито Практика. Подписаться можно по ссылке: @AvitoPracticePro.