Платежи ломаются не на create, а на webhook.
Если коротко: без IP-check, idempotency и event log ваш контур врет при первом же дубле, задержке или рассинхроне статусов.
Что должно быть в нормальной схеме:
- первый платеж создается с `capture=False`
- входящий webhook проверяется по IP
- каждое событие сначала пишется в журнал, потом идет в обработчик
- capture подтверждается только стабильным `idempotence key`
- успех валидируется не по «status=done», а по сумме, валюте и `metadata`
- если локальная база уехала от ЮKassa — нужен ручной `confirm`, который дочитывает фактический статус и синхронизирует БД
Идея простая: webhook — это сигнал, не истина. Истина — это проверка, журнал и аварийный путь. 🔧
Если у вас есть только «приняли webhook и обновили статус», платежный контур уже живет на удаче.
Директ Разбор
@DirectRazborPro
Платежи ломаются не на create, а на webhook.
Этот пост опубликован в Telegram-канале Директ Разбор. Подписаться можно по ссылке: @DirectRazborPro.