Subscription Cancellation Survey ist da!Mehr erfahren
Glossar

Was ist Webhook?

Eine automatisierte HTTP-Nachricht, die ein Dienst an Ihren Shop sendet, um in Echtzeit über ein Ereignis zu informieren.

Definition

Ein Webhook ist eine Benachrichtigung von Server zu Server: Wenn bei einem Dienst (Zahlungs-Gateway, Drittanbieter-API) ein Ereignis eintritt, sendet dieser Dienst eine HTTP-POST-Anfrage an eine von Ihnen angegebene URL, die Details zum Ereignis enthält. Webhooks ermöglichen eine asynchrone Integration zwischen Systemen in Echtzeit, ohne ständiges Abfragen.

Für die Abonnement-Abrechnung sind Webhooks unverzichtbar: Gateways informieren Ihren Shop, wenn Belastungen gelingen, fehlschlagen oder erstattet werden — und viele dieser Ereignisse geschehen ohne jede Nutzeraktion (Verlängerungen, Wiederholungsversuche, asynchrone Entscheidungen der Bank).

Warum das für WooCommerce-Shops wichtig ist

Ohne Webhooks läuft der Abonnementstatus in Ihrem Shop aus dem Takt mit dem Status im Zahlungs-Gateway. Eine Verlängerungsbelastung gelingt um 2:00 Uhr, doch Ihr Shop erfährt davon erst am nächsten Tag, wenn Sie das Gateway-Dashboard manuell prüfen.

Die Karte eines Kunden wird über das Selbstbedienungsportal des Gateways aktualisiert, doch Ihr Shop zeigt weiterhin die alte Karte. Webhooks machen all das automatisch und in Echtzeit.

Für WooCommerce-Abonnementshops entscheiden korrekt konfigurierte Webhooks darüber, ob die Abrechnung automatisiert läuft oder zum manuellen Abstimmungsalbtraum wird. Falsch konfigurierte Webhooks sind die häufigste Ursache von Abonnementfehlern — stille Fehlschläge, bei denen das Gateway belastet hat, Ihr Shop das aber nicht abbildet.

So funktioniert es

Sie registrieren im Dashboard Ihres Gateways eine Webhook-URL (etwa ihreseite.de/wc-api/wc_stripe). Tritt beim Gateway ein Ereignis ein (payment_intent.succeeded, customer.subscription.updated), sendet das Gateway eine HTTP-POST-Anfrage an Ihre URL mit einer JSON-Nutzlast, die das Ereignis beschreibt.

Ihr Shop prüft die Signatur der Anfrage (der Nachweis, dass sie vom Gateway stammt und nicht von einem Angreifer), verarbeitet das Ereignis (Abonnement verlängern, E-Mail senden, Datenbank aktualisieren) und antwortet mit 200 OK. Erhält das Gateway einen Fehler oder keine Antwort, wiederholt es die Zustellung mit exponentiell wachsenden Abständen über Stunden oder Tage.

Beispiel aus der Praxis

Eine Stripe-Abonnementverlängerung wird am Freitag um 2:00 Uhr ausgelöst. Stripe verarbeitet die Belastung über 39 $ — erfolgreich.

Stripe sendet ein Webhook-Ereignis `invoice.payment_succeeded` an `https://store.com/wc-api/wc_stripe` mit einer Nutzlast, die Abonnement-ID, Betrag und Zeitstempel enthält. WPSubscription empfängt es, prüft die Signatur gegen das Stripe-Webhook-Geheimnis, verlängert das Abonnement um 30 Tage, erzeugt in WooCommerce eine Verlängerungsbestellung und stellt eine Quittungs-E-Mail in die Warteschlange.

Der Kunde wacht am Freitagmorgen auf und findet eine Quittung vor — alles ausgelöst durch den Webhook, während er schlief.

Bewährte Vorgehensweisen

  • Prüfen Sie stets die Webhook-Signaturen — die Verarbeitung unsignierter Webhooks ist eine Sicherheitslücke
  • Machen Sie Webhook-Handler idempotent — dasselbe Ereignis zweimal zu empfangen muss unschädlich sein
  • Antworten Sie innerhalb von 5 Sekunden — lang laufende Handler führen zu Zeitüberschreitungen und Wiederholungen
  • Protokollieren Sie jeden Webhook zur Fehlersuche — Wiederholungen des Gateways können Probleme verdecken
  • Nutzen Sie die Test-Ereignisse aus den Gateway-Dashboards, um die Integration zu überprüfen

