- Verschifft
- 26. August 2026 um 02:54 UTC
- Autor
- Kamo
- Ausschuss
- 674fa0f
Runde 2 Überprüfung (Ruling 17) gefunden "ist dies eine Schaffung?" ist notwendig, aber nicht ausreichend. Die Frage, die zählt: kann dieses Thema legitimerweise mehr als einmal im 24h-Fenster des Schlüssels erstellt werden, aus einem anderen Grund als ein Netzwerk-Retry? Zwei schafft Antwort ja und wurden in Runde 1 falsch eingegeben: - SetupIntent.create (AccountPaymentMethodService, exponiert über createSetupIntent auf zwei Controllern, gibt das Client-Geheimnis direkt zum Browser): ein stabiler Schlüssel bedeutete einen zweiten "Karte hinzufügen" Versuch am selben Tag wiederholte die bereits konsumierten ersten Versuch Client-Geheimnis, still versagen das Add. - Session.create (ConsumerCheckoutService): ein stabiler Schlüssel bedeutete Verlassen-und-Rekrutierung, oder ein Buy-then-upgrade den gleichen Plan am selben Tag, die ORIGINAL Kassensitzung nachgespielt -- möglicherweise schon abgeschlossen oder abgelaufen -- dem Kunden einen toten Link übergeben. Beide sind ephemere, Single-Use, pro Versuch Objekte, nicht stehend diejenigen. Ein Duplikat ist dort träge (das ungenutzte läuft gerade ab); ein Abgestandene Wiederholung ist der eigentliche Schaden, der das entgegengesetzte Handel von jede dauerhafte erstellen (Kunden, Abonnement, Preis, Produkt, Meter), wo ein Duplikat der Schaden IST, den diese ganze Aufgabe zu verhindern hat. Entfernt der Schlüssel von beiden; endgültiger Zustand ist 8 Keyed (alle haltbar schafft, unverändert), 12 ungeeignet (2 ephemere erzeugt + 10 Mutationen ab Runde 1). StripeIdempotency Klasse javadoc gibt jetzt alle drei Klassen an -- langlebig schafft Schlüssel, ephemere schafft ungeschlüsselt, Mutationen ungeschlüsselt -- mit einer konkreten Ausfallspur für jede ungeschlüsselte Klasse (die ************ eins aus Runde 1, und die Second-Card-gleich-Tag abgestanden-client-secret ein für SetupIntent, das ist die mehr überraschende der beiden). Der Deckungstest hat jetzt einen regex-basiertes Forward-Netto pro Klasse (durable schafft muss einen Schlüssel tragen; ephemere erstellt und Mutationen dürfen nicht) zuzüglich einer exakten Zählung pro Datei von StripeIdempotency.forKey( angeheftet auf die 8 langlebigen schafft, die ist was tatsächlich fängt einen Schlüssel zu einem der lokal-variable- Empfänger blinder Flecken. Verifiziert durch vorübergehende Wiedereinführung eines Schlüssels auf SetupIntent.restellen, Bestätigung sowohl der neue regex-Check als auch der Ex-Zahlprüfung scheitern, dann die Sonde rückgängig machen.