यह आधिकारिक Dodo Payments Flutter package है (
dodopayments_checkout
pub.dev पर)। एक अलग, community-built package भी उपलब्ध है, देखें
Community Projects।Checkout Sessions API
अपने backend से वह checkout_url बनाएँ जिसे यह SDK खोलेगा।
Mobile Integration Guide
देखें कि यह पूरे mobile payment flow में कैसे शामिल होता है।
dodopayments_checkout, iOS पर Dodo का hosted checkout
SFSafariViewController में और Android पर Chrome Custom Tab में खोलता है — वही
native cores जिन्हें standalone iOS और
Android SDKs इस्तेमाल करते हैं। Checkout का पूरा logic
उन्हीं native cores में रहता है; Dart layer typed
Pigeon channel के माध्यम से call आगे भेजती है। इसमें कोई API key नहीं होती और
यह कभी भी Dodo Payments API को call नहीं करता।
इसके लिए Flutter 3.44+ / Dart 3.12+, iOS 16+ और Android minSdk 23 आवश्यक हैं।
Installation
1
Add the Dependency
pubspec.yaml
2
Register a Callback URL Scheme
- iOS
- Android
अपने scheme के लिए इसके बाद आने वाले URLs को (उदाहरण के लिए
ios/Runner/Info.plist में URL type जोड़ें:ios/Runner/Info.plist
app_links के माध्यम से) SDK में forward करें, क्योंकि
SFSafariViewController अपना return URL स्वयं catch नहीं कर सकता:यहाँ हर URL को forward करना सुरक्षित है।
handleOpenURL केवल उन URLs पर काम करता है
जो आपके registered returnUrl से match करते हैं और अन्य सभी के लिए
false resolve करता है।Usage
Result का अर्थ
CheckoutStatus
आवश्यक
इनमें से एक:
succeeded, failed, cancelled, pending, expired।String?
जब return URL में इनमें से कोई शामिल हो, तब set होता है। इसे UI में दिखाएँ, access देने के लिए इसका उपयोग न करें। नीचे Verify the Payment देखें।
String?
Subscription checkouts के लिए set होता है।
List<String>?
जब checkout में license key products शामिल होते हैं, तब set होता है।
String?
जब checkout कोई email capture करता है, तब set होता है।
Map<String, String>
Return URL का हर query parameter, verbatim।
Payment की पुष्टि करें
Webhooks
Payment सफल होने या subscription activate होने पर Dodo Payments आपके backend को call करता है।
Get Payment Detail
इसकी स्थिति सीधे जाँचने के लिए अपने secret key से
paymentId को look up करें।result.status के आधार पर कभी नहीं।
Errors
start केवल misuse या platform failure के लिए CheckoutException throw करता है।
Cancelled या declined payment हमेशा result होता है, exception कभी नहीं।
invalidCheckoutUrl(INVALID_CHECKOUT_URL): validcheckout.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 करें।
संबंधित सामग्री
Mobile Integration Guide
Android, iOS और React Native के लिए वही contract।
Community Projects
एक अलग, community-built Flutter package भी उपलब्ध है।