[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.