diff --git a/modules/rcart/mod.ts b/modules/rcart/mod.ts index 560dd6b..5f39ced 100644 --- a/modules/rcart/mod.ts +++ b/modules/rcart/mod.ts @@ -1370,7 +1370,7 @@ routes.post("/api/payments/:id/transak-session", async (c) => { const host = new URL(c.req.url).hostname; - const widgetUrl = createTransakWidgetUrl({ + const widgetParams: Record = { apiKey: transakApiKey, referrerDomain: extractRootDomain(host), cryptoCurrencyCode: p.token, @@ -1383,7 +1383,19 @@ routes.post("/api/payments/:id/transak-session", async (c) => { email, themeColor: '6366f1', hideMenu: 'true', - }); + }; + + // Pre-fill fiat amount/currency so user sees the total immediately + if (p.fiatAmount) { + widgetParams.fiatAmount = p.fiatAmount; + widgetParams.defaultFiatAmount = p.fiatAmount; + } + if (p.fiatCurrency) { + widgetParams.fiatCurrency = p.fiatCurrency; + widgetParams.defaultFiatCurrency = p.fiatCurrency; + } + + const widgetUrl = createTransakWidgetUrl(widgetParams); return c.json({ widgetUrl }); }); diff --git a/modules/rflows/lib/transak-onramp.ts b/modules/rflows/lib/transak-onramp.ts index 6cfeb68..4c344a1 100644 --- a/modules/rflows/lib/transak-onramp.ts +++ b/modules/rflows/lib/transak-onramp.ts @@ -30,6 +30,14 @@ export class TransakOnrampAdapter implements OnrampProvider { themeColor: '6366f1', hideMenu: 'true', }; + if (req.fiatAmount > 0) { + widgetParams.fiatAmount = String(req.fiatAmount); + widgetParams.defaultFiatAmount = String(req.fiatAmount); + } + if (req.fiatCurrency) { + widgetParams.fiatCurrency = req.fiatCurrency; + widgetParams.defaultFiatCurrency = req.fiatCurrency; + } if (req.returnUrl) widgetParams.redirectURL = req.returnUrl; const widgetUrl = createTransakWidgetUrl(widgetParams);