Commit Graph

94 Commits

Author SHA1 Message Date
gy9vin
4c1ebd9f61 Merge branch 'main' of https://github.com/Gy9vin/remnawave-bedolaga-telegram-bot 2026-01-08 11:00:38 +03:00
gy9vin
51b88068bd fix(payment): добавлен параметр bot в auto_activate_subscription_after_topup
- Передача bot через getattr(self, "bot", None) во всех платёжных провайдерах
  - Добавлена отправка предупреждений пользователю при отключенной автоактивации
  - Добавлены предупреждения о необходимости активации подписки после пополнения
2026-01-08 11:00:34 +03:00
Egor
cf53801408 Update freekassa.py 2026-01-08 03:18:56 +03:00
Egor
23b64ffb2a Revert "Revert "Frekassa"" 2026-01-06 22:43:01 +03:00
Egor
aeaaa54920 Revert "Frekassa" 2026-01-06 22:40:35 +03:00
Egor
53a10c0640 Add files via upload 2026-01-06 20:56:44 +03:00
gy9vin
a9fd4c2466 fix Модульная структура платежки 2025-12-30 22:22:56 +03:00
gy9vin
5aa9b6ddb3 fix Исправление уведомления пользователя о поступлении денег на счет 2025-12-30 22:18:44 +03:00
Egor
e582802e39 Update payment link generation to use async method 2025-12-30 18:51:55 +04:00
gy9vin
d10ccc4844 refactor(nalogo): улучшение системы чеков NaloGO
Сохранение времени оплаты:
  - Добавлен параметр operation_time в create_receipt()
  - Чеки из очереди создаются с оригинальным временем платежа
  - Парсинг created_at из Redis очереди

  Защита от дублей (3 уровня):
  - Проверка transaction.receipt_uuid перед созданием
  - Redis ключ nalogo:created:{payment_id} с TTL 30 дней
  - Сохранение receipt_uuid в транзакцию после создания

  Бесконечные повторы:
  - Убрано удаление чеков после 10 попыток
  - Чеки остаются в очереди до успешной отправки

  Обработка ошибок:
  - Добавлена обработка 500 и "внутренняя ошибка" как временной недоступности

  Сверка чеков:
  - Заменена API сверка на сверку по логам (logs/current/payments.log)
  - Кнопка "Без чеков" → "Сверка чеков" с прямым показом сверки
  - Исправлена навигация кнопок "Назад"
2025-12-30 00:39:00 +03:00
gy9vin
a362ef9f25 refactor(nalogo): восстановить описание чеков из настроек и использовать локальную библиотеку
- Добавлено восстановление описания чека из настроек при обработке очереди
- Передача telegram_user_id и amount_kopeks через всю цепочку создания чеков
- Переход на локальную исправленную версию библ
2025-12-28 04:58:05 +03:00
gy9vin
1b736b381d refactor(nalogo): упростить настройку чеков и использовать локальное время
- Удалена избыточная настройка NALOGO_RECEIPTS_ENABLED
- Удален эндпоинт /settings/support/nalogo_receipts_enabled
- Удалены методы is_nalogo_receipts_enabled и set_nalogo_receipts_enabled из SupportSettingsService
- Упрощена логика создания чеков
2025-12-27 19:29:04 +03:00
gy9vin
d343a317ee feat(logging): добавить систему ротации логов
- Ежедневная ротация в 00:00 с архивацией в tar.gz
  - Разделение по уровням: info.log, warning.log, error.log
  - Отдельный payments.log для платежных операций
  - Отправка архивов в Telegram-канал бекапов
  - Автоочистка архивов старше 7 дней (настраивается)
  - Переключатель LOG_ROTATION_ENABLED (по умолчанию выключен)
2025-12-27 19:02:28 +03:00
gy9vin
cad9abd8bd feat(payments): умная автоактивация подписки после пополнения + округление цен
Добавлена функция умной автоактивации подписки после пополнения баланса:

  - Новая настройка AUTO_ACTIVATE_AFTER_TOPUP_ENABLED в .env
  - Функция auto_activate_subscription_after_topup() в subscription_auto_purchase_service.py:
    - Автоматически продлевает истёкшую подписку с теми же параметрами
    - Создаёт новую подписку с дефолтными параметрами если подписки нет
    - Проверяет достаточность баланса перед активацией
    - Интеграция с RemnaWave API
    - Уведомления пользователю и админам

  - Интеграция во все 9 платёжных провайдеров:
    - Stars, CryptoBot, YooKassa, CloudPayments
    - WATA, Platega, Pal24, MulenPay, Tribute

  - Исправлен handle_activate_button в menu.py:
    - Полная переработка с интеграцией RemnaWave
    - Корректная работа с балансом и транзакциями
    - Использование SubscriptionRenewalService

  Добавлено округление цен при отображении:

  - Новая настройка PRICE_ROUNDING_ENABLED в .env
  - Логика: ≤50 коп → вниз, >50 коп → вверх
  - Применяется везде: пополнения, партнёрки, скидки, промогруппы
