Implement YooKassa autopayments feature toggle across payment and subscription handlers

- Introduced a global setting for enabling or disabling YooKassa autopayments, allowing for better control over payment method management and subscription renewals.
- Updated various handlers to check the autopayments setting before executing payment-related logic, ensuring that features are only available when enabled.
- Enhanced error handling to notify users when autopayments are disabled, improving user experience and clarity in payment operations.
- Refactored receipt generation logic to derive fields based on the autopayments setting, streamlining configuration management.
This commit is contained in:
machka-pasla
2025-09-04 20:03:47 +03:00
parent 807e3dadd3
commit b7a723a088
7 changed files with 70 additions and 7 deletions
+3
View File
@@ -789,6 +789,9 @@ class SubscriptionService:
"""Attempt to charge user using saved payment method. Return True on initiated/handled, False on failure."""
if not sub.auto_renew_enabled:
return True
# If autopayments are disabled globally, skip charging attempts
if not getattr(self.settings, 'YOOKASSA_AUTOPAYMENTS_ENABLED', False):
return True
if sub.provider == "tribute":
# Tribute is paid externally; we do not auto-charge here
return True