pal24 фиксы с кнопками СБП и карта

This commit is contained in:
gy9vin
2025-10-14 20:21:52 +03:00
parent 1baeb50322
commit d4e3adddfc
5 changed files with 3882 additions and 5 deletions

View File

@@ -277,6 +277,10 @@ PAL24_PAYMENT_DESCRIPTION="Пополнение баланса"
PAL24_MIN_AMOUNT_KOPEKS=10000
PAL24_MAX_AMOUNT_KOPEKS=100000000
PAL24_REQUEST_TIMEOUT=30
# Отображать кнопку СБП в PayPalych (true - отображать, false - скрывать)
PAL24_SBP_BUTTON_VISIBLE=true
# Отображать кнопку оплаты картой в PayPalych (true - отображать, false - скрывать)
PAL24_CARD_BUTTON_VISIBLE=true
# ===== ИНТЕРФЕЙС И UX =====

View File

@@ -228,6 +228,8 @@ class Settings(BaseSettings):
PAL24_REQUEST_TIMEOUT: int = 30
PAL24_SBP_BUTTON_TEXT: Optional[str] = None
PAL24_CARD_BUTTON_TEXT: Optional[str] = None
PAL24_SBP_BUTTON_VISIBLE: bool = True
PAL24_CARD_BUTTON_VISIBLE: bool = True
MAIN_MENU_MODE: str = "default"
CONNECT_BUTTON_MODE: str = "guide"
@@ -460,6 +462,12 @@ class Settings(BaseSettings):
value = (self.PAL24_CARD_BUTTON_TEXT or "").strip()
return value or fallback
def is_pal24_sbp_button_visible(self) -> bool:
return self.PAL24_SBP_BUTTON_VISIBLE
def is_pal24_card_button_visible(self) -> bool:
return self.PAL24_CARD_BUTTON_VISIBLE
def get_remnawave_user_delete_mode(self) -> str:
"""Возвращает режим удаления пользователей: 'delete' или 'disable'"""
mode = self.REMNAWAVE_USER_DELETE_MODE.lower().strip()

View File

@@ -403,12 +403,23 @@ async def start_pal24_payment(
await callback.answer("❌ Оплата через PayPalych временно недоступна", show_alert=True)
return
# Формируем текст сообщения в зависимости от доступных способов оплаты
if settings.is_pal24_sbp_button_visible() and settings.is_pal24_card_button_visible():
payment_methods_text = "СБП и банковской картой"
elif settings.is_pal24_sbp_button_visible():
payment_methods_text = "СБП"
elif settings.is_pal24_card_button_visible():
payment_methods_text = "банковской картой"
else:
# Если обе кнопки отключены, используем общий текст
payment_methods_text = "доступными способами"
message_text = texts.t(
"PAL24_TOPUP_PROMPT",
(
"🏦 <b>Оплата через PayPalych (СБП)</b>\n\n"
f"🏦 <b>Оплата через PayPalych ({payment_methods_text})</b>\n\n"
"Введите сумму для пополнения от 100 до 1 000 000 ₽.\n"
"Оплата проходит через систему быстрых платежей PayPalych."
f"Оплата проходит через PayPalych ({payment_methods_text})."
),
)
@@ -1091,7 +1102,7 @@ async def process_pal24_payment_amount(
)
sbp_button_text = settings.get_pal24_sbp_button_text(default_sbp_text)
if sbp_url:
if sbp_url and settings.is_pal24_sbp_button_visible():
pay_buttons.append(
[
types.InlineKeyboardButton(
@@ -1114,7 +1125,7 @@ async def process_pal24_payment_amount(
)
card_button_text = settings.get_pal24_card_button_text(default_card_text)
if card_url and card_url != sbp_url:
if card_url and card_url != sbp_url and settings.is_pal24_card_button_visible():
pay_buttons.append(
[
types.InlineKeyboardButton(
@@ -1131,7 +1142,7 @@ async def process_pal24_payment_amount(
)
step_counter += 1
if not pay_buttons and fallback_url:
if not pay_buttons and fallback_url and settings.is_pal24_sbp_button_visible():
pay_buttons.append(
[
types.InlineKeyboardButton(

File diff suppressed because it is too large Load Diff

1927
app/handlers/balance.py.bak2 Normal file

File diff suppressed because it is too large Load Diff