هذا هو 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 وحده.
تخصيص المظهر
خصّص شريط أدوات Custom Tab وأزراره ونظام ألوانه عبرcustomization في CheckoutParams. جميع الحقول اختيارية؛ ويؤدي عدم تضمين
customization إلى استخدام المظهر الافتراضي لـ Custom Tab في Android.
Int?
لون خلفية شريط الأدوات، على هيئة عدد صحيح ARGB
Color.لون شريط التنقل.
لون الفاصل أعلى شريط التنقل.
CloseButtonStyle
يعرض
DEFAULT أيقونة النظام “X”؛ بينما يرسم BACK سهم رجوع بدلاً منها.CloseButtonPosition
يحدد الجانب الذي يظهر فيه زر الإغلاق على شريط الأدوات:
START أو END.يعرض أيقونة المشاركة في شريط الأدوات.
Boolean
يعرض عنوان الصفحة أسفل عنوان URL في شريط الأدوات.
Boolean
يتيح لشريط الأدوات الاختفاء تلقائيًا أثناء تمرير الصفحة.
Boolean
يعرض “إضافة الصفحة إلى الإشارات المرجعية” في قائمة التجاوز.
Boolean
يعرض “تنزيل الصفحة” في قائمة التجاوز.
ColorScheme
يفرض مظهرًا فاتحًا أو داكنًا بغض النظر عن إعداد النظام على الجهاز:
SYSTEM أو LIGHT أو DARK.الأخطاء
يرميDodoCheckout.start قيمة CheckoutError فقط عند سوء الاستخدام أو حدوث
فشل في النظام الأساسي. اقرأ الرمز من CheckoutError.code:
INVALID_CHECKOUT_URL: ليست جلسةcheckout.dodopayments.comURL.INVALID_RETURN_URL: ليست URL مطلقة صالحة.ALREADY_IN_PROGRESS: عملية checkout قيد التشغيل بالفعل.PLATFORM_ERROR: فشل غير متوقع في النظام الأساسي، بما في ذلكreturnUrlالذي لا يتطابق مخططه مع العنصر النائبdodoCallbackSchemeالخاص بك.
CANCELLED أو
FAILED)، وليس خطأً مُلقى. عند استخدام نمط launcher، تُلقى أخطاء التحقق
من launcher.launch(...).
الجلسات المتروكة
إذا أُغلِق التطبيق أو أوقفه المستخدم بالقوة أثناء checkout، تخزّن SDK الجلسة محليًا. عند تشغيل التطبيق في المرة التالية، تحقّق من وجود جلسة متروكة وقم بتسويتها مع الواجهة الخلفية لديك:abandoned.createdAt هو طابع زمني epoch بالميلي ثانية.
ذات صلة
Mobile Integration Guide
أفضل الممارسات لتدفقات checkout على الأجهزة المحمولة
Kotlin SDK
SDK للواجهة الخلفية للعمليات من جانب الخادم