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.
Personalizzazione dell’aspetto
Personalizza il pulsante di chiusura del foglio, lo stile di presentazione e la combinazione di colori tramitecustomization su start(...). Tutti i campi sono facoltativi; se omesso,
customization utilizza l’aspetto predefinito di SFSafariViewController su iOS.
DismissButtonStyle
Etichetta o icona per il pulsante di chiusura:
done, close o cancel.PresentationStyle
pageSheet viene visualizzato come una scheda con chiusura tramite scorrimento; fullScreen copre l’intero schermo.Bool
Consente alla barra degli strumenti di comprimersi durante lo scorrimento. Visibile solo quando
presentationStyle è fullScreen — pageSheet mantiene le barre bloccate indipendentemente da questa impostazione.ColorScheme
Forza l’aspetto chiaro o scuro indipendentemente dall’impostazione di sistema del dispositivo:
system, light o dark.Errori
start genera CheckoutError solo in caso di uso improprio o di un errore della piattaforma. Un pagamento annullato o rifiutato è sempre un risultato, mai un’eccezione.
invalidCheckoutUrl(INVALID_CHECKOUT_URL): URL della sessione noncheckout.dodopayments.com.invalidReturnUrl(INVALID_RETURN_URL): URL assoluto non valido.alreadyInProgress(ALREADY_IN_PROGRESS): è già in corso un checkout.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
Integra questo stesso core Swift su iOS.