Продажи
Продаж в продукте ещё нет. Ни продуктов, ни тарифов, ни заказов, ни приёма платежей, ни возвратов, ни чеков. Это следующий крупный этап разработки.
Описывать их как работающие мы не будем: страница, описывающая несуществующее, — это тот же дефект, что «функция объявлена, а вызова нет», только в документации, где его не поймает тест.
Что уже решено #
Устройство спроектировано подробно, и решения на него уже приняты — они не изменятся от того, что код ещё не написан:
- Продукт ≠ тариф. Продукт — то, что получает ученик. Тариф — условия продажи: набор продуктов, цена, срок доступа, правила. Один продукт продаётся несколькими тарифами, и это и есть тарифная сетка.
- Заказ ≠ покупка. Заказ — намерение и деньги. Покупка — факт выданного доступа. Заказ может быть оплачен, а доступ выдан позже или отозван.
- Деньги — целые числа в копейках, всегда парой с кодом валюты. Никаких дробных: у валют разный порядок, и число без кода валюты бессмысленно.
- Состояние платежа берётся повторным запросом к провайдеру, а не из тела уведомления: у ЮKassa подписи уведомлений нет вообще, и тело можно подделать.
- Идемпотентность с обеих сторон. Повтор уведомления не выдаёт доступ дважды, повтор запроса не создаёт второй платёж.
Что делать сегодня #
Доступ выдаётся руками — см. Доступы. Это не заглушка: тем же путём переносят учеников с другой платформы.
Приём оплаты — на стороне вашего лендинга или платёжного сервиса, доступ после оплаты выдаётся вручную или, когда появится API, автоматически.
Где следить #
Раздел Обновления — там будет сказано, когда это появится. Спроектированный состав операций виден в Проекте API, с той же пометкой: это замысел, а не работающий код.