Skip to main content
هذا هو Android checkout SDK الرسمي (com.dodopayments.api:checkout-android)، المخصص لفتح صفحة الدفع المستضافة من Dodo. وهو يختلف عن backend Kotlin SDK، الذي يستدعي Payments API من Dodo من خادمك.

Checkout Sessions API

أنشئ checkout_url الذي يفتحه هذا SDK

Mobile Integration Guide

أفضل الممارسات لتدفقات الدفع عبر الأجهزة المحمولة
يفتح Android SDK صفحة الدفع المستضافة من Dodo في Chrome Custom Tab باستخدام 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 أسلوبي استدعاء.

ما تعنيه النتيجة

حقل status هو تلميح لواجهة المستخدم، وليس دليلًا على الدفع. تحقّق دائمًا من الدفع على خادمك الخلفي باستخدام webhooks أو نقطة النهاية Get Payment Detail قبل منح المستخدم صلاحية الوصول.
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 للعمليات من جانب الخادم
آخر تعديل في ٣١ يوليو ٢٠٢٦