commit d2140959109061ff57a71270c95b729ca8205355
parent 8f1905961bac92fac9803577db8d3c02133cf299
Author: Antoine A <>
Date: Wed, 24 Apr 2024 13:10:15 +0900
Fix payto name parsing
Diffstat:
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt
@@ -301,7 +301,7 @@ private fun XmlDestructor.payto(prefix: String): String? {
val iban = opt("${prefix}Acct")?.one("Id")?.one("IBAN")?.text()
return if (iban != null) {
val payto = StringBuilder("payto://iban/$iban")
- val name = opt(prefix)?.opt("Pty")?.one("Nm")?.text()
+ val name = opt(prefix) { opt("Nm")?.text() ?: opt("Pty")?.one("Nm")?.text() }
if (name != null) {
val urlEncName = URLEncoder.encode(name, "utf-8")
payto.append("?receiver-name=$urlEncName")
diff --git a/nexus/src/test/kotlin/Iso20022Test.kt b/nexus/src/test/kotlin/Iso20022Test.kt
@@ -101,21 +101,21 @@ class Iso20022Test {
amount = TalerAmount("EUR:2"),
wireTransferSubject = "TestABC123",
executionTime = instant("2024-04-18"),
- creditPaytoUri = "payto://iban/DE20500105172419259181"
+ creditPaytoUri = "payto://iban/DE20500105172419259181?receiver-name=John+Smith"
),
OutgoingPayment(
messageId = "YF5QBARGQ0MNY0VK59S477VDG4",
amount = TalerAmount("EUR:1.1"),
wireTransferSubject = "This should fail because dummy",
executionTime = instant("2024-04-18"),
- creditPaytoUri = "payto://iban/DE20500105172419259181"
+ creditPaytoUri = "payto://iban/DE20500105172419259181?receiver-name=John+Smith"
),
IncomingPayment(
bankId = "BYLADEM1WOR-G2910276709458A2",
amount = TalerAmount("EUR:3"),
wireTransferSubject = "Taler FJDQ7W6G7NWX4H9M1MKA12090FRC9K7DA6N0FANDZZFXTR6QHX5G Test.,-",
executionTime = instant("2024-04-12"),
- debitPaytoUri = "payto://iban/DE84500105177118117964"
+ debitPaytoUri = "payto://iban/DE84500105177118117964?receiver-name=John+Smith"
),
Reversal(
msgId = "G27KNKZAR5DV7HRB085YMA9GB4",