Eine x402-Anfrage wiederholen, ohne doppelt zu zahlen

Anleitungen

Bewahre den logischen Auftrag, eine Zahlungskennung und die ursprünglichen Zahlungsbelege zusammen auf, bevor du nach einem Timeout erneut anfragst.

Nach einem Timeout bleibt eine entscheidende Frage offen: Ist der Server vor der Abwicklung ausgefallen oder wurde die Zahlung angenommen und nur die Antwort ging verloren? Erzeuge nicht allein wegen der fehlenden Antwort eine neue Zahlungsautorisierung. Bewahre die ursprüngliche Anfrage auf und gleiche sie zuerst ab.

Speichere HTTP-Methode, Ressourcen-URL, normalisierte Eingabe, Zahlungsanforderung, Zahlungssignatur, Anfragezeit und eine vorhandene PAYMENT-RESPONSE- oder Transaktionsreferenz. Damit kann ein Client die Wiederholung desselben logischen Auftrags von einem neuen Kauf unterscheiden. Ändern sich Body, Route, Betrag, Asset, Empfänger oder Netzwerk, handelt es sich nicht mehr um dieselbe Anfrage.

Wenn der Server die offizielle payment-identifier-Erweiterung ankündigt, erzeuge eine eindeutige Kennung für den logischen Auftrag und speichere sie vor dem Senden der Zahlung. Verwende diese Kennung für Wiederholungen derselben Anfrage weiter, auch nach einem Neustart des Clients. Nutze sie nie für einen anderen Auftrag.

Die Erweiterung wirkt nur, wenn der Server ihre Unterstützung erklärt. Laut x402-Dokumentation sollte der Server die Kennung an einen Anfrage-Fingerprint binden und für dieselbe Kennung mit derselben Anfrage eine gespeicherte Antwort liefern. Dieselbe Kennung mit einem anderen Fingerprint sollte abgewiesen werden, statt ein früheres Ergebnis offenzulegen oder eine weitere Zahlung zu verarbeiten.

Prüfe nach jeder unklaren Antwort den vorhandenen Zahlungs- und Lieferbeleg, bevor du erneut signierst. Eine Abwicklungsreferenz belegt die Zahlungsseite; das gelieferte Ergebnis muss zusätzlich auf Inhalt und Vollständigkeit geprüft werden. Eine erreichbare Statusseite kann bekannte Einschränkungen anzeigen, aber nicht die Lieferung eines bestimmten bezahlten Auftrags beweisen.

Kann der Server den ursprünglichen Kauf weder wiederherstellen noch abgleichen, bewahre die Belege auf und kontaktiere den Zahlungssupport. Nenne Ressource, Zeitpunkt und Kaufreferenz, aber sende keine Private Keys oder Seed-Phrasen. Eine zweite Autorisierung sollte ein bewusst neuer Kauf sein und keine automatische Timeout-Wiederholung.

Quellen