यह 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 के आधार पर कभी नहीं।
Appearance Customization
शीट के dismiss बटन, presentation style और color scheme कोcustomization के माध्यम से start(...) पर customize करें। सभी fields optional हैं; यदि
customization को छोड़ दिया जाए, तो iOS का default SFSafariViewController appearance उपयोग होता है।
DismissButtonStyle
dismiss बटन के लिए label या icon:
done, close, या cancel।PresentationStyle
pageSheet swipe-to-dismiss के साथ card के रूप में दिखता है; fullScreen पूरी screen को cover करता है।Bool
scroll करने पर toolbar को collapse होने देता है। यह केवल तब visible होता है जब
presentationStyle, fullScreen हो — pageSheet इस setting की परवाह किए बिना bars को pinned रखता है।ColorScheme
device की system setting की परवाह किए बिना light या dark appearance लागू करता है:
system, light, या dark।Errors
start केवल misuse या platform failure के लिए CheckoutError throw करता है। cancelled या declined payment हमेशा एक result होता है, exception कभी नहीं।
invalidCheckoutUrl(INVALID_CHECKOUT_URL): यह कोईcheckout.dodopayments.comsession URL नहीं है।invalidReturnUrl(INVALID_RETURN_URL): valid absolute URL नहीं है।alreadyInProgress(ALREADY_IN_PROGRESS): checkout पहले से चल रहा है।platformError(PLATFORM_ERROR): unexpected platform failure।
Abandoned Sessions
यदि checkout के बीच में app बंद हो जाए, तो अगले launch पर session recover करें और उसे अपने backend के साथ reconcile करें।
Related
Mobile Integration Guide
Android, React Native और Flutter के लिए वही contract।
React Native SDK
iOS पर इसी Swift core को wrap करता है।