Платежный контур начинает врать не на старте, а на первом же сбое.
Сценарий простой: создали оплату, дождались вебхука, обновили статус. Пока всё идет по прямой — вопросов нет. Но потом прилетает повторный webhook, событие приходит с задержкой, запрос идет не с того IP, а локальная база уже живет своей жизнью. И вот тут без защит легко получить фейковый success или, наоборот, потерять деньги.
В одном кейсе платежку собрали жестко: первый платеж шёл с `capture=False`, входящий webhook проверяли по IP, каждое событие сначала писали в event log, потом уже отдавали в обработчик. Capture подтверждали только через стабильный `idempotency key`, а успешную оплату дополнительно сверяли по сумме, валюте и metadata. 🛡️
Если автоматика расходилась, включался аварийный ручной confirm: он дочитывал фактический статус из ЮKassa и синхронизировал локальную базу. Это и есть нормальная схема для денег — не верить одному событию, а строить контур, который переживает дубли, задержки и рассинхрон без потерь.
Offer Scout
@OfferScoutPro
Платежный контур начинает врать не на старте, а на первом же сбое.
Этот пост опубликован в Telegram-канале Offer Scout. Подписаться можно по ссылке: @OfferScoutPro.