
كيفية عمله
تعرض صفحة الدفع المضمّنة إطار Dodo Payments آمنًا داخل حاوية في صفحتك. يتولى الإطار جمع معلومات العميل وتفاصيل الدفع. بينما تعرض صفحتك العناصر والإجماليات والمعلومات الأخرى. تتيح حزمة SDK لصفحتك وإطار الدفع التواصل مع بعضهما. عند اكتمال الدفع، تنشئ Dodo Payments عملية الدفع، أو الاشتراك للمنتج القائم على الاشتراك، وترسل webhook حتى تتمكن من تفعيل الوصول.ما الذي يجعل صفحة الدفع المضمّنة جيدة؟
يحتاج العملاء إلى معرفة الجهة التي يشترون منها، وما يشترونه، والمبلغ الذي يدفعونه. يجب أن يتضمن التنفيذ الخاص بك ما يلي:
Example inline checkout layout showing required elements
- معلومات التكرار: إذا كان الدفع متكررًا، اعرض عدد مرات التكرار والمبلغ الإجمالي المستحق عند التجديد. وإذا كان هناك إصدار تجريبي، فاعرض مدته.
- أوصاف العناصر: وصف لما يتم شراؤه.
- إجماليات المعاملة: المجموع الفرعي، وإجمالي الضريبة، والمجموع الكلي، بما في ذلك العملة.
- تذييل Dodo Payments: إطار الدفع المضمّن الكامل، بما في ذلك التذييل الذي يحتوي على معلومات Dodo Payments وشروط البيع وسياسة الخصوصية.
- سياسة الاسترداد: رابط إلى سياسة الاسترداد الخاصة بك، إذا كانت تختلف عن سياسة الاسترداد القياسية لدى Dodo Payments.
رحلة العميل
يعتمد تدفق الدفع على إعدادات جلسة الدفع الخاصة بك. وبحسب طريقة إعداد الجلسة، قد يرى العملاء جميع المعلومات في صفحة واحدة أو عبر عدة خطوات.Customer opens checkout
checkout.breakdown، لعرض المعلومات الموجودة على الصفحة وتحديثها.
Customer enters their details
Customer selects payment method

Checkout completed

Dodo Payments creates the payment or subscription

