Skip to main content
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.
Das iOS SDK öffnet den gehosteten Checkout von Dodo in 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 Info.plist hinzu:
Info.plist
Du kannst dies auch über die Xcode-Oberfläche Info → URL Types hinzufügen.

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.
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

result.status ist ein UI-Hinweis, kein Zahlungsnachweis. Bestätige jede Zahlung über dein Backend mithilfe des payment.succeeded / subscription.active Webhooks.
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.
Gewähre den Zugriff erst, nachdem einer dieser Mechanismen die Zahlung bestätigt hat, niemals allein aufgrund von 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ültige checkout.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.
Zuletzt geändert am 31. Juli 2026