taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 62bf3543d72de0bdb52e6ff22519af4c8944960d
parent 9d2d254e7d0bbfc6112544ea3079621cb6d7a647
Author: Florian Dold <florian@dold.me>
Date:   Mon, 28 Oct 2024 13:36:59 +0100

util: handle BIC in EPC QR code generation

Diffstat:
Mpackages/taler-util/src/qr.ts | 20+++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/packages/taler-util/src/qr.ts b/packages/taler-util/src/qr.ts @@ -99,7 +99,19 @@ function encodePaytoAsEpcQr(paytoUri: string): EncodeResult { return { type: "skip" }; } const amountStr = parsedPayto.params["amount"]; - Amounts.stringifyValue; + + const parts = parsedPayto.targetPath.split("/"); + + const iban = parts[parts.length - 1]; + + const amt = + amountStr !== undefined + ? `${Amounts.currencyOf(amountStr)}${Amounts.stringifyValue( + amountStr, + 2, + )}` + : ""; + const lines = [ "BCD", // service tag "002", // version @@ -107,10 +119,8 @@ function encodePaytoAsEpcQr(paytoUri: string): EncodeResult { "SCT", // Identification "", // optional BIC parsedPayto.params["receiver-name"], // Beneficiary name - parsedPayto.targetPath, // Beneficiary IBAN - amountStr !== undefined - ? `${Amounts.currencyOf(amountStr)}${Amounts.stringifyValue(amountStr, 2)}` - : "", // Amount (optional) + iban, // Beneficiary IBAN + amt, // Amount (optional) "", // AT-44 Purpose parsedPayto.params["message"], // AT-05 Unstructured remittance information ];