البدء السريع
ثبّت حزمة SDK، وهيّئها للوضع المضمّن، وافتح صفحة الدفع داخل عنصر حاوية:التكامل خطوة بخطوة
Install the SDK
Initialize the SDK for Inline Display
displayType: 'inline'. استمع إلى حدث checkout.breakdown لتحديث واجهة المستخدم بالحسابات الفورية للضرائب والإجمالي:Create a Container Element
Open the Checkout
DodoPayments.Checkout.open() باستخدام checkoutUrl وelementId الخاصين بالحاوية:Test Your Integration
- ابدأ خادم التطوير:
- اختبر تدفق الدفع:
- أدخل بريدك الإلكتروني وتفاصيل عنوانك في الإطار المضمّن
- تحقّق من تحديث ملخص الطلب المخصص في الوقت الفعلي
- اختبر تدفق الدفع باستخدام بيانات الاعتماد التجريبية
- تأكد من عمل عمليات إعادة التوجيه بشكل صحيح
checkout.breakdown مسجلة في وحدة تحكم المتصفح إذا أضفت سجلًا إلى وحدة التحكم في استدعاء onEvent.Go Live
- غيّر الوضع إلى
'live':
- حدّث عناوين URL للدفع لاستخدام جلسات الدفع المباشرة من الواجهة الخلفية
- اختبر التدفق الكامل في بيئة الإنتاج
مثال React كامل
يوضح هذا المثال كيفية تنفيذ ملخص طلب مخصص إلى جانب صفحة الدفع المضمّنة، مع إبقائهما متزامنين باستخدام حدثcheckout.breakdown:
مرجع API
التهيئة
استدعِInitialize مرة واحدة لإعداد حزمة SDK:
فتح صفحة الدفع
افتح إطار الدفع داخل حاوية:إغلاق صفحة الدفع
أزل إطار الدفع برمجيًا ونظّف مستمعي الأحداث:التحقق من الحالة
تحقّق مما إذا كان إطار الدفع محقونًا حاليًا:الأحداث
توفر حزمة SDK أحداثًا فورية من خلال استدعاءonEvent. وبالنسبة إلى الدفع المضمّن، يُعد checkout.breakdown مفيدًا بشكل خاص لمزامنة واجهة المستخدم:
بيانات تفصيل الدفع
يوفر حدثcheckout.breakdown معلومات الأسعار والضرائب:
- تنسيق العملة: الأسعار أعداد صحيحة بوحدة العملة الأصغر، مثل السنتات في USD. بالنسبة إلى العملات ذات المنزلتين العشريتين، اقسم على 100 قبل التنسيق باستخدام
Intl.NumberFormat. أما العملات التي لا تحتوي على منازل عشرية، مثل JPY، فلا تقسمها. - معالجة الحالات الأولية: عند تحميل الدفع لأول مرة، قد تكون
taxوdiscountبقيمة0أوnullإلى أن يقدم المستخدم معلومات الفوترة أو يطبق رمزًا. تعامل مع هذه الحالات بسلاسة، مثل عرض شرطة—أو إخفاء الصف. - «الإجمالي النهائي» مقابل «الإجمالي»: رغم أن
totalيوفر حساب السعر القياسي، فإنfinalTotalهو مصدر الحقيقة للمعاملة. وإذا كانfinalTotalموجودًا، فهو يعكس المبلغ الذي سيُحصّل بالضبط من بطاقة العميل. - الملاحظات الفورية: استخدم الحقل
taxلإظهار أن الضرائب تُحسب في الوقت الفعلي. يمنح ذلك صفحة الدفع إحساسًا تفاعليًا ويقلل الاحتكاك أثناء إدخال العنوان.
التنفيذ عبر CDN
للتكامل السريع دون خطوة build، حمّل حزمة SDK من CDN:تحديث طريقة الدفع
تدعم صفحة الدفع المضمّنة تحديث طرق الدفع للاشتراكات. عندما يحتاج العميل إلى تحديث طريقة الدفع لاشتراك نشط أو إعادة تفعيل اشتراك معلّق، يمكنك عرض تدفق التحديث مباشرةً ضمن تخطيط صفحتك.كيفية عمله
- استدعِ Update Payment Method API للحصول على
payment_link:
- مرّر
payment_linkالمُعاد كقيمةcheckoutUrlلفتح صفحة الدفع المضمّنة:
للاشتراكات المعلّقة
عند تحديث طريقة الدفع لاشتراك حالتهon_hold، تنشئ Dodo Payments تلقائيًا عملية تحصيل لأي مستحقات متبقية. راقب webhooks payment.succeeded وsubscription.active لتأكيد إعادة التفعيل.
معالجة الأخطاء
نفّذ دائمًا معالجة الأخطاء في استدعاءonEvent:
أفضل الممارسات
- التصميم المتجاوب: تأكد من أن عنصر الحاوية يتمتع بعرض وارتفاع كافيين. وعادةً ما يتمدد iframe لملء الحاوية.
- المزامنة: استخدم حدث
checkout.breakdownللحفاظ على تزامن ملخص الطلب المخصص أو جداول الأسعار مع ما يراه المستخدم في إطار الدفع. - حالات الهيكل: اعرض مؤشر تحميل في الحاوية إلى أن يُطلَق حدث
checkout.opened. - التنظيف: استدعِ
DodoPayments.Checkout.close()عند إلغاء تحميل المكوّن لتنظيف iframe ومستمعي الأحداث.
#0d0d0d كلون خلفية لتحقيق أفضل تكامل مرئي مع إطار الدفع المضمّن.التحقق من حالة الدفع
لماذا يُعد التحقق من جانب الخادم ضروريًا؟
توفر أحداث الدفع المضمّن ملاحظات فورية، لكنها لا ينبغي أن تكون مصدرك الوحيد للحقيقة بشأن حالة الدفع. فقد تتسبب مشكلات الشبكة أو تعطل المتصفح أو إغلاق المستخدم للصفحة في فقدان الأحداث. لضمان التحقق الموثوق من الدفع:- استمع إلى أحداث webhook - ترسل Dodo Payments webhooks عند تغيّر حالة الدفع
- نفّذ آلية polling - يجب أن تستعلم الواجهة الأمامية من خادمك عن تحديثات الحالة
- اجمع بين النهجين - استخدم webhooks كمصدر أساسي وpolling كحل بديل
البنية المقترحة
خطوات التنفيذ
1. الاستماع إلى أحداث الدفع - عندما ينقر المستخدم على الدفع، ابدأ الاستعداد للتحقق من الحالة:payment.succeeded أو payment.failed. راجع وثائق Webhooks للتفاصيل.
استكشاف الأخطاء وإصلاحها
Checkout frame is not appearing
Checkout frame is not appearing
- تحقّق من أن
elementIdيطابقidلعنصرdivموجود فعليًا في DOM - تأكد من تمرير
displayType: 'inline'إلىInitialize - تحقّق من صلاحية
checkoutUrl
Taxes are not updating in my UI
Taxes are not updating in my UI
- تأكد من الاستماع إلى حدث
checkout.breakdown - لا تُحسب الضرائب إلا بعد إدخال المستخدم بلدًا ورمزًا بريديًا صالحين في إطار الدفع
المحافظ الرقمية
للحصول على معلومات تفصيلية حول إعداد Apple Pay وGoogle Pay والمحافظ الرقمية الأخرى، راجع صفحة المحافظ الرقمية.الإعداد السريع لـ Apple Pay
Open Wallet domains

Open Wallet domains from the Apple Pay row
Download the domain association file

Download the Apple Pay domain association file
Register your domain
shop.example.com، ثم انقر على Continue.
Register the domain where you embed inline checkout
Host the file on your domain
Content-Type: application/octet-stream أو text/plain.Verify the domain

Verify the hosted association file
Confirm it's active

Verified domains show an Active status
Test the integration
- افتح صفحة الدفع على جهاز Apple
- تحقّق من ظهور زر Apple Pay
- أجرِ معاملة تجريبية
دعم المتصفحات
تدعم حزمة Checkout SDK من Dodo Payments ما يلي:- Chrome (أحدث إصدار)
- Firefox (أحدث إصدار)
- Safari (أحدث إصدار)
- Edge (أحدث إصدار)
- IE11+