Zukünftige Zahlungen einrichten
Verwenden Sie den Einrichtungsmodus von Checkout, um Zahlungsdaten von Kund/innen zu erfassen, die Sie später wiederverwenden können. Der Einrichtungsmodus verwendet die Setup Intents API, um Zahlungsmethoden zu erstellen.
Sehen Sie sich unser vollständiges Arbeitsbeispiel auf GitHub an.
Stripe einrichtenServerseitig
Als Erstes benötigen Sie ein Stripe-Konto. Registrieren Sie sich jetzt.
Verwenden Sie unsere offiziellen Bibliotheken, um von Ihrer Anwendung aus auf die Stripe API zuzugreifen:
Checkout-Sitzung erstellenClientseitigServerseitig
Fügen Sie Ihrer Website eine Checkout-Schaltfläche hinzu, die zum Erstellen einer Checkout-Sitzung einen serverseitigen Endpoint aufruft.
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>
To create a setup mode Session, use the mode
parameter with a value of setup
when creating the Session. You can optionally specify the customer parameter to automatically attach the created payment method to an existing customer. Checkout uses Dynamic payment methods by default, which requires you to pass the currency parameter when using setup
mode.
Hängen Sie die Vorlagenvariable {CHECKOUT_SESSION_ID}
an die success_url
an, um Zugriff auf die Sitzungs-ID zu erhalten, sobald Ihre Kundin/Ihr Kunde eine Checkout-Sitzung erfolgreich abgeschlossen hat. Leiten Sie Ihren Kunden/Ihre Kundin nach Erstellen der Checkout-Sitzung an die in der Antwort zurückgegebene URL weiter.
Checkout-Sitzung abrufenServerseitig
Nachdem eine Kundin/ein Kunde die Checkout-Sitzung erfolgreich durchlaufen hat, müssen Sie das Session-Objekt abrufen. Es gibt dafür zwei Möglichkeiten:
- Asynchron: Verarbeiten Sie
checkout.session.completed
Webhooks, die ein Session-Objekt enthalten. Hier erfahren Sie mehr über das Einrichten von Webhooks - Synchron: Rufen Sie die Sitzungs-ID von der
success_url
, wenn ein/e Nutzer/in auf Ihre Seite zurückgeleitet wird. Verwenden Sie die Sitzungs-ID, um das Sitzungsobjekt abzurufen.
Die Wahl hängt von Ihrer Toleranz gegenüber Kaufabbrüchen ab, da Kundinnen/Kunden in manchen Fällen nach erfolgreicher Zahlung nicht zur success_url
weitergeleitet werden. Das passiert zum Beispiel, wenn sie die Registerkarte im Browser schließen, bevor die Weiterleitung erfolgt ist. Die Verarbeitung von Webhooks verhindert diese Form von Kaufabbrüchen in Ihrer Integration.
Nachdem Sie das Session-Objekt abgerufen haben, erfassen Sie den Wert des Schlüssels setup_intent
. Dabei handelt es sich um die ID des während der Checkout-Sitzung erstellten SetupIntent. Eine SetupIntent ist ein Objekt, mit dem die Bankkontoinformationen von Kund/innen für zukünftige Zahlungen eingerichtet werden.
Beispiel-Nutzlast von checkout.session.completed
:
{ "id": "evt_1Ep24XHssDVaQm2PpwS19Yt0", "object": "event", "api_version": "2019-03-14", "created": 1561420781, "data": { "object": { "id": "cs_test_MlZAaTXUMHjWZ7DcXjusJnDU4MxPalbtL5eYrmS2GKxqscDtpJq8QM0k", "object": "checkout.session", "billing_address_collection": null, "cancel_url": "https://example.com/cancel", "client_reference_id": null, "customer": "", "customer_email": null, "display_items": [], "mode": "setup", "setup_intent": "seti_1EzVO3HssDVaQm2PJjXHmLlM", "submit_type": null, "subscription": null, "success_url": "https://example.com/success" } }, "livemode": false, "pending_webhooks": 1, "request": { "id": null, "idempotency_key": null }, "type": "checkout.session.completed" }
Beachten Sie die setup_intent
-ID für den nächsten Schritt.
SetupIntent abrufenServerseitig
Verwenden Sie die setup_intent
-ID, um das SetupIntent-Objekt abzurufen. Das zurückgegebene Objekt enthält eine payment_method
-ID, die Sie im nächsten Schritt einem/einer Kund/in zuordnen können.
Notiz
Wenn Sie diese Informationen synchron über die Stripe-API anfordern (anstatt Webhooks zu verarbeiten), können Sie den vorherigen Schritt mit diesem Schritt kombinieren, indem Sie das SetupIntent-Objekt in der Anfrage an den Endpoint /v1/checkout/session erweitern. So müssen Sie nicht zwei Netzwerkanforderungen stellen, um auf die neu erstellte PaymentMethod-ID zugreifen zu können.
Zahlungsmethode verwendenServerseitig
Wenn Sie die Checkout-Sitzung nicht mit einem bestehenden Kunden erstellt haben, verwenden Sie die payment_method
-ID, um die PaymentMethod an eine Kundin/einen Kunden anzuhänge. Nachdem Sie die PaymentMethod einem/r Kund/in zugeordnet haben, können Sie die PaymentMethod mit einer PaymentIntent belasten.
Disclose Stripe to your customers
Stripe collects information on customer interactions with Elements to provide services to you, prevent fraud, and improve its services. This includes using cookies and IP addresses to identify which Elements a customer saw during a single checkout session. You’re responsible for disclosing and obtaining all rights and consents necessary for Stripe to use data in these ways. For more information, visit our privacy center.