3

WebTech

Личный кабинет

Проекты, коммерческие предложения, документы и отчёты — в одном месте.

Войти Зарегистрироваться Забыли пароль?
Платежи и финансы

Интеграция с CloudPayments

Подписки, рекуррент и понятное поведение при неудачном списании

Для подписочной модели важна не столько первая оплата, сколько сотое списание: прошло ли оно, что произошло с доступом и что увидел клиент. Настраиваем CloudPayments так, чтобы жизненным циклом подписки управляла система, а не напоминания менеджера.

Почему подписки живут в таблицах и напоминаниях

Разовый платёж прощает многое: не прошёл — клиент повторит сам. С регулярными списаниями так нельзя, и именно здесь чаще всего теряются деньги.

Продление держится на напоминании

Менеджер помнит, кому и когда пора списывать деньги. Часть продлений теряется, а доступ остаётся открытым.

Неудачное списание не обрабатывается

Банк отклонил операцию, и подписка молча живёт дальше: деньги не пришли, клиент не в курсе, доступ не закрыт.

Статус подписки расходится с доступом

Оплата не прошла, а сервис работает; или наоборот — клиент заплатил, а доступ ждёт, пока оплату подтвердят вручную.

Возврат за период считают в таблице

Сумма за неиспользованное время считается вручную и не попадает в учёт как операция по подписке.

Как ходят события подписки

Подписка — это не одна операция, а последовательность событий. Для каждого из них важно, кто источник правды и что считается подтверждением.

Способ оплаты клиента
Клиент → CloudPayments
Реквизиты сохраняются на стороне провайдера как токен. На вашей стороне хранится только ссылка на способ оплаты, а не данные карты.
Подписка
Заказ → реестр подписок
У подписки есть тариф, период и состояние: активна, в повторных попытках, приостановлена, отменена. Это отдельная сущность, а не флаг в заказе.
Списание по расписанию
Платформа → CloudPayments
Запускается по дате продления с ключом идемпотентности на период. Сбой задания или повтор ответа не приводят ко второму списанию.
Результат списания
CloudPayments → подписка
Успех продлевает оплаченный период, отказ переводит подписку в режим повторных попыток и запускает уведомление клиенту.
Состояние подписки
Платформа → учёт
Регулярные поступления и возвраты попадают в учёт теми же документами, что разовые платежи, — отдельного ручного контура не появляется.
Отмена подписки
Клиент → платформа → CloudPayments
Отмена прекращает будущие списания. Доступ при этом сохраняется до конца оплаченного периода — правило задаётся тарифом.

Ключевая договорённость: провайдер сообщает результат списания, а состояние подписки и доступ клиента определяет платформа. Иначе пауза в ответах шлюза превращается в открытый доступ без оплаты.

Жизненный цикл подписки

Четыре состояния, через которые проходит любая подписка. Если они описаны заранее, поведение системы при неоплате перестаёт быть сюрпризом.

01

Оформление

Клиент выбирает тариф и подтверждает регулярные списания. Согласие сохраняется вместе с подпиской — это первое, что понадобится при споре о списании.

02

Оплаченный период

У периода есть дата начала и дата окончания. Продление, пауза и возврат считаются от него, а не от даты последнего письма клиенту.

03

Неудачное списание

Отказ провайдера — штатная ситуация, а не ошибка. Подписка переходит в режим повторных попыток, клиент получает уведомление со ссылкой на обновление карты.

04

Приостановка

Если оплата так и не прошла, доступ приостанавливается по заданному правилу, а не по звонку из поддержки. После успешной оплаты подписка возвращается в работу автоматически.

Что происходит при неуспешном списании

Отказ банка — это регулярное событие подписочной модели. Обрабатывать его нужно так же тщательно, как успешную оплату.

Как устроена работа с отказами

  • Расписание повторных попыток задаётся правилами тарифа — интервалы и их количество можно менять без правок в коде
  • Каждая попытка сохраняется отдельной записью с кодом отказа провайдера: видно, что именно ответил банк
  • Клиенту уходит письмо или SMS после неудачной попытки — со ссылкой на обновление способа оплаты
  • Льготный период определяется тарифом: доступ может сохраняться, пока идут повторные попытки
  • После исчерпания попыток подписка приостанавливается, и создаётся задача ответственному
  • Списание идемпотентно по периоду: повторный запуск задания не списывает деньги второй раз

Оплата без ухода со страницы

Виджет и личный кабинет подписчика снимают с поддержки самые частые обращения: «как поменять карту» и «почему списали деньги».

Виджет на странице

Форма оплаты встраивается в оформление заказа или в личный кабинет: клиент не уходит на внешний домен и не теряет оформление на середине.

Личный кабинет подписчика

Клиент сам меняет способ оплаты, смотрит историю списаний и отменяет подписку — без обращения в поддержку.

Подписка в вашей админке

Менеджер видит тариф, оплаченный период, историю попыток и причину отказа, а не только отметку «оплачено / не оплачено».

Возвраты, отмена и сверка по подпискам

Возврат в подписке — не то же самое, что отмена: одна операция возвращает деньги за период, вторая закрывает будущие списания. Обе должны отражаться в учёте.

