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
ÜbersichtAlle Produkte ansehen
Beginnen Sie mit der Entwicklung
Entwicklung starten
Beispiel-Projekte
Informationen zu APIs
    API-Tour
    Payment Intents API
      So funktionieren PaymentIntents
      Statusaktualisierung für Zahlungen
      Asynchronous Capture
      Mit Abbuchungen vergleichen
    Setup Intents API
    Zahlungsmethoden
    Ältere API
    Veröffentlichungsphase
Aufbau mit LLMs
Stripe verwenden, ohne Code zu erstellen
Stripe einrichten
Konto erstellen
Produkte und Preise
Web-Dashboard
Mobiles Dashboard
Auf Stripe umsteigen
Kundendaten migrieren
Zahlungsdaten migrieren
Abonnements migrieren
Betrugsrisiko verwalten
Betrug verstehen
Betrugsprävention von Radar
Zahlungsanfechtungen verwalten
Identitäten verifizieren
Regulatorische Unterstützung
StartseiteJetzt startenAbout the APIsPayment Intents API

Statusaktualisierung für Zahlungen

Überwachen und verifizieren Sie den Zahlungsstatus, um auf erfolgreiche und fehlgeschlagene Zahlungen reagieren zu können.

Seite kopieren

Aktualisierung von PaymentIntents als Antwort auf Aktionen des Kunden/der Kundin oder der Zahlungsmethode. Ihre Integration kann den PaymentIntent untersuchen, um den Status des Zahlungsvorgangs zu ermitteln, damit Sie Maßnahmen für Ihr Unternehmen ergreifen oder auf Status, die weitere Intervention erfordern, reagieren können.

Sie können das Stripe-Dashboard auch verwenden, um Ihr Konto so zu konfigurieren, dass es Sie per E-Mail über den Zahlungsstatus informiert, z. B. bei erfolgreichen Zahlungen. Ändern Sie Ihre E-Mail-Benachrichtigungen in Ihren Nutzereinstellungen.

PaymentIntent-Status auf dem Client prüfen

Beim Abschließen einer Zahlung auf dem Client über die Funktion confirmCardPayment können Sie den zurückgegebenen PaymentIntent prüfen, um seinen aktuellen Status zu ermitteln:

