Skip to main content
यह 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 में कैसे शामिल होता है।
iOS SDK Dodo का hosted checkout 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 पंजीकृत करनी होगी। इसे अपने Info.plist में जोड़ें:
Info.plist
आप इसे Xcode के Info → URL Types UI के माध्यम से भी जोड़ सकते हैं।

उपयोग

Return URL को forward करना

SFSafariViewController के पास अपने return URL को पकड़ने का कोई in-process तरीका नहीं है। आपके ऐप को आने वाले URLs को SDK में forward करना होगा।
यहाँ हर URL को forward करना सुरक्षित है। handleOpenURL केवल आपके पंजीकृत returnUrl से मेल खाने वाले URLs पर काम करता है और अन्य सभी के लिए false लौटाता है।

Result का अर्थ

result.status एक UI संकेत है, payment का प्रमाण नहीं। हर payment की पुष्टि अपने backend से, payment.succeeded / subscription.active webhook के माध्यम से करें।
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 देखें।
इनमें से किसी एक से payment की पुष्टि होने के बाद access दें; केवल 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.com session 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 करें।

Mobile Integration Guide

Android, React Native और Flutter के लिए वही contract।

React Native SDK

iOS पर इसी Swift core को wrap करता है।
अंतिम संशोधन 17 अगस्त 2026