From 7222730df0ad434773d92f305dbcc0fe09e4ad30 Mon Sep 17 00:00:00 2001 From: "sp.wack" <83104063+amanape@users.noreply.github.com> Date: Wed, 17 Sep 2025 20:56:02 +0400 Subject: [PATCH] Fix SaaS callback URLs and pro pill positioning (#10998) Co-authored-by: openhands --- enterprise/server/routes/billing.py | 17 ++++++++++++++++- enterprise/tests/unit/test_billing.py | 3 ++- frontend/src/routes/settings.tsx | 4 +--- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/enterprise/server/routes/billing.py b/enterprise/server/routes/billing.py index 5688cd94e3..1d52b54ffb 100644 --- a/enterprise/server/routes/billing.py +++ b/enterprise/server/routes/billing.py @@ -417,7 +417,7 @@ async def success_callback(session_id: str, request: Request): session.commit() return RedirectResponse( - f'{request.base_url}settings?checkout=success', status_code=302 + f'{request.base_url}settings/billing?checkout=success', status_code=302 ) @@ -444,6 +444,21 @@ async def cancel_callback(session_id: str, request: Request): session.merge(billing_session) session.commit() + # Redirect credit purchases to billing screen, subscriptions to LLM settings + if ( + billing_session.billing_session_type + == BillingSessionType.DIRECT_PAYMENT.value + ): + return RedirectResponse( + f'{request.base_url}settings/billing?checkout=cancel', + status_code=302, + ) + else: + return RedirectResponse( + f'{request.base_url}settings?checkout=cancel', status_code=302 + ) + + # If no billing session found, default to LLM settings (subscription flow) return RedirectResponse( f'{request.base_url}settings?checkout=cancel', status_code=302 ) diff --git a/enterprise/tests/unit/test_billing.py b/enterprise/tests/unit/test_billing.py index 9947e32479..e35577e431 100644 --- a/enterprise/tests/unit/test_billing.py +++ b/enterprise/tests/unit/test_billing.py @@ -288,7 +288,8 @@ async def test_success_callback_success(): assert response.status_code == 302 assert ( - response.headers['location'] == 'http://test.com/settings?checkout=success' + response.headers['location'] + == 'http://test.com/settings/billing?checkout=success' ) # Verify LiteLLM API calls diff --git a/frontend/src/routes/settings.tsx b/frontend/src/routes/settings.tsx index 3b3feb605f..6c88ab7526 100644 --- a/frontend/src/routes/settings.tsx +++ b/frontend/src/routes/settings.tsx @@ -91,9 +91,7 @@ function SettingsScreen() { } > {t(text)} - {isSaas && to === "/settings" && ( - - )} + {isSaas && to === "/settings" && } ))}