rspace-online/shared/transak.ts

25 lines
782 B
TypeScript

/**
* Transak API utilities — shared across rFlows and rCart.
*
* Builds Transak widget URLs using direct query parameters.
* The gateway session API has auth issues, so we use the direct
* URL approach which Transak still supports.
*/
const TRANSAK_WIDGET_BASE = 'https://global.transak.com';
const TRANSAK_WIDGET_BASE_STG = 'https://global-stg.transak.com';
export function createTransakWidgetUrl(params: Record<string, string>): string {
const env = process.env.TRANSAK_ENV || 'PRODUCTION';
const base = env === 'PRODUCTION' ? TRANSAK_WIDGET_BASE : TRANSAK_WIDGET_BASE_STG;
const url = new URL(base);
for (const [key, value] of Object.entries(params)) {
if (value != null && value !== '') {
url.searchParams.set(key, value);
}
}
return url.toString();
}