Möchten Sie Stripe Billing, Tax, Rabatte, Versand oder Währungsumrechnung nutzen?
Wir entwickeln eine Payment Element-Integration, die Abonnements, Steuern, Rabatte, Versand und Währungsumrechnung verwaltet. Weitere Informationen erhalten Sie im Leitfaden Erstellen Sie eine Bezahlseite.
Erfahren Sie, wie Sie Ihre vorhandenen Karten und die Charges-API-Integration umstellen
Die Migration Ihres Zahlungsstroms kann eine große Herausforderung sein. Eine sichere Methode besteht darin, die Payment Intents API schrittweise zu implementieren und sie parallel mit der Charges API zu nutzen. Um dies zu tun, können Sie die Migration in die folgenden Schritte aufteilen:
Gegebenenfalls: Migrieren Sie den Code, der Daten aus den Charge-Eigenschaften ausliest, damit Sie einen konsistenten Lesepfad zwischen durch die Charges API erstellten Buchungen und durch die Payment Intents API erstellten Buchungen einrichten können. So wird eine leseseitige Integration sichergestellt, die sowohl für Ihre alten als auch für Ihre neuen Zahlungsintegrationen funktioniert.
Stellen Sie Ihre bestehende Charges API-Integration auf Web, iOS und Android um, um die Payment Intents API nutzen zu können.
Ihre API-Version und Client-Bibliothek aktualisieren
Die Payment Intents API funktioniert zwar in allen API-Versionen, aber wir empfehlen ein Upgrade auf die aktuelle API-Version. Wenn Sie eine API-Version verwenden, die älter ist als die auf den 11.02.2019 datierte Version, beachten Sie bitte die folgenden beiden Änderungen, wenn Sie die Codebeispiele bearbeiten:
requires_source wurde in requires_payment_method umbenannt
requires_source_action wurde in requires_action umbenannt
Außerdem sollten Sie ein Upgrade auf die neueste Bibliotheksversion durchführen, wenn Sie eins unserer SDKs verwenden, damit Sie die Payment Intents API nutzen können.
Stellen Sie Zahlungsabläufe für Einmalzahlungen um
Eine mit Stripe.js entwickelte Integration umfasst folgende Schritte:
Registrieren Sie Ihre Absicht, Zahlungen auf Server-Seite einzuziehen
Erfassen Sie die Zahlungsdetails auf Client-Seite
Veranlassen Sie die Erstellung einer Zahlung
Wickeln Sie die Bestellung des/der Kund/in auf Server-Seite ab
Schritt 1: Registrieren Sie Ihre Absicht, Zahlungen auf Server-Seite einzuziehen
Schritt 2: Erfassen Sie die Zahlungsdetails auf Client-Seite
Verwenden Sie die Funktion confirmCardPayment, die Zahlungsinformationen erfasst und diese direkt an Stripe weitergibt.
Vorher
Nachher
stripe.createToken(
cardElement
).then(function(token){// Send token to server});
stripe.confirmCardPayment(INTENT_SECRET_FROM_STEP_1,{
payment_method:{card: cardElement}}).then(function(result){if(result.error){// Display error.message in your UI.}else{// The payment has succeeded// Display a success message}});
Schritt 3: Veranlassen Sie die Erstellung einer Zahlung
In Ihrer vorhandenen Integration besteht der letzte Schritt darin, mithilfe von tokenisierten Zahlungsinformationen eine Zahlung auf Ihrem Server zu erstellen. Dies ist nicht mehr erforderlich, da die im vorherigen Schritt aufgerufene Funktion confirmCardPayment die Erstellung der Zahlung veranlasst.
Schritt 4: Wickeln Sie die Bestellung des/der Kund/in ab
Bei der automatischen Bestätigung wird die Zahlung für Sie asynchron basierend auf Kundenaktionen auf der Client-Seite erstellt. Sie müssen daher Webhooks überwachen, um zu ermitteln, wann die Zahlung erfolgreich abgeschlossen wurde. Um Schritte wie die Auftragsabwicklung nach erfolgreicher Zahlung eines Kunden/einer Kundin auszuführen, unterstützen Sie Webhooks und überwachen Sie das Ereignis payment_intent.succeeded.
Vorher
Nachher
Bei erfolgreicher Zahlung abwickeln.
Abonnieren Sie den Webhook payment_intent.succeeded und führen Sie die Abwicklung im Webhook-Handler aus.
Nachdem Sie Ihre Umstellung abgeschlossen haben, nutzen Sie die Testkarten im folgenden Abschnitt, um zu verifizieren, dass Ihre aktualisierte Integration die 3D-Secure-Authentifizierung verarbeiten kann.
Migrieren Sie Ihre Integration zur Speicherung von Karten in Customer-Objekten
Eine Payment Intents API-Integration, die Karteninformationen im Bezahlvorgang erfasst, umfasst folgende Schritte:
Registrieren Sie Ihre Absicht, Zahlungen auf Server-Seite einzuziehen
Erfassen Sie die Zahlungsdetails auf Client-Seite
Veranlassen Sie die Erstellung einer Zahlung
Wickeln Sie die Bestellung des/der Kund/in auf Server-Seite ab
Schritt 1: Registrieren Sie Ihre Absicht, Zahlungen auf Server-Seite einzuziehen
Erstellen Sie einen PaymentIntent auf Ihrem Server. Setzen Sie setup_future_usage auf off_session, wenn Sie planen, Nutzerkonten vorwiegend zu belasten, während sich die Nutzer/innen außerhalb Ihrer Anwendung befinden, oder auf on_session, wenn Sie abbuchen möchten, während der/die Nutzer/in anwesend ist. Wenn Sie die Karte sowohl für On-Session- als auch Off-Session-Zahlungen verwenden möchten, wählen Sie off_session. Durch Angabe des Parameters setup_future_usage zusammen mit einer Kunden-ID wird die resultierende PaymentMethod für diesen Kunden/diese Kundin gespeichert, nachdem der PaymentIntent bestätigt und jede erforderliche Aktion von Seiten des Kunden/der Kundin abgeschlossen wurde. Machen Sie als Nächstes den PaymentIntent auf Client-Seite zugänglich.
Schritt 2: Erfassen Sie die Zahlungsdetails auf Client-Seite
Verwenden Sie die Funktion confirmCardPayment, die Zahlungsinformationen erfasst und diese direkt an Stripe weitergibt.
Vorher
Nachher
stripe.createToken(// or stripe.createSource
cardElement
).then(function(token){// Send token to server});
stripe.confirmCardPayment('{{INTENT_SECRET_FROM_STEP_1}}',{
payment_method:{card: cardElement},}).then(function(result){if(result.error){// Display error.message in your UI.}else{// The payment has succeeded// Display a success message}});
Hängen Sie schließlich die Zahlungsmethode (paymentIntent.payment_method) an den Kunden/die Kundin an.
Schritt 3: Veranlassen Sie die Erstellung einer Zahlung
In Ihrer vorhandenen Integration besteht der letzte Schritt darin, mithilfe von tokenisierten Zahlungsinformationen eine Zahlung auf Ihrem Server zu erstellen. Dies ist nicht mehr erforderlich, da die im vorherigen Schritt aufgerufene Funktion confirmCardPayment die Erstellung der Zahlung veranlasst.
Schritt 4: Wickeln Sie die Bestellung des/der Kund/in ab
Bei der automatischen Bestätigung wird die Zahlung für Sie asynchron basierend auf Kundenaktionen auf der Client-Seite erstellt. Sie müssen daher Webhooks überwachen, um zu ermitteln, wann die Zahlung erfolgreich abgeschlossen wurde. Um Schritte wie die Auftragsabwicklung nach erfolgreicher Zahlung eines Kunden/einer Kundin auszuführen, unterstützen Sie Webhooks und überwachen Sie das Ereignis payment_intent.succeeded.
Vorher
Nachher
Bei erfolgreicher Zahlung abwickeln.
Abonnieren Sie den Webhook payment_intent.succeeded und führen Sie die Abwicklung im Webhook-Handler aus.
Nachdem Sie Ihre Umstellung abgeschlossen haben, nutzen Sie die Testkarten im folgenden Abschnitt, um zu verifizieren, dass Ihre aktualisierte Integration die 3D-Secure-Authentifizierung verarbeiten kann.
Greifen Sie auf gespeicherte Zahlungsmethoden zu
Um zuvor gespeicherte Karten, Zahlungsquellen und PaymentMethods des Kunden/der Kundin anzuzeigen, können Sie die Zahlungsmethoden auflisten lassen, anstatt die Eigenschaft sources des Kundenobjekts auszulesen. Dies ist erforderlich, weil einer Kundin/einem Kunden hinzugefügte neue PaymentMethods nicht in der Eigenschaft „sources“ des Kundenobjekts dupliziert werden.
Es ist wichtig, dass Sie Ihre Integration sorgfältig testen, um sicherzustellen, dass sowohl die Karten korrekt verarbeitet werden, für die eine zusätzliche Authentifizierung erforderlich ist, als auch solche, für die das nicht gilt. Verwenden Sie diese Kartennummern im Testmodus mit beliebigem Ablaufdatum in der Zukunft und beliebiger dreistelliger Prüfziffer, um Ihre Integration zu validieren, wenn eine Authentifizierung erforderlich ist und wenn sie nicht erforderlich ist.
Nummer
Authentifizierung
Beschreibung
Bei Einrichtung oder der ersten Transaktion erforderlich
Bei dieser Testkarte ist eine Authentifizierung für Einmalzahlungen erforderlich. Wenn Sie die Karte jedoch mit der Setup Intents API einrichten und die gespeicherte Karte für künftige Zahlungen nutzen, ist keine weitere Authentifizierung erforderlich.
Pflichtfeld
Diese Testkarte erfordert bei allen Transaktionen eine Authentifizierung.
Pflichtfeld
Diese Testkarte erfordert eine Authentifizierung, Zahlungen werden nach einer fehlgeschlagenen Authentifizierung allerdings mit dem Fehlercode insufficient_funds abgelehnt.
Unterstützt
Diese Testkarte unterstützt die Authentifizierung mittels 3D Secure 2, verlangt diese aber nicht. Für Zahlungen mit dieser Karte ist im Testmodus keine zusätzliche Authentifizierung erforderlich, es sei denn, Ihre Radar-Regeln für den Testmodus langen eine Authentifizierung.
Nutzen Sie diese Karte in Ihrer Anwendung oder der Zahlungsdemo, um verschiedene Verhaltensweisen zu sehen.