Projekt

Allgemein

Profil

Aktionen

Bug #56

geschlossen

Unescaped "&" in Accountinhaber-Namen führt zu invalidem SEPA-XML und Abbruch von sepatransfers

Von cmenke vor fast 6 Jahren hinzugefügt. Vor fast 6 Jahren aktualisiert.

Status:
Closed
Priorität:
High
Kategorie:
-
Beginn:
18.09.2019
Abgabedatum:
Betriebssystem:
AqBanking-Version:
Anwendung:
Version der Anwendung:

Beschreibung

Der Befehl aqbanking-cli sepatransfers --infile=...csv scheitert bei mir in der aktuellen Version 5.99.30 mit folgenden Meldungen (Sparkasse Bochum, 43050001):

9010 XML-EXCEPTION
9010 Systemfehler,der Auftrag konnte nicht ausgeführt werden

Die Ursache dafür scheinen "&"-Zeichen im Namen des Account-Inhabers (z.B. "FOO & BAR") zu sein, der in den SEPA-XML Feldern InitgPty/Nm und Dbtr/Nm "unescaped" übergeben wird (siehe [1]).
Die beiden Felder werden in sepa.c:327 bzw. sepa_pain_001.c:102 gesetzt:
https://github.com/aqbanking/aqbanking/blob/995b2d7e47272fbbb1eea2f6f908a0fab62efb17/src/libs/plugins/imexporters/sepa/sepa.c#L327
https://github.com/aqbanking/aqbanking/blob/995b2d7e47272fbbb1eea2f6f908a0fab62efb17/src/libs/plugins/imexporters/sepa/sepa_pain_001.c#L102

Zu Testzwecken habe ich mit meinen eher rudimentären C-Kenntnissen an o.g. Stellen das "&" durch "&" ersetzen lassen.
Damit kompiliert ließ sich aqbanking-cli sepatransfers dann erfolgreich ausführen.

Evtl. können aber auch weitere Felder wie Cdtr/Nm (remoteName), RmtInf/Ustrd (purpose) betroffen sein?

[1] An die Bank übermitteltes XML (Auszug aus config/backends/aqhbci/data/banks/de/43050001/logs/)

<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.003.03">
    <CstmrCdtTrfInitn>
        <GrpHdr>
          <InitgPty>
            <Nm>FOO & BAR</Nm>
          </InitgPty>
          <!-- ... -->
        </GrpHdr>
        <PmtInf>
          <Dbtr>
            <Nm>FOO & BAR</Nm>
          </Dbtr>
          <!-- ... -->
        </PmtInf>
    </CstmrCdtTrfInitn>
</Document>

Aktionen #1

Von martin vor fast 6 Jahren aktualisiert

  • Zugewiesen an wurde auf martin gesetzt
  • Priorität wurde von Normal zu High geändert
Aktionen #2

Von martin vor fast 6 Jahren aktualisiert

  • Status wurde von New zu Resolved geändert

Sollte im GIT behoben sein.
Kannst Du das mal testen?

Aktionen #3

Von cmenke vor fast 6 Jahren aktualisiert

Vielen Dank für das schnelle Update und sorry für die späte Rückmeldung – hatte erst jetzt Gelegenheit (und neue Überweisungen) zum Neu-Kompilieren und Testen.
Der XML Pfad CstmrCdtTrfInitn/PmtInf/Dbtr/Nm wird in der neuen Version richtig escaped und schaut jetzt gut aus.

Lediglich in CstmrCdtTrfInitn/GrpHdr/InitgPty/Nm wird "&" noch unescaped ausgegeben.
Ich glaube dafür ist diese Stelle in sepa.c:327 verantwortlich, die im aktuellen master-branch noch GWEN_XMLNode_SetCharValue nutzt: https://github.com/aqbanking/aqbanking/blob/12efe1ea3f6056fc6109a82ce529fea86f8aaab2/src/libs/plugins/imexporters/sepa/sepa.c#L327

Aktionen #4

Von martin vor fast 6 Jahren aktualisiert

  • Status wurde von Resolved zu Closed geändert

Danke, ist jetzt behoben.

Aktionen #5

Von cmenke vor fast 6 Jahren aktualisiert

Herzlichen Dank! Klappt wieder wunderbar.

Aktionen

Auch abrufbar als: Atom PDF