Как проходит оплата
Оплата всегда идёт через счёт (Invoice). Счёт создаётся из корзины ученика и содержит один или несколько продуктов с ценами и применёнными скидками. К счёту привязывается платёж (Payment), который и проводится через выбранный эквайринг. Точки входа в оплату:Корзина
В корзине (/cart) ученик собирает продукты, применяет промокоды и видит итоговую сумму. Итог рассчитывается
на сервере запросом invoiceCalculateCartTotal, который возвращает:
totalAmount— итоговая сумма к оплате;discountAmount— суммарная скидка;appliedDiscounts— применённые скидки;unAppliedDiscounts— скидки, которые не применились, с причиной (например, промокод неактивен или неприменим к товару);- список позиций с исходной ценой, скидкой и итогом по каждой.
/cart/:cartUuid) — например, куратор собирает набор курсов и отправляет
ученику готовую корзину на оплату.
Оплата картой (ExodePay)
Для провайдеров с оплатой картой прямо на сайте используется ExodePay: ученик вводит данные карты, а подтверждение проходит по коду из СМС (OTP). Подробнее о способах оплаты — в разделе Типы платежей.Статусы платежа
У платежа по счёту есть статус (PaymentStatus). Актуальный статус счёта — это статус его актуального
платежа (actualPayment).
Страница
/pay/invoice/:invoiceUuid показывает ученику текущее состояние оплаты и меняет вид в зависимости
от статуса: ожидание (WaitingView), успешная оплата (SuccessView), отмена (CanceledView), а также
промежуточное состояние выдачи доступа (ReleasingView). При ожидании подтверждения страница автоматически
опрашивает статус (polling), пока платёж не завершится. При успешной оплате доступен номер и чек об оплате.
Один счёт может иметь несколько попыток оплаты. Если первая попытка не прошла, ученик может попробовать
оплатить снова — история попыток сохраняется у счёта.
Счета в управлении
Все счета школы доступны в разделе Управление → Счета (/manage/invoices). Здесь видно, кто, что и на
какую сумму оплатил, каким провайдером и с каким статусом.
Столбцы таблицы счетов: пользователь, продукт, сумма и статус (с иконкой провайдера).
Фильтры счетов
Список можно фильтровать по:- поиску (
search); - ученикам (
userIds) и продуктам (productIds); - типу счёта (
types) — по умолчанию показываютсяRegular,InstallmentPay,SubscriptionPay; - эквайрингу платежа (
paymentAcquiringIds); - статусам платежа (
paymentStatuses); - UTM-меткам (
utmParams); - диапазону дат создания (
createdAtDateRange) и диапазону суммы (totalAmountRange).
Карточка счёта
По каждому счёту доступна детальная карточка с вкладками:Возвраты (Refunds)
Раздел Управление → Возвраты (/manage/refunds) предназначен для создания, редактирования и отправки
возвратов ученикам.
На текущий момент страница возвратов в приложении представляет собой заготовку: она содержит заголовок и
описание раздела, но интерфейс создания и отправки возвратов ещё не реализован. Функциональность будет
дополнена в следующих версиях. За фактическим возвратом средств пока обращайтесь через процессы вашего
платёжного провайдера.