Kürzlich wurde ein Projekt zur Abwicklung der Kreditkartenabwicklung abgeschlossen. Eine der Schwierigkeiten, mit denen ich konfrontiert war, war die Behandlung der Verzögerung / des möglichen Ausfalls von Benachrichtigungsnachrichten. Das komplexeste Beispiel war:
- ein externes System, das die Zahlungsaufforderung sendet
- Mein System wandelt diese Anfrage in eine Anfrage an das Zahlungsgateway um
- Senden des Benutzers an das Gateway
- Warten auf die Zahlung durch den Benutzer
- Der Benutzer kehrt zu meinem System zurück, wird jedoch gehalten, bis das System eine Benachrichtigung über Erfolg / Misserfolg erhält
- Senden des Benutzers je nach Fehler an das externe System zurück
Noch schwieriger war die Tatsache, dass das Gateway bei fehlgeschlagenem Senden der Benachrichtigung mehrere Stunden lang versucht, die Benachrichtigung alle 15 Minuten zu senden.
Ich habe es mithilfe eines Datenbankdatensatzes ausstehender Transaktionen gelöst und dann Erfolg und Misserfolg anhand der Rückgabe sowie eines zeitgesteuerten Verzögerungslisteners für die Benachrichtigung und Transaktionsabwicklung festgestellt ...
Ziemlich schwierig!
Aber das muss schon millionenfach gelöst worden sein. Was ist also die beste Vorgehensweise?
Ich kann sehen, dass meine Zukunft darin besteht, die Handhabung zwischen all diesen Systemen zu schreiben und die Zeitverzögerungen und möglichen Netzwerkfehler zu verwalten. Daher möchte ich die Best Practices befolgen.
Buch- / Artikelempfehlungen wären toll.
Danke im Voraus!
quelle