هذا هو Android checkout SDK الرسمي (
com.dodopayments.api:checkout-android)،
المخصص لفتح صفحة الدفع المستضافة من Dodo. وهو يختلف عن
backend Kotlin SDK، الذي يستدعي
Payments API من Dodo من خادمك.Checkout Sessions API
أنشئ
checkout_url الذي يفتحه هذا SDKMobile Integration Guide
أفضل الممارسات لتدفقات الدفع عبر الأجهزة المحمولة
androidx.browser.customtabs. ولا يتضمن أي شيفرة للشبكات ولا يحتفظ بأي API key. تمرر checkoutUrl من جلسة الدفع على خادمك، ويعيد SDK قيمة CheckoutResult مكتوبة النوع عند إكمال المستخدم للتدفق أو مغادرته.
المتطلبات: minSdk 23، Kotlin، Java 17.
التثبيت
1
Add the Dependency
build.gradle.kts
2
Register a Callback URL Scheme
عيّن مخطط callback كعنصر نائب في بيان Gradle. يعلن البيان الخاص بالمكتبة مسبقًا عن عامل intent filter لنشاط إعادة التوجيه باستخدام الرمز يجب أن تتطابق القيمة مع المخطط في
${dodoCallbackScheme}، لذا فإن هذه الخاصية الواحدة تمثل كامل إعداد التكامل — ولا تحتاج إلى إضافة أي XML للبيان:build.gradle.kts
CheckoutParams.returnUrl (مثلًا myapp://checkout/return).إذا حذفت العنصر النائب بالكامل، يفشل البناء فورًا بسبب خطأ عنصر نائب غير محلول، بدلًا من الفشل بصمت وقت الدفع. وإذا عيّنته لكنه لا يتطابق مع مخطط
returnUrl، فإن DodoCheckout.start يرمي PLATFORM_ERROR قبل عرض أي شيء.الاستخدام
يدعم SDK أسلوبي استدعاء.- Launcher (Recommended)
- Suspend Function
سجّل العقد باستخدام
registerForActivityResult، ثم شغّله:ما تعنيه النتيجة
CheckoutStatus
مطلوب
واحد من
SUCCEEDED أو FAILED أو CANCELLED أو PENDING أو EXPIRED.String?
يُعيَّن عند تضمين عنوان URL للإرجاع. اعرضه في واجهة المستخدم، ولا تستخدمه لمنح صلاحية الوصول. راجع قسم التحقّق من الدفع أدناه.
String?
يُعيَّن لعمليات الدفع الخاصة بالاشتراكات.
List<String>?
يُعيَّن عندما تتضمن عملية الدفع منتجات بمفاتيح ترخيص.
String?
يُعيَّن عندما تجمع عملية الدفع بريدًا إلكترونيًا.
Map<String, String>
كل query parameter من عنوان URL للإرجاع، حرفيًا.
التحقّق من الدفع
Webhooks
استمع إلى أحداث الدفع في الوقت الفعلي
Get Payment Detail
استعلم عن حالة الدفع عند الطلب
CheckoutResult.status وحده.
الأخطاء
يرميDodoCheckout.start القيمة CheckoutError فقط عند إساءة الاستخدام أو حدوث عطل في المنصة. اقرأ الرمز من CheckoutError.code:
INVALID_CHECKOUT_URL: ليس عنوان URL لجلسةcheckout.dodopayments.comصالحًا.INVALID_RETURN_URL: ليس عنوان URL مطلقًا صالحًا.ALREADY_IN_PROGRESS: عملية دفع قيد التشغيل بالفعل.PLATFORM_ERROR: عطل غير متوقع في المنصة، بما في ذلكreturnUrlالذي لا يتطابق مخططه مع العنصر النائبdodoCallbackScheme.
CANCELLED أو FAILED)، وليس خطأً مُلقى. باستخدام أسلوب المشغّل، تُلقى أخطاء التحقّق من launcher.launch(...).
الجلسات المتروكة
إذا أُغلِق التطبيق أو أوقفه المستخدم قسرًا أثناء الدفع، يحفظ SDK الجلسة محليًا. عند تشغيل التطبيق في المرة التالية، تحقّق من وجود جلسة متروكة وسوِّ حالتها مع خادمك الخلفي:abandoned.createdAt هو طابع زمني للعصر بوحدة المللي ثانية.
ذو صلة
Mobile Integration Guide
أفضل الممارسات لتدفقات الدفع عبر الأجهزة المحمولة
Kotlin SDK
Backend SDK للعمليات من جانب الخادم