Разработан Telegram-бот для сервиса Grimsel VPN, который автоматизирует полный цикл подписки: от оплаты до выдачи доступа и поддержки пользователей.
Задачи проекта: автоматизировать оплату через YooKassa и безопасно обрабатывать вебхуки; автоматически создавать/продлевать/отключать пользователей в 3x-ui (Xray/VLESS); выдавать пользователю готовое подключение (ссылка/файл/QR) и понятные инструкции по устройствам; реализовать контроль одновременных подключений (лимит IP/устройств) с кулдауном/баном; сделать поддержку через тикеты с историей сообщений и уведомлениями без спама; дать администратору “пульт” обслуживания: диагностика БД, бэкапы, аудит X-UI, поиск/ремонт платежей, экспорт.
Платежи YooKassa: webhook на FastAPI, проверка статуса оплаты через YooKassa API (Payment.find_one), идемпотентность по payment_id, логирование событий в БД.
3x-ui/X-UI: асинхронные запросы через httpx, авторизация и cookie-сессия, работа с inbound и клиентами, привязка пользователя по tgId, автоматическая выдача/продление/отключение по тарифу.
Контроль устройств/IP: таблица ip_control, лимиты подключений, фиксация нарушений, cooldown/ban по настройкам.
Поддержка: тикеты и история сообщений (tickets, ticket_messages), статусы тикетов, уведомления “одно актуальное” без спама (ui_notifications), UI с редактированием текущего сообщения вместо создания нового.
Инструкции/QR: генерация QR-кода для подключения, выдача файлов/ссылок и инструкций под разные устройства, обновляемые ссылки на приложения (latest release).
Получился автономный сервис-бот, который без ручной работы принимает оплату и активирует/продлевает доступ, выдаёт пользователю готовое подключение и инструкции, контролирует лимит устройств/IP, обрабатывает нарушения, ведёт поддержку через тикеты с историей, а администратору даёт полный набор инструментов обслуживания через /db: бэкапы, диагностика, поиск/ремонт оплат, аудит X-UI и восстановление доступа.