Закрытый клуб по подписке

Подойдёт, если вы хотите продавать доступ в закрытое Telegram-сообщество через подписку — с автоматической проверкой оплаты и управлением участниками.

Превью сценария

Оформление платного доступаВыдача доступа после оплатыПроверка статуса подпискиMembership Access Audit

Обзор

Бот продаёт доступ в закрытый Telegram-канал или группу, приглашает оплативших и — при подключённом Stripe — автоматически убирает тех, чья подписка истекла.

Для кого

Подойдёт, если вы хотите продавать доступ в закрытое Telegram-сообщество через подписку — с автоматической проверкой оплаты и управлением участниками.

Что нужно для запуска

  • Какой способ оплаты использовать: Telegram Payments, Stripe, YooKassa или другой провайдер?
  • Какой Stripe Price ID использовать для плана?
  • В какой канал или группу получают доступ участники?
  • Как часто проверять статус подписки (для Stripe)?
  • Telegram Payments (по умолчанию): в @BotFather откройте Payments для вашего бота, подключите поддерживаемого платёжного провайдера, скопируйте provider token и вставьте его в FlowCastle: настройки бота > Card payments (provider token). Шаг оплаты уже собран как блок ACCEPT_PAYMENT с ветками «оплачено/не оплачено» на Telegram Stars (XTR); после добавления токена переключите его на Card. Автоматическая проверка подписок требует Stripe, поэтому с Telegram Payments еженедельный аудит не устанавливается — продлевайте и отключайте доступ вручную или выберите Stripe.
  • Заполните STRIPE_SECRET_KEY в настройках модуля Stripe.
  • Добавьте URL вебхука Stripe в Stripe Dashboard — адрес есть внутри сценария.
  • Stripe: оставьте установленный модуль Stripe, используйте реальный recurring Price ID, настройте вебхук оплаты и проведите тестовую оплату подписки перед приглашением участников. Только вариант Stripe устанавливает автоматический еженедельный аудит подписок; если вы перешли на Stripe после установки с другим провайдером, создайте рассылку аудита вручную.
  • YooKassa: установите модуль YooKassa (yokassa@1.0.0) и укажите shopId и secretKey в форме настройки модуля — действие оплаты берёт их из модуля, в сценарии они не хранятся. Шаг оплаты уже настроен на создание ссылок YooKassa. Продления ручные, автоматический аудит подписок не устанавливается (нужен Stripe).
  • Другой провайдер: замените шаг-заглушку оплаты на действие модуля или HTTP-запрос этого провайдера, сохраните payment id/status/link в переменные и добавьте вебхук или ручное подтверждение перед выдачей доступа в Telegram. Автоматический аудит подписок не устанавливается (нужен Stripe).
  • Страница после оплаты (Stripe/YooKassa): вопрос настройки заполняет одной и той же страницей и checkoutSuccessUrl, и checkoutCancelUrl; позже отредактируйте переменные, если нужны разные страницы.
  • Добавьте бота администратором в целевой канал или группу с правами на приглашение и удаление участников.
  • Целевой канал можно указать публичной ссылкой вида https://t.me/privateclub, @username или числовым ID на -100.
  • Чтобы получать уведомления о каждом новом оплатившем участнике, отметьте контакты вашей команды тегом «owner» на странице «Контакты». Тогда действие «Уведомить владельца» отправит им email участника, ID подписки и контакт.

Разбор узлов

  • Пользователь нажимает «Вступить» и вводит email для чека
  • Бот создаёт оплату у выбранного провайдера и отправляет ссылку или счёт
  • После оплаты провайдер уведомляет бота
  • Бот проверяет статус платежа и только после подтверждения создаёт персональную ссылку-приглашение
  • Со Stripe бот раз в нужный период проверяет статус подписки
  • Активная подписка — участник остаётся. Истекла — бот убирает его из канала и уведомляет

Подробности

Полезно знать

  • Для работы нужен бот с правами администратора в целевом канале или группе; для Stripe — установленный модуль Stripe.
  • Для каждого участника создаётся персональная ссылка-приглашение — не общая, которую можно переслать.
  • Автоматическая проверка подписок (рассылка по расписанию + проверка подписки + удаление участника) устанавливается только в варианте Stripe: другие провайдеры не позволяют проверить статус подписки автоматически, поэтому там аудит не устанавливается, а сценарий проверки статуса остаётся пустым.
  • Сценарий выдачи доступа проверяет статус платежа перед созданием приглашения; события без подтверждённой оплаты фиксируются без сообщений.
  • Периодическая проверка подписок работает как рассылка по расписанию — создаётся черновиком, вы активируете сами.
  • Целевой канал указывается как публичная ссылка (https://t.me/...), @username или числовой ID.

Что важно помнить

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