Dies ist das offizielle Android-Checkout-SDK (
com.dodopayments.api:checkout-android),
um den gehosteten Checkout von Dodo zu öffnen. Es unterscheidet sich vom
Backend-Kotlin-SDK, das die Dodo
Payments API von deinem Server aus aufruft.Checkout Sessions API
Erstelle den
checkout_url, den dieses SDK öffnetMobile Integration Guide
Best Practices für mobile Checkout-Abläufe
androidx.browser.customtabs. Es enthält keinen Netzwerkcode und speichert keinen API-Key. Du übergibst ein checkoutUrl aus der Checkout-Session deines Backends, und das SDK gibt ein typisiertes CheckoutResult zurück, wenn der Benutzer den Ablauf abschließt oder abbricht.
Voraussetzungen: minSdk 23, Kotlin, Java 17.
Installation
1
Add the Dependency
build.gradle.kts
2
Register a Callback URL Scheme
Lege dein Callback-Schema als Gradle-Manifest-Placeholder fest. Das Manifest der Bibliothek deklariert den Intent-Filter der Redirect-Aktivität bereits mit dem Token Der Wert muss mit dem Schema in
${dodoCallbackScheme}. Daher ist diese eine Eigenschaft die gesamte Einrichtung – du fügst kein Manifest-XML hinzu:build.gradle.kts
CheckoutParams.returnUrl übereinstimmen (z. B.
myapp://checkout/return).Wenn du den Placeholder vollständig weglässt, schlägt der Build sofort mit einem Fehler wegen eines nicht aufgelösten Placeholders fehl, anstatt beim Checkout-Zeitpunkt still zu scheitern. Wenn du ihn festlegst, aber er nicht mit dem Schema von
returnUrl übereinstimmt, löst DodoCheckout.start vor der Anzeige von irgendetwas PLATFORM_ERROR aus.Verwendung
Das SDK unterstützt zwei Aufrufstile.- Launcher (Recommended)
- Suspend Function
Registriere den Vertrag mit
registerForActivityResult und starte ihn anschließend:Bedeutung des Ergebnisses
CheckoutStatus
erforderlich
Einer von
SUCCEEDED, FAILED, CANCELLED, PENDING, EXPIRED.String?
Wird gesetzt, wenn die Rückgabe-URL einen solchen Wert enthielt. Zeige ihn in der UI an, verwende ihn aber nicht, um Zugriff zu gewähren. Siehe unten „Zahlung verifizieren“.
String?
Wird für Subscription-Checkouts gesetzt.
List<String>?
Wird gesetzt, wenn der Checkout Produkte mit Lizenzschlüsseln enthält.
String?
Wird gesetzt, wenn der Checkout eine E-Mail-Adresse erfasst.
Map<String, String>
Jeder Query-Parameter aus der Rückgabe-URL, unverändert.
Zahlung verifizieren
Webhooks
Höre in Echtzeit auf Zahlungsereignisse
Get Payment Detail
Frage den Zahlungsstatus bei Bedarf ab
CheckoutResult.status.
Fehler
DodoCheckout.start löst CheckoutError nur bei falscher Verwendung oder einem Plattformfehler aus. Lies den Code aus CheckoutError.code:
INVALID_CHECKOUT_URL: keine gültigecheckout.dodopayments.com-Session-URL.INVALID_RETURN_URL: keine gültige absolute URL.ALREADY_IN_PROGRESS: Ein Checkout läuft bereits.PLATFORM_ERROR: unerwarteter Plattformfehler, einschließlich einesreturnUrl, dessen Schema nicht mit deinemdodoCallbackScheme-Placeholder übereinstimmt.
CANCELLED oder
FAILED), niemals zu einem ausgelösten Fehler. Beim Launcher-Stil werden Validierungsfehler aus launcher.launch(...) ausgelöst.
Abgebrochene Sessions
Wenn die App während des Checkouts beendet wird oder der Benutzer sie zwangsweise stoppt, speichert das SDK die Session lokal. Überprüfe beim nächsten Start der App, ob eine abgebrochene Session vorhanden ist, und gleiche sie mit deinem Backend ab:abandoned.createdAt ist ein Epoch-Zeitstempel in Millisekunden.
Verwandte Themen
Mobile Integration Guide
Best Practices für mobile Checkout-Abläufe
Kotlin SDK
Backend-SDK für serverseitige Vorgänge