Nicht zugestellte Webhook-Ereignisse verarbeiten
Erfahren Sie, wie Sie nicht zugestellte Webhook-Ereignisse manuell verarbeiten können.
Wenn Ihr Webhook-Endpoint Ereignisse vorübergehend nicht verarbeiten kann, sendet Stripe die nicht zugestellten Ereignisse bis zu drei Tage lang automatisch an Ihren Endpoint zurück, wodurch die Zeit für den Empfang und die Verarbeitung aller Ereignisse durch den Webhook-Endpoint verlängert wird.
In diesem Leitfaden wird erläutert, wie Sie diesen Prozess beschleunigen können, indem Sie die nicht zugestellten Ereignisse manuell verarbeiten.
Webhook-Ereignisse auflisten
Rufen Sie die List Events API mit den folgenden Parametern auf:
ending_
: Geben Sie eine Ereignis-ID an, die gesendet wurde, kurz bevor der Webhook-Endpoint nicht mehr verfügbar war.before types
: Geben Sie die Liste der abzurufenden Ereignistypen an.delivery_
: Aufsuccess false
setzen, um Ereignisse abzurufen, die nicht erfolgreich an mindestens einen Ihrer Webhook-Endpoints gesendet wurden.
Stripe gibt nur Ereignisse zurück, die in den letzten 30 Tagen erstellt wurden.
Standardmäßig gibt die Antwort bis zu 10 Ereignisse zurück. Um alle Ereignisse abzurufen, verwenden Sie den automatischen Seitenumbruch nach dem Abrufen der Ergebnisse.
Die Verwendung von ending_
mit automatischem Seitenumbruch gibt Ereignisse in chronologischer Reihenfolge zurück. Auf diese Weise können Sie Ereignisse in der erstellten Reihenfolge verarbeiten.
Die Ereignisse verarbeiten
Verarbeiten Sie nur erfolglos verarbeitete Ereignisse nach Ihrer eigenen Logik, um die mehrfache Verarbeitung eines einzelnen Ereignisses zu vermeiden, indem Sie zum Beispiel:
- das Skript versehentlich zweimal hintereinander ausführen
- das Skript gleichzeitig ausführen, während Stripe einige der nicht verarbeiteten Ereignisse automatisch erneut sendet
Definieren Sie die folgenden Funktionen, die die doppelte Verarbeitung verhindern:
is_
, um den Status des Ereignisses in Ihrer Datenbank zu überprüfen.processing_ or_ processed mark_
, um Ihre Datenbank zu aktualisieren, um das Ereignis als „wird verarbeitet“ zu markieren.as_ processing mark_
, um Ihre Datenbank zu aktualisieren, um das Ereignis als „verarbeitet“ zu markieren.as_ processed
Auf automatische Wiederholungsversuche reagieren
Stripe betrachtet Ihre manuell verarbeiteten Ereignisse immer noch als nicht zugestellt und startet daher automatisch Wiederholungsvesuche.
Wenn Ihr Webhook-Endpoint ein bereits verarbeitetes Ereignis empfängt, ignorieren Sie das Ereignis und geben Sie eine erfolgreiche Antwort zurück, um zukünftige Wiederholungen zu stoppen.