Weiter zum Inhalt
Konto erstellen
oder
anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellen
Anmelden
Jetzt starten
Zahlungen
Umsatz
Plattformen und Marktplätze
Geldmanagement
Entwicklerressourcen
Übersicht
Informationen zu Stripe Payments
Aktualisieren Sie Ihre Integration
Zahlungsanalysefunktionen
Online-Zahlungen
ÜbersichtIhren Use case findenZahlungen verwalten
Payment Links verwenden
Bezahlseite erstellen
Erweiterte Integration erstellen
In-App-Integration erstellen
    Übersicht
    Zahlungsformular
      In-App-Zahlungen annehmen
      Nutzerdefinierte Zahlungsmethoden hinzufügen
      Erscheinungsbild anpassen
      Zahlungen auf dem Server abschließen
      Zahlungsdaten bei der Zahlung speichern
      Zukünftige Zahlungen einrichten
      Kartenmarken filtern
    Embedded Payment Element
    Ausgehender Link für In-App-Käufe
    Adressen erfassen
    Karten in den USA und Kanada
Zahlungsmethoden
Zahlungsmethoden hinzufügen
Zahlungsmethoden verwalten
Schnellerer Bezahlvorgang mit Link
Zahlungsschnittstellen
Payment Links
Checkout
Web Elements
In-App-Elements
Zahlungsszenarien
Umgang mit mehreren Währungen
Nutzerdefinierte Zahlungsabläufe
Flexibles Acquiring
Orchestrierung
Präsenzzahlungen
Terminal
Mehr als Zahlungen
Unternehmensgründung
Krypto
Financial Connections
Climate
Betrug verstehen
Betrugsprävention von Radar
Zahlungsanfechtungen verwalten
Identitäten verifizieren
StartseiteZahlungenBuild an in-app integrationPayment Sheet

In-App-Zahlungen annehmen

Erstellen Sie mithilfe des Payment Sheet eine benutzerdefinierte Zahlungsintegration in Ihrer iOS-, Android- oder React Native-App.

Das Payment Sheet ist eine anpassbare Komponente, die eine Liste von Zahlungsmethoden anzeigt und Zahlungsdetails in Ihrer App mithilfe eines unteren Blatts erfasst.

Mit einem SetupIntent-Ablauf können Sie Zahlungsmethoden erfassen und für zukünftige Zahlungen speichern, ohne eine Abbuchung erstellen zu müssen. Bei dieser Integration rendern Sie das Payment Sheet, erstellen einen SetupIntent und speichern die Zahlungsmethode in Ihrer App.

Stripe einrichten
Serverseitig
Clientseitig

Serverseitig

Diese Integration erfordert Endpoints auf Ihrem Server, die mit der Stripe-API kommunizieren können. Nutzen Sie unsere offiziellen Bibliotheken für den Zugriff auf die Stripe-API von Ihrem Server aus:

Command Line
Ruby
Python
PHP
Java
Node
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Client-seitig

Das Stripe iOS SDK ist Open Source, vollständig dokumentiert und kompatibel mit Apps, die iOS 13 oder höher unterstützen.

Führen Sie zur Installation des SDK die folgenden Schritte aus:

  1. Wählen Sie in Xcode Datei > Add Package Dependencies (Paketabhängigkeiten hinzufügen) aus und geben Sie als Repository-URL https://github.com/stripe/stripe-ios-spm ein.
  2. Wählen auf unserer Veröffentlichungsseite die neueste Version aus.
  3. Fügen Sie das Produkt StripePaymentSheet zum Ziel Ihrer App hinzu.

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. Zunächst können Sie den veröffentlichbaren Schlüssel während der Integration auf dem Client codieren, aber den veröffentlichbaren Schlüssel von Ihrem Server in der Produktion 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"

Zahlungsmethoden aktivieren

Zeigen Sie Ihre Einstellungen für Zahlungsmethoden an und aktivieren Sie die Zahlungsmethoden, die Sie unterstützen möchten. Sie müssen mindestens eine Zahlungsmethode aktiviert haben, um einen SetupIntent zu erstellen.

