Detta är det officiella iOS checkout SDK:t från Dodo Payments för Swift. Det öppnar Dodos hosted checkout i en inbyggd webbläsarvy och returnerar ett typat resultat.
Checkout Sessions API
Skapa checkout_url som detta SDK öppnar från din backend.
Mobile Integration Guide
Se hur detta passar in i det fullständiga mobila betalningsflödet.
SFSafariViewController, lagrar ingen API key och anropar aldrig Dodo API direkt. All checkout-logik körs i webbläsaren; SDK:t hanterar endast vylivscykeln och fångar upp return URL.
Kräver iOS 16+, Swift 6.
Installation
1
Add the Package
I Xcode går du till File → Add Package Dependencies och anger:Välj version 1.0.0 eller senare.Alternativt kan du lägga till detta i din
Package.swift:Package.swift
2
Register a Callback URL Scheme
Din app måste registrera ett URL scheme för att ta emot return URL från checkout. Lägg till detta i din Du kan också lägga till detta via Xcodes Info → URL Types-gränssnitt.
Info.plist:Info.plist
Användning
Vidarebefordra Return URL
SFSafariViewController har inget sätt i processen att fånga upp sin egen return URL. Din app måste vidarebefordra inkommande URL:er till SDK:t.
- SwiftUI
- SceneDelegate
Det är säkert att vidarebefordra varje URL här.
handleOpenURL agerar endast på URL:er som matchar ditt registrerade returnUrl och returnerar false för allt annat.Vad resultatet betyder
CheckoutStatus
obligatorisk
En av
succeeded, failed, cancelled, pending, expired.String?
Anges när return URL innehöll en sådan. Visa den i gränssnittet, men använd den inte för att ge åtkomst. Se Verifiera betalningen nedan.
String?
Anges för subscription-checkouts.
[String]?
Anges när checkout inkluderar license key-produkter.
String?
Anges när checkout samlar in en e-postadress.
[String: String]
Alla query-parametrar från return URL, ordagrant.
Verifiera betalningen
Webhooks
Dodo Payments anropar din backend när en betalning lyckas eller en subscription aktiveras.
Get Payment Detail
Slå upp
paymentId med din secret key för att kontrollera dess status direkt.result.status.
Fel
start kastar CheckoutError endast vid felaktig användning eller ett plattformsfel. En avbruten eller nekad betalning är alltid ett resultat, aldrig ett undantag.
invalidCheckoutUrl(INVALID_CHECKOUT_URL): inte en session-URL förcheckout.dodopayments.com.invalidReturnUrl(INVALID_RETURN_URL): inte en giltig absolut URL.alreadyInProgress(ALREADY_IN_PROGRESS): en checkout körs redan.platformError(PLATFORM_ERROR): oväntat plattformsfel.
Övergivna sessioner
Om appen avslutas mitt under checkout återställer du sessionen vid nästa start och stämmer av den mot din backend.
Relaterat
Mobile Integration Guide
Samma kontrakt för Android, React Native och Flutter.
React Native SDK
Wrappat runt samma Swift-kärna på iOS.