Quick Start
Avvia l’integrazione dei pagamenti mobile in 4 semplici passaggi
Platform Examples
Esempi di codice completi per Android, iOS, React Native e Flutter
Dodo Payments offre un SDK ufficiale di checkout per Android, iOS, React Native,
e Flutter. Ognuno racchiude il modello documentato di seguito (apertura
dell’URL di checkout, acquisizione del ritorno, analisi del risultato) dietro una singola chiamata
start(...) tipizzata, con il recupero delle sessioni abbandonate integrato. Utilizza una WebView manuale solo
se nessuno di questi SDK è compatibile con il tuo stack.Prerequisiti
Prima di integrare Dodo Payments nella tua app mobile, assicurati di avere:- Account Dodo Payments: Account commerciante attivo con accesso API
- Credenziali API: Chiave API e chiave segreta webhook dalla dashboard
- Progetto dell’app mobile: Applicazione Android, iOS, React Native o Flutter
- Server backend: Per gestire in modo sicuro la creazione delle sessioni di checkout
Flusso di integrazione
L’integrazione mobile segue un processo sicuro in 4 passaggi, in cui il backend gestisce le chiamate API e l’app mobile gestisce l’esperienza utente.1
Backend: Create Checkout Session
Checkout Session API Docs
Scopri come creare una sessione di checkout nel tuo backend usando Node.js, Python e altro. Consulta gli esempi completi e i riferimenti dei parametri nella documentazione dedicata delle Checkout Sessions API.
Sicurezza: le sessioni di checkout devono essere create sul server backend, mai nell’app mobile. Questo protegge le chiavi API e garantisce una validazione corretta.
2
Mobile: Get Checkout URL
La tua app mobile chiama il backend per ottenere l’URL di checkout. Autentica
questa richiesta con il token di sessione dell’utente che ha effettuato l’accesso.
- iOS (Swift)
- Android (Kotlin)
- React Native (JavaScript)
- Flutter (Dart)
Sicurezza: le app mobile comunicano solo con il tuo backend, mai direttamente con Dodo Payments API.
3
Mobile: Open Checkout in Browser
Apri l’URL di checkout in un browser in-app sicuro per elaborare il pagamento.
Oppure evita completamente la configurazione manuale con l’SDK ufficiale di checkout per la tua
piattaforma.
Pick your mobile SDK
Passaggi di installazione e istruzioni di configurazione per Android, iOS, React Native e Flutter.
4
Backend: Handle Payment Completion
Elabora il completamento del pagamento tramite webhook e URL di reindirizzamento per confermare lo stato del pagamento.
Scegli il tuo SDK
Ogni SDK mobile espone lo stesso contratto: una singola chiamatastart(...) apre il checkout
ospitato di Dodo nel browser nativo della piattaforma e restituisce un
CheckoutResult tipizzato, il cui status è succeeded, failed, cancelled,
pending o expired. Nessuno di questi conserva una chiave API o chiama Dodo
Payments API e tutti e quattro supportano il recupero delle sessioni abbandonate.
Android
com.dodopayments.api:checkout-android apre una Chrome Custom Tab. Richiede minSdk 23.iOS
dodopayments-mobile-sdk-ios apre SFSafariViewController. Richiede iOS 16+.React Native
@dodopayments/react-native-checkout, un Turbo Module basato su entrambi i core nativi. Richiede React Native 0.76+.Flutter
dodopayments_checkout, un canale Pigeon basato su entrambi i core nativi. Richiede Flutter 3.44+.Registrazione di uno schema URL di callback
Tutti e quattro gli SDK restituiscono il controllo alla tua app tramite uno schema URL personalizzato che scegli tu, ad esempiomyapp://checkout/return. Registralo una volta per
piattaforma:
- Android
- iOS
- Expo
android/app/build.gradle
Preferisci realizzarlo autonomamente? Apri
checkout_url in una WebView e intercetta
la navigazione verso return_url, quindi leggi i parametri di query
status e payment_id. Gli SDK precedenti lo fanno per te nella superficie
browser reale della piattaforma, motivo per cui Apple Pay e Google Pay continuano a funzionare.Best practice
- Sicurezza: non includere mai una chiave API nella tua app. Crea le sessioni di checkout nel backend e passa al client solo l’
checkout_urlrisultante. - Autorità: tratta
CheckoutResult.statuscome un’indicazione dell’interfaccia. Concedi l’accesso solo dopo che il backend ha confermato il pagamento. - Esperienza utente: mostra uno stato di caricamento mentre il backend crea la sessione e gestisci
cancelledcome un esito normale, non come un errore. - Test: usa la modalità di test e le carte di test e verifica il ciclo completo dell’URL di ritorno su un dispositivo reale oltre che su un simulatore.
Risoluzione dei problemi
Problemi comuni
- Il callback non arriva mai: lo schema in
returnUrldeve corrispondere a quello registrato. Su Android è il placeholder del manifestdodoCallbackScheme; su iOS e React Native è il tipo di URLInfo.plist. - Il checkout torna al browser invece che alla tua app (iOS): non hai inoltrato l’URL in arrivo. Chiama
DodoCheckout.handleOpenURL(url)da.onOpenURL,scene(_:openURLContexts:)o da un listenerLinkingdi React Native. PLATFORM_ERRORsu Android: nella maggior parte dei casi si tratta di una mancata corrispondenza dello schema. Può verificarsi anche seMainActivityimpostaandroid:taskAffinity=""(il valore predefinito standardflutter create), permettendo ad alcune build OEM di perdere il checkout in corso.ALREADY_IN_PROGRESS: un checkout è ancora aperto. Attendi o chiudi quello precedente prima di avviarne un altro.- La build non riesce a causa di un placeholder non risolto: hai aggiunto l’SDK Android ma non hai mai impostato
manifestPlaceholders["dodoCallbackScheme"]. - Il pagamento è riuscito ma l’accesso non è stato concesso: è previsto se utilizzi il risultato mobile come riferimento. Concedi l’accesso dal webhook
payment.succeeded/subscription.activeinvece.
Risorse aggiuntive
Per domande o assistenza, contatta support@dodopayments.com.