Standardmäßig aktiviert Stripe Karten und andere gängige Zahlungsmethoden, mit denen Sie mehr Kundinnen und Kunden erreichen können. Wir empfehlen jedoch, zusätzliche Zahlungsmethoden zu aktivieren, die für Ihr Unternehmen und Ihre Kundschaft relevant sind. Weitere Informationen zur Unterstützung von Produkten und Zahlungsmethoden finden Sie auf der Seite Unterstützte Zahlungsmethoden und der Preisseite für Gebühren.

Rückgabe-URL einrichten
Clientseitig

Der Kunde/Die Kundin verlässt ggf. Ihre App, um sich zu authentifizieren (z. B. in Safari oder einer Banking-App). Damit sie nach der Authentifizierung automatisch zu Ihrer App zurückkehren können, konfigurieren Sie ein benutzerdefiniertes URL-Schema und richten Sie Ihren App-Delegate so ein, dass die URL an das SDK weitergeleitet wird. Stripe unterstützt keine universellen Links.

SceneDelegate.swift
Swift
No results
// This method handles opening custom URL schemes (for example, "your-app://stripe-redirect") func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) { guard let url = URLContexts.first?.url else { return } let stripeHandled = StripeAPI.handleURLCallback(with: url) if (!stripeHandled) { // This was not a Stripe url – handle the URL normally as you would } }

Legen Sie zusätzlich die returnURL in Ihrem PaymentSheet.Configuration-Objekt auf die URL für Ihre App fest.

var configuration = PaymentSheet.Configuration() configuration.returnURL = "your-app://stripe-redirect"

Kund/innen erstellen
Serverseitig

Um eine Zahlungsmethode für zukünftige Zahlungen einzurichten, müssen Sie sie einem/einer Kund/in hinzufügen. Erstellen Sie Customer-Objekte, wenn Kund/innen ein Konto bei Ihrem Unternehmen erstellen. Customer-Objekte ermöglichen die Wiederverwendung von Zahlungsmethoden und die Nachverfolgung über mehrere Zahlungen hinweg.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl -X POST https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

Zahlungsdaten erfassen
Clientseitig

Wir bieten zwei Arten der Integration an. Wählen Sie eine, um fortzufahren.

PaymentSheetPaymentSheet.FlowController
PaymentSheet
PaymentSheet.FlowController
Zeigt ein Formular an, um die Zahlungsdetails zu erfassen und die Einrichtung abzuschließen. Die Schaltfläche im Formular zeigt Einrichten an und richtet die Zahlungsmethode ein.Zeigt ein Formular an, über das nur Zahlungsdetails erfasst werden. Die Schaltfläche im Formular zeigt Fortfahren an und leitet Kundinnen und Kunden zu Ihrer App zurück, in der die Einrichtung mit Ihrer eigenen Schaltfläche abgeschlossen wird.

PaymentSheet initialisieren

Wenn Sie bereit sind, eine Zahlungsmethode einzurichten (zum Beispiel, wenn ein Kunde/eine Kundin auf Ihre Checkout-Schaltfläche tippt), initialisieren Sie das PaymentSheet mit einer PaymentSheet.Configuration und einer PaymentSheet.IntentConfiguration. Das Configuration-Objekt enthält die allgemeine Konfiguration für das PaymentSheet, die sich normalerweise zwischen den Zahlungen nicht ändert, wie z. B. die returnURL. Das IntentConfiguration-Objekt enthält Details zu der bestimmten Einrichtung, z. B. Währung, sowie einen confirmHandler-Rückruf. Lassen Sie die Implementierung vorerst leer.

