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:
@@ -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")
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user