Technische Entscheidungen · Middle · Frage 6 von 14
Eine Zahlungsanfrage lief ins Timeout, du weißt also nicht, ob die Belastung durchging. Doppelt belasten ist inakzeptabel, aber der Verkauf soll nicht verloren gehen. Was baust du?
- 1Sichere Wiederholungen mit einem Idempotenzschlüssel pro Zahlung
- 2Keine Wiederholungen: Fehler zeigen und den Nutzer neu versuchen lassen
- 3Erst die Liste der Belastungen prüfen, dann wiederholen, wenn sie fehlt
Antwort zeigen
Richtige Antwort: Sichere Wiederholungen mit einem Idempotenzschlüssel pro Zahlung
Erklärung
Mit einem Schlüssel behandelt der Anbieter die Wiederholung als dieselbe Operation, kann also nicht doppelt belasten, selbst wenn der erste Aufruf gelang. Einen Fehler zu zeigen passt zu Aktionen, die billig zu wiederholen sind, aber der Nutzer zahlt eventuell doppelt, wenn er erneut drückt. Erst zu prüfen passt zu Anbietern ohne Schlüssel, lässt aber eine Race Condition: die erste Belastung kann während der Prüfung noch unterwegs sein.