Django/LLM, ЮKassa - waiting_for_capture и succeeded
В платежной интеграции один из источников ошибок появляется в тот момент, когда waiting_for_capture и succeeded начинают воспринимать как один и тот же успех. Снаружи это похоже на мелкую разницу статусов, но внутри у них разная роль. Первый означает, что деньги еще не захвачены окончательно и система находится в промежуточной точке. Второй означает, что платеж уже действительно завершен и локальную модель можно синхронизировать как финальную.
Если эти статусы слить в одну обработку, легко потерять контроль над capture, повторной доставкой вебхуков и идемпотентностью. Нормальная схема здесь в том, чтобы waiting_for_capture вел к отдельному confirm с устойчивым idempotence key, а succeeded обрабатывался уже как итоговое подтверждение платежа. Тогда платежный контур не путает переходный этап с завершенным.
Статья на Хабр Витрина проекта: AI Chat github Проект: AI Chat Stepik: LLM-Chat + Mermaid + ЮKassa
#django #python #yookassa #webhooks #payments #idempotency #api #fullstack #backend #webdevelopment