From 91a756a33ed4ce685bdf485cdb4e91c3e08799dd Mon Sep 17 00:00:00 2001 From: c0mrade Date: Fri, 10 Apr 2026 11:56:24 +0300 Subject: [PATCH] fix: add retry queue to payment webhook and renewal service RemnaWave errors --- app/services/payment/stars.py | 6 ++++++ app/services/payment/yookassa.py | 12 ++++++++++++ app/services/subscription_renewal_service.py | 6 ++++++ 3 files changed, 24 insertions(+) diff --git a/app/services/payment/stars.py b/app/services/payment/stars.py index b21bf42e..9cc7dcc3 100644 --- a/app/services/payment/stars.py +++ b/app/services/payment/stars.py @@ -286,6 +286,12 @@ class TelegramStarsMixin: sync_error=sync_error, exc_info=True, ) + from app.services.remnawave_retry_queue import remnawave_retry_queue + remnawave_retry_queue.enqueue( + subscription_id=subscription.id, + user_id=subscription.user_id, + action='create', + ) period_display = period_days if not period_display and getattr(subscription, 'start_date', None) and getattr(subscription, 'end_date', None): diff --git a/app/services/payment/yookassa.py b/app/services/payment/yookassa.py index 0ce2f94c..2c45a3fa 100644 --- a/app/services/payment/yookassa.py +++ b/app/services/payment/yookassa.py @@ -680,6 +680,12 @@ class YooKassaPaymentMixin: await subscription_service.create_remnawave_user(db, subscription) except Exception as rw_error: logger.error('Ошибка создания RemnaWave для триала', rw_error=rw_error) + from app.services.remnawave_retry_queue import remnawave_retry_queue + remnawave_retry_queue.enqueue( + subscription_id=subscription.id, + user_id=subscription.user_id, + action='create', + ) # Уведомление админам if getattr(self, 'bot', None): @@ -991,6 +997,12 @@ class YooKassaPaymentMixin: sync_error=sync_error, exc_info=True, ) + from app.services.remnawave_retry_queue import remnawave_retry_queue + remnawave_retry_queue.enqueue( + subscription_id=subscription.id, + user_id=subscription.user_id, + action='create', + ) # Отправляем уведомление пользователю об активации подписки (только Telegram) if getattr(self, 'bot', None) and user.telegram_id: diff --git a/app/services/subscription_renewal_service.py b/app/services/subscription_renewal_service.py index dec7c311..1f79d071 100644 --- a/app/services/subscription_renewal_service.py +++ b/app/services/subscription_renewal_service.py @@ -518,6 +518,12 @@ class SubscriptionRenewalService: subscription_after_id=subscription_after.id, error=error, ) + from app.services.remnawave_retry_queue import remnawave_retry_queue + remnawave_retry_queue.enqueue( + subscription_id=subscription_after.id, + user_id=subscription_after.user_id, + action='create' if not getattr(subscription_after, 'remnawave_uuid', None) else 'update', + ) transaction: Transaction | None = None try: