Weiter zum Inhalt
Konto erstellen
oder
anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellen
Anmelden
Jetzt starten
Zahlungen
Finanzautomatisierung
Plattformen und Marktplätze
Geldmanagement
Entwickler-Tools
Jetzt starten
Zahlungen
Finanzautomatisierung
Jetzt starten
Zahlungen
Finanzautomatisierung
Plattformen und Marktplätze
Geldmanagement
Ü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
    Embedded Payment Element
    Ausgehender Link für In-App-Käufe
    Adressen erfassen
    Karten in den USA und Kanada
      Karten ohne Authentifizierung speichern
      Upgrade für die Authentifizierungsverarbeitung
Zahlungsmethoden
Zahlungsmethoden hinzufügen
Zahlungsmethoden verwalten
Schnellerer Bezahlvorgang mit Link
Zahlungsschnittstellen
Payment Links
Checkout
Web Elements
In-App-Elements
Zahlungsszenarien
Nutzerdefinierte Zahlungsabläufe
Flexibles Acquiring
Orchestrierung
Präsenzzahlungen
Terminal
Andere Stripe-Produkte
Financial Connections
Krypto
Climate
StartseiteZahlungenBuild an in-app integration

Kartenzahlungen ohne Bankauthentifizierung

Erstellen Sie eine einfachere mobile Integration mit regionalen Beschränkungen.

Seite kopieren

Diese Integration unterstützt Unternehmen, die nur Karten aus den USA und Kanada akzeptieren. Sie ist zwar zunächst einfacher, lässt sich aber nicht ausreichend skalieren, wenn der Kundenstamm international ist.

Wie funktioniert diese Integration?

Worin unterscheidet sie sich von der globalen Integration?

Wachsende oder international tätige Unternehmen sollten die globale Integration von Stripe nutzen, um Bankanfragen zur Zwei-Faktor-Authentifizierung unterstützen und Kundinnen/Kunden weitere Zahlungsmethoden anbieten zu können.

Stripe-iOS-SDK installieren
Clientseitig

Zunächst benötigen Sie ein Stripe-Konto. Jetzt regristrieren.

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. In Xcode, select File > Add Package Dependencies… and enter https://github.com/stripe/stripe-ios-spm as the repository URL.
  2. Wählen auf unserer Veröffentlichungsseite die neueste Version aus.
  3. Fügen Sie das Produkt StripePaymentsUI zum Ziel Ihrer App hinzu.

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.

