Zum Hauptinhalt springen

Einführung

Führen Sie benutzerdefinierte Workflows und Skripte in Windmühle aus, wenn Zahlungsevents auftreten. Führen Sie Datenbankoperationen durch, senden Sie Benachrichtigungen, verarbeiten Sie Daten und automatisieren Sie komplexe Geschäftslogik mit der leistungsstarken Workflow-Engine von Windmühle.
Diese Integration erfordert Ihre Windmühle-Webhook-URL aus Ihrer Workflow-Konfiguration.

Erste Schritte

1

Webhook-Bereich öffnen

Navigieren Sie in Ihrem Dodo Payments-Dashboard zu Webhooks → + Endpoint hinzufügen und erweitern Sie das Dropdown-Menü für Integrationen.
Endpoint hinzufügen und Dropdown-Menü für Integrationen
2

Windmühle auswählen

Wählen Sie die Integrationskarte Windmühle aus.
3

Windmühlen-Workflow erstellen

Erstellen Sie in Windmühle einen neuen Workflow und kopieren Sie die Webhook-URL aus der Trigger-Konfiguration.
4

Webhook-URL einfügen

Fügen Sie die Windmühle-Webhook-URL in die Endpoint-Konfiguration ein.
5

Transformation konfigurieren

Bearbeiten Sie den Transformationscode, um Ereignisse für Ihren Windmühlen-Workflow zu formatieren.
6

Testen & Erstellen

Testen Sie mit Beispielpayloads und klicken Sie auf Erstellen, um die Integration zu aktivieren.
7

Fertig!

🎉 Zahlungsevents werden nun automatisch Ihre Windmühlen-Workflows auslösen.

Transformationscode-Beispiele

Basis-Workflow-Payload

basic_workflow.js
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    webhook.payload = {
      event_type: webhook.eventType,
      payment_id: p.payment_id,
      amount: (p.total_amount / 100).toFixed(2),
      currency: p.currency || "USD",
      customer_email: p.customer.email,
      customer_name: p.customer.name,
      payment_method: p.payment_method || "unknown",
      timestamp: webhook.payload.timestamp,
      metadata: {
        business_id: p.business_id,
        product_id: p.product_id
      }
    };
  }
  return webhook;
}

Abonnement-Workflow-Handler

subscription_workflow.js
function handler(webhook) {
  const s = webhook.payload.data;
  switch (webhook.eventType) {
    case "subscription.active":
      webhook.payload = {
        event_type: "subscription_started",
        subscription_id: s.subscription_id,
        customer_email: s.customer.email,
        customer_name: s.customer.name,
        product_id: s.product_id,
        amount: (s.recurring_pre_tax_amount / 100).toFixed(2),
        frequency: s.payment_frequency_interval,
        next_billing: s.next_billing_date,
        customer_id: s.customer.customer_id,
        timestamp: webhook.payload.timestamp
      };
      break;
    case "subscription.cancelled":
      webhook.payload = {
        event_type: "subscription_cancelled",
        subscription_id: s.subscription_id,
        customer_email: s.customer.email,
        cancelled_at: s.cancelled_at,
        cancel_at_next_billing: s.cancel_at_next_billing_date,
        customer_id: s.customer.customer_id,
        timestamp: webhook.payload.timestamp
      };
      break;
  }
  return webhook;
}

Streitfall-Workflow-Handler

dispute_workflow.js
function handler(webhook) {
  if (webhook.eventType.startsWith("dispute.")) {
    const d = webhook.payload.data;
    webhook.payload = {
      event_type: webhook.eventType,
      dispute_id: d.dispute_id,
      payment_id: d.payment_id,
      amount: (d.amount / 100).toFixed(2),
      status: d.dispute_status,
      stage: d.dispute_stage,
      remarks: d.remarks || "",
      urgent: webhook.eventType === "dispute.opened",
      business_id: d.business_id,
      timestamp: webhook.payload.timestamp
    };
  }
  return webhook;
}

Häufige Anwendungsfälle für Windmühle

  • Aktualisieren Sie Kundenaufzeichnungen in PostgreSQL/MySQL
  • Protokollieren Sie Zahlungsevents in Data Warehouses
  • Synchronisieren Sie Daten mit externen Systemen
  • Aktualisieren Sie Bestandsniveaus
  • Verfolgen Sie Analytikmetriken
  • Berechnen Sie Umsatzmetriken
  • Verarbeiten Sie Rückerstattungen und Anpassungen
  • Verwalten Sie den Lebenszyklus von Abonnements
  • Erstellen Sie Berichte und Exporte
  • Validieren Sie Zahlungsdaten
  • Senden Sie Daten an Analyseplattformen
  • Aktualisieren Sie CRM-Systeme
  • Auslösen von E-Mail-Kampagnen
  • Erstellen Sie Kalendereinträge
  • Senden Sie SMS-Benachrichtigungen

Tipps

  • Strukturieren Sie Payload-Daten für eine einfache Workflow-Verarbeitung
  • Fügen Sie alle relevanten Metadaten für die Geschäftslogik hinzu
  • Verwenden Sie konsistente Feldbenennungen über Ereignisse hinweg
  • Fügen Sie Zeitstempel für die Workflow-Zeitplanung hinzu
  • Nutzen Sie die integrierte Fehlerbehandlung von Windmühle

Fehlersuche

  • Überprüfen Sie, ob die Webhook-URL korrekt und aktiv ist
  • Stellen Sie sicher, dass der Windmühle-Workflow veröffentlicht und aktiv ist
  • Stellen Sie sicher, dass die Payload-Struktur den Erwartungen des Workflows entspricht
  • Überprüfen Sie die Ausführungsprotokolle von Windmühle auf Fehler
  • Überprüfen Sie die Zuordnung der Eingabeparameter des Workflows
  • Stellen Sie sicher, dass die Datentypen den erwarteten Formaten entsprechen
  • Testen Sie den Workflow mit Beispieldaten
  • Überprüfen Sie die Ausführungsprotokolle des Windmühle-Skripts