aboutsummaryrefslogtreecommitdiff
path: root/nexus
diff options
context:
space:
mode:
authorAntoine A <>2024-04-24 13:10:15 +0900
committerAntoine A <>2024-04-24 13:10:15 +0900
commitd2140959109061ff57a71270c95b729ca8205355 (patch)
tree504bcbe0248d4c56eddae25884ceb8e169a87bb6 /nexus
parent8f1905961bac92fac9803577db8d3c02133cf299 (diff)
downloadlibeufin-d2140959109061ff57a71270c95b729ca8205355.tar.gz
libeufin-d2140959109061ff57a71270c95b729ca8205355.tar.bz2
libeufin-d2140959109061ff57a71270c95b729ca8205355.zip
Fix payto name parsing
Diffstat (limited to 'nexus')
-rw-r--r--nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt2
-rw-r--r--nexus/src/test/kotlin/Iso20022Test.kt6
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
index 201ece97..192d7375 100644
--- 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
index 8ac022a8..c0ff4b98 100644
--- 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",