feat: add separate Freekassa SBP and card payment methods

Split Freekassa into sub-methods: СБП/QR (i=44) and Карты РФ (i=36).
Each method has independent enable/display_name settings, dedicated
handlers, keyboard buttons, and correct payment_system_id routing.
Webhook notifications resolve display name from payment metadata.
This commit is contained in:
Fringg
2026-02-25 12:32:05 +03:00
parent 988d0e5c2f
commit 0da0c5547d
7 changed files with 248 additions and 19 deletions
+25 -1
View File
@@ -1569,7 +1569,31 @@ def get_payment_methods_keyboard(amount_kopeks: int, language: str = DEFAULT_LAN
)
has_direct_payment_methods = True
if settings.is_freekassa_enabled():
if settings.is_freekassa_sbp_enabled():
sbp_name = settings.get_freekassa_sbp_display_name()
keyboard.append(
[
InlineKeyboardButton(
text=texts.t('PAYMENT_FREEKASSA_SBP', f'📱 {sbp_name}'),
callback_data=_build_callback('freekassa_sbp'),
)
]
)
has_direct_payment_methods = True
if settings.is_freekassa_card_enabled():
card_name = settings.get_freekassa_card_display_name()
keyboard.append(
[
InlineKeyboardButton(
text=texts.t('PAYMENT_FREEKASSA_CARD', f'💳 {card_name}'),
callback_data=_build_callback('freekassa_card'),
)
]
)
has_direct_payment_methods = True
if settings.is_freekassa_enabled() and not settings.is_freekassa_sbp_enabled() and not settings.is_freekassa_card_enabled():
freekassa_name = settings.get_freekassa_display_name()
keyboard.append(
[