2025-12-26 23:38:46 +03:00
Mikhail
fb9405cccd Merge branch 'BEDOLAGA-DEV:main' into main 2025-12-25 23:56:04 +03:00
gy9vin
0df3018703 feat(nalogo): система очереди чеков с отложенной отправкой
Реализована отказоустойчивая система отправки чеков в налоговую:

  - Добавлен NalogoQueueService для фоновой обработки очереди чеков
  - При недоступности nalog.ru (503) чеки сохраняются в Redis
  - Автоматическая повторная отправка с настраиваемым интервалом
  - Защита от DDoS: задержка между чеками (NALOGO_QUEUE_RECEIPT_DELAY)
  - Уведомления админам в топик при проблемах и успешной разгрузке

  Изменения в файлах:
  - app/services/nalogo_queue_service.py: новый фоновый сервис
  - app/services/nalogo_service.py: методы очереди, определение 503
  - app/utils/cache.py: lpush/rpop/llen/lrange для Redis List
  - app/handlers/admin/monitoring.py: статистика чеков в админке
  - app/config.py: NALOGO_QUEUE_* и ADMIN_NOTIFICATIONS_NALOG_TOPIC_ID
  - main.py: интеграция запуска/остановки сервиса

  Новые ENV переменные:
  - ADMIN_NOTIFICATIONS_NALOG_TOPIC_ID
  - NALOGO_QUEUE_CHECK_INTERVAL (300с)
  - NALOGO_QUEUE_RECEIPT_DELAY (3с)
  - NALOGO_QUEUE_MAX_ATTEMPTS (10)
2025-12-25 23:01:49 +03:00
Egor
d8e57ab766 Add files via upload 2025-12-25 21:01:58 +03:00
Egor
3dab9df26c Update platega.py 2025-12-22 19:33:09 +03:00
gy9vin
5ca0f5fc27 Еще правки 2025-12-18 00:13:57 +03:00
gy9vin
e76f2f3d50 Кнопка конкурсов + прототип налоговой. не трогайте налоговую еще!!! 2025-12-16 00:59:23 +03:00
belousotroll
207e4673c0 Merge branch 'BEDOLAGA-DEV:main' into fix-calculating-tg-starts-amount 2025-11-30 20:30:14 +07:00
belousotroll
160ff7ff9f fix: calculating telegram starts amount 2025-11-30 19:29:29 +07:00
Egor
ac04284d85 Handle lazy subscription access in checkout resume 2025-11-28 00:11:15 +03:00
Egor
e0f1f221df Refresh promo groups before platega finalize 2025-11-27 23:38:16 +03:00
Egor
61681b393e Fix CryptoBot saved cart notifications 2025-11-27 23:28:53 +03:00
Egor
330ace039b Avoid lazy loading during Platega payment finalization 2025-11-25 09:57:11 +03:00
Egor
f5a6dbdeec Serve miniapp app-config and fix maintenance schema 2025-11-25 04:26:54 +03:00
Egor
c8b6830704 Clean up CryptoBot amount prompts 2025-11-21 06:32:34 +03:00
Egor
6dc525dd72 Handle missing YooKassa payment ids gracefully 2025-11-21 05:26:42 +03:00
Egor
b6e333127c Revert "Clean up Telegram Stars top-up messages" 2025-11-21 03:18:10 +03:00
Egor
af42377c3b Clean up Telegram Stars top-up messages 2025-11-21 03:16:24 +03:00
Egor
ac9e5cd908 Revert "Enable automatic trial activation after balance top-up" 2025-11-12 05:24:14 +03:00
Egor
8f33eb0cc6 Enable automatic trial activation after balance top-up 2025-11-12 04:45:03 +03:00
Egor
a3532e5878 Handle CryptoBot renewal payload fallbacks 2025-11-11 13:06:10 +03:00
Egor
ccafb18122 Round CryptoBot top-up amounts up to whole rubles 2025-11-10 06:11:18 +03:00
Egor
f2b724a78d Adjust Pal24 callback handling and SBP link fallback 2025-11-10 05:26:02 +03:00
gy9vin
33882f1e93 Фикс проверки зачисления платежа юкассы(защита от дублирования) 2025-11-09 18:31:39 +03:00
Egor
9e88eae416 Ensure YooKassa retries finish pending credits 2025-11-09 10:13:01 +03:00
Egor
cde84ff20b Handle optional Pal24 metadata fields 2025-11-09 08:23:01 +03:00
Egor
ea61aa7053 Fix Pal24 SBP link handling after status checks 2025-11-09 06:31:02 +03:00
Egor
e83ebc4f02 Revert "Dev4" 2025-11-08 11:08:47 +03:00
Egor
e036173670 Verify YooKassa webhooks against API 2025-11-08 11:00:28 +03:00
Egor
4cf0c5a971 Handle YooKassa cancellations in FastAPI webhook 2025-11-08 05:44:53 +03:00
gy9vin
607beca837 fix 2025-11-07 23:56:49 +03:00
gy9vin
cfdc829f48 update 2025-11-07 22:24:43 +03:00
Egor
7c31c3616e Guard Platega finalization against duplicate callbacks 2025-11-07 07:05:22 +03:00
Egor
fba80b1a0d Integrate Platega balance top-ups 2025-11-07 06:52:57 +03:00
reshifter1
3201b60ff2 Merge branch 'dev4' into main 2025-11-04 22:57:38 +03:00
Egor
c8aba42d3d Reload user after MulenPay callback commit 2025-11-04 16:33:34 +03:00
Pavel Stryuk
05d495e874 1) Отображение скидки на кнопках (красивое!)
2) У промогрупп появится приоритет
3) У пользователя может быть несколько промогрупп, но влиять будет только с наивысшим приоритетом
4) Промокоды с промогруппой
5) При выводе пользователей с промогруппой будет также выводиться ссылка на каждого. Можно будет отследить сливы промокодов "для своих". Я в целом это добавлю во все места, где пользователь выводится в админке
6) Исправить баг исчезновения триалки при пополнении
7) Исправить падающие тесты и добавить новых
8) Трафик: 0 ГБ в тестовой подписке исправить на Трафик: Безлимит
9) При попытке изменить промогруппу "Пользователь не найден" - исправил
2025-11-04 14:13:21 +01:00