هذا هو iOS checkout SDK الرسمي من Dodo Payments والمخصص لـ Swift. يفتح صفحة الدفع المستضافة من Dodo داخل متصفح أصلي ويعيد نتيجة typed.
Checkout Sessions API
أنشئ checkout_url الذي سيفتحه هذا SDK من backend الخاص بك.
Mobile Integration Guide
تعرّف على كيفية توافق ذلك مع تدفق الدفع الكامل على الأجهزة المحمولة.
SFSafariViewController، ولا يحتفظ بأي API key، ولا يستدعي Dodo API مباشرةً. تعمل جميع منطق الدفع في المتصفح؛ بينما يدير SDK ببساطة دورة حياة العرض ويلتقط return URL.
يتطلب iOS 16+ وSwift 6.
التثبيت
1
Add the Package
في Xcode، انتقل إلى File → Add Package Dependencies وأدخل:حدد الإصدار 1.0.0 أو إصدارًا أحدث.بدلًا من ذلك، أضفه إلى
Package.swift:Package.swift
2
Register a Callback URL Scheme
يجب أن يسجل تطبيقك URL scheme لاستقبال return URL من صفحة الدفع. أضف ما يلي إلى يمكنك أيضًا إضافة ذلك عبر واجهة Info → URL Types في Xcode.
Info.plist:Info.plist
الاستخدام
إعادة توجيه Return URL
لا يملكSFSafariViewController طريقة داخل العملية لالتقاط return URL الخاص به. يجب أن يعيد تطبيقك توجيه عناوين URL الواردة إلى SDK.
- SwiftUI
- SceneDelegate
من الآمن إعادة توجيه كل URL إلى هنا. لا يعمل
handleOpenURL إلا على عناوين URL المطابقة لـ returnUrl المسجل لديك، ويعيد false لأي شيء آخر.معنى النتيجة
CheckoutStatus
مطلوب
واحد من
succeeded أو failed أو cancelled أو pending أو expired.String?
يُعيَّن عند احتواء return URL على واحد منها. اعرضه في واجهة المستخدم، ولا تستخدمه لمنح الوصول. راجع قسم Verify the Payment أدناه.
String?
يُعيَّن لعمليات الدفع الخاصة بالاشتراكات.
[String]?
يُعيَّن عند احتواء عملية الدفع على منتجات تتضمن license key.
String?
يُعيَّن عند التقاط البريد الإلكتروني أثناء عملية الدفع.
[String: String]
كل query parameter من return URL، حرفيًا.
التحقق من الدفع
Webhooks
يستدعي Dodo Payments backend الخاص بك عند نجاح عملية دفع أو تفعيل اشتراك.
Get Payment Detail
ابحث عن
paymentId باستخدام secret key الخاص بك للتحقق من حالته مباشرةً.result.status وحده.
الأخطاء
يُطلقstart الاستثناء CheckoutError فقط عند إساءة الاستخدام أو حدوث عطل في المنصة. أما عملية الدفع الملغاة أو المرفوضة فهي دائمًا نتيجة وليست استثناءً.
invalidCheckoutUrl(INVALID_CHECKOUT_URL): ليس عنوان URL لجلسةcheckout.dodopayments.com.invalidReturnUrl(INVALID_RETURN_URL): ليس عنوان URL مطلقًا صالحًا.alreadyInProgress(ALREADY_IN_PROGRESS): توجد عملية دفع قيد التشغيل بالفعل.platformError(PLATFORM_ERROR): عطل غير متوقع في المنصة.
الجلسات المتروكة
إذا أُغلق التطبيق بالقوة أثناء عملية الدفع، فاستعد الجلسة عند التشغيل التالي ووفّقها مع backend الخاص بك.
ذات صلة
Mobile Integration Guide
نفس العقد الخاص بـ Android وReact Native وFlutter.
React Native SDK
يغلّف نواة Swift نفسها على iOS.