39 lines
3.0 KiB
Markdown
39 lines
3.0 KiB
Markdown
# Этап 1e. Счёт и оплата
|
|||
|
|
|
||
|
|
Статус: не начат.
|
||
|
|
|
||
|
|
## 1. Цель
|
||
|
|
|
||
|
|
Покупка ключа и пополнение баланса работают целиком на демо-оплате, без эквайринга.
|
||
|
|
|
||
|
|
## 2. Входит
|
||
|
|
|
||
|
|
1. Коллекции `orders`, `payments`, `ledger-entries`, `payment-methods`.
|
||
|
|
2. `core/billing`: `processPayment`, оплата с баланса, блокировки и уникальные ограничения ([04-billing.md](../04-billing.md), разделы 1–5 и 14).
|
||
|
|
3. Платёжная система «Демо» ([D-027](../decisions/D-027-demo-payments.md)): страница демо-оплаты, демо-привязка карты, доступ по списку IP. `manual` — для администраторов.
|
||
|
|
4. `/order` по макетам обоих брендов: шаг «Почта» (вход из 1c), шаг «Оплата» (с баланса, демо-оплатой, демо-картой; «Заказ создан, ожидает оплаты», если платёжных систем нет), согласие с условиями, сводка из тарифа, локации и валюты.
|
||
|
|
5. Кабинет:
|
||
|
|
a. `/buy`: dedicated — сетка локаций с ценами, mass — «Месяц» и «Год»;
|
||
|
|
b. «Счёт и платежи»: баланс, пополнение (пресеты и своя сумма), привязанная карта и «Отвязать карту», история;
|
||
|
|
c. смена валюты аккаунта ([04-billing.md](../04-billing.md), раздел 2).
|
||
|
|
6. После оплаты ключ создаётся в статусе `provisioning` и выдаётся вручную (1d); автоматически — с 1f.
|
||
|
|
7. Админка: ручной платёж, корректировка баланса, возврат на баланс; всё — в журнал действий.
|
||
|
|
8. Шаблоны на 5 языках: `order_paid`, `key_provisioning`, `topup_succeeded`, `refund_issued`, `admin_new_order`, `admin_provisioning_needed`.
|
||
|
|
|
||
|
|
## 3. Не входит
|
||
|
|
|
||
|
|
Продления (1g), реальные платёжные системы (3b, 4a, 4b).
|
||
|
|
|
||
|
|
## 4. Перед стартом
|
||
|
|
|
||
|
|
Этап 1d готов.
|
||
|
|
|
||
|
|
## 5. Готово, когда
|
||
|
|
|
||
|
|
1. С разрешённого IP ключ покупается демо-оплатой и с баланса; отказ демо-оплаты виден пользователю.
|
||
|
|
2. Демо-карта привязывается и отвязывается.
|
||
|
|
3. Автотесты `core/billing` проходят сценарии:
|
||
|
|
a. пополнение → оплата заказа с баланса → заказ оплачен → ключ `provisioning`;
|
||
|
|
b. частичный баланс и оплата разницы → заказ оплачен;
|
||
|
|
c. частичный и полный возврат на баланс, с отменой ключа и без;
|
||
|
|
d. повторный `processPayment` не списывает дважды.
|