Этап 0: документация и макеты
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
commit
3400f58a5a
75 files changed
+14283
No files matched your search
@@ -0,0 +1,24 @@
|
||||
# D-009. Заказы, платежи, движения по счёту; всё через баланс
|
||||
|
||||
Статус: принято, 20.10.2026.
|
||||
|
||||
## Контекст
|
||||
|
||||
У пользователя есть счёт. Заказ можно оплатить картой, с баланса или частично. Нужна ручная оплата из админки, которая запускает те же действия, что и настоящая.
|
||||
|
||||
## Решение
|
||||
|
||||
1. Три сущности: Заказ (что покупают), Платёж (деньги извне), Движение по счёту (неизменяемые записи «+» и «−»).
|
||||
2. Любой успешный платёж зачисляется на баланс, любой заказ списывается с баланса.
|
||||
3. Одна точка проведения `processPayment`, идемпотентная.
|
||||
4. Ручная оплата — платёжная система `manual`. Платёж проводится, когда получает статус `succeeded`. Галочки «провести как реальную» нет.
|
||||
5. Корректировка баланса — отдельная операция: только движение, без цепочки действий.
|
||||
|
||||
## Рассмотренные варианты
|
||||
|
||||
1. Одна сущность «транзакция» — смешивает коммерческий документ, деньги провайдера и баланс; сложно с частичной оплатой и повторами вебхуков.
|
||||
2. Галочка «провести как реальную оплату» — не нужна: проведение запускает смена статуса.
|
||||
|
||||
## Последствия
|
||||
|
||||
Правило «списывается только разница с балансом» получается само. Подробно — [04-billing.md](../04-billing.md).
|
||||
Reference in new issue
Block a user