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 zu erstellen, lässt sich jedoch nicht ausreichend skalieren, wenn der Kundenstamm international wird.
Funktionsweise dieser Integration
In Regionen wie Europa und Indien verlangen Banken von ihren Kundinnen und Kunden oft eine Zwei-Faktor-Authentifizierung, um ihre Einkäufe zu bestätigen. Wenn Sie hauptsächlich in den USA und Kanada tätig sind, können Sie die Kartenauthentifizierung ignorieren und so Ihre Integration einfach halten, zumal die Banken in diesen Regionen nur selten eine Authentifizierung verlangen.
Verlangt eine Bank dennoch eine Authentifizierung, wird die Zahlung mit dieser Basisintegration direkt abgelehnt (ähnlich wie eine abgelehnte Karte), anstatt die Zahlung asynchron mittels Authentifizierung abzuschließen. Der Vorteil liegt darin, dass die Zahlung sofort genehmigt oder abgelehnt wird und die Zahlungsbestätigung auf dem Server erfolgt, sodass Sie ohne Webhook umgehend mit den Aktionen nach der Zahlung fortfahren können.
Vergleich zur globalen Integration
| Funktion | Diese Integration | Globale Integration |
|---|---|---|
| Kunden-Zahlungsformular | ✔ | ✔ |
| Sensible Daten gelangen nicht auf Ihren Server | ✔ | ✔ |
| Funktioniert mit Kund/innen in den USA und Kanada | ✔ | ✔ |
| Zahlungen mit falschen Kartendaten oder unzureichender Deckung werden abgelehnt | ✔ | ✔ |
| Zahlungen mit Bankauthentifizierung werden abgelehnt | ✔ | |
| Funktioniert mit internationalen Kund/innen | ✔ | |
| Kartenzahlungen mit Bankauthentifizierung werden automatisch abgewickelt | ✔ | |
| Für die Bestellabwicklung werden Webhooks empfohlen | ✔ | |
| Einfache Skalierung auf weitere Zahlungsmethoden (beispielsweise Lastschriften) | ✔ |
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.
Ein Bezahlformular erstellenClientseitig
Elements, ein Teil von Stripe.js, bietet Drop-In-Komponenten der Nutzeroberfläche zur Erfassung von Kartendaten von Kundinnen und Kunden. Stripe hostet diese und bindet sie in Ihrem Zahlungsformular als iFrame ein, sodass die Kartendaten Ihrer Kundinnen/Kunden 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 verwendet ein PaymentIntent-Objekt, um Ihre Absicht darzustellen, eine Kundenzahlung einzuziehen. Dabei werden die Abbuchungsversuche und Zahlungsstatusänderungen während des gesamten Vorgangs dokumentiert.
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/der Kundin in Rechnung stellen. Um eine Zahlung zu erstellen, legen Sie unter Verwendung der Zahlungsmethode-ID aus Schritt 1 einen PaymentIntent mit folgendem Code an:
Warnung
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
Stripe stellt mehrere Testkarten zur Verfügung, die Sie in einer Sandbox verwenden können, um sicherzustellen, dass diese Integration bereit ist. Verwenden Sie sie mit einer beliebigen Prüfziffer (CVC), einer Postleitzahl und einem Ablaufdatum in der Zukunft.
| Nummer | Beschreibung |
|---|---|
| Bei Erfolg sofortige Verarbeitung der Zahlung. | |
Schlägt stets mit dem Ablehnungscode insufficient_ fehl. | |
Erfordert eine Authentifizierung, die in dieser Integration zu einem Fehler führt. Der Ablehnungscode lautet dann authentication_. |
Siehe dazu die vollständige Liste der Testkarten.
Upgrade Ihrer Integration zur Authentifizierung von Karten
Ihre Zahlungsintegration für einfache Kartenzahlungen ist jetzt abgeschlossen. Diese Integration lehnt Karten ab, die während der Zahlung eine Authentifizierung erfordern.
Wenn Zahlungen im Dashboard als Failed angezeigt werden, müssen Sie Ihre Integration aktualisieren. Die globale Integration von Stripe verarbeitet diese Zahlungen, anstatt sie automatisch abzulehnen.