nemiah / phpFinTS

PHP library to communicate with FinTS/HBCI servers
MIT License
130 stars 39 forks source link

Fehler Sparkasse PushTAN-Verfahren FinTS #423

Closed wienen-it-dev closed 6 months ago

wienen-it-dev commented 6 months ago

Hallo zusammen,

ich wäre sehr dankbar für Hilfe bei diesem Fehler:

Nach Update der TAN-App (Sparkasse) funktioniert die SEPA-Überweisung nicht mehr, was bisher zuverlässig funktionierte. Von der Sparkasse gab es folgende Auskunft: "die Geräte werden in einem Pool zusammengefasst und es gibt eine ZAS-Schnittstelle"

Fehlermeldung:

FinTS errors: 9050 (global): Die Nachricht enthält Fehler. 9955 (wrt seg 3): Auftrag nicht ausgeführt - Die Gerätebezeichnung ist unbekannt. (MBV07390100255) FinTS warnings: 3905 (global): Es wurde keine Challenge erzeugt. Request segments: HKCCS:3:1+DEXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXX:XXXXXXXXX::280:XXXXXXXX+urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.001.03+@1715@ XXXXXXXXXX XXXX-XX-XXTXX:XX:XX 1 XXX.XX XXXXXXXXX XXXXXXXXXX TRF 1 XXX.XX SEPA 1999-01-01 XXXXXXXXX DEXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX SLEV NOTPROVIDED XXX.XX XXXXXXXXXXX XXXXXX GmbH DEXXXXXXXXXXXXXXXXXXXX RE-Nr XXXXXXXXX Knd-Nr XXXXXXXX

wienen-it-dev commented 6 months ago

Weitere Informationen:

Als TanMode Auswahloption liefert die Bank "pushTAN 2.0", als TanMedium "Alle Geräte" (zuvor war noch als TanMedium das verwendete Android-Gerät auswählbar).

mmnasir commented 6 months ago

there is a new tanMode. Mode 923 - pushTan 2.0 (of course, what else).

So, the solution is to change 921 to 923. And it is working again.

wienen-it-dev commented 6 months ago

Hi mmnasir,

thank you very much for your comment.

Yes the tanMode pushTAN 2.0 (ID: 923) was selected first.

Then the bank returns as available tanMedium only "Alle Geräte" (all devices).

When selected "Alle Geräte" the error occurs.

I found this additional information, does ist help to find a solution:

Sparkassenkunden haben ebenfalls Probleme mit proficash und dem neuen Verfahren. Offenbar ruft proficash keinen HKTAB ab und hat so keine TAN-Medienbezeichnung bei den Zugängen mit Verfahren pushTAN ZAS (923). Hier müsste per HKTAB die Standardbezeichnung "Alle Geräte" abgerufen werden und ansonsten wäre alles genau wie bei Verfahren 922 zu bedienen.

wienen-it-dev commented 6 months ago

The error occured because of a problem with encoding of "Alle Geräte".

After fixing the encoding problem it is working again.

Thanks again mmnasir

CasparKrog commented 1 month ago

I have kind of the same problem. But for me it is not even showing "Alle Geräte". Executing this $tanMedia = $fints->getTanMedia($tanMode); is not returning anything. The code is not getting past this. If I set this manually to "Alle Geräte", the code won't work. How did u encode the "Alle Geräte" right? $tanMedium = "Alle Geräte"; won't work.

wienen-it-dev commented 1 month ago

I have kind of the same problem. But for me it is not even showing "Alle Geräte". Executing this $tanMedia = $fints->getTanMedia($tanMode); is not returning anything. The code is not getting past this. If I set this manually to "Alle Geräte", the code won't work. How did u encode the "Alle Geräte" right? $tanMedium = "Alle Geräte"; won't work.

In my case, this worked:

$tanMediumNames = array_map(function (\Fhp\Model\TanMedium $tanMedium) {
    return mb_convert_encoding($tanMedium->getName(), "Windows-1252", "UTF-8");
}, $tanMedia);

If your application uses a different encoding, you might have to change the code.