AppDelegate.swift
Swift
import UIKit import StripePaymentsUI @main class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { StripeAPI.defaultPublishableKey =
"pk_test_TYooMQauvdEDq54NiTphI7jx"
// do any other necessary launch configuration return true } }

Notiz

Use your test keys while you test and develop, and your live mode keys when you publish your app.

Kartendaten erfassen
Clientseitig

Erfassen Sie Kartendaten sicher auf dem Client mit STPPaymentCardTextField, einer Drop-In-Komponente der Nutzeroberfläche aus dem SDK, die die Kartennummer, das Ablaufdatum, die Prüfziffer (CVC) und die Postleitzahl erfasst.

STPPaymentCardTextField führt Validierung und Formatierung dynamisch aus.

Erstellen Sie eine Instanz der Kartenkomponente und eine Zahlungsschaltfläche mit folgendem Code:

CheckoutViewController.swift
Swift
import UIKit import StripePaymentsUI class CheckoutViewController: UIViewController { lazy var cardTextField: STPPaymentCardTextField = { let cardTextField = STPPaymentCardTextField() return cardTextField }() lazy var payButton: UIButton = { let button = UIButton(type: .custom) button.layer.cornerRadius = 5 button.backgroundColor = .systemBlue button.titleLabel?.font = UIFont.systemFont(ofSize: 22) button.setTitle("Pay", for: .normal) button.addTarget(self, action: #selector(pay), for: .touchUpInside) return button }() override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .white let stackView = UIStackView(arrangedSubviews: [cardTextField, payButton]) stackView.axis = .vertical stackView.spacing = 20 stackView.translatesAutoresizingMaskIntoConstraints = false view.addSubview(stackView) NSLayoutConstraint.activate([ stackView.leftAnchor.constraint(equalToSystemSpacingAfter: view.leftAnchor, multiplier: 2), view.rightAnchor.constraint(equalToSystemSpacingAfter: stackView.rightAnchor, multiplier: 2), stackView.topAnchor.constraint(equalToSystemSpacingBelow: view.safeAreaLayoutGuide.topAnchor, multiplier: 2), ]) } @objc func pay() { // ... } }

Führen Sie Ihre App aus und stellen Sie sicher, dass auf der Zahlungsseite die Kartenkomponente angezeigt wird. Wenn die Kundin/der Kunde auf Bezahlen tippt , rufen Sie createPaymentMethod auf , um die Kartenangaben zu erfassen und eine PaymentMethod zu erstellen. Übermitteln Sie die ID der PaymentMethod an Ihren Server.

CheckoutViewController.swift
Swift
func pay() { // Create a PaymentMethod with the card text field's card details STPAPIClient.shared.createPaymentMethod(with: cardTextField.paymentMethodParams) { (paymentMethod, error) in guard let paymentMethod = paymentMethod else { // Display the error to the customer return } let paymentMethodID = paymentMethod.stripeId // Send paymentMethodID to your server for the next step } }

Zahlung tätigen
Serverseitig

Richten Sie auf Ihrem Server einen Endpoint zum Empfang der Anfrage vom Client ein. Verwenden Sie die offiziellen Bibliotheken für den Zugriff auf die Stripe API von Ihrem Server aus:

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Stripe verwendet ein PaymentIntent-Objekt, um Ihre Absicht darzustellen, Zahlungen von Kundinnen und Kunden einzuziehen, und verfolgt Abbuchungsversuche und Zahlungsstatusänderungen während des gesamten Vorgangs.

Erstellen Sie einen HTTP-Endpoint, um auf die Anfrage aus Schritt 2. zu reagieren. In diesem Endpoint sollten Sie entscheiden, welchen Betrag Sie dem Kunden/der Kundin in Rechnung stellen. Um eine Zahlung zu erstellen, erzeugen Sie einen PaymentIntent mit der PaymentMethod-ID aus Schritt 2 mit folgenden Parametern:

Entscheiden Sie immer auf dem Server, welcher Betrag abgebucht werden soll, nicht auf dem Client. So wird verhindert, dass böswillige Kunden ihre eigenen Preise festlegen können.

Command Line
Curl
# Check the status of the PaymentIntent to make sure it succeeded curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
: \ -d amount=1099 \ -d currency=usd \ # A PaymentIntent can be confirmed some time after creation, # but here we want to confirm (collect payment) immediately. -d confirm=true \ -d payment_method="{{PAYMENT_METHOD_ID}}" \ # If the payment requires any follow-up actions from the # customer, like two-factor authentication, Stripe will error # and you will need to prompt them for a new payment method. -d error_on_requires_action=true

Achtung

Wenn Sie error_on_requires_action bei der Bestätigung einer Zahlung auf true setzen, lässt Stripe die Zahlung automatisch fehlschlagen, wenn eine Zwei-Faktor-Authentifizierung des Nutzers/der Nutzerin erforderlich ist.

Antwort der Payment Intents API

Wenn eine Zahlung über die API erfolgt, enthält die Antwort einen PaymentIntent-Status. War die Zahlung erfolgreich, lautet der Status succeeded.

{ "id": "pi_0FdpcX589O8KAxCGR6tGNyWj", "object": "payment_intent", "amount": 1099, "charges": { "object": "list", "data": [ { "id": "ch_GA9w4aF29fYajT", "object": "charge", "amount": 1099, "refunded": false, "status": "succeeded", } ] }, "client_secret": "pi_0FdpcX589O8KAxCGR6tGNyWj_secret_e00tjcVrSv2tjjufYqPNZBKZc", "currency": "usd", "last_payment_error": null, "status": "succeeded", }

Wurde die Zahlung abgelehnt, enthält die Antwort den Fehlercode und eine Fehlermeldung. Hier ist ein Beispiel einer Zahlung, die fehlgeschlagen ist, weil für die Karte eine Zwei-Faktor-Authentifizierung erforderlich war.

{ "error": { "code": "authentication_required", "decline_code": "authentication_not_handled", "doc_url": "https://docs.stripe.com/error-codes#authentication-required", "message": "This payment required an authentication action to complete, but `error_on_requires_action` was set. When you're ready, you can upgrade your integration to handle actions at https://stripe.com/docs/payments/payment-intents/upgrade-to-handle-actions.", "payment_intent": { "id": "pi_1G8JtxDpqHItWkFAnB32FhtI", "object": "payment_intent", "amount": 1099, "status": "requires_payment_method", "last_payment_error": { "code": "authentication_required", "decline_code": "authentication_not_handled", "doc_url": "https://docs.stripe.com/error-codes#authentication-required", "message": "This payment required an authentication action to complete, but `error_on_requires_action` was set. When you're ready, you can upgrade your integration to handle actions at https://stripe.com/docs/payments/payment-intents/upgrade-to-handle-actions.", "type": "card_error" }, }, "type": "card_error" } }

Integration testen

In einer Testumgebung können Sie mehrere Testkarten nutzen, um die Funktionsfähigkeit Ihrer Integration sicherzustellen. Verwenden Sie sie mit einer beliebigen Prüfziffer (CVC), einer Postleitzahl und einem Ablaufdatum in der Zukunft.

Die NummerBeschreibung
Zahlung ist erfolgreich und wird sofort verarbeitet.
Schlägt immer mit dem Ablehnungscode insufficient_funds fehl.
Erfordert eine Authentifizierung, die in dieser Integration zu einem authentication_not_handled-Fehler führt.

Sehen Sie sich die vollständige Liste der Testkarten an.

Upgrade Ihrer Integration zur Authentifizierung von Karten

Glückwunsch! Sie haben eine Zahlungsintegration für grundlegende Kartenzahlungen erstellt. Beachten Sie, dass diese Integration Karten ablehnt, die während der Zahlung eine Authentifizierung erfordern.

Wenn Sie vermehrt Zahlungen im Dashboard mit dem Status Failed sehen, ist es Zeit für ein Upgrade Ihrer Integration. Die globale Integration von Stripe verarbeitet diese Zahlungen, statt sie automatisch abzulehnen.

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