Zum Hauptinhalt springen

Quick Start

Bringen Sie Ihre mobile Zahlungsintegration in 4 einfachen Schritten zum Laufen

Platform Examples

Vollständige Codebeispiele für Android, iOS, React Native und Flutter

Voraussetzungen

Bevor Sie Dodo Payments in Ihre mobile App integrieren, stellen Sie sicher, dass Sie Folgendes haben:
  • Dodo Payments-Konto: Aktives Händlerkonto mit API-Zugriff
  • API-Anmeldeinformationen: API-Schlüssel und Webhook-Geheimschlüssel aus Ihrem Dashboard
  • Mobile App-Projekt: Android-, iOS-, React Native- oder Flutter-Anwendung
  • Backend-Server: Um die Erstellung von Checkout-Sitzungen sicher zu handhaben

Integrationsworkflow

Die mobile Integration folgt einem sicheren 4-Schritte-Prozess, bei dem Ihr Backend die API-Aufrufe verwaltet und Ihre mobile App die Benutzererfahrung steuert.
1

Backend: Create Checkout Session

Checkout Session API Docs

Erfahren Sie, wie Sie eine Checkout-Sitzung in Ihrem Backend mit Node.js, Python und mehr erstellen. Sehen Sie sich vollständige Beispiele und Parameterreferenzen in der speziellen Checkout Sessions API-Dokumentation an.
Sicherheit: Checkout-Sitzungen müssen auf Ihrem Backend-Server erstellt werden, niemals in der mobilen App. Dies schützt Ihre API-Schlüssel und gewährleistet eine ordnungsgemäße Validierung.
2

Mobile: Get Checkout URL

Ihre mobile App ruft Ihr Backend auf, um die Checkout-URL zu erhalten:
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
}
Sicherheit: Mobile Apps kommunizieren nur mit Ihrem Backend, niemals direkt mit der Dodo Payments API.
3

Mobile: Open Checkout in Browser

Öffnen Sie die Checkout-URL in einem sicheren In-App-Browser für die Zahlungsabwicklung.

See platform-specific integration examples

Sehen Sie sich vollständigen Code und Einrichtungsanleitungen für Android, iOS und Flutter Mobile Zahlungen an.
4

Backend: Handle Payment Completion

Verarbeiten Sie den Zahlungsabschluss über Webhooks und Redirect-URLs, um den Zahlungsstatus zu bestätigen.

Plattform-spezifische Integration

Wählen Sie Ihre mobile Plattform unten für vollständige Implementierungsbeispiele:

Android-Integration

Implementierung von Chrome Custom Tabs

// 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)
            }
        }
    }
}

Best Practices

  • Sicherheit: Speichern Sie API-Schlüssel niemals in Ihrem App-Code. Verwenden Sie sichere Speicherung und SSL-Pinning.
  • Benutzererfahrung: Zeigen Sie Ladeindikatoren an, behandeln Sie Fehler elegant und geben Sie klare Nachrichten aus.
  • Testen: Verwenden Sie Testkarten, simulieren Sie Netzwerkfehler und testen Sie auf verschiedenen Geräten.

Fehlersuche

Häufige Probleme

  • WebView öffnet den Zahlungslink nicht: Stellen Sie sicher, dass der Zahlungslink gültig ist und HTTPS verwendet.
  • Callback nicht empfangen: Überprüfen Sie Ihre Rückkehr-URL und die Webhook-Konfiguration.
Bei Fragen oder Support wenden Sie sich an support@dodopayments.com.
Last modified on February 27, 2026