MemberJet

Digistore24 IPN in WordPress einrichten: Schritt-für-Schritt-Anleitung

Wer Digistore24 IPN einrichten will, um Käufe automatisch an seine WordPress-Seite zu melden, braucht vor allem drei Dinge: die richtige URL, eine geprüfte Signatur und einen sauberen Test. Diese Anleitung zeigt dir den kompletten Weg, technisch und im Detail.

Wenn du auf Digistore24 ein Produkt verkaufst und die Freischaltung nicht von Hand erledigen willst, führt kein Weg an der IPN-Anbindung vorbei. „Digistore24 IPN einrichten" klingt nach einem technischen Detail, ist in Wahrheit aber die Schnittstelle, die entscheidet, ob dein Mitgliederbereich automatisch funktioniert oder ob du jeden Kauf manuell nachpflegen musst. Dieser Beitrag geht das Thema rein technisch an: die IPN-URL im Digistore-Backend, die Signaturprüfung, die Events und ein sauberer Testlauf. Wenn du erst den kompletten Aufbau eines Mitgliederbereichs mit Digistore24 sehen willst, lies zuerst unsere Anleitung WordPress-Mitgliederbereich mit Digistore24 erstellen – hier geht es tiefer in die IPN-Technik selbst.

Was ist IPN und wozu brauchst du es?

IPN steht für Instant Payment Notification. Dahinter steckt ein einfaches Prinzip: Sobald auf Digistore24 etwas passiert, das für deine Seite relevant ist, ein Kauf, eine Rückerstattung, ein Chargeback oder eine Abo-Kündigung, schickt Digistore24 automatisch eine HTTP-POST-Anfrage an eine von dir festgelegte URL auf deiner WordPress-Installation. Dein Server nimmt diese Anfrage entgegen, prüft sie und reagiert entsprechend, meist indem er einen Zugang freischaltet oder sperrt.

Ohne IPN bliebe dir nur der manuelle Weg: Du müsstest regelmäßig ins Digistore-Backend schauen, neue Käufe erkennen und Mitglieder von Hand in WordPress anlegen. Das funktioniert bei drei Verkäufen im Monat, wird aber bei jedem weiteren Produkt und jeder weiteren Bestellung zur Fehlerquelle. Die IPN-Anbindung macht daraus einen Automatismus: Kauf rein, Zugang frei, ganz ohne dein Zutun.

Voraussetzungen für die Digistore24-IPN-Einrichtung

Bevor du loslegst, solltest du drei Dinge haben:

  • Ein Digistore24-Vendor-Konto, über das du als Verkäufer registriert bist und mindestens ein Produkt angelegt hast.
  • Ein WordPress-Produkt mit HTTPS. Digistore24 sendet IPN-Meldungen ausschließlich an verschlüsselte Endpunkte. Eine Seite ohne gültiges SSL-Zertifikat kann keine IPN-Meldungen empfangen.
  • Einen Endpunkt, der IPN-Anfragen verarbeitet. Das kann ein eigenes Skript sein, ein Custom-Plugin oder, deutlich weniger fehleranfällig, ein fertiges Membership-Plugin mit nativer Digistore24-Anbindung wie MemberJet.

Wichtig: Digistore24 selbst spricht in seiner Oberfläche je nach Kontext von „IPN" oder „Rückruf-URL" beziehungsweise „Webhook". Gemeint ist technisch dasselbe. Die genaue Bezeichnung und Position im Digistore-Backend kann sich ändern, grundsätzlich findest du die IPN-Konfiguration aber im Digistore-Backend unter den Einstellungen zu deinem Produkt beziehungsweise Vendor-Konto.

Schritt für Schritt: IPN-URL im Digistore-Backend hinterlegen

