Dies ist das offizielle Dodo Payments Flutter-Paket (
dodopayments_checkout
auf pub.dev). Es gibt außerdem ein separates, von der Community entwickeltes Paket; siehe
Community-Projekte.Checkout Sessions API
Erstelle die checkout_url, die dieses SDK öffnet, in deinem Backend.
Mobile Integration Guide
Erfahre, wie dies in den vollständigen mobilen Zahlungsablauf passt.
dodopayments_checkout öffnet den gehosteten Checkout von Dodo in
SFSafariViewController unter iOS und einem Chrome Custom Tab unter Android – dieselben
nativen Kernkomponenten, die auch von den eigenständigen iOS- und
Android-SDKs verwendet werden. Die gesamte Checkout-Logik befindet sich in
diesen nativen Kernkomponenten; die Dart-Schicht leitet den Aufruf über einen typisierten
Pigeon-Kanal weiter. Sie enthält keinen API-Schlüssel und
ruft niemals die Dodo Payments API auf.
Erfordert Flutter 3.44+ / Dart 3.12+, iOS 16+ und Android minSdk 23.
Installation
1
Add the Dependency
pubspec.yaml
2
Register a Callback URL Scheme
- iOS
- Android
Füge in Leite eingehende URLs anschließend (z. B. über
ios/Runner/Info.plist einen URL-Typ für dein Schema hinzu:ios/Runner/Info.plist
app_links) an das SDK weiter, da
SFSafariViewController seine eigene Rückgabe-URL nicht abfangen kann:Es ist sicher, hier jede URL weiterzuleiten.
handleOpenURL reagiert nur auf URLs,
die zu deinem registrierten returnUrl passen, und löst für alles
andere false auf.Verwendung
Bedeutung des Ergebnisses
CheckoutStatus
erforderlich
Einer aus
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 jedoch nicht,
um Zugriff zu gewähren. Siehe unten unter „Zahlung überprüfen“.
String?
Wird für Abonnement-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 überprüfen
Webhooks
Dodo Payments ruft dein Backend auf, wenn eine Zahlung erfolgreich ist oder ein Abonnement aktiviert wird.
Get Payment Detail
Rufe
paymentId mit deinem geheimen Schlüssel ab, um den Status direkt zu überprüfen.result.status.
Fehler
start löst CheckoutException nur bei falscher Verwendung oder einem Plattformfehler aus.
Eine stornierte oder abgelehnte Zahlung wird immer als Ergebnis und niemals als Exception zurückgegeben.
invalidCheckoutUrl(INVALID_CHECKOUT_URL): keinecheckout.dodopayments.com-Sitzungs-URL.invalidReturnUrl(INVALID_RETURN_URL): keine gültige absolute URL.alreadyInProgress(ALREADY_IN_PROGRESS): Ein Checkout läuft bereits.platformError(PLATFORM_ERROR): unerwarteter Plattformfehler.
Verlassene Sitzungen
Wenn die App während des Checkouts beendet wird, stelle die Sitzung beim nächsten Start wieder her und
stimme sie mit deinem Backend ab.
Verwandte Inhalte
Mobile Integration Guide
Derselbe Vertrag für Android, iOS und React Native.
Community Projects
Es gibt außerdem ein separates, von der Community entwickeltes Flutter-Paket.