Платёжные ссылки и подписки: как это устроено
Платёжные ссылки, разовые оплаты и подписки: как устроена оплата в MSG.Center и что проверить владельцу.
Платёжные ссылки и подписки: как это устроено
Оплата — та часть сервиса, которую замечают только когда она не работает. Клиент нажал «Оплатить», ушёл на страницу банка, вернулся — и ждёт, что тариф включится сразу. Если что-то пошло не так, разбираться приходится вручную.
В MSG.Center оплата построена на двух шлюзах и одном резервном способе. Разберём, как проходит платёж, что происходит с подпиской и какие настройки нужны от владельца сервиса.
Как устроена оплата
| Способ | Что умеет | Статус |
|---|---|---|
| ЮKassa / YooMoney | разовые платежи, только рубли | модуль установлен, включается после получения ключей |
| Т-Банк, разовый платёж | оплата картой и СБП на форме банка | модуль установлен, включается после ключей |
| Т-Банк, подписка | автопродление по сохранённой карте (COF) | требует включения рекуррентных платежей на терминале |
| Ручной перевод | оплата по реквизитам с подтверждением администратором | доступен всегда |
Stripe, PayPal и другие зарубежные шлюзы в РФ не используются — это не «пока нет», а сознательное решение.
Платёжная ссылка в привычном смысле — это URL платёжной формы, который формирует банк по запросу сервиса. Клиент попадает на страницу банка, платит картой или через СБП, возвращается на страницу сервиса. Сервис не хранит данные карты: они остаются на стороне банка.
Что происходит после оплаты
Последовательность важнее, чем кажется:
- Сервис создаёт заказ и отправляет запрос в банк на инициализацию платежа.
- Банк возвращает ссылку на платёжную форму.
- Клиент платит и возвращается на страницу успеха.
- Сервис запрашивает у банка статус платежа и сверяет сумму, номер заказа и терминал.
- После подтверждения активируется тариф и создаётся запись в истории платежей.
Вебхук банка не активирует тариф — он только проверяет подпись и фиксирует статус. Это защита от двойной активации, когда уведомление и возврат браузера приходят почти одновременно.
Если клиент закрыл вкладку до возврата, оплату доигрывает фоновая проверка: она периодически сверяет «висящие» заказы и завершает их. Поэтому «оплатил, а тариф не включился» чаще всего лечится ожиданием в несколько минут, а не письмом в поддержку.
Подписка: как работает автопродление
Подписка — это рекуррентный платёж по сохранённой карте. Логика такая:
- при первой оплате банк сохраняет карту и выдаёт идентификатор для повторных списаний;
- сервис раз в 30 минут проверяет подписки, у которых подошёл срок, и инициирует списание;
- при успехе тариф продлевается на месяц или год, в историю добавляется платёж;
- при отказе — до трёх попыток, затем подписка переходит в статус «просрочена» и клиенту уходит письмо;
- после успешного списания статус возвращается в активный.
Отмена подписки удаляет сохранённую карту в банке и помечает подписку отменённой. Оплаченный период при этом остаётся активным до конца срока — «отмены в конце периода» у Т-Банка нет, карта удаляется сразу.
Чек 54-ФЗ
Если подключена онлайн-касса, сервис передаёт в банк данные чека: систему налогообложения, ставку НДС и состав позиций. Чек формирует банк, клиент получает его на e-mail, указанный при оплате.
Что нужно согласовать заранее: СНО, ставку НДС и необходимость чеков. Если кассы нет, чеки отключаются — но это решение владельца, а не настройка «по умолчанию».
Возвраты
Порядок возврата описан в оферте и на странице оплаты. Коротко:
- возврат рассчитывается пропорционально неиспользованному периоду;
- заявление подаётся по указанным в документах контактам с номером аккаунта, датой и суммой платежа;
- срок — до 10 рабочих дней с даты решения;
- возврат идёт тем же способом, которым была оплата; при возврате формируется чек возврата.
Возвраты выполняются в кабинете банка или через API; в интерфейсе сервиса отдельной кнопки «вернуть» нет — это осознанное ограничение первой версии.
Пошагово: оплатить тариф
- Откройте страницу тарифов и выберите тариф.
- Нажмите «Оформить» — откроется страница оплаты.
- Выберите способ: карта, СБП или ручной перевод.
- Для подписки отметьте автопродление, если планируете пользоваться долго.
- Оплатите и дождитесь возврата на страницу успеха.
- Проверьте раздел «Тариф»: лимиты должны обновиться в течение минуты.
- Сохраните чек — он придёт на e-mail.
Пошагово: включить Т-Банк (для владельца)
- Получите TerminalKey и Password терминала в личном кабинете банка.
- Попросите включить рекуррентные платежи (COF) — по умолчанию они выключены.
- Для тестовой среды добавьте IP сервера в белый список банка.
- Заполните настройки платёжного шлюза в админке: окружение, ключи, чеки.
- Включите разовые платежи и, при необходимости, подписки.
- Проведите тестовый платёж и проверьте историю платежей.
- Убедитесь, что вебхук и фоновая сверка отрабатывают без ошибок.
Тестовая среда
Для проверки используются тестовые карты банка. Номера принято публиковать в маскированном виде: 2201 38•• •••• 0013 — успешный платёж, 2201 38•• •••• 0047 — проверка 3-D Secure, 2201 38•• •••• 0021 — отказ. Полные реквизиты и тестовый код подтверждения выдаёт банк в документации тестовой среды.
Ограничения
- ЮKassa работает только с рублями. Для других валют нужен другой провайдер, которого в поставке нет.
- COF включается на терминале. Без этого подписки не заработают, даже если модуль настроен.
- Кнопки возврата в интерфейсе нет. Возврат — через кабинет банка.
- Автопродление списывает актуальную цену тарифа. Если цена изменилась, спишется новая.
- Ручной перевод требует подтверждения администратором — это не мгновенная активация.
Частые вопросы
Можно ли оплатить год и не думать о продлении? Да. Годовая оплата — разовый платёж, автопродление для неё не требуется.
Что будет, если карта истекла? Очередное списание не пройдёт, подписка перейдёт в просрочку, клиенту уйдёт письмо. После обновления карты списание можно повторить.
Хранит ли сервис данные карты? Нет. Карта хранится у платёжного провайдера, сервис получает только идентификатор для повторных списаний.
Что дальше
Сравнение тарифов и цен — на странице тарифов; описание возможностей — в разделе features; примеры внедрения — в кейсах. Если хотите проверить оплату и лимиты — зарегистрируйтесь.
Источники
docs/16-платежи-TBank.md, modules-tbank/README.md §3–6, content/features/08-plans.md, legal/08-оплата-и-возвраты.md.