mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-09-08 11:18:17 +00:00
27 lines
1.3 KiB
TypeScript
27 lines
1.3 KiB
TypeScript
import { registerAs } from "@nestjs/config";
|
|
|
|
/**
|
|
* EbirrPay — direct mobile-wallet debit (docs/ebirr/INTEGRATION.md).
|
|
*
|
|
* Auth is plain credentials in the request body (§4): there is no signing key, and — because the
|
|
* flow has no hosted page and no callback — no notify URL and no return URL either.
|
|
*/
|
|
export default registerAs("ebirr", () => ({
|
|
baseUrl: process.env.EBIRR_BASE_URL ?? "",
|
|
merchantUid: process.env.EBIRR_MERCHANT_UID ?? "",
|
|
apiKey: process.env.EBIRR_API_KEY ?? "",
|
|
apiUserId: process.env.EBIRR_API_USER_ID ?? "",
|
|
paymentMethod: process.env.EBIRR_PAYMENT_METHOD ?? "MWALLET_ACCOUNT",
|
|
channelName: process.env.EBIRR_CHANNEL_NAME ?? "WEB",
|
|
/**
|
|
* How long API_PURCHASE waits for the payer to read the USSD prompt and type their PIN. It is
|
|
* awaited on the request path, so it must stay under every timeout in front of it — the
|
|
* passenger API's PAYMENT_API_HTTP_TIMEOUT_MS (60s) and nginx's 60s default proxy_read_timeout.
|
|
* Raising it past those turns a slow payer into a dropped connection instead of a fallback.
|
|
*/
|
|
purchaseTimeoutMs: Number(process.env.EBIRR_PURCHASE_TIMEOUT_MS ?? 45_000),
|
|
/** How long the intent stays payable before the reconciliation sweep expires it. */
|
|
pushTtlMs: Number(process.env.EBIRR_PUSH_TTL_MS ?? 180_000),
|
|
insecureTls: process.env.EBIRR_INSECURE_TLS === "true",
|
|
}));
|