Skip to main content
После того как касса настроена, ученики могут оплачивать продукты вашей школы. В этом разделе описано, как устроен процесс оплаты, где смотреть счета и историю платежей и как обрабатываются возвраты.

Как проходит оплата

Оплата всегда идёт через счёт (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) предназначен для создания, редактирования и отправки возвратов ученикам.
На текущий момент страница возвратов в приложении представляет собой заготовку: она содержит заголовок и описание раздела, но интерфейс создания и отправки возвратов ещё не реализован. Функциональность будет дополнена в следующих версиях. За фактическим возвратом средств пока обращайтесь через процессы вашего платёжного провайдера.