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
Open the Webhook Section
Di dasbor Dodo Payments Anda, buka Webhooks → + Add Endpoint dan perluas dropdown integrasi.
Select Inngest
Pilih kartu integrasi Inngest .
Create Inngest Function
Di Inngest, buat fungsi baru dan salin URL webhook dari konfigurasi fungsi.
Paste Webhook URL
Tempelkan URL webhook Inngest ke dalam konfigurasi endpoint.
Configure Transformation
Edit kode transformasi untuk memformat event sesuai fungsi Inngest Anda.
Test & Create
Uji dengan payload contoh dan klik Create untuk mengaktifkan integrasi.
Done!
🎉 Event pembayaran kini 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 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 sudah benar dan aktif
Periksa bahwa fungsi Inngest telah dideploy dan aktif
Pastikan nama event sesuai pemicu fungsi
Tinjau log fungsi Inngest untuk mencari kesalahan
Data not received correctly
Periksa struktur payload sesuai harapan Inngest
Verifikasi nama event diformat dengan benar
Pastikan semua field wajib disertakan
Uji dengan alat pengujian webhook Inngest