أحداث استرداد سلة التسوق المتروكة
تتبع أحداث الويب هوك التالية دورة حياة استرداد سلة التسوق المتروكة:
الحدث الوصف abandoned_checkout.detectedتم اكتشاف خروج مهجور. يتم الإرسال عندما يتم تحديد الدفع باعتباره مهجورًا (فشل أو غير مكتمل) ويبدأ سير عمل الاسترداد. abandoned_checkout.recoveredأكمل العميل الدفع من خلال رابط الاسترداد. يحتوي حقل recovered_payment_id على معرف الدفع الناجح.
حقول حمولات استرداد الخروج المهجور
الدفع الأصلي الذي تم التخلي عنه. استخدم هذا للبحث عن تفاصيل المنتج والمبلغ والعملة.
العميل الذي تخلى عن الخروج.
سبب التخلي عن الخروج. أحدهم:
payment_failed — حاول العميل الدفع لكنه فشل
checkout_incomplete — زار العميل الخروج لكنه لم يحاول الدفع أبدًا
حالة دورة الحياة الحالية لمحاولة الاسترداد هذه. أحدهم:
abandoned — تم الكشف، لم يتم إرسال أي رسائل بريد إلكتروني بعد
recovering — تم إرسال بريد إلكتروني للاسترداد على الأقل
recovered — أكمل العميل الدفع
exhausted — تم إرسال جميع الرسائل الإلكترونية أو تم العثور على خروج أحدث
opted_out — الغاء الاشتراك من قبل العميل
ISO 8601 طابع زمني عند اكتشاف الخروج على أنه مهجور.
معرّف الدفع لاسترداد الدفع الناجح. null حتى يتم استرداد الخروج.
مثال: التعامل مع Webhooks ACR
app . post ( '/webhooks/dodo' , async ( req , res ) => {
const event = req . body ;
switch ( event . type ) {
case 'abandoned_checkout.detected' :
console . log ( `Checkout abandoned: ${ event . data . payment_id } ` );
console . log ( `Reason: ${ event . data . abandonment_reason } ` );
// Track abandonment in your analytics
await trackAbandonment ( event . data );
break ;
case 'abandoned_checkout.recovered' :
console . log ( `Checkout recovered: ${ event . data . payment_id } ` );
console . log ( `Recovery payment: ${ event . data . recovered_payment_id } ` );
// Grant access, update records
await handleRecovery ( event . data );
break ;
}
res . json ({ received: true });
});
أحداث التجديد
تتبع أحداث الويب هوك التالية دورة حياة التجديد:
الحدث الوصف dunning.startedتم إنشاء محاولة تجديد للاشتراك الذي دخل on_hold أو تم إلغاؤه من قبل العميل. dunning.recoveredقام العميل بتحديث طريقة الدفع الخاصة به وتم الدفع بنجاح. يحتوي حقل payment_id على معرّف الدفع الناجح.
حقول حمولات محاولة التجديد
الاشتراك الذي أثار محاولة التجديد.
العميل الذي يمتلك الاشتراك.
حالة الاشتراك التي أثارت التجديد. أحدهم:
on_hold — تم إيقاف الاشتراك مؤقتًا بسبب فشل الدفع
cancelled — ألغى العميل من بوابة العميل
حالة دورة الحياة الحالية لمحاولة التجديد هذه. أحدهم:
recovering — يتم إرسال رسائل البريد الإلكتروني للتجديد
recovered — قام العميل بتحديث طريقة الدفع وتم الدفع بنجاح
exhausted — تم إرسال جميع الرسائل الإلكترونية أو تم تغيير حالة الاشتراك
ISO 8601 طابع زمني عند إنشاء محاولة التجديد.
معرّف الدفع لاسترداد الدفع الناجح. null أثناء الاسترداد.
مثال: التعامل مع Webhooks التجديد
app . post ( '/webhooks/dodo' , async ( req , res ) => {
const event = req . body ;
switch ( event . type ) {
case 'dunning.started' :
console . log ( `Dunning started for subscription: ${ event . data . subscription_id } ` );
console . log ( `Trigger: ${ event . data . trigger_state } ` );
// Track dunning in your system
await trackDunning ( event . data );
break ;
case 'dunning.recovered' :
console . log ( `Subscription recovered: ${ event . data . subscription_id } ` );
console . log ( `Recovery payment: ${ event . data . payment_id } ` );
// Reactivate access, update records
await handleDunningRecovery ( event . data );
break ;
}
res . json ({ received: true });
});
اشترك في كل من dunning.started وdunning.recovered لتتبع دورة حياة التجديد بالكامل. استخدم dunning.started لإيقاف فترات سماح أو وضع علامة على الاشتراكات المعرضة للخطر في نظامك.
Abandoned Cart Recovery قم بتكوين تسلسل بريد إلكتروني لـ ACR وحوافز الخصم.
Subscription Dunning قم بتكوين تسلسل بريد إلكتروني للتجديد للاشتراكات المنتهية.
Subscription Webhooks أحداث دورة حياة الاشتراك ذات الصلة مثل subscription.on_hold وsubscription.cancelled.
مخطط حمولة الويب هوك Webhook payload for abandoned_checkout.detected and abandoned_checkout.recovered events
الخيارات المتاحة:
payment_failed,
checkout_incomplete
الخيارات المتاحة:
abandoned,
recovering,
recovered,
exhausted,
opted_out