Kartenzahlungen ohne Bankauthentifizierung
Erstellen Sie eine einfachere Integration mit regionalen Beschränkungen.
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 installierenClientseitig
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.
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.
Kartendaten erfassenClientseitig
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:
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.
Zahlung tätigenServerseitig
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:
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.
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
Im Test-Modus können Sie mehrere Testkarten nutzen, um sicherzustellen, dass die Integration bereit ist. Die Karten können Sie mit beliebigen CVCs, Postleitzahlen und künftigen Auslaufdaten nutzen.
Die Nummer | Beschreibung |
---|---|
Zahlung ist erfolgreich und wird sofort verarbeitet. | |
Schlägt immer mit dem Ablehnungscode insufficient_ fehl. | |
Erfordert eine Authentifizierung, die in dieser Integration zu einem authentication_ -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.