Webhooks oder Polling: So gestalten Sie zuverlässige Integrationen
Sich benachrichtigen lassen oder regelmäßig nachfragen: Jeder Ansatz hat seinen Platz. Die Zuverlässigkeit hängt mehr von der Umsetzung ab als von der Wahl.
Wenn zwei Systeme erfahren müssen, was im jeweils anderen passiert (eine bestätigte Zahlung, eine versandte Bestellung, eine Bestandsänderung), gibt es zwei Wege.
Webhooks: sich benachrichtigen lassen
Das Quellsystem sendet eine HTTP-Anfrage an eine URL von Ihnen, wenn etwas passiert. Das ist sofort und effizient. Zahlungsanbieter nutzen es (Stripe, Redsys mit seiner Benachrichtigung) und viele Plattformen.
Polling: regelmäßig nachfragen
Ihr System fragt periodisch „Gibt es seit dem letzten Mal etwas Neues?“. Einfacher und robuster bei Ausfällen, aber mit Verzögerung und mehr Last.
So wird ein Webhook zuverlässig
- Prüfen Sie die Signatur jeder Benachrichtigung mit dem gemeinsamen Geheimnis. Akzeptieren Sie nie eine „bestätigte Zahlung“ ohne Prüfung.
- Antworten Sie schnell (200) und verarbeiten Sie danach. Wenn Sie lange brauchen, wiederholt die Quelle den Versuch, und Sie erhalten Duplikate.
- Idempotenz: Speichern Sie die Kennung jedes Ereignisses und verarbeiten Sie es nicht zweimal.
- Verlassen Sie sich nicht nur auf den Webhook: Ein regelmäßiger Abgleichsprozess fängt auf, was verloren gegangen ist.
// Esquema de un receptor idempotente
$evento = verificarFirma(file_get_contents('php://input'), $cabecera, $secreto);
if (yaProcesado($evento['id'])) {
http_response_code(200);
exit;
}
encolar($evento);
marcarProcesado($evento['id']);
http_response_code(200);
Das Beste aus beiden
Bei kritischen Integrationen nutzen wir beides: Webhook für die Unmittelbarkeit und ein stündliches Polling, das vergleicht und korrigiert. Geht eine Benachrichtigung verloren, dauert die Abweichung so höchstens eine Stunde.