Skip to main content
Questo è l’SDK ufficiale per il checkout React Native di Dodo Payments, @dodopayments/react-native-checkout. Apre il checkout ospitato di Dodo in una vista browser nativa e restituisce un risultato tipizzato. Nota: esiste un pacchetto meno recente e non correlato denominato dodopayments-react-native-sdk (senza scope), con un’API completamente diversa. Questa pagina documenta esclusivamente l’attuale pacchetto ufficiale con scope.

Checkout Sessions API

Crea checkout_url, che questo SDK apre, dal tuo backend.

Mobile Integration Guide

Scopri come si inserisce nel flusso completo dei pagamenti mobile.
L’SDK React Native è un sottile wrapper Turbo Module sui medesimi core nativi Swift e Kotlin. Apre SFSafariViewController su iOS e una Chrome Custom Tab su Android, non conserva alcuna chiave API e non chiama mai direttamente l’API di Dodo. Tutta la logica del checkout viene eseguita nel browser; l’SDK gestisce semplicemente il ciclo di vita della vista e acquisisce l’URL di ritorno.
Questo SDK richiede esclusivamente la New Architecture, React Native 0.76+, iOS 16+ e Android minSdk 24.

Installazione

1

Install the Package

Il pacchetto viene collegato automaticamente e recupera com.dodopayments.api:checkout-android da Maven.
Non è necessaria alcuna configurazione aggiuntiva; la dipendenza nativa viene risolta automaticamente.
2

Register a Callback URL Scheme

La tua app deve registrare uno schema URL per ricevere l’URL di ritorno dal checkout.
In android/app/build.gradle:
android/app/build.gradle
Sostituisci "myapp" con lo schema della tua app.

Utilizzo

Inoltro dell’URL di ritorno

Il listener Linking è richiesto per la gestione dell’URL di ritorno su iOS. Su Android, handleOpenURL non esegue alcuna operazione e risolve false, perché il core Android gestisce nativamente il redirect. È sicuro registrare il listener incondizionatamente su entrambe le piattaforme.

Significato del risultato

result.status è un suggerimento per l’interfaccia utente, non una prova del pagamento. Conferma ogni pagamento dal tuo backend tramite il webhook payment.succeeded / subscription.active.
CheckoutStatus
obbligatorio
Uno tra succeeded, failed, cancelled, pending, expired.
string
Impostato quando l’URL di ritorno ne includeva uno. Visualizzalo nell’interfaccia utente, ma non usarlo per concedere l’accesso. Consulta la sezione Verifica del pagamento qui sotto.
string
Impostato per i checkout degli abbonamenti.
string[]
Impostato quando il checkout include prodotti con chiavi di licenza.
string
Impostato quando il checkout acquisisce un’e-mail.
Record<string, string>
Ogni parametro di query dell’URL di ritorno, alla lettera.

Verifica del pagamento

Webhooks

Dodo Payments contatta 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.
Concedi l’accesso dopo che uno di questi ha confermato il pagamento, mai basandoti solo su result.status.

Personalizzazione dell’aspetto

Personalizza la barra degli strumenti, i pulsanti e lo schema di colori del browser di checkout tramite customization su start(...). Le opzioni sono raggruppate per piattaforma perché Custom Tab di Android e SFSafariViewController di iOS espongono controlli nativi differenti. Tutti i campi sono facoltativi; se ometti customization viene utilizzato l’aspetto predefinito di ciascuna piattaforma.
Color
Colore di sfondo della barra degli strumenti.
Color
Colore della barra di navigazione.
Color
Colore del divisore sopra la barra di navigazione.
'default' | 'back'
default mostra l’icona di sistema “X”; back mostra invece una freccia indietro.
'start' | 'end'
Indica su quale lato della barra degli strumenti viene visualizzato il pulsante di chiusura.
boolean
Mostra l’icona di condivisione della barra degli strumenti.
boolean
Mostra il titolo della pagina sotto l’URL nella barra degli strumenti.
boolean
Consente alla barra degli strumenti di nascondersi automaticamente durante lo scorrimento della pagina.
boolean
Mostra “Aggiungi pagina ai segnalibri” nel menu extra.
boolean
Mostra “Scarica pagina” nel menu extra.
'system' | 'light' | 'dark'
Forza l’aspetto chiaro o scuro indipendentemente dall’impostazione di sistema del dispositivo.
'done' | 'close' | 'cancel'
Etichetta o icona del pulsante di chiusura.
'pageSheet' | 'fullScreen'
pageSheet viene visualizzato come una scheda con chiusura tramite scorrimento; fullScreen copre l’intero schermo.
boolean
Consente alla barra degli strumenti di comprimersi durante lo scorrimento. Visibile solo quando presentationStyle è fullScreenpageSheet mantiene le barre fissate indipendentemente da questa impostazione.
'system' | 'light' | 'dark'
Forza l’aspetto chiaro o scuro indipendentemente dall’impostazione di sistema del dispositivo.

Errori

start rifiuta con un CheckoutError solo in caso di uso improprio o di un errore della piattaforma. Un pagamento annullato o rifiutato restituisce sempre un risultato, non un’eccezione.
  • INVALID_CHECKOUT_URL: non è un URL di sessione checkout.dodopayments.com.
  • INVALID_RETURN_URL: non è un URL assoluto valido.
  • ALREADY_IN_PROGRESS: è già in esecuzione un checkout.
  • PLATFORM_ERROR: errore imprevisto della piattaforma.

Sessioni abbandonate

Se l’app o il bundle JS viene terminato durante il checkout, la promise va persa, ma il livello nativo mantiene la sessione. Recuperala al mount successivo e riconciliala con il tuo backend.

Correlati

Mobile Integration Guide

Lo stesso contratto per Android, iOS e Flutter.

Expo Boilerplate

Un esempio Expo completo con integrazione del checkout.
Ultima modifica il 17 agosto 2026