Что умеет бот
Для пользователя:
- Покупка подписки через витрину тарифов: тарифов может быть сколько угодно, у каждого — своё имя, значок, описание и сроки с ценами (всё настраиваете вы). Единственный тариф открывается сразу карточкой; в карточке видны доступные страны и условия тарифа — трафик и лимит устройств, в том числе по срокам.
- Триал (бесплатный пробный период) — включается одной кнопкой; один раз на аккаунт.
- Продление подписки: отдельная кнопка появляется за 7 дней до конца (или сразу, если сейчас триал). Время не пересчитывается, а добавляется к текущему сроку; счётчик трафика при платном продлении обнуляется — новый период начинается со свежим пакетом. Продление идёт по своему тарифу; если админ изменил его условия с прошлой оплаты — бот предупредит перед оплатой.
- Смена тарифа без сгорания остатка: неиспользованные дни текущего тарифа зачитываются к новому по соотношению цен, точный сдвиг срока виден до оплаты. Условия покупки фиксируются снимком в момент оплаты — последующие правки тарифа админом уже купленного не меняют.
- Кошелёк в рублях: пополнить один раз и платить с баланса; автосписание при покупке, прогноз «на сколько хватит» и ввод промокода. Суммы пополнения = ценам ваших тарифов, своя сумма — не больше самого дорогого тарифа (защита от кард-тестинга и крупных чарджбеков). Пополнение можно отключить (Продажи → 👛 Кошелёк) — новые деньги не принимаются, а лежащие на балансах люди дожигают на подписку; оплата с баланса и реферальные начисления продолжают работать. Вывод средств с баланса невозможен — бот говорит об этом прямо.
- Промокоды — бонус на баланс или дни подписки (дни — только при уже существующей подписке). Можно раздавать ссылкой
t.me/ВАШ_БОТ?start=promo_КОД— код применится автоматически при старте. - Реферальная программа — личная ссылка-приглашение: бонус пригласившему (деньгами или днями), приветственный бонус самому приглашённому другу и процент с каждого платежа приглашённых на баланс. На экране видно «приглашено / заработано» (всё настраивает админ).
- Напоминания об окончании триала и подписки (за 7 / 3 / 1 день — настраивается).
- Автопродление (ЮKassa) — после успешной оплаты картой бот предлагает включить автопродление. Если пользователь согласился, бот сам продлевает подписку (за N дней до конца, N задаёт админ) сохранённой картой. Без согласия не списывается ничего. Отключается одной кнопкой в «Моей подписке», мини-аппе и веб-кабинете. Подробнее — Автопродление.
- Сброс устройств — отключить все свои устройства одной кнопкой (в боте, Mini App и веб-кабинете): ключ доступа обновляется, старые устройства отключаются.
- Красивая карточка «Подписка активна до …» с копируемой ссылкой и датой по МСК.
- Автопривязка к панели: если у пользователя уже была учётка в панели (по
telegramIdили username с его TG ID), при регистрации бот сам свяжет её с аккаунтом — триал для таких недоступен (защита от абуза).
Способы оплаты (каждый включается отдельно):
| Метод | Что это | Валюта |
|---|---|---|
| P2P | Перевод на карту, вы подтверждаете оплату вручную (можно выдавать реквизиты всем без ручного допуска) | ₽ |
| Telegram Stars | Встроенная валюта Telegram ⭐ | ⭐ (≈ пересчёт из ₽) |
| ЮKassa | Карты/СБП через ЮKassa, вебхук с перепроверкой платежа, автопродление (рекуррент) | ₽ |
| CryptoBot | Оплата криптой по курсу, цены в рублях (фиат-режим) | ₽ → крипта |
| Platega | Карты РФ / СБП (QR), статус перепроверяется по API | ₽ |
| Heleket | Крипта: счёт в ₽, монету и сеть клиент выбирает сам | ₽ → крипта |
| Tribute | Подписка через Tribute, продления подхватываются вебхуком | по кабинету Tribute |
- Mini App и веб-кабинет: то же самое (витрина тарифов, покупка, продление, баланс, промокоды, рефералка) в виде приложения внутри Telegram и отдельного сайта в браузере. Экран «Подключить» подтягивает приложения под все платформы (iOS / Android / Windows / macOS / Linux / TV) и импортирует ключ в один тап; QR для переноса на другое устройство. На панели 3.x список приложений берётся напрямую из панели (в т.ч. персональный конфиг, назначенный подписке), на старых панелях — со страницы подписки, как раньше. Веб-кабинет — на настраиваемом пути, с защитой от индексации, anti-fingerprint и локальным хостингом флагов (ничего не грузится со сторонних CDN). Вход — через Telegram или e-mail+пароль; для e-mail-аккаунтов есть P2P с загрузкой скриншота прямо в кабинете и (опционально) модерация новых регистраций админом. Все способы оплаты работают и в Mini App, и в браузере. Оба включаются в админке (Система → Mini App / Веб-кабинет).
Для администратора (всё в Telegram, без правки конфигов):
- Продажи: тарифы — сколько угодно, у каждого свои имя/значок/описание, цены по срокам и способам оплаты, трафик ГБ и лимит устройств HWID (на тариф и с переопределением на отдельный срок), сквады, валюта, стратегия сброса
NO_RESET / DAY / WEEK / MONTH / MONTH_ROLLING; доступность тарифа (всем / только новым / только действующим / по списку / по прямой ссылке) и экспорт/импорт тарифа файлом; быстрый мастер и тонкая настройка правят тариф «Базовый»; триал, сквады, все платёжки, история платежей с итогами, аналитика выручки, чеки самозанятого (МойНалог, только по ЮKassa), доп-подписка (add-on) — опциональный второй аккаунт в панели (суффикс_addsub) со своими internal-сквадами и лимитом трафика, выключен по умолчанию, с кнопкой «Синхронизировать всех» для разовой раскатки на уже оплативших (подробнее — Доп-подписка и слияние подписок); экспорт полного лога платежей в CSV. - Маркетинг: промокоды (в т.ч. ссылкой с автоприменением), реферальная программа (бонус пригласившему + бонус другу + процент с платежей), рассылка всем пользователям, автонапоминания.
- Интерфейс: свои баннеры на каждый раздел, премиум-эмодзи, контакты (поддержка + группа, можно задать ссылкой или
@username), документы сервиса (пользовательское соглашение и политика конфиденциальности); экраны админки и пользователя редактируются «на месте» (в текущем сообщении). - Пользователи: поиск по Telegram ID, нику, имени и e-mail (часть строки достаточно), карточка с активной подпиской, блок/вайтлист, режим публичности бота и ссылки-приглашения, удаление из бота и (по запросу) из панели, ручная связка аккаунта бота с любой учёткой панели (по username/UUID); 🚫 Торренты — реакция на отчёты торрент-блокера панели: уведомления админу и нарушителю, журнал нарушений, снятие блокировки IP и исключения прямо из отчёта, автоотключение подписки по порогу (подробнее — Торрент-блокер).
- Система: статус панели, самообновление
/updateс выбором канала (stable:latest/ dev:dev), уведомления об обновлениях (раз в сутки бот сверяется с GitHub и при новой версии шлёт админу changelog с кнопкой «Обновить» — тумблер и ручная проверка в разделе), вебхуки, Mini App и веб-кабинет (вкл/выкл, путь, заголовок/описание/favicon, anti-fingerprint, модерация новых регистраций off/tg/email/all), поддомен подписок, лог API-запросов, перенастройка.
Технические особенности:
- Самоменеджмент Docker: бот стартует без базы, при выборе Postgres сам поднимает контейнер БД через
docker.sockи переносит данные из SQLite. - Идемпотентные платежи + фоновый реконсилятор (добивает оплату, если вебхук не дошёл).
- Поддержка двух поколений API панели: до 3.0.0 пользователь адресуется по
uuid, с 3.0.0 — по числовомуidчерез/api/users/stream. Диалект определяется автоматически и кэшируется; апгрейд панели под работающим ботом подхватывается без перезапуска. - Сброс трафика в панели при платном продлении (
reset-traffic) — и для основной подписки, и для доп-подписки; триал и бонусные дни трафик не сбрасывают. - Команды
/terms,/privacy,/docs,/support,/paysupport— соответствие чек-листу Telegram для приёма Stars. - Двуязычный интерфейс RU/EN.
- Надёжность: восстановление после паник, отправка с учётом лимитов Telegram (429 с повтором), корректное завершение фоновых задач при остановке.
- Проверки в CI: тесты с Postgres,
go vet,golangci-lint v2,gosecиgovulncheck— жёсткий гейт по известным CVE.
Безопасность:
- Автоблок скам-регистраций: ник/имя с паттернами «support/саппорт/поддержка», «admin/админ», «verif», «official», «moder», «security», «refund» или именем вашего бота блокируется сразу при регистрации. Юзер получает «не прошли антиспам-проверку» с кнопкой вашей поддержки (ссылка из Интерфейс → Контакты), админ — алерт с кнопкой «Разблокировать» на случай живого человека.
- Имена и ники пользователей экранируются во всех сообщениях бота — HTML-инъекции через имя (скам-ссылки в уведомлениях) невозможны.
- Бот управляет в панели только аккаунтами этого пользователя — привязка по
telegramId/usernametg_<id>; чужие учётки не трогаются даже если на них стоит тег бота (касается блокировки, продления и удаления). - Вебхуки платёжек верифицируются (HMAC-подписи или перепроверка статуса по API провайдера), платежи защищены от дублей уникальным индексом.
/status, статистика и все настройки доступны только аккаунту изADMIN_TELEGRAM_ID; SQL только через плейсхолдеры; конфиг в БД зашифрован (SECRET_KEY).- Режимы публичности бота (Пользователи → Доступ): публично, по приглашениям (одноразовые ссылки со своим сроком жизни и числом регистраций) и белый список. Подробнее — Доступ в бота.