Zahlungsangaben aktualisieren
Erfahren Sie, wie die für zukünftige Rechnungen verwendete Zahlungsmethode aktualisiert werden kann.
Führen Sie die folgenden Schritte aus, um eine Checkout-Seite zu erstellen, die die Zahlungsdetails Ihrer Kund/innen erfasst und eine Zahlungsmethode zurückgibt. Verwenden Sie dann die REST-APIs von Stripe, um die für zukünftige Rechnungen verwendete Zahlungsmethode zu aktualisieren.
Notiz
In diesem Leitfaden wird Checkout verwendet, um die Zahlungsmethoden für Abonnements zu aktualisieren. Sie können stattdessen das Billing-Kundenportal implementieren, um Ihren Kundinnen/Kunden ein von Stripe gehostetes Dashboard zur Verfügung zu stellen, um ihre Abonnements und Rechnungsdetails zu verwalten.
Stripe einrichtenServerseitig
Zunächst benötigen Sie ein Stripe-Konto. Registrieren Sie sich jetzt.
Nutzen Sie unsere offiziellen Bibliotheken für den Zugriff auf die Stripe-API über Ihre Anwendung:
Checkout-Sitzung erstellenServerseitig
Um eine Sitzung im Einrichtungsmodus zu erstellen, verwenden Sie beim Erstellen der Sitzung den Parameter mode
mit dem Wert setup
. Eine vollständige Liste der Parameter, die Sie für die Erstellung einer Sitzung verwenden können, finden Sie in der Dokumentation zur Checkout Session API.
Hängen Sie die Vorlagenvariable {CHECKOUT_
an die success_
an, um Zugriff auf die Sitzungs-ID zu erhalten, sobald Ihre Kundin/Ihr Kunde eine Checkout-Sitzung erfolgreich abgeschlossen hat.
Verwenden Sie abschließend das Wörterbuch setup_intent_data.metadata, um die bestehende Stripe-subscription_
Ihrer Kundin/Ihres Kunden an die Checkout-Sitzung zu übergeben. Beachten Sie, dass es auch andere Möglichkeiten gibt, diese Daten an Ihren Server zu übergeben. Für diesen Leitfaden verwenden wir jedoch Metadaten.
Zu Checkout weiterleitenClientseitig
Checkout basiert auf Stripe.js, der grundlegenden JavaScript-Bibliothek von Stripe für die Erstellung von Zahlungsabläufen.
Dieser Code wird in der Regel von einem Ereignis-Handler aufgerufen, der als Reaktion auf eine Aktion Ihrer Kundin/Ihres Kunden ausgelöst wird (z. B. durch Klicken auf eine Zahlungsschaltfläche).
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.
Webhooks, die ein Session-Objekt enthalten. Hier erfahren Sie mehr über das Einrichten von Webhookssession. completed - Synchron: Rufen Sie die Sitzungs-ID von der
success_
, wenn ein/e Nutzer/in auf Ihre Seite zurückgeleitet wird. Verwenden Sie die Sitzungs-ID, um das Sitzungsobjekt abzurufen.url
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_
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_
. Dabei handelt es sich um die ID des während der Checkout-Sitzung erstellten SetupIntent. Ein SetupIntent ist ein Objekt, mit dem die Bankkontoinformationen von Kundinnen und Kunden für zukünftige Zahlungen eingerichtet werden.
Beispiel-Nutzlast von checkout.
:
{ "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, "client_reference_id": null, "customer": "cus_FOsk5sbh3ZQpAU", "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_
-ID für den nächsten Schritt.
SetupIntent abrufenServerseitig
Verwenden Sie die setup_
-ID, um das SetupIntent-Objekt mit dem Endpoint /v1/setup_intents/:id abzurufen.
Beispielantwort:
{ "id": "seti_1EzVO3HssDVaQm2PJjXHmLlM", "object": "setup_intent", "application": null, "cancellation_reason": null, "client_secret": null, "created": 1561420781, "customer": "cus_FOsk5sbh3ZQpAU", "description": null, "last_setup_error": null, "livemode": false, "metadata": { "subscription_id": "sub_8epEF0PuRhmltU" }, "next_action": null, "on_behalf_of": null, "payment_method": "pm_1F0c9v2eZvKYlo2CJDeTrB4n", "payment_method_types": [ "card" ], "status": "succeeded", "usage": "off_session" }
Notieren Sie sich die customer
-ID, die subscription_
und die payment_
-ID für die nächsten Schritte.
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.
Standard-Zahlungsmethode festlegenServerseitig
Es gibt zwei Möglichkeiten, um sicherzustellen, dass eine Zahlungsmethode für zukünftige Rechnungen verwendet wird:
- Richten Sie sie als
invoice_
der Kundin/des Kunden ein.settings. default_ payment_ method - Richten Sie sie als
default_
des Abonnements ein.payment_ method
Die Festlegung der invoice_
für die Kundin/den Kunden bewirkt, dass alle zukünftigen Rechnungen für diese Kundin/diesen Kunden mit der angegebenen Zahlungsmethode bezahlt werden.
Die Festlegung der default_
für das Abonnement bewirkt, dass alle zukünftigen Rechnungen für dieses Abonnement mit der angegebenen Zahlungsmethode bezahlt werden, wobei jede für die zugehörige Kundin bzw. den zugehörigen Kunden festgelegte invoice_
außer Kraft gesetzt wird.
invoice_settings.default_payment_method für den Kunden/die Kundin festlegen
Verwenden Sie die abgerufene Kunden-ID und die abgerufene PaymentMethod-ID und legen Sie die invoice_
für die Kundin/den Kunden mit dem Endpoint /v1/customers/:id fest.
Alle zukünftigen Rechnungen für diese Kundin/diesen Kunden werden nun mit der neuen PaymentMethod abgerechnet, die mit dem Einrichtungsmodus Checkout-Sitzung erstellt wurde.
default_payment_method für das Abonnement festlegen
Verwenden Sie die abgerufene Abonnement-ID und die abgerufene PaymentMethod-ID und legen Sie die default_
für das Abonnement mit dem Endpoint /v1/subscriptions/:id fest.
Alle zukünftigen Rechnungen für dieses Abonnement werden nun mit der neuen PaymentMethod abgerechnet, die mit dem Einrichtungsmodus Checkout-Sitzung erstellt wurde. Dabei wird jede für die zugehörige Kundin bzw. den zugehörigen Kunden festgelegte invoice_
außer Kraft gesetzt.
Siehe auch
Herzlichen Glückwunsch! Sie können jetzt eine Standard-Zahlungsmethode für zukünftige Rechnungen festlegen. Beim Testen Ihrer Integration mit Ihrem Test-API-Schlüssel können Sie eine Testkartennummer verwenden, um die ordnungsgemäße Funktion zu überprüfen.