So gehst du grundsätzlich vor, wenn du die IPN-Anbindung manuell einrichtest:

  1. IPN-Endpunkt auf deiner WordPress-Seite bereitstellen. Das ist eine feste URL, unter der dein Server POST-Anfragen von Digistore24 entgegennimmt und verarbeitet, etwa ein REST-Endpunkt oder ein dediziertes Skript.
  2. Im Digistore-Backend anmelden und zu den Einstellungen deines Vendor-Kontos beziehungsweise des betreffenden Produkts wechseln, wo die IPN- beziehungsweise Rückruf-Konfiguration liegt.
  3. Die vollständige IPN-URL eintragen. Achte auf HTTPS am Anfang, die korrekte Domain und einen exakten Pfad ohne Tippfehler – schon ein fehlendes Zeichen führt dazu, dass keine einzige Meldung ankommt.
  4. Eine Passphrase festlegen und speichern. Dazu gleich mehr im nächsten Abschnitt, dieser Schritt ist sicherheitskritisch und nicht optional.
  5. Die gewünschten Events aktivieren. Digistore24 erlaubt es, festzulegen, bei welchen Ereignissen eine IPN-Meldung ausgelöst wird, etwa Kauf, Rückerstattung oder Chargeback.
  6. Speichern und mit der IPN-Simulation testen, bevor der erste echte Kauf darüber läuft.
Praktischer Rat: Notiere dir die eingetragene IPN-URL an einer zweiten Stelle, etwa in deiner Passwortverwaltung. Wenn du später die Domain wechselst oder ein SSL-Zertifikat erneuerst und dabei Pfade verschiebst, denkst du sonst leicht nicht daran, die Einstellung im Digistore-Backend nachzuziehen – die Folge sind lautlos ausbleibende Freischaltungen.

Passphrase und SHA-Signaturprüfung: der wichtigste Sicherheitsschritt

Ein IPN-Endpunkt ist von außen erreichbar, das liegt in der Natur eines Webhooks. Genau deshalb reicht es nicht, einfach jede eingehende Anfrage zu glauben. Ohne Prüfung könnte theoretisch jeder, der deine IPN-URL kennt oder errät, eine gefälschte „Kauf erfolgreich"-Meldung an deinen Server schicken und sich so kostenlosen Zugang erschleichen.

Digistore24 löst das über eine Passphrase, die du im Backend festlegst und die nur du und Digistore24 kennen. Aus dieser Passphrase und den Daten der jeweiligen Meldung berechnet Digistore24 eine SHA-Signatur, die mit jeder IPN-Anfrage mitgeschickt wird. Dein Endpunkt muss diese Signatur bei jeder eingehenden Meldung selbst nachrechnen und mit der mitgeschickten Signatur vergleichen. Stimmen beide überein, ist die Meldung nachweislich echt. Stimmen sie nicht überein, verwirfst du die Anfrage, ganz gleich wie plausibel ihr Inhalt aussieht.

  • Passphrase niemals im Klartext im Code oder in einer öffentlich erreichbaren Datei ablegen. Gehört sie in fremde Hände, kann jeder gültige Signaturen berechnen.
  • Signaturvergleich zeitkonstant durchführen, also mit einer Funktion wie hash_equals statt einem einfachen String-Vergleich, um Timing-Angriffe zu vermeiden.
  • Fail-closed statt fail-open denken: Kann die Signatur nicht geprüft werden oder ist sie ungültig, wird nichts freigeschaltet. Im Zweifel bleibt der Zugang gesperrt statt versehentlich offen.

Diese Signaturprüfung ist kein optionales Extra, sondern der Kern der gesamten IPN-Sicherheit. Wer sie überspringt oder falsch implementiert, öffnet im schlimmsten Fall eine Tür für kostenlosen Zugriff auf bezahlte Inhalte.

Die IPN-Events und was deine Seite damit tun sollte

Digistore24 unterscheidet mehrere Ereignistypen, die jeweils eine eigene IPN-Meldung auslösen. Für einen Mitgliederbereich oder Kurszugang sind vor allem folgende relevant:

EventWas passiertReaktion deiner Seite
Zahlung / KaufEin Kunde hat erfolgreich bezahltMitglied anlegen oder aktivieren, Zugang zum gekauften Produkt freischalten
RückerstattungDer Kaufpreis wurde ganz oder teilweise zurückerstattetZugang sperren beziehungsweise Mitgliedschaft deaktivieren
ChargebackDer Kunde hat die Zahlung über seine Bank zurückgebuchtZugang sofort sperren, da hier meist zusätzlicher Klärungsbedarf besteht
Abo-KündigungEin laufendes Abonnement wurde gekündigtZugang erst zum Ende des bereits bezahlten Zeitraums sperren, nicht sofort

