Задачи чат-бота: Продажа впн. Платформа: Telegram. Продукт: Впн. Техзадание есть. Пожелания и особенности: ТЕХНИЧЕСКОЕ ЗАДАНИЕ Разработка Telegram-бота для продажи VPN с интеграцией Marzban Требуется разработать Telegram-бота под ключ, который: • принимает платежи внутри Telegram и через криптовалюту • автоматически создаёт и продлевает VPN-подписки • интегрирован с панелью управления VPN Marzban • работает полностью автономно, без ручных операций администратора Проект является реальным MVP, не учебным и не демонстрационным. 2. Цель проекта После успешной оплаты пользователь должен: 1. автоматически получить VPN-ключ 2. получить конфигурацию подключения (vless:// ) 3. получить QR-код для подключения 4. получить всё это в течение 2–3 секунд после оплаты Без участия администратора. 3. Технологический стек (обязателен) Исполнитель обязан использовать следующий стек: • Python 3.10+ • pyTelegramBotAPI (telebot) • Flask (для Webhook и Telegram Web App) • SQLite (без отдельного сервера БД) • Marzban API • Telegram Stars • CryptoBot API (USDT / TON) ? Запрещено использовать: • aiogram • PostgreSQL / MySQL • Docker • очереди (RabbitMQ, Redis и т.п.) Архитектура — монолит, один сервис. 4. Архитектура проекта • один основной файл bot.py • одна база данных SQLite • один .env файл с настройками • запуск проекта командой: python bot.py Бот работает через Webhook (HTTPS), polling не допускается в продакшене. 5. База данных Таблица users • telegram_id (PRIMARY KEY) • username • balance • created_at Таблица payments • payment_id • telegram_id • amount • currency (stars / usdt) • status (pending / paid / refunded) • created_at Таблица subscriptions • telegram_id • marzban_username • expires_at • config_link • created_at Требования к SQLite • check_same_thread=False • все операции записи через транзакции • явный commit() • корректная обработка параллельных записей 6. Функционал Telegram-бота Пользовательская часть • команда /start — регистрация пользователя • кнопки: • «Купить VPN» • «Личный кабинет» • автоматическое создание профиля пользователя при первом запуске • обработка ошибок API с понятными сообщениями пользователю 7. Платёжная система Telegram Stars • фиксированный курс: STAR_PRICE_RUB = 1.65 • округление стоимости через math.ceil • поддержка возвратов через refundStarPayment • при возврате: 1. сначала возврат через Telegram API 2. затем откат данных в БД 3. затем уведомление пользователя CryptoBot • создание инвойсов через API CryptoBot • получение ссылки на оплату • отслеживание статуса платежа • фиксированный курс RUB ? USDT • корректная запись транзакций в таблицу payments 8. Интеграция с Marzban Авторизация • JWT-аутентификация • функция авторизации через admin-учётку • кэш токена (TTL ? 1 час) • автоматическая реавторизация при истечении токена Управление VPN-пользователями Функция создания / продления VPN должна: • проверять наличие активной подписки • при отсутствии — создавать нового пользователя • при наличии — продлевать существующего • получать конфигурацию подключения (vless / vmess) • генерировать QR-код • сохранять данные в subscriptions 9. Telegram Web App (личный кабинет) Реализация через Flask. Эндпоинты: • /webapp — HTML + JS • /api/user_data — JSON Отображаемая информация: • текущий баланс • активные подписки • срок действия • история платежей • VPN-ключи ? Отдельный фронтенд-сервер не допускается. 10. Административный функционал Доступ только для ID из списка ADMIN_IDS. Функции: • просмотр статистики: • количество пользователей • суммарная выручка • возврат платежей по payment_id • ручное изменение баланса пользователя • массовые рассылки сообщений Все действия выполняются через Telegram. 11. Инфраструктура • VPS (Linux) • домен + SSL • один Python-процесс • минимальные требования по ресурсам • стабильная работа при нагрузке до ~500 пользователей 12. Результат работы Исполнитель должен передать: 1. полностью рабочий bot.py 2. пример .env 3. SQL-схему БД 4. инструкцию по развёртыванию на VPS 5. краткое описание архитектуры и ключевых решений 13. Требования к исполнителю • опыт разработки Telegram-ботов • опыт интеграции платёжных API • понимание VPN, Xray, Marzban • умение писать продакшен-код, а не учебные примеры 14. Сроки и формат работы • сроки обсуждаются, ориентир: 7–14 дней • поэтапная сдача приветствуется • обязательное тестирование полного цикла: оплата ? выдача VPN ? подключение.