Возврат за неиспользованный период

Сумма считается от даты окончания оплаченного периода. Возврат и отмена подписки — две разные операции, и в журнале они не смешиваются.

Возврат по конкретному списанию

Частичный возврат по одной операции не ломает подписку: следующий период продлевается как обычно, а остаток по списанию остаётся виден.

Сверка регулярных поступлений

Списания сводятся с подписками и документами. Расхождение по сумме или пропущенное продление видны в отчёте, а не выясняются при закрытии периода.

Как запускается подписочная модель

Порядок работ для регулярных платежей: сначала правила тарифа и поведение при неоплате, затем код. Так спорные ситуации с клиентами разбираются по документу, а не по памяти.

  1. 01

    Аудит и схема

    Разбираем системы, сущности и потоки. Фиксируем, что считается источником правды и где сейчас расходятся данные.

  2. 02

    Контракт обмена

    Описываем поля, форматы, частоту и правила сопоставления справочников. Согласуем до начала разработки.

  3. 03

    Прототип

    Проверяем обмен на реальных данных в ограниченном объёме: несколько десятков записей в обе стороны.

  4. 04

    Внедрение

    Включаем полный обмен с очередью, повторными попытками, журналом и защитой от дублей.

  5. 05

    Эксплуатация

    Мониторинг, сверка расхождений, обновление коннекторов при изменениях API на стороне сервиса.

Что делает рекуррент предсказуемым

Каждое списание — отдельное событие с результатом и историей. Ни одна попытка не должна потеряться или пройти дважды.

Идемпотентность

Повторная доставка одного и того же события не создаёт вторую сделку, второй заказ или второй платёж.

Очередь и повторные попытки

Если внешняя система недоступна, операция ждёт и повторяется по расписанию, а не теряется.

Журнал обмена

Видно, что и когда ушло, что вернулось и что не прошло. Неудачную операцию можно повторить вручную.

Лимиты провайдера

Учитываем ограничения по частоте запросов, чтобы не получить блокировку со стороны сервиса.

Сверка расхождений

Регулярная сверка ключевых сущностей между системами: расхождение видно в отчёте, а не в конце квартала.

Мониторинг и оповещения

При остановке обмена приходит уведомление ответственным, а не выясняется из жалобы клиента.

Все категории интеграций

Обмен редко ограничивается одной категорией: магазин обычно связан и со складом, и с платежами, и с маркетплейсами.

Частые вопросы о подписках и рекурренте

Если вашего вопроса здесь нет — задайте его в форме ниже.

Что нужно от нас, чтобы запустить подписки?
Тарифы с ценой и периодом, правила продления (когда именно списывать), состав доступа, который открывается после оплаты, и доступы к аккаунту CloudPayments. Отдельно согласуем, что происходит с доступом при неоплате — это правило лучше зафиксировать до разработки, а не после первого отказа банка.
Сколько раз система пытается списать деньги повторно?
Количество попыток и интервалы между ними задаются правилами, а не зашиты в код: расписание можно изменить без переписывания логики подписки. Каждая попытка фиксируется отдельной записью с кодом отказа провайдера, поэтому видно, почему списание не проходит. После исчерпания попыток подписка приостанавливается и создаётся задача ответственному.
Клиент может отменить подписку сам, без письма в поддержку?
Да, в личном кабинете подписчика: там же меняется способ оплаты и видна история списаний. Отмена сразу прекращает будущие списания, но доступ сохраняется до конца уже оплаченного периода — это отдельное правило, и мы настраиваем его под вашу модель.
Что делать, если карта клиента перевыпущена и списание отклонено?
Такое списание переводит подписку в состояние «требует подтверждения», а клиенту уходит письмо со ссылкой на обновление способа оплаты. Как только карта обновлена, следующая попытка проходит уже по новым реквизитам, и подписка возвращается в активное состояние без ручных действий менеджера.
Как вы гарантируете, что клиента не спишут дважды?
Списание за период идёт с идемпотентным ключом: период подписки — часть ключа, поэтому повторный запуск задания или повторный ответ провайдера не создаёт вторую операцию. Все обращения к шлюзу проходят через реестр платежей, где видно текущее состояние каждой попытки.

Расскажите, как устроены ваши подписки

Опишите тарифы, правила продления и то, что сейчас происходит при неоплате. Предложим схему жизненного цикла подписки и оценим работы.

Бесплатный аудит

Получите бесплатный аудит интернет-магазина

За 3 рабочих дня разберём: где вы теряете заявки, какие каналы недооценены, и что даст рост в первые 30 дней.

Разбор технической части сайта: скорость, SSR, фильтры
Аудит текущей рекламы: где сливается бюджет
Анализ конкурентов в вашей нише
Прогноз CPL, ROAS и окупаемости
План действий на первый месяц
За этот месяц
42 компании получили аудит
30 мин
реакция
3 дня
аудит
100%
доступ к кабинетам

Заявка на аудит

Без обязательств. С конкретными цифрами.

Бесплатно

Ответим в течение 30 минут в рабочее время