- Мета проєкту
Разработать Telegram-бота, который:
Продает подписку на приватный канал через WayForPay;
Автоматически выдает доступ к каналу после успешной оплаты;
Управляет подписками — удаляет пользователей после окончания срока, отправляет напоминания о продлении;
Ведет учет в Google Таблицах (Google Sheets);
Может быть развернут на VPS (например, Ubuntu / Docker).
- Функционал Telegram-бота Пользователь:
При старте видит кнопки с тарифами:
1 месяц (10 UAH)
3 месяца (25 UAH)
6 месяцев (45 UAH)
Нажимает кнопку → бот генерирует WayForPay-ссылку для оплаты.
После оплаты бот отправляет инвайт-ссылку на канал.
Если пользователь уже имеет активную подписку — бот показывает статус (“Подписка активна до: ...”).
Администратор:
Получает уведомления о новых оплатах.
Может вручную продлить / деактивировать подписку пользователя.
Имеет команду /list для просмотра активных пользователей (опционально).
- Система контроля подписок
Отдельный Python-скрипт или модуль:
Запускается раз в сутки / или при старте (позже можно добавить cron);
Проверяет даты окончания подписок в Google Sheet;
Если срок истек — удаляет пользователя из канала;
За 1 день до окончания — отправляет напоминание с кнопкой “Продлить”;
Если пользователь продлил — обновляет дату в таблице.
- Google Sheets интеграция
Таблица имеет такие колонки:
| telegram_id | order_ref | amount | months | start_date | end_date | status |
status может быть: active, expired, refunded
Запись добавляется только если:
транзакция Approved
такого order_ref еще нет в таблице
Если пользователь уже есть в таблице — обновляется end_date (продление подписки).
- Flask-сервер (Webhook для WayForPay)
Принимает запросы с WayForPay после оплаты;
Проверяет transactionStatus == "Approved";
Если оплата новая:
добавляет запись в Google Sheet;
создает invite-link в канал;
отправляет ссылку пользователю в Telegram;
Игнорирует транзакции со статусами Refunded, Expired, InProcessing;
Имеет логирование всех запросов в консоль или файл (print / logging).
- Дополнительно
Код должен быть хорошо структурирован: bot_payment.py, webhook_server.py, subscription_checker.py.
Все токены, ключи, ID — вынесены в отдельный файл config.py.
- Результат работы
Полностью рабочая система:
Telegram бот с оплатами
WayForPay интеграция
Связь с Google Sheets
Автоматическое управление подписками
Готова к развертыванию на VPS