Questo è l’SDK ufficiale per il checkout iOS di Dodo Payments, per Swift. Apre il checkout ospitato di Dodo in una vista browser nativa e restituisce un risultato tipizzato.
Checkout Sessions API
Crea checkout_url dal tuo backend, che sarà aperto da questo SDK.
Mobile Integration Guide
Scopri come si integra nel flusso completo dei pagamenti mobile.
SFSafariViewController, non contiene alcuna API key e non chiama mai direttamente la Dodo API. 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.
Richiede iOS 16+ e Swift 6.
Installazione
1
Add the Package
In Xcode, vai a File → Add Package Dependencies e inserisci:Seleziona la versione 1.0.0 o una successiva.In alternativa, aggiungi al tuo
Package.swift:Package.swift
2
Register a Callback URL Scheme
La tua app deve registrare uno schema URL per ricevere l’URL di ritorno dal checkout. Aggiungi questo al tuo Puoi anche aggiungerlo tramite l’interfaccia Info → URL Types di Xcode.
Info.plist:Info.plist
Utilizzo
Inoltro dell’URL di ritorno
SFSafariViewController non dispone di un modo in-process per intercettare il proprio URL di ritorno. La tua app deve inoltrare gli URL in ingresso all’SDK.
- SwiftUI
- SceneDelegate
È sicuro inoltrare ogni URL qui.
handleOpenURL agisce solo sugli URL che corrispondono al tuo returnUrl registrato e restituisce false per qualsiasi altro URL.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 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’email.
[String: String]
Ogni parametro di query dell’URL di ritorno, invariato.
Verifica del 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 CheckoutError solo in caso di uso improprio o di un errore della piattaforma. Un pagamento annullato o rifiutato restituisce sempre un risultato, mai un’eccezione.
invalidCheckoutUrl(INVALID_CHECKOUT_URL): URL della sessione non appartenente acheckout.dodopayments.com.invalidReturnUrl(INVALID_RETURN_URL): URL assoluto non valido.alreadyInProgress(ALREADY_IN_PROGRESS): un 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 riconciliala con il tuo backend.
Correlati
Mobile Integration Guide
Lo stesso contratto per Android, React Native e Flutter.
React Native SDK
Incapsula questo stesso core Swift su iOS.