Платежный контур нельзя собирать по схеме «создали оплату → дождались вебхука → обновили статус». На первом же сбое всплывает реальность: вебхук может прийти повторно, с задержкой, не с того IP или уже после того, как локальная база уехала от фактического статуса в ЮKassa.
Рабочая схема тут приземленная: создавать платеж с `capture=False`, проверять входящий webhook по IP, сначала писать каждое событие в event log, потом отдавать его в обработчик. `capture` подтверждать только через стабильный idempotency key, а успешный платеж валидировать по сумме, валюте и `metadata`.
И обязательно оставить аварийный ручной confirm: он дочитывает реальный статус из ЮKassa и синхронизирует локальную базу. Это не «доп. фича», а страховка, без которой платежи начинают врать.
MVP Ship
@MVPSHIPPro
Платежный контур нельзя собирать по схеме «создали оплату → дождались вебхука → обновили статус». На первом же
Этот пост опубликован в Telegram-канале MVP Ship. Подписаться можно по ссылке: @MVPSHIPPro.