Skip to main content
هذا هو iOS checkout SDK الرسمي من Dodo Payments والمخصص لـ Swift. يفتح صفحة الدفع المستضافة من Dodo داخل متصفح أصلي ويعيد نتيجة typed.

Checkout Sessions API

أنشئ checkout_url الذي سيفتحه هذا SDK من backend الخاص بك.

Mobile Integration Guide

تعرّف على كيفية توافق ذلك مع تدفق الدفع الكامل على الأجهزة المحمولة.
يفتح iOS SDK صفحة الدفع المستضافة من Dodo داخل 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.plist:
Info.plist
يمكنك أيضًا إضافة ذلك عبر واجهة Info → URL Types في Xcode.

الاستخدام

إعادة توجيه Return URL

لا يملك SFSafariViewController طريقة داخل العملية لالتقاط return URL الخاص به. يجب أن يعيد تطبيقك توجيه عناوين URL الواردة إلى SDK.
من الآمن إعادة توجيه كل URL إلى هنا. لا يعمل handleOpenURL إلا على عناوين URL المطابقة لـ returnUrl المسجل لديك، ويعيد false لأي شيء آخر.

معنى النتيجة

result.status هو تلميح لواجهة المستخدم، وليس دليلًا على الدفع. أكّد كل عملية دفع من backend الخاص بك، عبر webhook‏ payment.succeeded / subscription.active.
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.
آخر تعديل في ٣١ يوليو ٢٠٢٦