diff options
author | Sebastian <sebasjm@gmail.com> | 2022-11-24 23:16:01 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2022-11-24 23:16:01 -0300 |
commit | e05ba843a061c8050648ce922f36ed3d8e1cf24a (patch) | |
tree | 4daf3eccc5f2976b980e884499a756cc6f864c6e /packages/taler-util/src/taleruri.ts | |
parent | 88618df7b870732f4f29a80686dd4f4cf20887f8 (diff) | |
download | wallet-core-e05ba843a061c8050648ce922f36ed3d8e1cf24a.tar.xz |
fix 7465
Diffstat (limited to 'packages/taler-util/src/taleruri.ts')
-rw-r--r-- | packages/taler-util/src/taleruri.ts | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/packages/taler-util/src/taleruri.ts b/packages/taler-util/src/taleruri.ts index 13cdde9a9..4e47acbce 100644 --- a/packages/taler-util/src/taleruri.ts +++ b/packages/taler-util/src/taleruri.ts @@ -216,6 +216,23 @@ export function parsePayUri(s: string): PayUriResult | undefined { }; } +export function constructPayUri( + merchantBaseUrl: string, + orderId: string, + sessionId: string, + claimToken?: string, + noncePriv?: string, +): string { + const base = canonicalizeBaseUrl(merchantBaseUrl); + const url = new URL(base); + const isHttp = base.startsWith("http://"); + let result = isHttp ? `taler+http://pay/` : `taler://pay/`; + result += `${url.hostname}${url.pathname}${orderId}/${sessionId}?`; + if (claimToken) result += `c=${claimToken}`; + if (noncePriv) result += `n=${noncePriv}`; + return result; +} + export function parsePayPushUri(s: string): PayPushUriResult | undefined { const pi = parseProtoInfo(s, talerActionPayPush); if (!pi) { |