Skip to main content
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

Füge in ios/Runner/Info.plist einen URL-Typ für dein Schema hinzu:
ios/Runner/Info.plist
Leite eingehende URLs anschließend (z. B. über 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

result.status ist ein UI-Hinweis und kein Zahlungsnachweis. Bestätige jede Zahlung über dein Backend mithilfe des payment.succeeded-/subscription.active- Webhooks.
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.
Gewähre Zugriff erst, nachdem eine dieser Methoden die Zahlung bestätigt hat, niemals allein aufgrund von 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): keine checkout.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.
Zuletzt geändert am 31. Juli 2026