Zahlungen für bestehende Kundinnen/Kunden
Erfahren Sie, wie Sie eine bestehende Zahlungsmethode belasten, während ein Kunde/eine Kundin On-Session ist.
Verwenden Sie die Direct API-Implementierung, um die Anzeige vorhandener Zahlungsmethoden vollständig zu steuern.
Zahlungsmethoden anzeigenClientseitigServerseitig
Rufen Sie den Endpoint Zahlungsmethode auflisten mit dem Parameter allow_
auf, um die wiederverwendbaren Zahlungsmethoden eines Kunden/einer Kundin abzurufen.
Verwenden Sie die API-Antwortdaten, um die Zahlungsmethoden in Ihrer eigenen Nutzeroberfläche anzuzeigen, und lassen Sie den Kunden/die Kundin eine auswählen.
PaymentIntent erstellenServerseitig
Erstellen Sie ein PaymentIntent, um zu versuchen, den Kunden/die Kundin mit der von ihm/ihr ausgewählten Zahlungsmethode zu belasten.
Wenn der API-Aufruf mit einer 402-Antwort fehlschlägt, bedeutet dies, dass die Zahlung abgelehnt wurde. Bitten Sie den Kunden/die Kundin, es erneut zu versuchen oder eine andere Zahlungsmethode zu verwenden.
PaymentIntent-Status prüfenClientseitigServerseitig
Unter der Annahme, dass der PaymentIntent erfolgreich erstellt wurde, überprüfen Sie seinen status
:
succeeded
bedeutet, dass der Kunde/die Kundin wie erwartet belastet wurde. Zeigen Sie Ihrem Kunden/Ihrer Kundin eine Erfolgsmeldung.requires_
gibt an, dass Sie zusätzliche Maßnahmen ergreifen müssen, wie zum Beispiel die Authentifizierung mit 3D Secure. Rufen Sieaction handleNextAction
im Frontend auf, um die Aktion auszulösen, die der Kunde/die Kundin ausführen muss.
const { error, paymentIntent } = await stripe.handleNextAction({ clientSecret: "{{CLIENT_SECRET}}" }); if (error) { // Show error from Stripe.js } else { // Actions handled, show success message }
Ereignisse nach der Zahlung verarbeitenServerseitig
Stripe sendet ein payment_intent.succeeded-Ereignis, wenn die Zahlung abgeschlossen ist. Verwenden Sie Webhook-Tool im Dashboard oder folgen Sie der Webhook-Anleitung, um diese Ereignisse zu empfangen und führen Sie Aktionen aus, wie beispielsweise das Senden einer Bestellbestätigung per E-Mail, das Protokollieren des Verkaufs in der Datenbank oder das Starten eines Versand-Workflows.
Überwachen Sie diese Ereignisse, statt auf einen Callback vom Client zu warten. Auf dem Client könnten die Kund/innen das Browserfenster schließen oder die App beenden, bevor der Callback erfolgt ist. Bösartige Clients könnten dann die Antwort manipulieren. Wenn Sie Ihre Integration so einrichten, dass sie asynchrone Ereignisse überwacht, können Sie verschiedene Arten von Zahlungsmethoden mit einer einzelnen Integration akzeptieren.
Neben der Abwicklung des payment_
-Ereignisses empfehlen wir die Abwicklung von diesen weiteren Ereignissen, wenn Sie Zahlungen mit dem Payment Element erfassen:
Ereignis | Beschreibung | Aktion |
---|---|---|
payment_intent.succeeded | Wird gesendet, wenn Kundinnen und Kunden eine Zahlung erfolgreich abgeschlossen haben. | Senden Sie den Kund/innen eine Auftragsbestätigung und wickeln Sie die Bestellung ab. |
payment_intent.processing | Wird gesendet, wenn eine/e Kund/in eine Zahlung erfolgreich veranlasst hat, die Zahlung aber noch nicht abgeschlossen ist. Dieses Ereignis wird am häufigsten gesendet, wenn der Kunde/die Kundin eine Bankabbuchung veranlasst. In Zukunft folgt darauf entweder ein payment_ - oder ein payment_ -Ereignis. | Senden Sie eine Bestellbestätigung an die Kund/innen, in der angegeben ist, dass die Zahlung noch aussteht. Bei digitalen Waren können Sie die Bestellung abwickeln, bevor Sie darauf warten, dass die Zahlung erfolgt. |
payment_intent.payment_failed | Wird gesendet, wenn ein Kunde/eine Kundin einen Zahlungsversuch durchführt, die Zahlung jedoch fehlschlägt. | Wenn eine Zahlung von processing zu payment_ übergeht, bieten Sie der Kundin/dem Kunden einen weiteren Zahlungsversuch an. |