import StripePaymentSheet class MyCheckoutVC: UIViewController { func didTapCheckoutButton() { let intentConfig = PaymentSheet.IntentConfiguration( mode: .setup(currency: "USD") ) { [weak self] _, _, intentCreationCallback in self?.handleConfirm(intentCreationCallback) } var configuration = PaymentSheet.Configuration() configuration.returnURL = "your-app://stripe-redirect" // Use the return url you set up in the previous step let paymentSheet = PaymentSheet(intentConfiguration: intentConfig, configuration: configuration) } func handleConfirm(_ intentCreationCallback: @escaping (Result<String, Error>) -> Void) { // ...explained later } }

PaymentSheet präsentieren

Legen Sie als Nächstes das PaymentSheet vor. Die Methode present nimmt einen Abschlussblock auf, der aufgerufen wird, wenn Kundinnen und Kunden den Bezahlvorgang beenden und das Sheet verworfen wird. Implementieren Sie den Abschlussblock, um das Ergebnis zu verarbeiten (z. B. durch Anzeige eines Zahlungsbelegs oder eines Bestätigungsbildschirms im Fall von .completed.

class MyCheckoutVC: UIViewController { func didTapCheckoutButton() { // ... paymentSheet.present(from: self) { result in switch result { case .completed: // Setup completed - show a confirmation screen. case .failed(let error): print(error) // PaymentSheet encountered an unrecoverable error. You can display the error to the user, log it, etc. case .canceled: // Customer canceled - you should probably do nothing. } } } }

Details der Zahlung bestätigen

Wenn der Kunde/die Kundin auf die Schaltfläche Einrichtung im PaymentSheet klickt, wird der Rückruf aufgerufen, den Sie an PaymentSheet.IntentConfiguration übergeben haben, mit einem STPPaymentMethod-Objekt aufgerufen, das die Zahlungsdaten des Kunden/der Kundin darstellt.

Implementieren Sie diesen Rückruf, um eine Anfrage an Ihren Server zu senden. Ihr Server erstellt ein SetupIntent und gibt sein Client-Geheimnis zurück.

Wenn die Anfrage zurückkommt, rufen Sie intentCreationCallback mit dem Client-Geheimnis Ihrer Serverantwort oder einem Fehler auf. Das PaymentSheetbestätigt den SetupIntent unter Verwendung des Client-Geheimnisses oder es wird die lokalisierte Fehlermeldung in der Nutzeroberfläche angezeigt (entweder errorDescription oder localizedDescription).

class MyCheckoutVC: UIViewController { // ... func handleConfirm(_ intentCreationCallback: @escaping (Result<String, Error>) -> Void) { // Make a request to your own server and receive a client secret or an error. let myServerResponse: Result<String, Error> = ... switch myServerResponse { case .success(let clientSecret): // Call the `intentCreationCallback` with the client secret intentCreationCallback(.success(clientSecret)) case .failure(let error): // Call the `intentCreationCallback` with the error intentCreationCallback(.failure(error)) } } }

SetupIntent erstellen
Serverseitig

Erstellen Sie einen SetupIntent auf Ihrem Server. Zahlungsmethoden können Sie über das Dashboard verwalten. Stripe wertet Einschränkungen der Zahlungsmethode und andere Parameter aus, um die Liste der unterstützten Zahlungsmethoden zu ermitteln.

Wenn der Aufruf erfolgreich ist, geben Sie den SetupIntent das Client-Geheimnis zurück. Wenn der Aufruf fehlschlägt, beheben Sie den Fehler und geben eine Fehlermeldung mit einer kurzen Erklärung an Ihre Kundin/Ihren Kunden zurück.

Notiz

Überprüfen Sie, ob alle IntentConfiguration-Eigenschaften mit Ihrem SetupIntent (zum Beispiel Nutzung) übereinstimmen.

main.rb
Ruby
Python
PHP
Node
Java
Go
.NET
No results
require 'stripe' Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
post '/create-intent' do data = JSON.parse request.body.read params = { customer: ..., # The Customer ID you previously created # In the latest version of the API, specifying the `automatic_payment_methods` parameter is optional because Stripe enables its functionality by default. automatic_payment_methods: {enabled: true}, } begin intent = Stripe::SetupIntent.create(params) {client_secret: intent.client_secret}.to_json rescue Stripe::StripeError => e {error: e.error.message}.to_json end end

Die gespeicherte Zahlungsmethode später belasten
Serverseitig

Achtung

bancontact und ideal sind standardmäßig einmalige Zahlungsmethoden. Wenn sie für die künftige Verwendung eingerichtet werden, erzeugen sie eine wiederverwendbare Art der Zahlungsmethode sepa_debit, sodass Sie sepa_debit verwenden müssen, um gespeicherte Zahlungsmethoden abzufragen.

Compliance

Sie sind für die Einhaltung aller geltenden Gesetze, Vorschriften und Netzwerkregeln verantwortlich, wenn Sie die Zahlungsdaten von Kundinnen und Kunden speichern. Wenn Sie Ihren Endkundinnen und Endkunden zuvor genutzte Zahlungsmethoden für zukünftige Einkäufe anzeigen, dürfen Sie nur Zahlungsmethoden auflisten, für die Sie bereits eine kundenseitige Zustimmung eingeholt haben, dank der Sie die Details der Zahlungsmethode für diese spezifische zukünftige Verwendung speichern können. Verwenden Sie den Parameter allow_redisplay, um zwischen Zahlungsmethoden zu unterscheiden, die mit Kundinnen und Kunden verknüpft sind und Ihren Endkundinnen und Endkunden als gespeicherte Zahlungsmethode für zukünftige Einkäufe angezeigt werden können oder nicht.

Wenn Sie eine Kundenzahlung per Off-Session vornehmen möchten, erstellen Sie anhand der Kunden-ID und der PaymentMethod-ID einen PaymentIntent. Um eine geeignete Zahlungsmethode zu finden, listen Sie die mit Ihrer Kundin/Ihrem Kunden verbundenen Zahlungsmethoden auf. In diesem Beispiel sind Karten aufgeführt, Sie können aber auch alle anderen unterstützten Zahlungsmethoden verwenden.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl -G https://api.stripe.com/v1/payment_methods \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer=
{{CUSTOMER_ID}}
\ -d type=card

Wenn Ihnen die Kunden-ID und die PaymentMethod-ID vorliegen, erstellen Sie eine PaymentIntent mit dem Betrag und der Währung der Zahlung. Legen Sie einige weitere Parameter fest, um die Off-Session-Zahlung durchzuführen:

  • Legen Sie off_session auf true fest, um anzugeben, dass die Kundin/der Kunde sich während eines Zahlungsversuchs nicht in Ihrem Bezahlvorgang befindet und somit eine Authentifizierungsanfrage eines Partners, wie z. B. eines Kartenausstellers, einer Bank oder eines anderen Zahlungsinstituts nicht erfüllen kann. Wenn ein Partner während Ihres Bezahlvorgangs eine Authentifizierung anfordert, fordert Stripe Ausnahmen unter Verwendung von Kundeninformationen aus einer vorherigen On-Session-Transaktion an. Wenn die Bedingungen für eine Ausnahme nicht erfüllt sind, gibt der PaymentIntent möglicherweise einen Fehler zurück.
  • Legen Sie den Wert der Eigenschaft confirm des PaymentIntent auf true fest. Dadurch erfolgt die Bestätigung sofort, wenn der PaymentIntent erstellt wird.
  • Setzen Sie payment_method auf die ID der PaymentMethod und Kunde/Kundin auf die ID des Kunden/der Kundin.
Command Line
Curl
Stripe-CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d amount=1099 \ -d currency=usd \ # In the latest version of the API, specifying the `automatic_payment_methods` parameter is optional because Stripe enables its functionality by default. -d "automatic_payment_methods[enabled]"=true \ -d customer="{{CUSTOMER_ID}}" \ -d payment_method="{{PAYMENT_METHOD_ID}}" \ -d return_url="https://example.com/order/123/complete" \ -d off_session=true \ -d confirm=true

Integration testen

KartennummerSzenarioSo führen Sie den Test durch
Die Kartenzahlung ist erfolgreich und es ist keine Authentifizierung erforderlich.Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an.
Für die Kartenzahlung ist eine Authentifizierung erforderlich.Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an.
Die Karte wird mit einem Ablehnungscode wie insufficient_funds abgelehnt.Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an.
Die UnionPay-Karte hat eine variable Länge von 13 bis 19 Ziffern.Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an.

Hier finden Sie weitere Informationen zum Testen Ihrer Integration.

OptionalKarten speichern
Serverseitig
Clientseitig

OptionalZahlungsmethoden mit Verzögerung zulassen
Clientseitig

OptionalApple Pay aktivieren

OptionalKartenscannen aktivieren

OptionalPassen Sie das Tabellenblatt an

War diese Seite hilfreich?
JaNein
  • Benötigen Sie Hilfe? Kontaktieren Sie den Kundensupport.
  • Nehmen Sie an unserem Programm für frühzeitigen Zugriff teil.
  • Schauen Sie sich unser Änderungsprotokoll an.
  • Fragen? Sales-Team kontaktieren.
  • LLM? Lesen Sie llms.txt.
  • Unterstützt von Markdoc