Der letzte Punkt wird in eigenen IPN-Implementierungen häufig falsch gemacht: Eine Kündigung ist keine Rückerstattung. Wer für den laufenden, bereits bezahlten Zeitraum kündigt, hat diesen Zeitraum bezahlt und sollte ihn auch nutzen dürfen. Sperrst du bei jeder Kündigungsmeldung sofort, bestrafst du Kunden dafür, dass sie eine Verlängerung abbestellen, und produzierst unnötigen Support-Aufwand. Achte bei der Verarbeitung außerdem darauf, jede Meldung idempotent zu behandeln: Trifft dieselbe IPN-Meldung aus technischen Gründen doppelt ein, etwa weil dein Server beim ersten Mal zu spät geantwortet hat, darf dadurch kein Mitglied doppelt angelegt oder ein Zugang doppelt verlängert werden.

Test mit der Digistore-IPN-Simulation

Bevor der erste echte Kunde über deinen IPN-Endpunkt läuft, solltest du ihn mit Testdaten prüfen. Digistore24 bietet dafür im Backend eine IPN-Simulation, mit der du testweise Meldungen an deine hinterlegte URL schicken kannst, ohne dass ein echter Kauf stattfindet.

  1. Simulation im Digistore-Backend aufrufen und deine hinterlegte IPN-URL sowie das gewünschte Testevent auswählen.
  2. Testmeldung auslösen und prüfen, ob dein Server mit einem 200-OK antwortet. Jede andere Antwort, ein Timeout oder ein Fehlercode, wertet Digistore24 als fehlgeschlagene Zustellung.
  3. Auf deiner WordPress-Seite kontrollieren, ob die erwartete Aktion tatsächlich ausgeführt wurde, also zum Beispiel ob ein Test-Mitglied angelegt oder ein Zugang freigeschaltet wurde.
  4. Verschiedene Events durchtesten, nicht nur den Kauf. Simuliere auch eine Rückerstattung und, falls verfügbar, eine Kündigung, damit du sicher weißt, dass auch die Sperr-Logik funktioniert.

Nimm dir für diesen Schritt bewusst Zeit. Ein IPN-Fehler fällt in der Praxis oft erst auf, wenn sich der erste zahlende Kunde meldet, weil sein Zugang nicht freigeschaltet wurde, und das ist der denkbar schlechteste Zeitpunkt für eine Fehlersuche.

Typische Fehler bei der Digistore24-IPN-Einrichtung

Die meisten IPN-Probleme lassen sich auf eine Handvoll wiederkehrender Ursachen zurückführen.

  • Falsche oder unvollständige URL: ein fehlendes „https://", ein Tippfehler im Pfad oder eine URL, die noch auf eine alte Domain zeigt. Kontrolliere die eingetragene URL Zeichen für Zeichen.
  • Signatur-Mismatch: Die Passphrase im Digistore-Backend stimmt nicht mit der Passphrase überein, die dein Code zur Berechnung verwendet, etwa weil sie beim Kopieren ein Leerzeichen abbekommen hat oder nach einer Änderung nicht überall aktualisiert wurde.
  • Caching blockiert die Antwort: Ein Cache-Plugin oder serverseitiges Caching fängt die POST-Anfrage ab oder liefert eine veraltete Antwort statt sie an deinen Verarbeitungscode weiterzureichen. IPN-Endpunkte gehören grundsätzlich vom Caching ausgeschlossen.
  • Firewall oder Security-Plugin blockiert POST-Anfragen: Manche Web-Application-Firewalls stufen unbekannte POST-Anfragen pauschal als verdächtig ein. Prüfe, ob dein IPN-Endpunkt dort als Ausnahme hinterlegt werden muss.
  • Kein 200-OK zurückgegeben: Wirft dein Skript einen Fehler oder braucht zu lange, wertet Digistore24 das als gescheiterte Zustellung. Dein Endpunkt sollte schnell und mit einem sauberen 200-Status antworten, auch wenn die eigentliche Verarbeitung im Hintergrund weiterläuft.

