Pendahuluan
Eksekusi fungsi serverless dan pekerjaan latar belakang secara otomatis ketika peristiwa pembayaran terjadi. Proses pembayaran, kirim notifikasi, perbarui basis data, dan jalankan alur kerja yang kompleks dengan platform eksekusi fungsi Inngest yang andal.
Integrasi ini memerlukan URL webhook Inngest Anda dari konfigurasi fungsi Anda.
Memulai
Buka Bagian Webhook
Di dasbor Dodo Payments Anda, navigasikan ke Webhooks → + Tambah Endpoint dan perluas dropdown integrasi.
Pilih Inngest
Pilih kartu integrasi Inngest .
Buat Fungsi Inngest
Di Inngest, buat fungsi baru dan salin URL webhook dari konfigurasi fungsi.
Tempel URL Webhook
Tempel URL webhook Inngest ke dalam konfigurasi endpoint.
Konfigurasi Transformasi
Edit kode transformasi untuk memformat peristiwa untuk fungsi Inngest Anda.
Uji & Buat
Uji dengan payload contoh dan klik Buat untuk mengaktifkan integrasi.
Selesai!
🎉 Peristiwa pembayaran sekarang akan memicu fungsi Inngest Anda secara otomatis.
Payload Peristiwa Dasar
function handler ( webhook ) {
if ( webhook . eventType === "payment.succeeded" ) {
const p = webhook . payload . data ;
webhook . payload = {
name: "payment.succeeded" ,
data: {
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"
},
user: {
email: p . customer . email
},
ts: Math . floor ( new Date ( webhook . payload . timestamp ). getTime () / 1000 )
};
}
return webhook ;
}
See all 21 lines
Penangan Acara Langganan
function handler ( webhook ) {
const s = webhook . payload . data ;
switch ( webhook . eventType ) {
case "subscription.active" :
webhook . payload = {
name: "subscription.started" ,
data: {
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
},
user: {
email: s . customer . email
},
ts: Math . floor ( new Date ( webhook . payload . timestamp ). getTime () / 1000 )
};
break ;
case "subscription.cancelled" :
webhook . payload = {
name: "subscription.cancelled" ,
data: {
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
},
user: {
email: s . customer . email
},
ts: Math . floor ( new Date ( webhook . payload . timestamp ). getTime () / 1000 )
};
break ;
}
return webhook ;
}
See all 39 lines
Penangan Acara Sengketa
function handler ( webhook ) {
if ( webhook . eventType . startsWith ( "dispute." )) {
const d = webhook . payload . data ;
webhook . payload = {
name: webhook . eventType ,
data: {
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"
},
user: {
email: d . customer ?. email || "unknown"
},
ts: Math . floor ( new Date ( webhook . payload . timestamp ). getTime () / 1000 )
};
}
return webhook ;
}
See all 22 lines
Kasus Penggunaan Inngest yang Umum
Kirim email konfirmasi
Perbarui catatan pelanggan
Proses pengembalian dana
Buat faktur
Perbarui inventaris
Sambut pelanggan baru
Proses pembatalan
Kirim pengingat perpanjangan
Perbarui siklus penagihan
Tangani pembayaran yang gagal
Perbarui metrik pendapatan
Lacak perilaku pelanggan
Buat laporan
Sinkronkan data ke platform analitik
Hitung tingkat churn
Tips
Gunakan nama peristiwa yang deskriptif untuk organisasi fungsi yang lebih baik
Sertakan konteks pengguna untuk eksekusi fungsi
Atur cap waktu yang tepat untuk urutan peristiwa
Struktur data secara konsisten di seluruh peristiwa
Gunakan fitur pengulangan dan penanganan kesalahan Inngest
Pemecahan Masalah
Verifikasi URL webhook benar dan aktif
Periksa bahwa fungsi Inngest telah diterapkan dan aktif
Pastikan nama peristiwa cocok dengan pemicu fungsi
Tinjau log fungsi Inngest untuk kesalahan
Data tidak diterima dengan benar
Periksa struktur payload sesuai dengan harapan Inngest
Verifikasi nama peristiwa diformat dengan benar
Pastikan semua bidang yang diperlukan disertakan
Uji dengan alat pengujian webhook Inngest