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
+8 -9
View File
@@ -238,15 +238,7 @@ 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:
prepend_rows.append([
InlineKeyboardButton(
text=get_text("connect_button"),
web_app=WebAppInfo(url=settings.SUBSCRIPTION_MINI_APP_URL),
)
])
else:
cfg_link_val = connect_button_url or config_link_display cfg_link_val = connect_button_url or config_link_display
if cfg_link_val: if cfg_link_val:
prepend_rows.append([ prepend_rows.append([
@@ -255,6 +247,13 @@ async def my_subscription_command_handler(
url=cfg_link_val, url=cfg_link_val,
) )
]) ])
elif settings.SUBSCRIPTION_MINI_APP_URL:
prepend_rows.append([
InlineKeyboardButton(
text=get_text("connect_button"),
web_app=WebAppInfo(url=settings.SUBSCRIPTION_MINI_APP_URL),
)
])
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(