mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-28 09:33:46 +00:00
feat(topup): direct-open payment page when method.open_url_direct is set
User asked for the gift-style seamless flow on balance top-up: provider checkout opens inside Telegram MiniApp WebView without a click-to-open link panel. Made it an admin per-method toggle so it can be enabled selectively. src/pages/TopUpAmount.tsx — on topup mutation success: * Move saveTopUpPendingInfo to BEFORE any redirect so /balance/top-up/result can still pick up the pending payment after the provider's return_url fires * If method?.open_url_direct === true AND the URL is not a t.me/ deep link (Stars/CryptoBot), window.location.href = redirectUrl and return early * Otherwise fall through to the existing setPaymentUrl panel — preserves current behavior for methods without the flag enabled The t.me/ guard is important: window.location.href to a Telegram deep link inside a MiniApp WebView is unreliable (native shell cant always intercept). Those URLs continue to go through openTelegramLink / openInvoice in the panel path. Stars never reaches topUpMutation.onSuccess anyway (handled by the separate starsPaymentMutation); the guard is defense-in-depth for CryptoBot and any future t.me-deep-link providers. src/pages/AdminPaymentMethodEdit.tsx — added Open URL directly toggle with the same slider styling as the is_enabled toggle. Defaults to off. src/types/index.ts * PaymentMethod.open_url_direct?: boolean (user-facing) * PaymentMethodConfig.open_url_direct: boolean (admin shape) Translations added for ru/en/zh/fa with a hint clarifying behavior and the t.me/ exemption.
This commit is contained in:
@@ -442,6 +442,9 @@ export interface PaymentMethod {
|
||||
max_amount_kopeks: number;
|
||||
is_available: boolean;
|
||||
options?: PaymentMethodOption[] | null;
|
||||
// Если true — после получения payment_url кабинет сразу делает
|
||||
// window.location.href вместо показа панели с кнопкой "Открыть".
|
||||
open_url_direct?: boolean;
|
||||
}
|
||||
|
||||
// Referral types
|
||||
@@ -682,6 +685,7 @@ export interface PaymentMethodConfig {
|
||||
first_topup_filter: 'any' | 'yes' | 'no';
|
||||
promo_group_filter_mode: 'all' | 'selected';
|
||||
allowed_promo_group_ids: number[];
|
||||
open_url_direct: boolean;
|
||||
is_provider_configured: boolean;
|
||||
created_at: string | null;
|
||||
updated_at: string | null;
|
||||
|
||||
Reference in New Issue
Block a user