मुख्य सामग्री पर जाएं

पूर्वापेक्षाएँ

डोडो पेमेंट्स को अपने मोबाइल ऐप में एकीकृत करने से पहले, सुनिश्चित करें कि आपके पास हैं:
  • डोडो पेमेंट्स खाता: सक्रिय व्यापारी खाता जिसमें API पहुंच हो
  • API क्रेडेंशियल्स: अपने डैशबोर्ड से API कुंजी और वेबहुक गुप्त कुंजी
  • मोबाइल ऐप प्रोजेक्ट: एंड्रॉइड, iOS, React Native, या Flutter अनुप्रयोग
  • बैकेंड सर्वर: चेकआउट सत्र निर्माण को सुरक्षित रूप से संभालने के लिए

इंटीग्रेशन वर्कफ़्लो

मोबाइल इंटीग्रेशन एक सुरक्षित 4-चरणीय प्रक्रिया का पालन करता है जहां आपका बैकेंड API कॉल को संभालता है और आपका मोबाइल ऐप उपयोगकर्ता अनुभव का प्रबंधन करता है।
1

Backend: Create Checkout Session

Checkout Session API Docs

Node.js, Python, और अन्य के उपयोग से अपने बैकएंड में चेकआउट सत्र कैसे बनाते हैं, यह जानें। समर्पित Checkout Sessions API दस्तावेज़ में पूर्ण उदाहरण और पैरामीटर संदर्भ देखें।
Security: चेकआउट सत्रों को आपके बैकएंड सर्वर पर बनाया जाना चाहिए, कभी भी मोबाइल ऐप में नहीं। यह आपके API कुंजियों की रक्षा करता है और उचित सत्यापन सुनिश्चित करता है।
2

Mobile: Get Checkout URL

आपका मोबाइल ऐप चेकआउट URL प्राप्त करने के लिए आपके बैकेंड को कॉल करता है:
func getCheckoutURL(productId: String, customerEmail: String, customerName: String) async throws -> String {
    let url = URL(string: "https://your-backend.com/api/create-checkout-session")!
    var request = URLRequest(url: url)
    request.httpMethod = "POST"
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    
    let requestData: [String: Any] = [
        "productId": productId,
        "customerEmail": customerEmail,
        "customerName": customerName
    ]
    request.httpBody = try JSONSerialization.data(withJSONObject: requestData)
    
    let (data, _) = try await URLSession.shared.data(for: request)
    let response = try JSONDecoder().decode(CheckoutResponse.self, from: data)
    return response.checkout_url
}
Security: मोबाइल ऐप केवल आपके बैकएंड से संवाद करते हैं, कभी भी Dodo Payments API से सीधे नहीं।
3

Mobile: Open Checkout in Browser

भुगतान प्रक्रिया के लिए चेकआउट URL को एक सुरक्षित इन-ऐप ब्राउज़र में खोलें।

See platform-specific integration examples

Android, iOS, और Flutter मोबाइल भुगतान के लिए पूरा कोड और सेटअप निर्देश देखें।
4

Backend: Handle Payment Completion

वेबहुक और रीडायरेक्ट URL के माध्यम से भुगतान पूरा होने को प्रोसेस करके भुगतान स्थिति की पुष्टि करें।

प्लेटफ़ॉर्म-विशिष्ट इंटीग्रेशन

पूर्ण कार्यान्वयन उदाहरणों के लिए नीचे अपने मोबाइल प्लेटफ़ॉर्म का चयन करें:

एंड्रॉइड इंटीग्रेशन

क्रोम कस्टम टैब कार्यान्वयन

// Add Chrome Custom Tabs dependency to build.gradle
implementation 'androidx.browser:browser:1.5.0'

// In your Activity
class PaymentActivity : AppCompatActivity() {
    private var customTabsSession: CustomTabsSession? = null
    private var customTabsClient: CustomTabsClient? = null
    private var customTabsServiceConnection: CustomTabsServiceConnection? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // Initialize Custom Tabs
        customTabsServiceConnection = object : CustomTabsServiceConnection() {
            override fun onCustomTabsServiceConnected(name: ComponentName, client: CustomTabsClient) {
                customTabsClient = client
                customTabsClient?.warmup(0L)
                customTabsSession = customTabsClient?.newSession(object : CustomTabsCallback() {
                    override fun onNavigationEvent(navigationEvent: Int, extras: Bundle?) {
                        // Handle navigation events
                    }
                })
            }
            override fun onServiceDisconnected(name: ComponentName) {
                customTabsClient = null
            }
        }
        CustomTabsClient.bindCustomTabsService(
            this,
            "com.android.chrome",
            customTabsServiceConnection!!
        )
        // Get checkout URL from backend and launch
        lifecycleScope.launch {
            try {
                val checkoutURL = getCheckoutURL("prod_123", "customer@example.com", "Customer Name")
                val customTabsIntent = CustomTabsIntent.Builder(customTabsSession)
                    .build()
                customTabsIntent.launchUrl(this@PaymentActivity, Uri.parse(checkoutURL))
            } catch (e: Exception) {
                // Handle error
                Log.e("PaymentActivity", "Failed to get checkout URL", e)
            }
        }
    }
}

सर्वोत्तम प्रथाएँ

  • सुरक्षा: कभी भी अपने ऐप कोड में API कुंजियाँ न रखें। सुरक्षित भंडारण और SSL पिनिंग का उपयोग करें।
  • उपयोगकर्ता अनुभव: लोडिंग संकेतक दिखाएं, त्रुटियों को सुचारू रूप से संभालें, और स्पष्ट संदेश प्रदान करें।
  • परीक्षण: परीक्षण कार्ड का उपयोग करें, नेटवर्क त्रुटियों का अनुकरण करें, और विभिन्न उपकरणों पर परीक्षण करें।

समस्या निवारण

सामान्य मुद्दे

  • WebView भुगतान लिंक नहीं खोल रहा है: सुनिश्चित करें कि भुगतान लिंक मान्य है और HTTPS का उपयोग करता है।
  • कॉलबैक प्राप्त नहीं हुआ: अपने रिटर्न URL और वेबहुक कॉन्फ़िगरेशन की जांच करें।
  • API कुंजी त्रुटियाँ: सुनिश्चित करें कि आपकी API कुंजी सही है और आवश्यक अनुमतियाँ हैं।

अतिरिक्त संसाधन

प्रश्नों या सहायता के लिए support@dodopayments.com से संपर्क करें।