Debugging-Tipps

Wenn eine IPN-Meldung nicht wie erwartet ankommt, hilft ein systematisches Vorgehen: Prüfe zuerst in den Server-Logs, ob die POST-Anfrage überhaupt ankommt – kommt sie gar nicht an, liegt es meist an URL, Firewall oder einer Weiterleitung. Lass deinen Endpunkt vorübergehend die eingehenden Rohdaten protokollieren, um zu sehen, was tatsächlich ankommt, bevor die Signaturprüfung greift. Rechne die erwartete Signatur zusätzlich einmal isoliert mit einem kleinen Testskript nach, um Passphrase- von Berechnungsfehlern zu unterscheiden. Deaktiviere Caching und Sicherheits-Plugins testweise und löse die IPN-Simulation erneut aus – kommt die Meldung dann durch, hast du die Ursache eingegrenzt. Und lagere aufwendige Verarbeitungsschritte wie den Versand einer Willkommens-E-Mail nach Möglichkeit aus der unmittelbaren Antwort aus, damit dein Server zügig mit 200-OK antworten kann.

Der bequeme Weg: MemberJet übernimmt die IPN-Anbindung

Alles, was du bisher gelesen hast, den Endpunkt bauen, die Signatur prüfen, die Events sauber verarbeiten und idempotent halten, kannst du selbst umsetzen. Es ist aber genau der Teil einer Digistore24-Integration, in dem sich die meisten Fehler einschleichen, weil ein einziges übersehenes Detail wie ein fehlender hash_equals-Vergleich oder ein zu spätes 200-OK genügt, um entweder Käufer auszusperren oder eine Sicherheitslücke zu öffnen.

Genau dafür gibt es MemberJet. Das Plugin bringt die komplette Digistore24-IPN-Anbindung fertig mit: Du kopierst die von MemberJet bereitgestellte IPN-URL, trägst sie im Digistore-Backend ein, hinterlegst deine Passphrase in MemberJet, fertig. Die SHA-512-Signaturprüfung läuft automatisch, die Verarbeitung ist idempotent, und Käufe schalten Mitgliedschaften und Kurse ebenso automatisch frei wie Rückerstattungen oder Chargebacks sie wieder sperren, während eine bloße Kündigung bewusst nicht sofort sperrt. Deine Passphrase und andere Zugangsdaten speichert MemberJet zudem libsodium-verschlüsselt statt im Klartext. Wie der gesamte Aufbau eines Mitgliederbereichs mit MemberJet und Digistore24 aussieht, von der ersten Produktverknüpfung bis zum Magic-Link-Login, zeigt dir unsere Anleitung WordPress-Mitgliederbereich mit Digistore24 erstellen. Und wenn du dich gerade fragst, ob du überhaupt ein WordPress-Plugin oder doch eine Alternative wie Elopage brauchst, findest du die Gegenüberstellung in Elopage Alternative für WordPress.

IPN-Anbindung ohne Fehlersuche

MemberJet verbindet WordPress fertig konfiguriert und SHA-512-geprüft mit Digistore24 – IPN-URL kopieren, Passphrase eintragen, automatische Freischaltung läuft.

MemberJet ansehen

Fazit

Digistore24 IPN einrichten heißt im Kern: eine korrekte URL im Digistore-Backend hinterlegen, jede eingehende Meldung per SHA-Signatur zuverlässig verifizieren und die einzelnen Events, Kauf, Rückerstattung, Chargeback und Kündigung, jeweils richtig behandeln. Wer das manuell baut, sollte die IPN-Simulation konsequent nutzen und beim Debugging systematisch vorgehen, von den Server-Logs über die Signaturprüfung bis zur Antwortzeit. Wer sich die Fehlerquellen sparen will, bekommt mit MemberJet eine fertige, sicherheitsgeprüfte Anbindung, die genau diese Arbeit bereits erledigt hat. Wenn du parallel wissen willst, wie du auf dieser Grundlage einen kompletten Online-Kurs strukturierst, hilft dir unsere Anleitung Online-Kurs mit WordPress erstellen weiter.

