📋 Changelog v2.5.1
🎯 Основные изменения
⚙️ Реструктуризация проекта
Модульная система обработчиков подписки
Проведена полная реорганизация обработчиков подписки для улучшения поддерживаемости и масштабируемости:
- Удалён монолитный файл
app/handlers/subscription.py - Создан пакет
app/handlers/subscription/с разделением по функциональности:autopay.py— управление автоплатежамиcommon.py— общие обработчикиcountries.py— работа со странамиdevices.py— управление устройствамиhapp.py— интеграция с Happlinks.py— генерация и обработка ссылок подпискиnotifications.py— система уведомленийpricing.py— управление ценамиpromo.py— промокоды и акцииpurchase.py— обработка покупокtraffic.py— мониторинг трафика__init__.py— публичный API пакета
Модульная система платёжного сервиса by @Gy9vin
Проведён рефакторинг платёжного сервиса с внедрением паттерна миксинов:
- Создан пакет
app/services/payment/с миксинами для каждого платёжного канала:common.py— общая логикаstars.py— Telegram Starsyookassa.py— YooKassa (карты и СБП)tribute.py— Tributecryptobot.py— CryptoBotmulenpay.py— MulenPaypal24.py— Pal24
💳 Новые возможности
СБП (Система быстрых платежей)
Добавлена полная поддержка оплаты через СБП via YooKassa:
- ✅ Новый способ оплаты в интерфейсе бота
- ✅ Приоритетное отображение (выше банковских карт)
- ✅ Интеграция в miniapp
- ✅ Специальные иконки и описания
- ✅ Отдельные обработчики создания и проверки платежей
- ✅ Поддержка во всех эндпоинтах webapi
🔧 Улучшения
Обработка payload при старте
- Сохранение и восстановление payload после проверки подписки на канал
- Корректная обработка реферальных кодов
- Поддержка кампаний и UTM-меток
Логика подписок
- Расширенное логирование переходов между статусами
- Улучшенная обработка граничных случаев
Система уведомлений
- Переработана логика отправки уведомлений администраторам
- Повторная загрузка сущностей из БД при ошибках
- Корректное формирование сообщений о пополнении баланса
- Поддержка всех новых платёжных методов
Производительность
- Переход на асинхронные методы во множестве компонентов
- Оптимизация работы с базой данных
- Улучшенная обработка ошибок и исключений
Логирование
- Расширенное логирование операций оплаты
- Детальные логи переходов статусов подписки
- Улучшенная диагностика ошибок
📚 Документация
- Добавлен
docs/project_structure_reference.mdс описанием структуры проекта - Обновлена документация модулей подписки
- Добавлены комментарии к новым миксинам платёжного сервиса
🔄 Изменённые файлы
Основные компоненты
app/handlers/subscription/*— новая модульная структураapp/services/payment/*— миксины платёжных каналовapp/handlers/start.py— улучшенная обработка payloadapp/middlewares/channel_checker.py— сохранение payloadapp/database/crud/subscription.py— логика активации подписокapp/services/admin_notification_service.py— уведомления о пополнении
Интерфейс и API
app/keyboards/inline.py— кнопки для СБП и новых методовapp/utils/payment_utils.py— утилиты для работы с платежамиapp/webapi/routes/miniapp.py— интеграция СБП в miniappapp/services/yookassa_service.py— улучшенная конфигурация SDK
🎨 UX улучшения
- Изменён порядок отображения способов оплаты
- Добавлены иконки и описания для СБП
- Улучшена навигация в меню автоплатежей
- Оптимизирован интерфейс работы с устройствами
🏗️ Архитектурные улучшения
- Модульность: разделение монолитных файлов на специализированные модули
- Масштабируемость: паттерн миксинов для платёжных каналов
- Тестируемость: изолированные компоненты с чёткими интерфейсами
- Поддерживаемость: улучшенная структура и документация
Это крупное обновление значительно улучшает архитектуру проекта, добавляет новые способы оплаты и повышает надёжность работы системы подписок и платежей.
What's Changed
- Покрытие кода тестами! by @Gy9vin in #1294
- фиксы by @Fr1ngg in #1303
- Рефактор subscription разбите на модули by @Fr1ngg in #1305
Full Changelog: v2.5.0...v2.6.0