gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libeufin] 02/02: nexus: fixing EBICS upload and testing with PoFi.


From: gnunet
Subject: [libeufin] 02/02: nexus: fixing EBICS upload and testing with PoFi.
Date: Thu, 26 Oct 2023 18:35:27 +0200

This is an automated email from the git hooks/post-receive script.

ms pushed a commit to branch master
in repository libeufin.

commit 8e54274d33d7af9d0db849b66a9487e78691a238
Author: MS <ms@taler.net>
AuthorDate: Thu Oct 26 18:34:17 2023 +0200

    nexus: fixing EBICS upload and testing with PoFi.
---
 nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt  |  2 +-
 .../kotlin/tech/libeufin/nexus/ebics/Ebics3.kt     |  2 +-
 .../tech/libeufin/nexus/ebics/EbicsCommon.kt       |  2 +-
 nexus/src/test/kotlin/PostFinance.kt               | 31 ++++++++++++++--------
 util/src/main/kotlin/Ebics.kt                      |  1 +
 5 files changed, 24 insertions(+), 14 deletions(-)

diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
index 3c2b9e0a..537a9b29 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
@@ -65,7 +65,7 @@ val myJson = Json {
  * If even one of the fields could not be instantiated, then
  * throws TalerConfigError.
  */
-class EbicsSetupConfig(config: TalerConfig) {
+class EbicsSetupConfig(val config: TalerConfig) {
     // abstracts the section name.
     private val ebicsSetupRequireString = { option: String ->
         config.requireString("nexus-ebics", option)
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/Ebics3.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/Ebics3.kt
index 7bd34a9a..85ed8b6e 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/Ebics3.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/Ebics3.kt
@@ -83,7 +83,7 @@ fun createEbics3RequestForUploadTransferPhase(
         cfg.ebicsHostId,
         transactionId,
         BigInteger.valueOf(chunkIndex.toLong()),
-        uploadData.encryptedPayloadChunks[chunkIndex]
+        uploadData.encryptedPayloadChunks[chunkIndex - 1]
     )
     val doc = XMLUtil.convertJaxbToDocument(req)
     XMLUtil.signEbicsDocument(
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsCommon.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsCommon.kt
index 3609c72d..a10dcbcf 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsCommon.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsCommon.kt
@@ -504,7 +504,7 @@ suspend fun doEbicsUpload(
         client,
         cfg,
         bankKeys,
-        initXml,
+        transferXml,
         isEbics3 = true
     )
     if (transferResp == null) {
diff --git a/nexus/src/test/kotlin/PostFinance.kt 
b/nexus/src/test/kotlin/PostFinance.kt
index cf604ec6..0a04711c 100644
--- a/nexus/src/test/kotlin/PostFinance.kt
+++ b/nexus/src/test/kotlin/PostFinance.kt
@@ -4,6 +4,7 @@ import org.junit.Ignore
 import org.junit.Test
 import tech.libeufin.nexus.*
 import tech.libeufin.nexus.ebics.fetchBankAccounts
+import tech.libeufin.nexus.ebics.submitPayment
 import tech.libeufin.util.IbanPayto
 import tech.libeufin.util.parsePayto
 import java.io.File
@@ -14,32 +15,40 @@ import java.time.format.DateTimeFormatter
 import kotlin.test.assertNotNull
 import kotlin.test.assertTrue
 
+private fun prep(): EbicsSetupConfig {
+    val handle = TalerConfig(NEXUS_CONFIG_SOURCE)
+    val ebicsUserId = File("/tmp/pofi-ebics-user-id.txt").readText()
+    val ebicsPartnerId = File("/tmp/pofi-ebics-partner-id.txt").readText()
+    handle.loadFromString(getPofiConfig(ebicsUserId, ebicsPartnerId))
+    return EbicsSetupConfig(handle)
+}
+
 class Iso20022 {
     @Test
     fun sendPayment() {
+        val cfg = prep()
         val xml = createPain001(
             "random",
             Instant.now(),
             
parsePayto("payto://iban/POFICHBE/CH9789144829733648596?receiver-name=NotGiven")!!,
             TalerAmount(4, 0, "CHF"),
-            "Test reimbursement",
+            "Test reimbursement, part 2",
             
parsePayto("payto://iban/CH9300762011623852957?receiver-name=NotGiven")!!
         )
-        println(xml)
-        File("/tmp/pain.001-test.xml").writeText(xml)
+        runBlocking {
+            submitPayment(
+                xml,
+                cfg,
+                loadPrivateKeysFromDisk(cfg.clientPrivateKeysFilename)!!,
+                loadBankKeys(cfg.bankPublicKeysFilename)!!,
+                HttpClient()
+            )
+        }
     }
 }
 
 @Ignore
 class PostFinance {
-    private fun prep(): EbicsSetupConfig {
-        val handle = TalerConfig(NEXUS_CONFIG_SOURCE)
-        val ebicsUserId = File("/tmp/pofi-ebics-user-id.txt").readText()
-        val ebicsPartnerId = File("/tmp/pofi-ebics-partner-id.txt").readText()
-        handle.loadFromString(getPofiConfig(ebicsUserId, ebicsPartnerId))
-        return EbicsSetupConfig(handle)
-    }
-
     // Tests sending client keys to the PostFinance test platform.
     @Test
     fun postClientKeys() {
diff --git a/util/src/main/kotlin/Ebics.kt b/util/src/main/kotlin/Ebics.kt
index 5c295962..63bcc4d9 100644
--- a/util/src/main/kotlin/Ebics.kt
+++ b/util/src/main/kotlin/Ebics.kt
@@ -496,6 +496,7 @@ enum class EbicsReturnCode(val errorCode: String) {
     EBICS_AMOUNT_CHECK_FAILED("091303"),
     EBICS_EBICS_AUTHORISATION_ORDER_IDENTIFIER_FAILED("090003"),
     EBICS_INVALID_XML("091010"),
+    EBICS_TX_MESSAGE_REPLAY("091103"),
     EBICS_NO_DOWNLOAD_DATA_AVAILABLE("090005");
 
     companion object {

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]