Apple Pay
Ermöglichen Sie Kundinnen und Kunden die sichere Zahlungsabwicklung mit Apple Pay auf ihrem iPhone, iPad oder ihrer Apple Watch.
Apple Pay ist mit den meisten Stripe-Produkten und -Funktionen kompatibel. Nutzerinnen und Nutzer von Stripe können Apple Pay in iOS-Anwendungen ab iOS 9 sowie im Web in Safari ab iOS 10 oder macOS Sierra akzeptieren. Es fallen keine zusätzlichen Gebühren für die Verarbeitung von Apple Pay-Zahlungen an und die Preisgestaltung ist genau wie bei anderen Kartentransaktionen.
Apple Pay ist für Karteninhaber/innen bei teilnehmenden Banken in unterstützten Ländern verfügbar. Weitere Informationen finden Sie in der Dokumentation zu teilnehmenden Banken von Apple.
Zahlungsablauf
Unten finden Sie eine Demonstration des Apple Pay-Zahlungsablaufs auf Ihrer Bezahlseite:
Stripe und Apple Pay im Vergleich zu In-App-Käufen
Für den Verkauf von physischen Waren, Dienstleistungen und bestimmten anderen Dingen kann Ihre App Apple Pay oder jede andere von Stripe unterstützte Zahlungsmethode akzeptieren. Diese Zahlungen werden über Stripe abgewickelt und Sie müssen nur die Bearbeitungsgebühren von Stripe zahlen. Der Verkauf von digitalen Produkten, Inhalten und anderen Dingen muss jedoch über die In-App-Käufe von Apple erfolgen. Diese Zahlungen werden von Apple verarbeitet und unterliegen deren Transaktionsgebühren.
Weitere Informationen darüber, bei welchen Verkäufen In-App-Käufe verwendet werden müssen, finden Sie in den App Store-Überprüfungsrichtlinien von Apple.
Apple Pay akzeptieren
Stripe bietet Ihnen mehrere Möglichkeiten, Apply Pay als Zahlungsmethode hinzuzufügen. Weitere Informationen zur Integration finden Sie unter der jeweiligen Methode:
Mit dem Stripe iOS SDK können Sie sowohl Zahlungen per Apple Pay als auch herkömmliche Kreditkartenzahlungen annehmen. Bevor Sie beginnen, müssen Sie beim Apple Developer Program angemeldet sein. Befolgen Sie als Nächstes diese Schritte:
- Stripe einrichten
- Eine Apple-Händler-ID registrieren
- Neues Apple Pay-Zertifikat erstellen
- Mit Xcode integrieren
- Prüfen, ob Apple Pay unterstützt wird
- Zahlungsanfrage erstellen
- Zahlungsformular anzeigen
- Zahlung an Stripe senden
Stripe einrichtenServerseitigClientseitig
Zunächst benötigen Sie ein Stripe-Konto. Registrieren Sie sich jetzt.
Serverseitig
Für diese Integration sind Endpoints auf Ihrem Server erforderlich, die mit der Stripe-API kommunizieren können. Nutzen Sie diese offiziellen Bibliotheken für den Zugriff auf die Stripe-API von Ihrem Server aus:
Client-seitig
Das Stripe iOS SDK ist Open Source, vollständig dokumentiert und kompatibel mit Apps, die iOS 13 oder höher unterstützen.
Notiz
For details on the latest SDK release and past versions, see the Releases page on GitHub. To receive notifications when a new release is published, watch releases for the repository.
Konfigurieren Sie das SDK mit Ihrem veröffentlichbaren Schlüssel von Stripe, um es beim Start der App auszuführen. Dadurch kann Ihre App Anfragen an die Stripe-API senden.
Notiz
Verwenden Sie Ihre Test-Modus-Schlüssel beim Testen und Entwickeln Ihrer App und Ihre Live-Modus-Schlüssel beim Veröffentlichen Ihrer App.
Eine Apple-Händler-ID registrieren
Beantragen Sie eine Apple-Händler-ID, indem Sie sich auf der Apple Developer-Website für eine neue Kennung registrieren.
Tragen Sie eine Beschreibung und eine Kennung in das Formular ein. Die Beschreibung ist nur für Ihre internen Zwecke bestimmt und kann später geändert werden. Stripe empfiehlt, dass Sie den Namen Ihrer App als Kennung verwenden, zum Beispiel merchant.
.
Neues Apple Pay-Zertifikat erstellen
Erstellen Sie ein Zertifikat für Ihre App, um Zahlungsdaten zu verschlüsseln.
Gehen Sie zu den iOS-Zertifikateinstellungen im Dashboard, klicken Sie auf Neue Anwendung hinzufügen und befolgen Sie die Anleitung.
Laden Sie eine Certificate Signing Request (CSR)-Datei herunter, um ein sicheres Zertifikat von Apple zu erhalten, mit dem Sie Apple Pay verwenden können.
Eine CSR-Datei muss verwendet werden, um genau ein Zertifikat auszustellen. Wenn Sie Ihre Apple-Händler-ID wechseln, müssen Sie zu den iOS-Zertifikateinstellungen im Dashboard gehen, um eine neue CSR und ein Zertifikat zu erhalten.
Mit Xcode integrieren
Fügen Sie Ihrer App die Apple Pay-Funktion hinzu. Öffnen Sie in Xcode Ihre Projekteinstellungen, klicken Sie auf die Registerkarte Signing & Capabilities (Anmeldung und Funktionen) und fügen Sie die Apple Pay-Funktion hinzu. Möglicherweise werden Sie an dieser Stelle aufgefordert, sich bei Ihrem Entwicklerkonto anzumelden. Wählen Sie die zuvor erstellte Händler-ID aus. Ihre App sollte nun Apple Pay unterstützen.
Apple Pay-Funktion in Xcode aktivieren
Prüfen, ob Apple Pay unterstützt wird
Notiz
Wenn Sie PaymentSheet verwenden, erledigt diese Klasse den Rest für Sie.
Bevor Sie Apple Pay als Zahlungsoption in Ihrer App anzeigen, sollten Sie prüfen, ob die Geräte der Nutzer/innen Apple Pay unterstützen und ob im Wallet eine Karte hinterlegt ist:
Zahlungsanfrage erstellen
Wenn der/die Nutzer/in auf die Schaltfläche Apple Pay tippt, rufen Sie StripeAPI paymentRequestWithMerchantIdentifier:country:currency: auf, um eine PKPaymentRequest zu erstellen.
Konfigurieren Sie dann PKPaymentRequest
, sodass Ihr Firmenname und die Gesamtsumme angezeigt werden. Sie können auch Informationen wie Rechnungsdaten oder Versandinformationen erfassen.
In der Apple-Dokumentation finden Sie eine ausführliche Anleitung zum Anpassen der Zahlungsanfrage.
Zahlungsformular anzeigen
Erstellen Sie eine STPApplePayContext-Instanz mit der PKPaymentRequest
und verwenden Sie diese, um das Apple Pay-Blatt vorzulegen:
Zahlung an Stripe senden
Serverseitig
Erstellen Sie einen Endpoint, der einen PaymentIntent mit einem Betrag und einer Währung generiert. Legen Sie den zu bezahlenden Betrag immer serverseitig fest, also in einer vertrauenswürdigen Umgebung, und nicht clientseitig. So wird verhindert, dass böswillige Kund/innen ihre eigenen Preise festlegen können.
Clientseitig
Fehlerbehebung
Wenn bei der Tokenerstellung Fehler mit der Stripe-API auftreten, liegt höchstwahrscheinlich ein Problem mit Ihrem Apple Pay-Zertifikat vor. In diesem Fall müssen Sie ein neues Zertifikat generieren und bei Stripe hochladen, wie auf dieser Seite beschrieben. Stellen Sie dabei sicher, dass Sie einen CSR verwenden, den Sie vom Dashboard abgerufen und nicht selbst generiert haben. Xcode legt alte Zertifikate oft fälschlicherweise im Zwischenspeicher ab. Stripe empfiehlt daher, zusätzlich zur Erstellung eines neuen Zertifikats auch eine neue Apple-Händler-ID zu erstellen.
Wenn Sie den Fehler erhalten, hat das folgenden Grund:
Sie haben Ihr Apple-Händler-Konto nicht bei Stripe hinterlegt.
Wahrscheinlich sendet Ihre App Daten, die mit einem früheren (nicht von Stripe stammenden) CSR/Zertifikat verschlüsselt wurden. Stellen Sie sicher, dass alle Zertifikate widerrufen werden, die durch nicht von Stripe stammende CSRs generiert wurden und Ihre Apple-Händler-ID aufweisen. Wenn dadurch das Problem nicht behoben wird, löschen Sie die Händler-ID in Ihrem Apple-Konto und legen Sie eine neue an. Erstellen Sie dann ein neues Zertifikat basierend auf dem zuvor verwendeten (von Stripe bereitgestellten) CSR. Sie müssen dieses neue Zertifikat nicht bei Stripe hochladen. Aktivieren und deaktivieren Sie die Apple Pay-Anmeldedaten in Ihrer App, um sicherzustellen, dass sie korrekt aktualisiert werden.
App-Clips
Das StripeApplePay
-Modul ist ein benutzerfreundliches Stripe-SDK, das für die Verwendung in einem App Clip optimiert ist. Folgen Sie der Anleitung oben, um das StripeApplePay
-Modul zum Ziel Ihres App-Clips hinzuzufügen.
Notiz
Das StripeApplePay
-Modul wird nur in Swift unterstützt. Objective-C-Nutzer/innen müssen STPApplePayContext
aus dem Stripe
-Modul importieren.
Umstellung von STPApplePayContext
Wenn Sie STPApplePayContext
bereits nutzen und zum benutzerfreundlichen Apple Pay SDK wechseln möchten, gehen Sie folgendermaßen vor:
- Ersetzen Sie in den Abhängigkeiten im Ziel Ihres App Clips das
Stripe
-Modul durch dasStripeApplePay
-Modul. - Ersetzen Sie in Ihrem Code
import Stripe
durchimport StripeApplePay
. - Ersetzen Sie Ihre Verwendung von
STPApplePayContextDelegate
durch das neueApplePayContextDelegate
-Protokoll. - Ändern Sie Ihre Implementierung von
applePayContext(_
, um eine:didCreatePaymentMethod:completion:) StripeAPI.
zu akzeptieren.PaymentMethod - Ändern Sie Ihre Implementierung von
applePayContext(_
, um einen:didCompleteWith:error:) STPApplePayContext.
zu akzeptieren.PaymentStatus
import Stripe class CheckoutViewController: UIViewController, STPApplePayContextDelegate { func applePayContext(_ context: STPApplePayContext, didCreatePaymentMethod paymentMethod: STPPaymentMethod, paymentInformation: PKPayment, completion: @escaping STPIntentClientSecretCompletionBlock) { // ... } func applePayContext(_ context: STPApplePayContext, didCompleteWith status: STPPaymentStatus, error: Error?) { // ... } }
import StripeApplePay class CheckoutViewController: UIViewController, ApplePayContextDelegate { func applePayContext(_ context: STPApplePayContext, didCreatePaymentMethod paymentMethod: StripeAPI.PaymentMethod, paymentInformation: PKPayment, completion: @escaping STPIntentClientSecretCompletionBlock) { // ... } func applePayContext(_ context: STPApplePayContext, didCompleteWith status: STPApplePayContext.PaymentStatus, error: Error?) { // ... } }
Wiederkehrende Zahlungen
In iOS 16 oder höher können Sie Händer-Token annehmen, indem Sie die Eigenschaft recurringPaymentRequest
oder automaticReloadPaymentRequest
auf PKPaymentRequest
festlegen.
Weitere Informationen zur Verwendung wiederkehrender Zahlungen mit Apple Pay finden Sie in der PassKit-Dokumentation von Apple.
Sendungsverfolgung
Um die Bestellungsnachverfolgung in iOS 16 oder höher anzuwenden, implementieren Sie die Funktion applePayContext(context:willCompleteWithResult:handler:) in Ihrem ApplePayContextDelegate
. Stripe ruft Ihre Implementierung auf, nachdem die Zahlung durchgeführt wurde, aber bevor iOS das Apple Pay-Formular schließt.
Gehen Sie in Ihrer Implementierung wie folgt vor:
- Rufen Sie die Bestelldetails für die abgeschlossene Bestellung von Ihrem Server ab.
- Fügen Sie diese Details dem angegebenen PKPaymentAuthorizationResult hinzu.
- Rufen Sie den angegebenen Abschluss-Handler für die Hauptwarteschlange auf.
Weitere Informationen zur Bestellungsnachverfolgung finden Sie in der Dokumentation zu Wallet-Bestellungen von Apple.
Apple Pay testen
Stripe-Testkarteninformationen können nicht in der App Wallet in iOS gespeichert werden. Stripe erkennt aber, wenn Sie Ihre Test-API-Schlüssel verwenden, und gibt ein Testkarten-Token zurück. So können Sie Testzahlungen mit einer Live-Karte durchführen, ohne dass diese belastet wird.