(async () => { const {paymentIntent, error} = await stripe.confirmCardPayment(clientSecret); if (error) { // Handle error here } else if (paymentIntent && paymentIntent.status === 'succeeded') { // Handle successful payment here } })();

Nachfolgend finden Sie mögliche Ergebnisse der Verwendung der confirmCardPayment-Funktion:

EreignisWas ist passiertErwartete Integration
Wird mit einer PaymentIntent beigelegtDer Kunde/die Kundin hat die Zahlung auf Ihrer Zahlungsseite abgeschlossenDen Kunden/die Kundin über erfolgreiche Zahlung informieren
Wird mit einem Fehler beigelegtDie Zahlung des Kunden/der Kundin auf Ihrer Zahlungsseite ist fehlgeschlagenEine Fehlermeldung anzeigen und Ihren Kunden/Ihre Kundin zu einem erneuten Zahlungsversuch auffordern

Das von confirmCardPayment zurückgegebene Promise wird erfüllt, wenn der Zahlungsvorgang entweder abgeschlossen oder mit einem Fehler fehlgeschlagen ist. Wenn er erfolgreich abgeschlossen wird und einen PaymentIntent zurückgibt, wird der Status immer als succeeded angezeigt (oder als requires_capture bei späterer Erfassung). Wenn bei der Zahlung ein weiterer Schritt, beispielsweise eine Authentifizierung, erforderlich ist, wird das Promise erst erfüllt, wenn dieser Schritt abgeschlossen ist oder ein Timeout auftritt.

PaymentIntent-Status auf dem Client prüfen ohne Verwendung von confirmCardPayment

Um den Status eines PaymentIntent ohne Verwendung der Funktion confirmCardPayment zu prüfen, rufen Sie ihn unabhängig davon mit der Funktion retrievePaymentIntent ab und übergeben Sie das Client-Geheimnis.

Nachfolgend finden Sie einige mögliche Status des PaymentIntent nach einer Bestätigung.

Was ist passiertErwarteter PaymentIntent-Status
Der Kunde/die Kundin hat die Zahlung auf Ihrer Zahlungsseite abgeschlossensucceeded
Der Kunde/die Kundin hat die Zahlung nicht abgeschlossenrequires_action
Die Zahlung des Kunden/der Kundin auf Ihrer Zahlungsseite ist fehlgeschlagenrequires_payment_method

Erfahren Sie mehr über die PaymentIntent-Status.

(async () => { const {paymentIntent} = await stripe.retrievePaymentIntent(clientSecret); if (paymentIntent && paymentIntent.status === 'succeeded') { // Handle successful payment here } else { // Handle unsuccessful, processing, or canceled payments and API errors here } })();

Überwachen Sie eine PaymentIntent mit Webhooks

Stripe kann Webhook-Ereignisse an Ihren Server senden, um Sie zu benachrichtigen, wenn sich der Status einer PaymentIntent ändert. Dies ist hilfreich, um beispielsweise zu ermitteln, wann Sie die Waren und Dienstleistungen abwickeln müssen.

Versuchen Sie nicht, die Ausführung auf der Client-Seite zu verarbeiten, da Kunden/Kundinnen die Seite nach Abschluss der Zahlung, jedoch vor Beginn des Abwicklungsprozesses verlassen können. Verwenden Sie stattdessen Webhooks, um das Ereignis payment_intent.succeeded zu überwachen und dessen Abschluss asynchron zu verarbeiten, statt zu versuchen, die Abwicklung auf der Client-Seite zu veranlassen.

Vorsicht

Technisch ist es möglich, Abfragen statt Webhooks zu verwenden, um die von asynchronen Abläufen ausgelösten Änderungen zu überwachen. Dazu müssen Sie einen PaymentIntent wiederholt abrufen, um seinen Status zu prüfen. Dies ist jedoch wesentlich weniger verlässlich und kann zu Problemen in Bezug auf Ratenbegrenzungen führen. Stripe setzt Ratenbegrenzungen für API-Anfragen um, verwenden Sie Abfragen daher mit Bedacht.

Um ein Webhook-Ereignis zu verarbeiten, erstellen Sie eine Route auf Ihrem Server und konfigurieren Sie einen entsprechenden Webhook-Endpoint im Dashboard. Stripe sendet das payment_intent.succeeded-Ereignis, wenn die Zahlung erfolgt ist und das payment_intent.payment_failed-Ereignis, wenn die Zahlung fehlschlägt.

Die Webhook-Nutzlast enthält das PaymentIntent-Objekt. Das folgende Beispiel erklärt den Umgang mit beiden Ereignissen:

Ruby
require 'sinatra' require 'stripe' post '/webhook' do payload = request.body.read sig_header = request.env['HTTP_STRIPE_SIGNATURE'] event = nil begin event = Stripe::Webhook.construct_event( payload, sig_header, endpoint_secret ) rescue JSON::ParserError => e # Invalid payload status 400 return rescue Stripe::SignatureVerificationError => e # Invalid signature status 400 return end case event['type'] when 'payment_intent.succeeded' intent = event['data']['object'] puts "Succeeded:", intent['id'] # Fulfill the customer's purchase when 'payment_intent.payment_failed' intent = event['data']['object'] error_message = intent['last_payment_error'] && intent['last_payment_error']['message'] puts "Failed:", intent['id'], error_message # Notify the customer that payment failed end status 200 end

Wenn eine Zahlung fehlgeschlagen ist, finden Sie weitere Details, indem Sie die Eigenschaft last_payment_error des PaymentIntent untersuchen. Sie können den Kunden/die Kundin benachrichtigen, dass seine/ihre Zahlung nicht erfolgt ist und ihn/sie auffordern, es mit einer anderen Zahlungsmethode erneut zu versuchen. Verwenden Sie denselben PaymentIntent, um den Kauf des Kunden/der Kundin nachzuverfolgen.

Bestimmte Webhook-Ereignisse verarbeiten

Die folgende Liste beschreibt, wie Sie Webhook-Ereignisse verarbeiten:

EreignisBeschreibungNächste Schritte
processingDie Zahlung der Kundin/des Kunden wurde erfolgreich an Stripe übermittelt. Dies gilt nur für Zahlungsmethoden mit verzögerten Benachrichtigungen.Warten Sie, bis die initiierte Zahlung erfolgt oder fehlschlägt.
succeededDie Kundenzahlung war erfolgreichFühren Sie die Bestellung der gekauften Waren oder Dienstleistungen aus
amount_capturable_updatedDie Zahlung des Kunden/der Kundin ist autorisiert und kann erfasst werdenErfassen Sie die Gelder, die für die Zahlung verfügbar sind
payment_failedDie Zahlung des Kunden/der Kundin wurde vom Kartennetzwerk abgelehnt oder ist aus einem anderen Grund verfallenKontaktieren Sie Ihren Kunden/Ihre Kundin per E-Mail oder Push-Benachrichtigung und fordern Sie ihn/sie auf, eine andere Zahlungsmethode anzugeben

Verwenden Sie die Stripe-CLI, um Webhooks lokal zu testen. Nach der Installation können Sie Ereignisse an Ihren Server weiterleiten:

Command Line
stripe listen --forward-to localhost:4242/webhook Ready! Your webhook signing secret is '{{WEBHOOK_SIGNING_SECRET}}' (^C to quit)

Erfahren Sie mehr über die Einrichtung von Webhooks.

Zahlungen auf einer PaymentIntent identifizieren

Wenn Sie versuchen, eine Kundenzahlung einzuziehen, erstellt der PaymentIntent eine Abbuchung. Zeigen Sie die latest_charge-Eigenschaft des PaymentIntent an, um die ID der aktuellen Zahlung prüfen zu können:

Ruby
# Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
intent = Stripe::PaymentIntent.retrieve('{{PAYMENT_INTENT_ID}}') latest_charge = intent.latest_charge

Um alle Abbuchungen im Zusammenhang mit einem PaymentIntent anzuzeigen, einschließlich aller fehlgeschlagener Abbuchungen, listen Sie alle Abbuchungen auf und geben Sie den payment_intent​-Parameter an.

Command Line
cURL
curl -G https://api.stripe.com/v1/charges \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d payment_intent=
{{PAYMENT_INTENT_ID}}

Weitere Aktionen

Für manche Zahlungsmethoden sind zusätzliche Schritte erforderlich, wie beispielsweise die Authentifizierung, um den Zahlungsvorgang abzuschließen. Stripe.js verarbeitet diese automatisch bei der Bestätigung der PaymentIntent. Wenn Sie jedoch über eine fortgeschrittene Integration verfügen, sollten Sie diese manuell verarbeiten.

Die Eigenschaft next_action des PaymentIntent zeigt den nächsten Schritt an, den Ihre Integration verarbeiten muss, um die Zahlung abzuschließen. Die Art der potenziellen nächsten Schritte kann sich je nach Zahlungsmethode unterscheiden. Eine Liste der möglichen nächsten Aktionen finden Sie in der API-Dokumentation.

In der Dokumentation zu den Zahlungsmethoden finden Sie weitere Informationen zur Handhabung der erforderlichen nächsten Aktionen.

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