Как продавать платный доступ в закрытый Telegram-канал
Практика4 минРедакция Innovialabs
Коротко
Проще всего — подписочная ссылка за Stars: оплату, продление и удаление делает сам Telegram. Для местных карт нужен бот, который выдаёт личные ссылки, одобряет заявки и удаляет участников по окончании доступа.
Три способа продавать доступ
Рабочих схем три:
- Подписочная ссылка за Stars. Telegram сам списывает ежемесячную плату в Stars, продлевает её и удаляет тех, кто перестал платить.
- Собственный платёжный бот с местными провайдерами, например Payme или Click. Бот принимает оплату, впускает пользователя и удаляет его, когда оплаченный период закончился.
- Сторонний сервис, который предоставляет такого бота как готовый продукт.
| Подписка за Stars | Свой бот + Payme/Click | Сторонний сервис | |
|---|---|---|---|
| Способ оплаты | Stars | Местные карты через провайдера | Зависит от сервиса |
| Продление | Автоматическое | Напоминания и новая оплата | На стороне сервиса |
| Удаление просрочивших | Автоматическое | Делает ваш бот | На стороне сервиса |
| Разработка | Не нужна | Нужна | Только настройка |
| Тарифы, триалы, промокоды | Фиксированный месячный период | Всё, что реализуете | Что предлагает сервис |
| Данные подписчиков | Минимум | Полностью ваши | Хранятся у сервиса |
Подписочные ссылки за Stars
Администратор канала создаёт пригласительную ссылку с подпиской и задаёт месячную цену в Stars. Через Bot API то же делается методом createChatSubscriptionInviteLink, период там фиксирован — 30 дней.
Плюсы: ни кода, ни договора с платёжным провайдером, продление и удаление происходят без вас. Минусы: пользователю сначала нужно купить Stars — лишний шаг для аудитории, привыкшей к местным картам; гибкость тарифов ограничена; порядок получения денег зависит от актуальных условий вывода в Telegram, их стоит изучить до запуска.
Платёжный бот с Payme или Click
Полный сценарий выглядит так:
- Пользователь открывает бота и выбирает тариф.
- Бот создаёт заказ и отправляет счёт через Telegram Payments или ссылку на платёжную страницу провайдера.
- Оплата подтверждается апдейтом
successful_paymentили колбэком провайдера на ваш бэкенд. Никогда не выдавайте доступ по кнопке «Я оплатил». - Бот создаёт личную пригласительную ссылку через
createChatInviteLinkсcreates_join_request=true. - Когда пользователь переходит по ссылке, бот получает апдейт
chat_join_request, проверяет, есть ли у этого user ID активная подписка, и вызываетapproveChatJoinRequest, иначе —declineChatJoinRequest. - В записи подписки фиксируется дата
expires_at.
Ключевая деталь — заявки на вступление. Даже если ссылка утекла, посторонний по ней лишь создаст заявку, и бот её отклонит, потому что этот человек не платил. Учтите: у ссылки с заявками нельзя одновременно задать лимит участников — его заменяет шаг одобрения.
Прежде чем выбирать оплату картами внутри Telegram, прочитайте актуальные правила Bot Payments для цифровых товаров и услуг, а также условия провайдера: они определяют, какие способы оплаты допустимы для такого продукта.
Напоминания, продление и удаление
Задача по расписанию (cron или очередь задач) запускается каждый день:
- Напоминания: за несколько дней до окончания, накануне и в последний день, с кнопкой «Продлить», которая запускает новую оплату. Автоматические повторные списания с карты возможны, только если провайдер поддерживает сохранённые карты для рекуррентных платежей.
- Льготный период: решите, сохраняется ли доступ на короткое время после окончания.
- Удаление: вызовите
banChatMember, затемunbanChatMemberсonly_if_banned=true. Первый вызов удаляет пользователя, второй позволяет ему вернуться после оплаты. Без разбана он останется заблокированным.
Задача должна быть идемпотентной: она выбирает всех, у кого expires_at в прошлом и кто всё ещё в канале. Если вчера сервер лежал, сегодняшний запуск всё наверстает.
Боту нужны права администратора в канале: приглашение пользователей по ссылке и блокировка пользователей. Писать он может только тем, кто его запускал, — ещё одна причина проводить все покупки через бота.
Сторонние сервисы
Они дают быстрый старт без разработки. Взамен вы платите комиссию или абонентскую плату, зависите от их стабильности и правил, а список подписчиков хранится у них. Проверьте три вещи: какие способы оплаты поддерживаются, можно ли выгрузить подписчиков и что будет с доступом, если вы уйдёте с сервиса.
Частые ошибки
- Продажа доступа через одну публичную ссылку, которую можно переслать кому угодно.
- Удаление подписчика только из базы, но не из канала.
- Бан без разбана — вернувшиеся клиенты не могут вступить снова.
- Сравнение дат окончания в разных часовых поясах.
- Забытые пользователи, которые вышли и вернулись, пока подписка ещё действовала.