Häufige Fehler

  • Webhook-Signaturen nicht zu prüfen — ein Sicherheitsrisiko und eine Quelle von Integrationsfehlern
  • Lang laufende Webhook-Handler mit Zeitüberschreitung — Gateways wiederholen dann und verursachen doppelte Verarbeitung
  • Wiederholungsereignisse nicht zu behandeln — ein Webhook kann für dasselbe Ereignis mehrfach ausgelöst werden
  • Produktive Webhook-URLs im Testmodus fest zu verdrahten — Ereignisse landen in der falschen Umgebung
  • Fehlgeschlagene Webhook-Zustellungen in den Gateway-Dashboards zu ignorieren — stille Fehlschläge zerstören die Datenintegrität

In WooCommerce mit WPSubscription

WPSubscription empfängt Gateway-Webhooks an den standardisierten WooCommerce-Endpunkten (/wc-api/wc_stripe, /wc-api/wc_paypal und weitere). Das Plugin übernimmt Signaturprüfung, Ereignisverarbeitung und Wiederholungslogik für jedes unterstützte Gateway automatisch.

Falsch konfigurierte Webhooks sind die häufigste Ursache von Abonnementfehlern — prüfen Sie die Webhook-Einrichtung daher immer bei der ersten Gateway-Anbindung.

Häufig gestellte Fragen

Warum funktionieren meine Abonnementverlängerungen, aber die E-Mails werden nicht ausgelöst?
Üblicherweise liegt das an der Webhook-Konfiguration. Die Verlängerungsbelastung gelingt beim Gateway (weil Stripe sie eigenständig abwickelt), doch Ihr Shop empfängt den Erfolgs-Webhook nicht, sodass die E-Mail-Logik nie greift. Prüfen Sie im Dashboard Ihres Gateways die Webhook-Zustellungen auf Fehlschläge.
Wie teste ich Webhooks während der Entwicklung?
Nutzen Sie die Testfunktion des Gateways (Stripe CLI, das Webhooks-Dashboard von PayPal), um Test-Ereignisse an Ihre lokale Umgebung zu senden. Für produktionsnahe Tests nutzen Sie einen Tunneldienst wie ngrok, um Ihren lokalen Server für Webhook-Zustellungen erreichbar zu machen. WPSubscription arbeitet mit allen gängigen Webhook-Testwerkzeugen zusammen.
Was passiert, wenn mein Server ausgefallen ist, während ein Webhook ausgelöst wird?
Gateways wiederholen fehlgeschlagene Webhook-Zustellungen nach einem gestaffelten Zeitplan (typischerweise nach 1 Minute, 5 Minuten, 30 Minuten, 1 Stunde und so weiter) über bis zu 3-7 Tage. Danach geben sie auf. Deshalb ist die Überwachung der Webhook-Zustellung entscheidend — längere Ausfälle können zu dauerhaft verpassten Ereignissen führen, die Ihren Abonnementstatus aus dem Takt bringen.
Wie prüfe ich Webhook-Signaturen?
Jedes Gateway stellt in seinem Dashboard ein Signaturgeheimnis für Webhooks bereit. Ihr Webhook-Handler sollte die erwartete Signatur aus dem Anfragetext mit HMAC-SHA256 (oder einem ähnlichen Verfahren) und diesem Geheimnis nachbilden und sie dann mit der Signatur im Anfrage-Header vergleichen. WPSubscription erledigt das für unterstützte Gateways automatisch.
Sollte jedes Gateway-Ereignis einen Webhook-Handler haben?
Konfigurieren Sie Webhooks für die Ereignisse, auf die Ihr Shop reagieren muss: Abonnement erstellt, aktualisiert, gelöscht, Zahlung erfolgreich, Zahlung fehlgeschlagen, Rechnung bezahlt, Erstattung ausgestellt, Streitfall eröffnet. Verzichten Sie auf Webhooks für Ereignisse, die Sie ohnehin ignorieren — weniger Webhooks bedeuten weniger Fehlerquellen und bessere Leistung.

Das Abonnement-Plugin Nr. 1 für WooCommerce

Verkaufen Sie Abonnements — ganz ohne Kosten.

Herunterladen, installieren und mit WPSubscription weltweit wiederkehrende Umsätze erzielen.