Langsung ke konten utama

Pendahuluan

Eksekusi alur kerja dan skrip kustom di Kincir Angin saat peristiwa pembayaran terjadi. Jalankan operasi basis data, kirim notifikasi, proses data, dan otomatisasi logika bisnis yang kompleks dengan mesin alur kerja Kincir Angin yang kuat.
Integrasi ini memerlukan URL webhook Windmill Anda dari konfigurasi workflow.

Memulai

1

Open the Webhook Section

Di dasbor Dodo Payments Anda, buka Webhooks → + Add Endpoint dan perluas dropdown integrasi.
Tambahkan Endpoint dan dropdown integrasi
2

Select Windmill

Pilih kartu integrasi Windmill.
3

Create Windmill Workflow

Di Windmill, buat workflow baru dan salin URL webhook dari konfigurasi pemicu.
4

Paste Webhook URL

Tempelkan URL webhook Windmill ke konfigurasi endpoint.
5

Configure Transformation

Edit kode transformasi untuk memformat event bagi workflow Windmill Anda.
6

Test & Create

Uji dengan payload sampel dan klik Create untuk mengaktifkan integrasi.
7

Done!

🎉 Event pembayaran sekarang akan memicu workflow Windmill Anda secara otomatis.

Contoh Kode Transformasi

Payload Alur Kerja Dasar

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;
}

Penangan Alur Kerja Langganan

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;
}

Penangan Alur Kerja Sengketa

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;
}

Kasus Penggunaan Kincir Angin yang Umum

  • Perbarui catatan pelanggan di PostgreSQL/MySQL
  • Catat event pembayaran ke gudang data
  • Sinkronkan data ke sistem eksternal
  • Perbarui tingkat inventaris
  • Lacak metrik analitik
  • Hitung metrik pendapatan
  • Proses pengembalian dana dan penyesuaian
  • Tangani siklus hidup langganan
  • Hasilkan laporan dan ekspor
  • Validasi data pembayaran
  • Kirim data ke platform analitik
  • Perbarui sistem CRM
  • Picu kampanye email
  • Buat event kalender
  • Kirim notifikasi SMS

Tips

  • Struktur data payload untuk pemrosesan alur kerja yang mudah
  • Sertakan semua metadata relevan untuk logika bisnis
  • Gunakan penamaan field yang konsisten di seluruh peristiwa
  • Sertakan cap waktu untuk penjadwalan alur kerja
  • Manfaatkan penanganan kesalahan bawaan Kincir Angin

Pemecahan Masalah

  • Verifikasi bahwa URL webhook benar dan aktif
  • Periksa bahwa workflow Windmill sudah diterbitkan dan aktif
  • Pastikan struktur payload sesuai dengan ekspektasi workflow
  • Tinjau log eksekusi Windmill untuk kesalahan
  • Periksa pemetaan parameter input workflow
  • Verifikasi tipe data sesuai format yang diharapkan
  • Uji workflow dengan data sampel
  • Tinjau log eksekusi skrip Windmill