المقدمة
قم بتنفيذ الوظائف بدون خادم والمهام الخلفية تلقائيًا عند حدوث أحداث الدفع. قم بمعالجة المدفوعات، إرسال الإشعارات، تحديث قواعد البيانات، وتشغيل سير العمل المعقد باستخدام منصة تنفيذ الوظائف الموثوقة من Inngest.
يتطلب هذا التكامل عنوان ويب هوك الخاص بـ Inngest من تكوين الدالة الخاصة بك.
البدء
Open the Webhook Section
في لوحة تحكم Dodo Payments الخاصة بك، انتقل إلى ويب هوكس → + إضافة نقطة نهاية وقم بتوسيع قائمة التكامل.
Select Inngest
اختر بطاقة التكامل Inngest .
Create Inngest Function
في Inngest، أنشئ دالة جديدة وانسخ عنوان ويب هوك من تكوين الدالة.
Paste Webhook URL
ألصق عنوان ويب هوك Inngest في تكوين نقطة النهاية.
Configure Transformation
حرر شفرة التحويل لتنسيق الأحداث الخاصة بدالتك في Inngest.
Test & Create
اختبر باستخدام أحمال بيانات نموذجية ثم انقر على إنشاء لتفعيل التكامل.
Done!
🎉 ستؤدي الآن أحداث الدفع إلى تشغيل وظائف Inngest الخاصة بك تلقائيًا.
أمثلة على كود التحويل
حمولة حدث أساسية
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
معالج حدث الاشتراك
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
معالج حدث النزاع
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
حالات استخدام Inngest الشائعة
إرسال رسائل تأكيد عبر البريد الإلكتروني
تحديث سجلات العملاء
معالجة عمليات الاسترداد
إنشاء فواتير
تحديث المخزون
ترحيب بالمشتركين الجدد
معالجة الإلغاءات
إرسال تذكيرات التجديد
تحديث دورات الفوترة
التعامل مع المدفوعات الفاشلة
تحديث مؤشرات الإيرادات
تتبع سلوك العملاء
توليد التقارير
مزامنة البيانات مع منصات التحليلات
حساب معدلات التسرب
نصائح
استخدم أسماء أحداث وصفية لتحسين تنظيم الوظائف
تضمين سياق المستخدم لتنفيذ الوظائف
تعيين طوابع زمنية صحيحة لترتيب الأحداث
هيكلة البيانات بشكل متسق عبر الأحداث
استخدام ميزات إعادة المحاولة ومعالجة الأخطاء في Inngest
استكشاف الأخطاء وإصلاحها
تحقق من أن عنوان ويب هوك صحيح ونشط
تحقق من أن دالة Inngest منشورة ونشطة
تأكد من أن أسماء الأحداث تتطابق مع محفزات الدالة
راجع سجلات دالة Inngest بحثًا عن أخطاء
Data not received correctly
تحقق من أن بنية الحمولة تتوافق مع توقعات Inngest
تحقق من أن أسماء الأحداث منسقة بشكل صحيح
تأكد من تضمين جميع الحقول المطلوبة
اختبر باستخدام أداة اختبار ويب هوك الخاصة بـ Inngest