هذا هو React Native checkout SDK الرسمي من Dodo Payments،
@dodopayments/react-native-checkout. يفتح hosted checkout الخاص بـ Dodo في عرض متصفح أصلي ويُعيد نتيجة مكتوبة النوع. ملاحظة: توجد حزمة قديمة وغير مرتبطة باسم dodopayments-react-native-sdk (غير محددة النطاق) بواجهة API مختلفة تمامًا. توثّق هذه الصفحة الحزمة الرسمية الحالية المحددة النطاق فقط.Checkout Sessions API
أنشئ checkout_url الذي يفتحه هذا SDK من الواجهة الخلفية لديك.
Mobile Integration Guide
تعرّف على كيفية اندماج ذلك ضمن تدفق الدفع الكامل على الأجهزة المحمولة.
SFSafariViewController على iOS وعلامة تبويب Chrome Custom Tab على Android، ولا يحتفظ بأي مفتاح API، ولا يستدعي Dodo API مباشرةً. تُنفَّذ كل منطقية checkout في المتصفح؛ بينما يدير SDK دورة حياة العرض فقط ويلتقط return URL.
التثبيت
1
Install the Package
- Android
- iOS
- Expo
تتم إضافة الحزمة تلقائيًا وتستجلب لا حاجة إلى إعداد إضافي؛ إذ يتم حل التبعية الأصلية تلقائيًا.
com.dodopayments.api:checkout-android من Maven.2
Register a Callback URL Scheme
يجب أن يسجّل تطبيقك مخطط URL لاستقبال return URL من checkout.
- Android (Gradle)
- iOS (Info.plist)
- Expo (both platforms)
في استبدل
android/app/build.gradle:android/app/build.gradle
"myapp" بمخطط تطبيقك.الاستخدام
إعادة توجيه Return URL
مستمعLinking مطلوب للتعامل مع Return URL في iOS. في Android، يكون handleOpenURL بلا تأثير، إذ يحلّ false لأن نواة Android تتعامل مع إعادة التوجيه أصليًا. من الآمن تسجيل المستمع دون شروط على كلا النظامين الأساسيين.
معنى النتيجة
CheckoutStatus
مطلوب
واحد من
succeeded أو failed أو cancelled أو pending أو expired.string
يُحدَّد عند احتواء Return URL على واحد منها. اعرضه في واجهة المستخدم، ولا تستخدمه لمنح الوصول. راجع قسم التحقق من الدفع أدناه.
string
يُحدَّد لعمليات checkout الخاصة بالاشتراكات.
string[]
يُحدَّد عند احتواء checkout على منتجات ذات license key.
string
يُحدَّد عند التقاط checkout لعنوان بريد إلكتروني.
Record<string, string>
كل query parameter من Return URL، كما هو تمامًا.
التحقق من الدفع
Webhooks
تستدعي Dodo Payments الواجهة الخلفية لديك عند نجاح عملية دفع أو تفعيل اشتراك.
Get Payment Detail
ابحث عن
paymentId باستخدام secret key الخاص بك للتحقق من حالته مباشرةً.result.status وحده.
الأخطاء
يرفضstart الطلب مع CheckoutError فقط عند إساءة الاستخدام أو حدوث عطل في النظام الأساسي. أما عملية الدفع الملغاة أو المرفوضة فهي دائمًا نتيجة، وليست استثناءً.
INVALID_CHECKOUT_URL: ليست جلسةcheckout.dodopayments.comURL.INVALID_RETURN_URL: ليست URL مطلقة صالحة.ALREADY_IN_PROGRESS: توجد checkout قيد التشغيل بالفعل.PLATFORM_ERROR: عطل غير متوقع في النظام الأساسي.
الجلسات المتروكة
إذا أُغلق التطبيق أو حزمة JS في منتصف checkout، فسيُفقد الـ promise، لكن الطبقة الأصلية تحتفظ بالجلسة. استعدها عند mount التالي وسوِّ حالتها مع backend الخاص بك.ذات صلة
Mobile Integration Guide
العقد نفسه لأنظمة Android وiOS وFlutter.
Expo Boilerplate
مثال Expo متكامل يتضمن تكامل checkout.