summaryrefslogtreecommitdiff
path: root/packages/taler-util/src/taleruri.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-util/src/taleruri.ts')
-rw-r--r--packages/taler-util/src/taleruri.ts17
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) {