Dies ist das offizielle iOS-Checkout-SDK von Dodo Payments für Swift. Es öffnet den gehosteten Checkout von Dodo in einer nativen Browseransicht und gibt ein typisiertes Ergebnis zurück.
Checkout Sessions API
Erstelle die checkout_url, die dieses SDK öffnet, in deinem Backend.
Mobile Integration Guide
Erfahre, wie dies in den vollständigen mobilen Zahlungsablauf passt.
SFSafariViewController, enthält keinen API-Schlüssel und ruft die Dodo API niemals direkt auf. Die gesamte Checkout-Logik läuft im Browser; das SDK verwaltet lediglich den Lebenszyklus der Ansicht und erfasst die Rückgabe-URL.
Erfordert iOS 16+ und Swift 6.
Installation
1
Add the Package
Gehe in Xcode zu File → Add Package Dependencies und gib Folgendes ein:Wähle Version 1.0.0 oder höher aus.Alternativ kannst du es zu deinem
Package.swift hinzufügen:Package.swift
2
Register a Callback URL Scheme
Deine App muss ein URL-Schema registrieren, um die Rückgabe-URL vom Checkout zu empfangen. Füge dies zu deinem Du kannst dies auch über die Xcode-Oberfläche Info → URL Types hinzufügen.
Info.plist hinzu:Info.plist
Verwendung
Weiterleiten der Rückgabe-URL
SFSafariViewController kann seine eigene Rückgabe-URL nicht innerhalb des Prozesses abfangen. Deine App muss eingehende URLs an das SDK weiterleiten.
- SwiftUI
- SceneDelegate
Es ist sicher, hier jede URL weiterzuleiten.
handleOpenURL reagiert nur auf URLs, die deinem registrierten returnUrl entsprechen, und gibt für alles andere false zurück.Bedeutung des Ergebnisses
CheckoutStatus
erforderlich
Eines von
succeeded, failed, cancelled, pending, expired.String?
Wird gesetzt, wenn die Rückgabe-URL einen solchen Wert enthielt. Zeige ihn in der UI an, verwende ihn jedoch nicht zur Zugriffserteilung. Siehe unten unter „Zahlung verifizieren“.
String?
Wird für Subscription-Checkouts gesetzt.
[String]?
Wird gesetzt, wenn der Checkout Produkte mit Lizenzschlüsseln enthält.
String?
Wird gesetzt, wenn der Checkout eine E-Mail-Adresse erfasst.
[String: String]
Jeder Query-Parameter aus der Rückgabe-URL, unverändert.
Zahlung verifizieren
Webhooks
Dodo Payments ruft dein Backend auf, wenn eine Zahlung erfolgreich ist oder ein Subscription aktiviert wird.
Get Payment Detail
Rufe
paymentId mit deinem geheimen Schlüssel ab, um den Status direkt zu prüfen.result.status.
Anpassung der Darstellung
Passe den Schließen-Button, den Präsentationsstil und das Farbschema des Sheets an übercustomization auf start(...). Alle Felder sind optional. Wenn
customization weggelassen wird, wird die standardmäßige Darstellung von iOS SFSafariViewController verwendet.
DismissButtonStyle
Bezeichnung oder Symbol für den Schließen-Button:
done, close oder cancel.PresentationStyle
pageSheet wird als Karte mit Wischen zum Schließen dargestellt; fullScreen nimmt den gesamten Bildschirm ein.Bool
Ermöglicht das Einklappen der Toolbar beim Scrollen. Nur sichtbar, wenn
presentationStyle den Wert fullScreen hat — pageSheet hält die Leisten unabhängig von dieser Einstellung fixiert.ColorScheme
Erzwingt unabhängig von der Systemeinstellung des Geräts eine helle oder dunkle Darstellung:
system, light oder dark.Fehler
start löst CheckoutError nur bei falscher Verwendung oder einem Plattformfehler aus. Eine stornierte oder abgelehnte Zahlung ist immer ein Ergebnis, niemals eine Exception.
invalidCheckoutUrl(INVALID_CHECKOUT_URL): keine gültigecheckout.dodopayments.com-Session-URL.invalidReturnUrl(INVALID_RETURN_URL): keine gültige absolute URL.alreadyInProgress(ALREADY_IN_PROGRESS): Ein Checkout läuft bereits.platformError(PLATFORM_ERROR): unerwarteter Plattformfehler.
Abgebrochene Sessions
Wenn die App während des Checkouts beendet wird, stelle die Session beim nächsten Start wieder her und gleiche sie mit deinem Backend ab.
Verwandte Inhalte
Mobile Integration Guide
Derselbe Vertrag für Android, React Native und Flutter.
React Native SDK
Umschließt denselben Swift-Kern auf iOS.