Сервис управления подписками
Подписка отличается от покупки тем, что деньги списываются снова и снова, без участия клиента и без вашего кода. Именно это и берёт на себя платформа: клиент один раз оплачивает первый период, а дальше Gigma сама списывает за следующие, разбирается с отказами банка, ведёт историю платежей и меняет статус подписки.
Ваш продукт делает две вещи: назначает тарифы и открывает доступ, пока подписка активна.
Как проходит жизнь подписки
оформление первый период следующий период
│ │ │
▼ ▼ ▼
checkout ──> оплата ──> active ──> charging ──> active ──> …
│ │
│ └─ отказ банка ──> повтор каждые 5 ч
│ │
│ период кончился
│ ▼
└──────────── отмена ──────────> past_due ──> canceled
(доступ до конца (через 3 дня)
оплаченного периода) Что платформа делает без вас
| Что происходит | Как ведёт себя платформа |
|---|---|
| Подошёл срок следующего периода | раз в час выбирает подписки к списанию и списывает с сохранённой карты |
| Банк отказал | повторяет попытку каждые 5 часов, пока не пройдёт |
| Деньги так и не списались | до конца оплаченного периода подписка остаётся active, дальше past_due, и только через 3 дня — canceled |
| Клиенту пора напомнить | шлёт уведомления о неудачном списании и о продлении, если каналы включены |
| Платёж завис у провайдера | сверяет статус каждые 5 минут и доводит до конца |
То есть между «банк отказал» и «клиент потерял доступ» проходит несколько дней автоматических попыток — клиент не отваливается из-за одного случайного отказа.
Состояния подписки
active— оплачено, доступ открыт;charging— идёт списание за новый период;past_due— оплаченный период кончился, деньги ещё не получены, платформа продолжает пробовать;canceled— отменена клиентом или после трёх дней неудачных попыток.
Что нужно настроить
- Тарифы — приложение продаёт только назначенные и активные. Пока назначений нет, клиентский каталог пуст.
- Склад с платёжной интеграцией — на нём хранятся реквизиты приёма денег. Остатки не требуются, но без такого склада оформление отвечает
422. - App Token и Counterparty Bearer — как и везде в клиентском API: токен приложения в заголовке
Token, токен клиента после входа.
Правило платного доступа
Доступ открыт, пока статус active и current_period_end не истёк. Проверяйте это запросом подписок перед защищённым действием, а не по факту прошлой оплаты: списание может не пройти в любой момент, и кэш на часы превращается в бесплатный доступ.
Разделы
| Задача | Страница |
|---|---|
| Показать тарифы клиенту | каталог тарифов |
| Первая покупка и покупка на сохранённую карту | оформление подписки |
| Продлить, изменить, отменить | изменение и отмена |
| Разобраться с неудачным списанием | платежи подписки |
| Дать клиенту сменить карту | карты клиента |
Ограничения
Пробного периода и промокодов на подписку в API нет: тариф оплачивается сразу и целиком. Скидка возможна только отдельным тарифом с другой ценой.