Häufige Fragen zur Digistore24-IPN-Einrichtung

Was ist der Unterschied zwischen IPN und einem normalen Webhook?

Technisch gesehen ist eine IPN-Meldung nichts anderes als ein Webhook: eine automatische HTTP-POST-Anfrage, die Digistore24 bei einem bestimmten Ereignis an eine von dir festgelegte URL schickt. „IPN" ist einfach die Bezeichnung, die Digistore24 für dieses Konzept verwendet, angelehnt an ähnliche Systeme anderer Zahlungsanbieter. Inhaltlich transportiert die IPN-Meldung Informationen zu Kauf, Rückerstattung, Chargeback oder Kündigung, damit deine Seite automatisch reagieren kann. Wichtig ist dabei vor allem, dass du jede eingehende Meldung per Signaturprüfung verifizierst, bevor du ihr vertraust.

Wo trage ich die IPN-URL im Digistore-Backend ein?

Die IPN-Konfiguration findest du im Digistore-Backend unter den Einstellungen zu deinem Vendor-Konto beziehungsweise zum jeweiligen Produkt, je nachdem, ob du eine globale oder produktspezifische IPN-URL hinterlegen möchtest. Da sich die genaue Bezeichnung und Position in der Digistore24-Oberfläche im Zeitverlauf ändern kann, lohnt sich im Zweifel ein Blick in die aktuelle Digistore24-Dokumentation oder den Support. Entscheidend ist, dass die eingetragene URL exakt stimmt, inklusive HTTPS, korrekter Domain und Pfad ohne Tippfehler. Schon eine kleine Abweichung führt dazu, dass keine einzige Meldung ankommt.

Wie wichtig ist die SHA-Signaturprüfung wirklich?

Sie ist der wichtigste Sicherheitsschritt der gesamten IPN-Anbindung. Ohne Signaturprüfung könnte theoretisch jeder, der deine IPN-URL kennt, eine gefälschte Kauf-Meldung an deinen Server schicken und sich kostenlosen Zugang zu bezahlten Inhalten erschleichen. Mit einer korrekt implementierten SHA-Signaturprüfung, idealerweise per zeitkonstantem Vergleich wie hash_equals, akzeptierst du nur Meldungen, die nachweislich mit deiner geheimen Passphrase von Digistore24 signiert wurden. Verzichte deshalb unter keinen Umständen auf diesen Schritt, auch nicht testweise oder „nur vorübergehend".

Wie teste ich meine IPN-Anbindung, ohne einen echten Kauf auszulösen?

Dafür bietet Digistore24 im Backend eine IPN-Simulation, mit der du Testmeldungen für verschiedene Events an deine hinterlegte URL schicken kannst, ohne dass tatsächlich Geld fließt. Prüfe dabei sowohl, ob dein Server mit einem 200-OK antwortet, als auch, ob die erwartete Aktion auf deiner WordPress-Seite tatsächlich ausgeführt wird, etwa das Freischalten eines Testzugangs. Teste nach Möglichkeit nicht nur den Kauf, sondern auch eine simulierte Rückerstattung, damit du sicher weißt, dass auch die Sperr-Logik funktioniert. Erst wenn beide Richtungen zuverlässig funktionieren, solltest du die Anbindung live schalten.

Warum kommen meine IPN-Meldungen nicht an, obwohl die URL richtig aussieht?

Die häufigsten Ursachen sind ein Cache-Plugin oder serverseitiges Caching, das die POST-Anfrage abfängt, eine Firewall oder ein Security-Plugin, das unbekannte POST-Anfragen blockiert, oder ein Server, der nicht schnell genug mit einem sauberen 200-OK antwortet. Prüfe zunächst in den Server-Logs, ob die Anfrage überhaupt ankommt. Kommt sie an, aber die Verarbeitung schlägt fehl, liegt das Problem meist an der Signaturprüfung, etwa einer falsch übertragenen Passphrase. Schließe deinen IPN-Endpunkt in jedem Fall vom Caching aus und trage ihn bei Bedarf als Ausnahme in deinem Security-Plugin ein.

Zurück zum Blog Ein Beitrag von hafenstudios