Kartenzahlungen ohne Bankauthentifizierung
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 Kund/innen weitere Zahlungsmethoden anbieten zu können.
Ein Bezahlformular erstellenClientseitig
Elements, ein Teil von Stripe.js, bietet Drop-In-Komponenten der Nutzeroberfläche zur Erfassung von Kartendaten von Kund/innen. Sie werden von Stripe gehostet und als iframe in Ihr Bezahlformular eingebunden, sodass die Kartendaten Ihrer Kund/innen nie in Kontakt mit Ihrem Code kommen.
Stripe einrichtenServerseitig
Nutzen Sie eine offizielle Library für den Zugriff auf die Stripe-API über Ihre Anwendung:
Eine Zahlung tätigenServerseitig
Richten Sie auf Ihrem Server einen Endpoint zum Empfang der Anfrage vom Client ein.
Stripe nutzt ein PaymentIntent-Objekt, um Ihre Absicht zu repräsentieren, Zahlungen von Ihren Kunden anzufordern und Abbuchungsversuche und Zahlungsstatusänderungen im gesamten Vorgang zu dokumentieren.
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.
Erstellen Sie einen HTTP-Endpoint, um auf die AJAX-Anfrage aus Schritt 1 reagieren zu können. In diesem Endpoint sollten Sie entscheiden, welchen Betrag Sie dem Kunden in Rechnung stellen. Um eine Zahlung zu erstellen, legen Sie unter Verwendung der PaymentMethod-ID aus Schritt 1 einen PaymentIntent mit folgendem Code an:
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/der Nutzer/in 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://stripe.com/docs/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://stripe.com/docs/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 Testmodus 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.
Nummer | Beschreibung |
---|---|
Bei Erfolg sofortige Verarbeitung der Zahlung. | |
Schlägt stets mit dem Ablehnungscode insufficient_funds fehl. | |
Erfordert eine Authentifizierung, die in dieser Integration zu einem Fehler führt. Der Ablehnungscode lautet dann authentication_not_handled . |
Siehe dazu die vollständige Liste der Testkarten.
Upgrade Ihrer Integration zur Authentifizierung von Karten
Glückwunsch! Sie haben eine Zahlungsintegration für grundlegende Kartenzahlungen erstellt. Bitte beachten Sie, dass diese Integration alle Karten ablehnt, die bei der Zahlung eine Authentifizierung erfordern.
Kommt es vermehrt zu Zahlungen, die im Dashboard als Failed
aufgelistet werden, ist es an der Zeit für ein Upgrade Ihrer Integration. Die globale Integration von Stripe verarbeitet diese Zahlungen, statt sie automatisch abzulehnen.