[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libeufin] branch master updated: Require BIC from Pain.01.
From: |
gnunet |
Subject: |
[libeufin] branch master updated: Require BIC from Pain.01. |
Date: |
Fri, 04 Dec 2020 16:18:19 +0100 |
This is an automated email from the git hooks/post-receive script.
ms pushed a commit to branch master
in repository libeufin.
The following commit(s) were added to refs/heads/master by this push:
new 6b21f20 Require BIC from Pain.01.
6b21f20 is described below
commit 6b21f20211cc174aee8c7bb2d14ef42309e9a802
Author: MS <ms@taler.net>
AuthorDate: Fri Dec 4 16:18:01 2020 +0100
Require BIC from Pain.01.
---
integration-tests/tests.py | 1 -
.../tech/libeufin/sandbox/EbicsProtocolBackend.kt | 80 +++++++++++++++-------
2 files changed, 54 insertions(+), 27 deletions(-)
diff --git a/integration-tests/tests.py b/integration-tests/tests.py
index 27e2246..b82fcc0 100755
--- a/integration-tests/tests.py
+++ b/integration-tests/tests.py
@@ -361,7 +361,6 @@ def test_ingestion_camt53():
def test_sandbox_camt():
payment_instruction = dict(
- # NOTE: this format is very outdated in the docs repo.
creditorIban="GB33BUKB20201555555555",
creditorBic="BUKBGB22",
creditorName="Oliver Smith",
diff --git
a/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsProtocolBackend.kt
b/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsProtocolBackend.kt
index 08c7242..7f2cedb 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsProtocolBackend.kt
+++ b/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsProtocolBackend.kt
@@ -65,8 +65,10 @@ val EbicsHostIdAttribute =
AttributeKey<String>("RequestedEbicsHostID")
data class PainParseResult(
val creditorIban: String,
val creditorName: String,
+ val creditorBic: String,
val debitorIban: String,
val debitorName: String,
+ val debitorBic: String,
val subject: String,
val amount: Amount,
val currency: String,
@@ -482,41 +484,65 @@ private fun parsePain001(paymentRequest: String,
initiatorName: String): PainPar
requireUniqueChildNamed("MsgId") {
focusElement.textContent }
}
requireUniqueChildNamed("PmtInf") {
- val pmtInfId = requireUniqueChildNamed("PmtInfId") {
focusElement.textContent }
- val creditorIban = requireUniqueChildNamed("CdtTrfTxInf") {
- requireUniqueChildNamed("CdtrAcct") {
- requireUniqueChildNamed("Id") {
- requireUniqueChildNamed("IBAN") {
focusElement.textContent }
- }
+ val debtorName = requireUniqueChildNamed("Dbtr"){
+ requireUniqueChildNamed("Nm") {
+ focusElement.textContent
}
}
- val txInf = requireUniqueChildNamed("CdtTrfTxInf") {
- val amt = requireUniqueChildNamed("Amt") {
- requireOnlyChild {
- focusElement
+ val debtorIban = requireUniqueChildNamed("DbtrAcct"){
+ requireUniqueChildNamed("Type") {
+ requireUniqueChildNamed("IBAN") {
+ focusElement.textContent
}
}
- val creditorName = requireUniqueChildNamed("Cdtr") {
- requireUniqueChildNamed("Nm") {
focusElement.textContent }
- }
- val subject = requireUniqueChildNamed("RmtInf") {
- requireUniqueChildNamed("Ustrd") {
focusElement.textContent }
+ }
+ val debtorBic = requireUniqueChildNamed("DbtrAgt"){
+ requireUniqueChildNamed("FinInstnId") {
+ requireUniqueChildNamed("BICFI") {
+ focusElement.textContent
+ }
}
- object {val amt = amt; val subject = subject; val
creditorName = creditorName}
}
- val debitorIban = requireUniqueChildNamed("DbtrAcct") {
- requireOnlyChild {
- requireOnlyChild { focusElement.textContent }
+ val pmtInfId = requireUniqueChildNamed("PmtInfId") {
focusElement.textContent }
+ val txDetails = requireUniqueChildNamed("CdtTrfTxInf") {
+ object {
+ val creditorIban =
requireUniqueChildNamed("CdtrAcct") {
+ requireUniqueChildNamed("Id") {
+ requireUniqueChildNamed("IBAN") {
focusElement.textContent }
+ }
+ }
+ val creditorName = requireUniqueChildNamed("Cdtr")
{
+ requireUniqueChildNamed("Nm") {
+ focusElement.textContent
+ }
+ }
+ val creditorBic =
requireUniqueChildNamed("CdtrAgt") {
+ requireUniqueChildNamed("InstnId") {
+ requireUniqueChildNamed("BICFI") {
+ focusElement.textContent
+ }
+ }
+
+ }
+ val amt = requireUniqueChildNamed("Amt") {
+ requireOnlyChild { focusElement }
+ }
+ val subject = requireUniqueChildNamed("RmtInf") {
+ requireUniqueChildNamed("Ustrd") {
focusElement.textContent }
+ }
+
}
}
PainParseResult(
- currency = txInf.amt.getAttribute("Ccy"),
- amount = Amount(txInf.amt.textContent),
- subject = txInf.subject,
- debitorIban = debitorIban,
- debitorName = initiatorName,
- creditorName = txInf.creditorName,
- creditorIban = creditorIban,
+ currency = txDetails.amt.getAttribute("Ccy"),
+ amount = Amount(txDetails.amt.textContent),
+ subject = txDetails.subject,
+ debitorIban = debtorIban,
+ debitorName = debtorName,
+ debitorBic = debtorBic,
+ creditorName = txDetails.creditorName,
+ creditorIban = txDetails.creditorIban,
+ creditorBic = txDetails.creditorBic,
pmtInfId = pmtInfId,
msgId = msgId
)
@@ -537,8 +563,10 @@ private fun handleCct(paymentRequest: String,
initiatorName: String, ctx: Reques
it[account] =
getBankAccountFromIban(parseResult.debitorIban).id
it[creditorIban] = parseResult.creditorIban
it[creditorName] = parseResult.creditorName
+ it[creditorBic] = parseResult.creditorBic
it[debitorIban] = parseResult.debitorIban
it[debitorName] = parseResult.debitorName
+ it[debitorBic] = parseResult.debitorBic
it[subject] = parseResult.subject
it[amount] = parseResult.amount.toString()
it[currency] = parseResult.currency
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [libeufin] branch master updated: Require BIC from Pain.01.,
gnunet <=