यह Swift के लिए आधिकारिक Dodo Payments iOS checkout SDK है। यह Dodo का hosted checkout native browser view में खोलता है और typed result लौटाता है।
Checkout Sessions API
अपने backend से वह checkout_url बनाएँ जिसे यह SDK खोलेगा।
Mobile Integration Guide
देखें कि यह संपूर्ण mobile payment flow में कैसे शामिल होता है।
SFSafariViewController में खोलता है, कोई API key नहीं रखता और Dodo API को सीधे कभी कॉल नहीं करता। Checkout का पूरा logic browser में चलता है; SDK केवल view lifecycle प्रबंधित करता है और 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
Checkout से return URL प्राप्त करने के लिए आपके ऐप को एक URL scheme पंजीकृत करनी होगी। इसे अपने आप इसे Xcode के Info → URL Types UI के माध्यम से भी जोड़ सकते हैं।
Info.plist में जोड़ें:Info.plist
उपयोग
Return URL को forward करना
SFSafariViewController के पास अपने return URL को पकड़ने का कोई in-process तरीका नहीं है। आपके ऐप को आने वाले URLs को SDK में forward करना होगा।
- SwiftUI
- SceneDelegate
यहाँ हर URL को forward करना सुरक्षित है।
handleOpenURL केवल आपके पंजीकृत returnUrl से मेल खाने वाले URLs पर काम करता है और अन्य सभी के लिए false लौटाता है।Result का अर्थ
CheckoutStatus
आवश्यक
इनमें से कोई एक:
succeeded, failed, cancelled, pending, expired।String?
जब return URL में इनमें से कोई शामिल हो, तब सेट होता है। इसे UI में दिखाएँ, access देने के लिए इसका उपयोग न करें। नीचे Verify the Payment देखें।
String?
Subscription checkouts के लिए सेट होता है।
[String]?
जब checkout में license key products शामिल हों, तब सेट होता है।
String?
जब checkout में email कैप्चर हो, तब सेट होता है।
[String: String]
Return URL का हर query parameter, जैसा का तैसा।
Payment सत्यापित करें
Webhooks
Payment सफल होने या subscription सक्रिय होने पर Dodo Payments आपके backend को कॉल करता है।
Get Payment Detail
इसकी स्थिति सीधे जाँचने के लिए अपनी secret key से
paymentId देखें।result.status के आधार पर कभी नहीं।
Errors
start केवल गलत उपयोग या platform failure के लिए CheckoutError throw करता है। Cancelled या declined payment हमेशा result होता है, exception नहीं।
invalidCheckoutUrl(INVALID_CHECKOUT_URL): यह कोईcheckout.dodopayments.comsession URL नहीं है।invalidReturnUrl(INVALID_RETURN_URL): यह मान्य absolute URL नहीं है।alreadyInProgress(ALREADY_IN_PROGRESS): कोई checkout पहले से चल रहा है।platformError(PLATFORM_ERROR): अप्रत्याशित platform failure।
Abandoned Sessions
यदि checkout के बीच में ऐप बंद हो जाए, तो अगले launch पर session recover करें और अपने backend के साथ उसका reconciliation करें।
संबंधित
Mobile Integration Guide
Android, React Native और Flutter के लिए यही contract।
React Native SDK
iOS पर इसी Swift core को wrap करता है।