Skip to main content

Einführung

Führe jedes Mal ein Windmill-Skript oder einen Windmill-Flow aus, wenn ein Dodo Payments-Ereignis auftritt. Verwende dies, um eine Datenbank zu aktualisieren, Datensätze mit einem anderen System zu synchronisieren, Benachrichtigungen zu senden oder deine eigene Geschäftslogik im Code auszuführen.
Der Windmill-Connector sendet jedes Ereignis an die Webhook-URL eines Windmill-Skripts oder -Flows. Du benötigst ein bereitgestelltes Skript oder einen bereitgestellten Flow, ein Windmill-Token, mit dem es ausgeführt werden kann, sowie Zugriff auf Developer → Webhooks im Dodo Payments-Dashboard.

Erste Schritte

1

Open the Webhook Section

Gehe im Dodo Payments-Dashboard zu Developer → Webhooks und klicke auf Add endpoint.
Add endpoint dialog with Windmill selected in the Integration dropdown and the How to connect Windmill steps
2

Select Windmill

Wähle unter Integration die Option Windmill aus. Das Dashboard lädt den Windmill-Transformationscode und zeigt die Einrichtungsschritte im Bereich How to connect Windmill an.
3

Copy the Windmill Webhook URL

Öffne in Windmill das Skript oder den Flow, der Ereignisse verarbeiten soll. Öffne auf dessen Tab Triggers den Bereich Webhooks und kopiere die asynchrone (UUID/Async) Webhook-URL. Erstelle anschließend ein Webhook-spezifisches Token für das Skript oder den Flow und kopiere es. Dieses Token kann nur dieses Skript oder diesen Flow ausführen.
4

Paste Webhook URL

Füge die Windmill-Webhook-URL in Endpoint URL ein. Die URL muss HTTPS verwenden. Eine selbst gehostete Windmill-Instanz benötigt daher eine öffentlich erreichbare HTTPS-Adresse. Der Windmill-Connector verfügt über kein API-Key-Feld. Füge das Token daher hinzu, nachdem du den Endpunkt erstellt hast.
5

Select Events

Subscribed events listet die Ereignisse auf, die der Windmill-Connector unterstützt. Behalte nur die Ereignisse, die dein Skript oder dein Flow verarbeitet.
6

Configure Transformation

Bearbeite unter Transformation code den Handler so, dass die Schlüssel der obersten Ebene der Payload mit den Inputs deines Skripts oder Flows übereinstimmen. Beginne mit den Beispielen.
7

Test & Create

Wähle unter Test this code einen Ereignistyp aus und klicke auf Simulate, um die Payload in der Vorschau anzuzeigen. Klicke anschließend auf Create endpoint.
8

Add the Windmill Token

Öffne direkt nach dem Erstellen des Endpunkts dessen Tab Advanced. Klicke unter Custom headers auf Add header. Gib Authorization als Namen und Bearer, ein Leerzeichen sowie dein Token als Wert ein. Klicke anschließend auf Save. Bis du den Header speicherst, lehnt Windmill Zustellungen ab und Dodo Payments wiederholt sie gemäß dem Wiederholungsplan.Windmill akzeptiert das Token auch in einem token-Query-Parameter am Ende der URL. Windmill empfiehlt den Header, da jede Person, die eine URL mit einem Token sehen kann, das Token verwenden kann.
9

Done

Die abonnierten Ereignisse starten nun Ausführungen deines Skripts oder Flows. Um ein Testereignis zu senden, öffne den Tab Testing des Endpunkts, wähle einen Ereignistyp aus und klicke auf Send example. In Windmill wird die Ausführung auf der Seite Runs mit dem Trigger Webhook angezeigt.

Beispiele für Transformationscode

Jeder Handler ersetzt webhook.payload durch ein flaches Objekt und behält webhook.url, deine Windmill-Webhook-URL, bei. Windmill übergibt jeden Schlüssel der obersten Ebene an den Skript- oder Flow-Input mit demselben Namen. Ein Skript für das erste Beispiel deklariert daher Inputs wie event_type, payment_id und amount. Beträge von Dodo Payments werden in der kleinsten Währungseinheit angegeben. Die Beispiele teilen sie daher durch 100 und senden das Ergebnis als String, beispielsweise "25.00". Für Währungen ohne Dezimalstellen wie JPY und KRW verwendest du den Betrag unverändert.

