Questo è il pacchetto Flutter ufficiale di Dodo Payments (
dodopayments_checkout
su pub.dev). Esiste anche un pacchetto separato sviluppato dalla community; consulta
Progetti della community.Checkout Sessions API
Crea checkout_url, che questo SDK apre, dal tuo backend.
Mobile Integration Guide
Scopri come si integra nel flusso completo dei pagamenti mobile.
dodopayments_checkout apre il checkout ospitato di Dodo in
SFSafariViewController su iOS e in una Chrome Custom Tab su Android — gli stessi
core nativi utilizzati dagli SDK standalone per iOS e
Android. Tutta la logica del checkout risiede in
questi core nativi; il livello Dart inoltra la chiamata tramite un canale tipizzato
Pigeon. Non contiene alcuna API key e
non chiama mai l’API di Dodo Payments.
Richiede Flutter 3.44+ / Dart 3.12+, iOS 16+ e Android minSdk 23.
Installazione
1
Add the Dependency
pubspec.yaml
2
Register a Callback URL Scheme
- iOS
- Android
Aggiungi un tipo URL per il tuo schema in Inoltra quindi gli URL in entrata (ad esempio tramite
ios/Runner/Info.plist:ios/Runner/Info.plist
app_links) all’SDK, perché
SFSafariViewController non può intercettare il proprio URL di ritorno:È sicuro inoltrare qui ogni URL.
handleOpenURL agisce solo sugli URL
corrispondenti a returnUrl registrato e risolve false per qualsiasi
altro URL.Utilizzo
Significato del risultato
CheckoutStatus
obbligatorio
Uno tra
succeeded, failed, cancelled, pending, expired.String?
Impostato quando l’URL di ritorno ne include uno. Visualizzalo nell’interfaccia, ma non usarlo
per concedere l’accesso. Consulta Verifica il pagamento qui sotto.
String?
Impostato per i checkout degli abbonamenti.
List<String>?
Impostato quando il checkout include prodotti con chiavi di licenza.
String?
Impostato quando il checkout raccoglie un indirizzo email.
Map<String, String>
Ogni parametro di query dell’URL di ritorno, senza modifiche.
Verifica il pagamento
Webhooks
Dodo Payments chiama il tuo backend quando un pagamento va a buon fine o un abbonamento viene attivato.
Get Payment Detail
Cerca
paymentId con la tua secret key per verificarne direttamente lo stato.result.status.
Errori
start genera CheckoutException solo in caso di utilizzo errato o di un errore della piattaforma.
Un pagamento annullato o rifiutato è sempre un risultato, mai un’eccezione.
invalidCheckoutUrl(INVALID_CHECKOUT_URL): URL di sessione noncheckout.dodopayments.com.invalidReturnUrl(INVALID_RETURN_URL): URL assoluto non valido.alreadyInProgress(ALREADY_IN_PROGRESS): checkout già in esecuzione.platformError(PLATFORM_ERROR): errore imprevisto della piattaforma.
Sessioni abbandonate
Se l’app viene terminata durante il checkout, recupera la sessione al successivo avvio e
riconcili l’operazione con il tuo backend.
Correlati
Mobile Integration Guide
Lo stesso contratto per Android, iOS e React Native.
Community Projects
Esiste anche un pacchetto Flutter separato sviluppato dalla community.