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.
Fehler
start löst CheckoutError nur bei fehlerhafter Verwendung oder einem Plattformfehler aus. Eine stornierte oder abgelehnte Zahlung ist immer ein Ergebnis, niemals eine Ausnahme.
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 Themen
Mobile Integration Guide
Derselbe Vertrag für Android, React Native und Flutter.
React Native SDK
Umschließt denselben Swift-Kern unter iOS.