Payload für grundlegende Workflows

Sende die Details einer erfolgreichen Zahlung:
basic_workflow.js

Handler für Subscription-Workflows

Sende ein subscription_started- oder subscription_cancelled-Ereignis, wenn eine Subscription aktiv wird oder gekündigt wird:
subscription_workflow.js

Handler für Dispute-Workflows

Sende jedes Dispute-Ereignis und setze urgent auf true, wenn ein Dispute eröffnet wird:
dispute_workflow.js

Häufige Anwendungsfälle für Windmill

  • Kundendatensätze in PostgreSQL oder MySQL aktualisieren
  • Zahlungsereignisse in einem Data Warehouse protokollieren
  • Daten mit externen Systemen synchronisieren
  • Lagerbestände aktualisieren
  • Analytics-Metriken erfassen
  • Umsatzmetriken berechnen
  • Rückerstattungen und Anpassungen verarbeiten
  • Änderungen im Subscription-Lebenszyklus verarbeiten
  • Berichte und Exporte erstellen
  • Zahlungsdaten validieren
  • Daten an Analytics-Plattformen senden
  • CRM-Systeme aktualisieren
  • E-Mail-Kampagnen starten
  • Kalendereinträge erstellen
  • SMS-Benachrichtigungen senden

Tipps

  • Benenne die Payload-Schlüssel nach den Inputs deines Skripts oder Flows, da Windmill jeden Schlüssel der obersten Ebene dem Input mit demselben Namen zuordnet.
  • Verwende über alle Ereignisse hinweg dieselben Feldnamen, damit ein Skript mehrere Ereignistypen verarbeiten kann.
  • Füge den Ereignistyp und timestamp ein. Ereignisse können in der falschen Reihenfolge eintreffen, und timestamp ermöglicht deinem Skript, sie zu sortieren.
  • Verwende die asynchrone Webhook-URL. Die synchrone URL wartet, bis die Ausführung abgeschlossen ist. Dauert eine Ausführung länger als das Timeout der Zustellung, gilt die Zustellung als fehlgeschlagen und Dodo Payments wiederholt sie.
  • Stelle sicher, dass dein Skript dasselbe Ereignis zweimal ausführen kann, da Wiederholungen ein Ereignis mehr als einmal zustellen können.
  • Um ein Ereignis im Code zu überspringen, setze webhook.cancel = true, bevor du den Webhook zurückgibst. In den Logs wird eine übersprungene Zustellung als erfolgreich protokolliert.
  • Verwende Windmills Fehler-Handler, um benachrichtigt zu werden, wenn eine Ausführung fehlschlägt.

Fehlerbehebung

  • Überprüfe, ob Endpoint URL die Webhook-URL deines Skripts oder Flows ist und ob der Endpunkt aktiviert ist.
  • Überprüfe, ob der Header Authorization Bearer sowie ein gültiges Token enthält. Ein Webhook-spezifisches Token führt nur das zugehörige Skript oder den zugehörigen Flow aus.
  • Überprüfe, ob das Skript oder der Flow bereitgestellt wurde. Der Webhook führt die zuletzt bereitgestellte Version aus, nicht einen Entwurf.
  • Öffne den Tab Logs unter Developer → Webhooks, um die Antwort von Windmill auf jede Zustellung anzuzeigen.
  • Überprüfe, ob die Schlüssel der obersten Ebene der Payload anhand ihres Namens mit den Inputs des Skripts oder Flows übereinstimmen.
  • Überprüfe, ob jeder Wert dem Typ seines Inputs entspricht. Die Beispiele senden Beträge als Strings.
  • Überprüfe die Ausführung auf der Windmill-Seite Runs, gefiltert nach dem Trigger Webhook. Die asynchrone URL antwortet, sobald Windmill die Ausführung in die Warteschlange eingereiht hat. Daher zeigen die Dodo Payments-Logs auch dann eine erfolgreiche Zustellung an, wenn die Ausführung fehlschlägt.
  • Führe das Skript oder den Flow in Windmill mit einer Payload aus Simulate aus.
Zuletzt geändert am 28. September 2026