Bieten Sie die Abonnementverwaltung unter iOS mit einer Kundenportalseite
Richten Sie ein Kundenportal ein und öffnen Sie es in einem Browser aus Ihrer App.
In einigen Ländern können Sie auf eine externe Website verlinken, um Zahlungen für digitale In-App-Waren, einschließlich Abonnements, auf iOS anzunehmen. In diesem Leitfaden wird beschrieben, wie Sie ein Kundenportal für die Abonnementverwaltung konfigurieren und Ihre Kundinnen/Kunden von Ihrer App dorthin weiterleiten.

Link außerhalb der App, um Abonnements und Zahlungsmethoden zu verwalten
Sie werden Folgendes entwickeln
Notiz
In diesem Leitfaden wird nur die Abonnementverwaltung beschrieben. Wenn Sie Abonnementkäufe einrichten, finden Sie weitere Informationen unter Zahlungen für digitale Waren in iOS mit einer vorgefertigten Zahlungsseite akzeptieren.
Dieser Leitfaden bietet Informationen zu den folgenden Vorgehensweisen:
- Richten Sie eine Kundenportalseite ein, über die Kundinnen/Kunden Abonnements verwalten können.
- Verwenden Sie universelle Links, um Nutzer/innen vom Kundenportal zurück zu Ihrer App zu leiten
- Überwachen Sie Webhooks, um den Abonnementstatus Ihrer Kundschaft zu aktualisieren
Was nicht behandelt wird
In diesem Leitfaden wird gezeigt, wie Sie ein Kundenportal von Stripe einrichten und von Ihrer App aus darauf verlinken. Nicht behandelt wird:
- Käufe von Abonnements: Informationen zur Verwendung von Stripe Checkout für den Verkauf von In-App-Waren und Abonnements finden Sie unter Zahlungen für digitale Waren in iOS mit einer vorgefertigten Zahlungsseite akzeptieren.
- Nutzerauthentifizierung: Falls Sie noch keinen Authentifizierungsanbieter haben, können Sie einen Drittanbieter wie Sign in with Apple oder Firebase Authentication verwenden.
- Native In-App-Käufe: Um In-App-Käufe mit StoreKit umzusetzen, besuchen Sie den Leitfaden zu In-App-Käufen von Apple.
Konfigurieren Sie das Portal
Zunächst müssen Sie sich für ein Stripe-Konto registrieren.
Bevor Sie das Kundenportal integrieren, definieren Sie im Dashboard, was Ihre Nutzer/innen mit dem Portal tun können. Wählen Sie Ihre Einstellungen für Sandboxes und den Live-Modus basierend auf Ihrem Produkt- und Preiskatalog.
Häufiger Fehler
Wenn Sie das Kundenportal in Verbindung mit Stripe Connect nutzen, müssen Sie darauf achten, dass Sie das Kundenportal für die Plattform und nicht für ein verbundenes Konto konfigurieren.
Wenn Sie mehrere Portalkonfigurationen für verschiedene Kundengruppen erstellen möchten (oder wenn Sie eine Connect-Plattform haben und die Konfigurationen für Ihre verbundenen Konten verwalten möchten), können Sie dafür die API nutzen:
Produktkatalog einrichten
Wenn Sie Kundinnen und Kunden gestatten, Upgrades oder Downgrades durchzuführen oder die Mengen ihrer Abonnements zu ändern, müssen Sie auch einen Produktkatalog einrichten. Dazu gehören die Produkte und Preise, auf die Ihre Kundinnen und Kunden ein Upgrade oder Downgrade durchführen können, sowie die Abonnements, für die sie Mengen aktualisieren können. Weitere Informationen zum Erstellen von Produkten und Preisen finden Sie unter Produkt erstellen. Wenn Sie das Kundenportal nur für die Rechnungsstellung verwenden, müssen Sie keinen Produktkatalog erstellen.
Das Portal zeigt die folgenden Attribute Ihres Produktkatalogs an:
- Name und Beschreibung des Produkts: Diese Attribute können im Dashboard und über die API bearbeitet werden.
- Mengenbeschränkungen pro Produkt: Diese Attribute sind im Dashboard bearbeitbar.
- Preis, Währung und Abrechnungsintervall: Diese Attribute sind fest und werden nur einmal bei der Erstellung im Dashboard und in der API festgelegt.
Erfassung von Steuer-IDs aktivieren
Wenn Sie Stripe Tax verwenden, um automatisch Steuern für Abonnements oder Rechnungen einzuziehen, können Sie Kundinnen/Kunden erlauben, ihre Steuer-IDs im Kundenportal festzulegen und zu aktualisieren. Stripe Billing fügt die Steuer-IDs zu den Rechnungen der Kundinnen/Kunden hinzu. Damit Kundinnen/Kunden ihre Steuer-IDs selbst festlegen können, gehen Sie zu den Kundenportaleinstellungen und aktivieren Sie Steuer-ID. Weitere Informationen finden Sie unter „So funktionieren Kunden-Steuer-IDs mit Abonnements und Rechnungen“.
Hier erfahren Sie, wie Sie Stripe Tax einrichten, Steuern für wiederkehrende Zahlungen erheben, Steuern in Ihren nutzerdefinierten Zahlungsabläufen einziehen und Steuersätze für Posten und Rechnungen festlegen.
Vorschau und Test
Klicken Sie beim Konfigurieren Ihrer Einstellungen auf Vorschau, um eine Vorschau des Portals anzuzeigen. Dadurch wird eine schreibgeschützte Version des Portals geöffnet, die es Ihnen ermöglicht, zu sehen, wie Ihre Kundinnen und Kunden ihre Abonnements und Rechnungsdetails verwalten können.
Nachdem Sie Ihre Einstellungen gespeichert haben, können Sie das Portal starten und es mit einer Kundin oder einem Kunden in einer Sandbox testen. Gehen Sie im Dashboard auf eine Kundin oder einen Kunden, klicken Sie auf Aktionen, und wählen Sie dann Kundenportal öffnen.
Sie können eine Vorschau des Portals nur als schreibgeschützte Version anzeigen, wenn sich Ihr Dashboard in einer Sandbox befindet. Wenn Sie keine Vorschau des Portals anzeigen und testen können, überprüfen Sie Ihre Einstellungen, um sicherzustellen, dass Ihre Konfiguration in einer Sandbox gespeichert ist. Damit die Vorschau und das Testen funktionieren, müssen Sie auch über die Berechtigung zum Bearbeiten im Dashboard verfügen.
Stripe einrichtenServerseitig
Serverseitig
Installieren Sie als Nächstes die Stripe CLI. Mit der CLI können Sie die erforderlichen Webhook-Tests durchführen.
Weitere Installationsoptionen finden Sie unter Mit der Stripe-CLI loslegen.
Clientseitig
Das Stripe iOS SDK ist Open Source, vollständig dokumentiert und kompatibel mit Apps, die iOS 13 oder höher unterstützen.
Notiz
Details zur aktuellen SDK-Version und zu vorherigen Versionen finden Sie auf der Seite Releases auf GitHub. Um bei Veröffentlichung einer neuen Version eine Benachrichtigung zu erhalten, achten Sie auf die Releases zum jeweiligen Repository.
Sie müssen auch Ihren veröffentlichbaren Schlüssel festlegen, damit das SDK API Aufrufe an Stripe tätigen kann. Um schnell loszulegen, können Sie dies während der Integration auf dem Client fest codieren, aber den veröffentlichbaren Schlüssel von Ihrem Server in der Produktionsumgebung abrufen.
// Set your publishable key: remember to change this to your live publishable key in production // See your keys here: https://dashboard.stripe.com/apikeys STPAPIClient.shared.publishableKey =
"pk_test_TYooMQauvdEDq54NiTphI7jx"
Eine Portalsitzung erstellenServerseitig
Wenn Kundinnen/Kunden Änderungen an ihrem Abonnement vornehmen möchten, generieren Sie eine URL für die Portalseite unter Verwendung ihrer Stripe-Kunden-ID über die Portal Session API.
Universelle Links einrichtenClientseitigServerseitig
Universelle Links ermöglichen es dem Kundenportal, einen Deep-Link zu Ihrer App herzustellen. So konfigurieren Sie einen universellen Link:
- Fügen Sie Ihrer Domain eine
apple-app-site-association
-Datei hinzu. - Fügen Sie Ihrer App eine Berechtigung für die zugewiesenen Domains (“Associated Domains”) hinzu.
- Fügen Sie eine Fallbackseite für Ihre Portal-Umleitungs-URLs hinzu.
Definieren Sie die zugewiesenen Domains
Fügen Sie Ihrer Domain eine Datei unter .well-known/apple-app-site-association hinzu, um die URLs zu definieren, die Ihre App verarbeitet. Stellen Sie Ihrer App-ID die Team-ID voran, die Sie auf der Mitgliedschafts-Seite des Apple Developer Portals finden.
{ "applinks": { "apps": [], "details": [ { "appIDs": [ "A28BC3DEF9.com.example.MyApp1", "A28BC3DEF9.com.example.MyApp1-Debug" ], "components": [ { "/": "/checkout_redirect*", "comment": "Matches any URL whose path starts with /checkout_redirect" } ] } ] } }
Achtung
Sie müssen der Datei den MIME-Typ application/json
hinzufügen. Mit curl -I
bestätigen Sie den Inhaltstyp.
curl -I https://example.com/.well-known/apple-app-site-association
Auf der Seite Zugewiesene Domains unterstützen von Apple finden Sie weitere Einzelheiten hierzu.
Fügen Sie Ihrer App eine Berechtigung für die zugewiesenen Domains (“Associated Domains”) hinzu.
- Öffnen Sie den Bereich Signierung & Kapazitäten der Zielanwendung Ihrer App.
- Klicken Sie auf + Funktion und wählen Sie dann Zugewiesene Domains aus.
- Fügen Sie einen Eintrag für
applinks:example.
zur Liste der Zugewiesenen Domains hinzu.com
Weitere Informationen zu universellen Links finden Sie auf der Seite Universelle Links für Entwickler von Apple.
Obgleich iOS Links an die in Ihrer apple-app-site-association
-Datei definierten URLs abruft, kann es zu Situationen kommen, in denen die Umleitung Ihre App nicht öffnen kann.
Erstellen Sie in Ihrem return_
eine Fallback-Seite. Sie können beispielsweise ein benutzerdefiniertes URL-Schema für Ihre App definieren und es verwenden, um eine Verknüpfung herzustellen, falls der universelle Link fehlschlägt.
Öffnen Sie das Kundenportal in SafariClientseitig
Fügen Sie eine Schaltfläche hinzu, um das Kundenportal in Ihrer App zu öffnen. Diese Schaltfläche:
- Ruft Ihren serverseitigen Endpoint auf, um eine Portalsitzung zu erstellen.
- Gibt die URL der Portalseite an den Client zurück.
- Öffnet die URL in Safari.
import Foundation import SwiftUI import StoreKit struct SubscriptionManagementView: View { @EnvironmentObject var myBackend: MyServer var body: some View { // Check if payments are blocked by Parental Controls on this device. if !SKPaymentQueue.canMakePayments() { Text("Payments are disabled on this device.") } else { Button { myBackend.createCustomerPortalSession { url in UIApplication.shared.open(url, options: [:], completionHandler: nil) } } label: { Text("Manage subscriptions") }.onOpenURL { url in // Handle the universal link from the customer portal. // Implement any necessary behavior, such as refreshing the customer's subscription status. } } } }
Änderungen am Status von Kundenabonnements verarbeitenServerseitig
Wenn Kundinnen/Kunden über das Kundenportal Änderungen an ihrem Abonnementstatus vornehmen, sendet Stripe Ihnen Webhooks wie customer.
, customer.
und customer.
. Eine vollständige Liste der Ereignisse und Informationen dazu finden Sie unter Webhooks mit Abonnements verwenden. Stellen Sie sicher, dass Sie alle Ereignisse verarbeiten, die erforderlich sind, um den Status der von Ihnen konfigurierten Abonnements genau zu überwachen.
Zu Testzwecken können Sie Ereignisse im Dashboard überwachen oder die Stripe-CLI verwenden. Richten Sie in der Produktion einen Webhook-Endpoint ein und abonnieren Sie die entsprechenden Ereignistypen. Wenn Sie Ihren STRIPE_
-Schlüssel nicht kennen, klicken Sie auf den Webhook-Link im Dashboard, um ihn anzuzeigen.