Quick Start Guide
Get your first checkout session running in under 5 minutes
API Reference & Live Testing
Explore the full API documentation and interactively test Checkout Session requests and responses.
Preview Checkout
Calculate pricing, taxes, and totals before creating a session.
Session Validity: Checkout sessions are valid for 24 hours by default. If you pass
confirm=true in your request, the session will only be valid for 15 minutes.المتطلبات الأساسية
1
Dodo Payments Account
ستحتاج إلى حساب تاجر نشط لدى Dodo Payments مع إمكانية الوصول إلى API.
2
API Credentials
أنشئ بيانات اعتماد API من لوحة تحكم Dodo Payments:
3
Products Setup
أنشئ منتجاتك في لوحة تحكم Dodo Payments قبل تنفيذ جلسات checkout.
إنشاء أول جلسة Checkout
- Node.js SDK
- Python SDK
- REST API
استجابة API
تعيد جميع الطرق أعلاه بنية الاستجابة نفسها:إن
checkout_url الذي تم إنشاؤه مخصص للاستخدام مرة واحدة وتنتهي صلاحيته خلال 24 ساعة. لا تخزّنه مؤقتًا أو تعِد استخدامه مع عملاء أو محاولات دفع مختلفة — أنشئ جلسة checkout جديدة كلما احتجت إلى رابط جديد.1
Get the checkout URL
استخرج
checkout_url من استجابة API.2
Redirect your customer
وجّه عميلك إلى عنوان URL الخاص بـ checkout لإتمام عملية الشراء.
3
Handle the return
بعد الدفع، يُعاد توجيه العملاء إلى
return_url الخاص بك مع query parameters تتضمن معرّف الدفع/الاشتراك، والحالة، والبريد الإلكتروني للعميل، وأي مفاتيح ترخيص. راجع مستندات معاملات return_url للاطلاع على القائمة الكاملة.Request Body
Required Fields
الحقول الأساسية المطلوبة لكل جلسة checkout
Optional Fields
إعدادات إضافية لتخصيص تجربة checkout
الحقول المطلوبة
array
مطلوب
مصفوفة المنتجات المراد تضمينها في جلسة checkout. يجب أن يحتوي كل منتج على
product_id صالح من لوحة تحكم Dodo Payments.الحقول الاختيارية
اضبط هذه الحقول لتخصيص تجربة checkout وإضافة منطق الأعمال إلى تدفق الدفع.Customer Information
Customer Information
object
معلومات العميل. يمكنك إما إرفاق عميل موجود باستخدام معرّفه، أو إنشاء سجل عميل جديد أثناء checkout.
- Attach Existing Customer
- New Customer
إرفاق عميل موجود بجلسة checkout باستخدام معرّفه.
object
معلومات عنوان الفوترة لحساب الضرائب بدقة، ومنع الاحتيال، والامتثال للمتطلبات التنظيمية.
عند ضبط
confirm على true، تصبح جميع حقول عنوان الفوترة مطلوبة لإنشاء الجلسة بنجاح.Payment Configuration
Payment Configuration
array
تحكّم في طرق الدفع المتاحة للعملاء أثناء checkout. يساعد ذلك على تحسين التجربة لأسواق أو متطلبات أعمال محددة.الخيارات المتاحة:
credit، debit، upi_collect، apple_pay، google_pay، amazon_pay، klarna، affirm، afterpay_clearpay، cashapp، multibanco، bancontact_card، eps، ideal، przelewy24، paypalمثال:string
تجاوز اختيار العملة الافتراضي باستخدام عملة فوترة ثابتة. يستخدم رموز العملات وفق ISO 4217.العملات المدعومة:
USD، EUR، GBP، CAD، AUD، INR، وغير ذلكمثال: "USD" للدولار الأمريكي، و"EUR" لليورولا يكون هذا الحقل فعالًا إلا عند تفعيل التسعير التكيفي. وإذا كان التسعير التكيفي معطلاً، فستُستخدم العملة الافتراضية للمنتج.
boolean
افتراضي:"false"
عرض طرق الدفع المحفوظة مسبقًا للعملاء العائدين، مما يحسّن سرعة checkout وتجربة المستخدم.
Session Management
Session Management
string
عنوان URL لإعادة توجيه العملاء بعد إتمام الدفع. تضيف Dodo Payments معاملات الاستعلام التالية إلى عنوان URL عند إعادة التوجيه:
أمثلة على عناوين URL لإعادة التوجيه:
string
عنوان URL لإعادة توجيه العملاء عند النقر على زر الرجوع أو إلغاء جلسة checkout. إذا لم يتم توفيره، فلن يُعرض زر الرجوع.
boolean
افتراضي:"false"
عند ضبطه على true، يُنهي جميع تفاصيل الجلسة فورًا. وستُصدر API خطأً إذا كانت البيانات المطلوبة مفقودة.
array
طبّق رمز خصم واحدًا أو أكثر بشكل متسلسل على جلسة checkout. تُطبّق الرموز بترتيب المصفوفة (يخفض الرمز الأول السعر الأساسي، ثم يخفض الرمز الثاني السعر بعد الخصم، وهكذا)، بحد أقصى 20 رمزًا لكل جلسة.
الحقل المفرد
discount_code أدناه متوقف لكنه لا يزال مدعومًا بالكامل — وتستمر عمليات التكامل الحالية في العمل دون تغييرات. لا يمكن دمجه مع discount_codes في الطلب نفسه. انتقل إلى discount_codes عندما يناسبك للاستفادة من التطبيق المتسلسل.string
مهمل
متوقف — يُفضّل استخدام
discount_codes لعمليات التكامل الجديدة. لا يزال هذا الحقل يعمل للتوافق مع الإصدارات السابقة، لكنه لا يمكن دمجه مع discount_codes في الطلب نفسه.object
أزواج مخصصة من المفتاح والقيمة لتخزين معلومات إضافية حول الجلسة.
boolean
تجاوز سلوك merchant الافتراضي لـ 3DS لهذه الجلسة.
boolean
افتراضي:"false"
فعّل وضع جمع العنوان المختصر. عند تفعيله، يجمع checkout فقط:
- الدولة: مطلوبة دائمًا لتحديد الضرائب
- ZIP/الرمز البريدي: في المناطق التي تحتاج إليه فقط لحساب ضريبة المبيعات أو VAT أو GST
UI Customization & Features
UI Customization & Features
Custom Fields
Custom Fields
array
اجمع معلومات إضافية من العملاء أثناء checkout باستخدام حقول نموذج مخصصة. يمكنك تعريف ما يصل إلى 5 حقول مخصصة لكل جلسة checkout. تُضمّن إجابات العملاء في حمولات webhook وتتوفر عبر API.
تُضمّن إجابات العملاء عن الحقول المخصصة في:
- Webhooks: تحتوي
payment.succeededوsubscription.activeوغيرها من حمولات الأحداث ذات الصلة على مصفوفةcustom_field_responses - استجابات API: تتضمن كائنات الدفع والاشتراك
custom_field_responses
Subscription Configuration
Subscription Configuration
object
إعدادات إضافية لجلسات checkout التي تتضمن منتجات اشتراك.
أمثلة على الاستخدام
فيما يلي 10 أمثلة شاملة توضّح إعدادات مختلفة لجلسات checkout لسيناريوهات أعمال متعددة:1. Checkout لمنتج واحد بسيط
2. سلة متعددة المنتجات
3. اشتراك مع فترة تجريبية
4. Checkout مؤكد مسبقًا
عند ضبط
confirm على true، سيتم نقل العميل مباشرةً إلى صفحة checkout مع تجاوز أي خطوات تأكيد.5. Checkout مع تجاوز العملة
لا يسري تجاوز
billing_currency إلا عند تفعيل Adaptive Currency في إعدادات حسابك. وإذا كان Adaptive Currency معطلاً، فلن يكون لهذا المعيار أي تأثير.6. طرق الدفع المحفوظة للعملاء العائدين
7. Checkout للشركات مع جمع المعرّف الضريبي
8. Checkout بنمط داكن مع رموز خصم متسلسلة
9. طرق دفع إقليمية (UPI للهند)
للحصول على معلومات تفصيلية حول إعداد UPI واختباره، راجع صفحة طرق الدفع في الهند.10. Checkout بخدمة BNPL (اشترِ الآن وادفع لاحقًا)
للحصول على معلومات تفصيلية حول إعداد BNPL واختباره، راجع صفحة اشترِ الآن وادفع لاحقًا (BNPL).11. استخدام طرق الدفع الحالية لإتمام checkout فورًا
استخدم طريقة الدفع المحفوظة للعميل لإنشاء جلسة checkout تُعالج فورًا، مع تخطي جمع طريقة الدفع:يجب أن تكون طريقة الدفع مملوكة للعميل ومتوافقة مع عملة الدفع. يتيح ذلك عمليات الشراء بنقرة واحدة للعملاء العائدين.
12. روابط مختصرة لعناوين دفع أوضح
أنشئ روابط دفع مختصرة قابلة للمشاركة باستخدام slugs مخصصة:13. تخطي صفحة نجاح الدفع مع إعادة التوجيه الفورية
أعد توجيه العملاء فورًا بعد إتمام الدفع، مع تجاوز صفحة النجاح الافتراضية:عند تفعيل
redirect_immediately، يُعاد توجيه العملاء إلى return_url فورًا بعد إتمام الدفع، مع تخطي صفحة النجاح الافتراضية بالكامل.14. فرض لغة محددة
أجبر checkout على العرض بلغة محددة، متجاوزًا اكتشاف لغة متصفح العميل:ar)، الكتالانية (ca)، الصينية (zh)، الهولندية (nl)، الإنجليزية (en)، الفرنسية (fr)، الألمانية (de)، العبرية (he)، الإندونيسية (id)، الإيطالية (it)، اليابانية (ja)، الكورية (ko)، الماليزية (ms)، البولندية (pl)، البرتغالية (pt)، الرومانية (ro)، الروسية (ru)، الإسبانية (es)، السويدية (sv)، التايلاندية (th)، التركية (tr)
15. جمع الحقول المخصصة
اجمع معلومات إضافية من العملاء أثناء checkout باستخدام الحقول المخصصة:تُضمّن إجابات الحقول المخصصة تلقائيًا في حمولات webhook (
payment.succeeded وsubscription.active وغيرهما)، ويمكن استردادها عبر API. استخدمها لإثراء CRM، أو تشغيل تدفقات الإعداد، أو تخصيص تجربة العميل.text، number، email، url، date، dropdown، boolean
معاينة جلسات Checkout
قبل إنشاء جلسة checkout، يمكنك معاينة تفاصيل السعر، بما في ذلك الضرائب والخصومات والإجماليات. يفيد ذلك في عرض أسعار دقيقة للعملاء قبل انتقالهم إلى checkout.عندما تحتوي السلة على منتج اشتراك، تعيد استجابة المعاينة أيضًا
next_billing_date — وهي معاينة لتاريخ الفوترة القادم، بحيث يمكنك عرضه قبل إنشاء الاشتراك. ويُحسب نسبيًا إلى الوقت الحالي: now + trial period عند تطبيق تجربة، وإلا فـ now + one payment frequency. يُحذف الحقل من السلال التي تحتوي على منتجات لمرة واحدة فقط. وهذا تقدير يستند إلى وقت المعاينة؛ أما next_billing_date المعتمد فيُحدد عند تفعيل الاشتراك.تعيد المعاينة أيضًا
trial_period_days (مدة التجربة الفعلية، المجانية أو المدفوعة) وtrial_amount (رسوم التجربة لكل وحدة بعد الخصومات، بأصغر وحدات عملة السعر). لا يظهر trial_amount إلا في التجربة المدفوعة، ويكون null للتجربة المجانية أو عند عدم وجود تجربة. استخدم current_breakup للإجمالي الخاضع للضريبة المستحق فعليًا اليوم.- Node.js SDK
- Python SDK
Preview API Reference
عرض الوثائق الكاملة لنقطة نهاية المعاينة.
الانتقال من الروابط الديناميكية إلى جلسات Checkout
الاختلافات الرئيسية
سابقًا، عند إنشاء رابط دفع باستخدام Dynamic Links، كان يتعين عليك توفير عنوان الفوترة الكامل للعميل. مع Checkout Sessions، لم يعد ذلك ضروريًا. يمكنك ببساطة تمرير أي معلومات متوفرة لديك، وسنتولى الباقي. على سبيل المثال:- إذا كنت تعرف دولة فوترة العميل فقط، فما عليك سوى توفيرها.
- سيجمع تدفق checkout التفاصيل المفقودة تلقائيًا قبل نقل العميل إلى صفحة الدفع.
- من ناحية أخرى، إذا كانت لديك جميع المعلومات المطلوبة بالفعل وتريد الانتقال مباشرةً إلى صفحة الدفع، فيمكنك تمرير مجموعة البيانات الكاملة وتضمين
confirm=trueفي request body.
عملية الترحيل
الانتقال من Dynamic Links إلى Checkout Sessions مباشر:1
Update your integration
حدّث عملية التكامل لديك لاستخدام طريقة API أو SDK الجديدة.
2
Adjust request payload
اضبط حمولة الطلب وفق تنسيق Checkout Sessions.
3
That's it!
نعم. لا تحتاج إلى أي معالجة إضافية أو خطوات ترحيل خاصة من جانبك.
مرجع API ذي صلة
Create Checkout Session
مرجع API الكامل لإنشاء جلسات checkout مع جميع المعاملات والخيارات المتاحة
Preview Checkout Session
مرجع API لمعاينة الأسعار والضرائب والإجماليات قبل إنشاء جلسة