fix(bot): connect button opens subscription page instead of mini app

Previously the connect button in post-payment messages and in 'My subscription' section opened the mini app (personal cabinet) when SUBSCRIPTION_MINI_APP_URL was set, ignoring the actual subscription URL. Now the real subscription URL is preferred, with the mini app used only as a fallback.
This commit is contained in:
3252a8
2026-04-27 11:06:32 +03:00
parent e35885b54b
commit 587b39de1d
2 changed files with 15 additions and 16 deletions
+10 -11
View File
@@ -238,23 +238,22 @@ async def my_subscription_command_handler(
# Build rows to prepend above the base "back" markup # Build rows to prepend above the base "back" markup
prepend_rows = [] prepend_rows = []
# 1) Mini-app connect button on top if enabled, otherwise fall back to config link URL # 1) Connect button: prefer the actual subscription URL; fall back to mini-app
if settings.SUBSCRIPTION_MINI_APP_URL: cfg_link_val = connect_button_url or config_link_display
if cfg_link_val:
prepend_rows.append([
InlineKeyboardButton(
text=get_text("connect_button"),
url=cfg_link_val,
)
])
elif settings.SUBSCRIPTION_MINI_APP_URL:
prepend_rows.append([ prepend_rows.append([
InlineKeyboardButton( InlineKeyboardButton(
text=get_text("connect_button"), text=get_text("connect_button"),
web_app=WebAppInfo(url=settings.SUBSCRIPTION_MINI_APP_URL), web_app=WebAppInfo(url=settings.SUBSCRIPTION_MINI_APP_URL),
) )
]) ])
else:
cfg_link_val = connect_button_url or config_link_display
if cfg_link_val:
prepend_rows.append([
InlineKeyboardButton(
text=get_text("connect_button"),
url=cfg_link_val,
)
])
if settings.MY_DEVICES_SECTION_ENABLED: if settings.MY_DEVICES_SECTION_ENABLED:
max_devices_value = active.get("max_devices") max_devices_value = active.get("max_devices")
+5 -5
View File
@@ -444,17 +444,17 @@ def get_connect_and_main_keyboard(
builder = InlineKeyboardBuilder() builder = InlineKeyboardBuilder()
button_target = connect_button_url or config_link button_target = connect_button_url or config_link
if settings.SUBSCRIPTION_MINI_APP_URL: if button_target:
builder.row(
InlineKeyboardButton(text=_("connect_button"), url=button_target)
)
elif settings.SUBSCRIPTION_MINI_APP_URL:
builder.row( builder.row(
InlineKeyboardButton( InlineKeyboardButton(
text=_("connect_button"), text=_("connect_button"),
web_app=WebAppInfo(url=settings.SUBSCRIPTION_MINI_APP_URL), web_app=WebAppInfo(url=settings.SUBSCRIPTION_MINI_APP_URL),
) )
) )
elif button_target:
builder.row(
InlineKeyboardButton(text=_("connect_button"), url=button_target)
)
else: else:
builder.row( builder.row(
InlineKeyboardButton( InlineKeyboardButton(