RENZZY / Меню
Ко всем работам

Telegram-бот / Демопроект

ClubGate

Бот выдаёт и продлевает доступ в закрытое Telegram-сообщество, напоминает об окончании срока и обрабатывает возвраты.

  • Python
  • aiogram
  • Telegram Bot API
  • PostgreSQL
  • SQLAlchemy
  • Docker Compose
Терминал локального демо ClubGate с итогом проверки сценария.

Задача

Владельцу закрытого клуба нужно знать, у кого оплачен доступ и когда он закончится. Если платёжное событие повторилось или Telegram не ответил, бот должен сохранить право участника и проверить итог операции.

Решение

Разовая покупка в Telegram Stars открывает доступ на 30 суток. Бот выдаёт персональное приглашение, проверяет право при вступлении и напоминает об окончании срока. Продление добавляет новый период. Возврат отменяет только период соответствующей покупки.

Как это работает

Результат

В отчёте реализации зафиксированы 88 пройденных тестов. Локальный сценарий подтвердил две тестовые покупки, два периода доступа, один возврат и удаление участника после истечения срока. Telegram в демо имитируется. Работа в реальном сообществе и реальные платежи не проверялись.

Мой вклад

Я разделил платёж, право доступа и фактическое членство. PostgreSQL хранит события и задания, поэтому повторная доставка не начисляет доступ дважды, а после тайм-аута бот сверяет состояние перед следующим действием.

Архитектура

Входящие события, право доступа и внешние действия связаны через PostgreSQL.

Описание компонента

Приём событий

Бот или локальный сценарий сохраняет входящие события до обработки.

Связи компонентов
  • Приём событий: Бот или локальный сценарий сохраняет входящие события до обработки.
  • Платежи и доступ: Бизнес-логика проверяет заказ и фиксирует отдельный период доступа.
  • Фоновая обработка: Фоновый процесс выполняет действия через Telegram-адаптер и сверяет неоднозначные результаты.
  • Приём событий → Платежи и доступ
  • Платежи и доступ → Фоновая обработка

Следующий шаг

Есть задача? Давайте решим.

СвязатьсяКо всем работам