Künftige Zahlungen einrichten
Erfahren Sie, wie Sie Zahlungsdaten in einer Checkout-Sitzung speichern und Ihre Kundinnen und Kunden später belasten können.
Mit dem Einrichtungsmodus der Checkout-Sitzung können Sie die Zahlungsdetails eines Kunden/einer Kundin für die spätere Verwendung speichern, ohne eine anfängliche Zahlung einzuziehen. Dies ist hilfreich, wenn Sie Kundinnen/Kunden jetzt einbinden und Zahlungen für sie einrichten, diese aber erst später durchführen möchten (wenn die Kundinnen/Kunden offline sind).
Einrichtungsmodus verwendenServerseitig
Übergeben Sie mode=setup, wenn Sie die Checkout-Sitzung erstellen.
Rendern Sie Ihre Bezahlseite dann wie gewohnt.
Zahlungsmethode abrufenServerseitig
Nachdem Kundinnen/Kunden ihre Checkout-Sitzung erfolgreich abgeschlossen haben, verarbeiten Sie den Webhook checkout.session.completed, der das Session-Objekt enthält. Erfahren Sie mehr über die Einrichtung von Webhooks.
Nachdem Sie das Session-Objekt abgerufen haben, gehen Sie wie folgt vor:
- Rufen Sie den Wert des setup_intent-Schlüssels ab. Dabei handelt es sich um die ID für den während der Checkout-Sitzung erstellten SetupIntent.
- Verwenden Sie die
setup_
-ID, um das SetupIntent-Objekt abzurufen. Das zurückgegebene Objekt enthält eine payment_method-ID, die Sie im nächsten Schritt mit einem Kunden/einer Kundin verknüpfen können.intent
Zahlungsmethode mit einem Kunden/einer Kundin verknüpfenServerseitig
Wenn Sie die Checkout-Sitzung nicht mit einem bestehenden Kunden/einer bestehenden Kundin erstellt haben, verwenden Sie die ID der PaymentMethod, um die PaymentMethod an einen Kunden/eine Kundin anzuhängen.
Andernfalls wird die PaymentMethod automatisch dem Kunden/der Kundin zugeordnet, den/die Sie beim Erstellen der Checkout-Sitzung angegeben haben.
Die Zahlungsmethode später belastenServerseitig
Nachdem Sie die PaymentMethod einem Kunden/einer Kundin zugeordnet haben, können Sie eine Off-Session-Zahlung mit einem PaymentIntent vornehmen:
- Setzen Sie customer auf die ID der Kundin/des Kunden und payment_method auf die ID der PaymentMethod.
- Legen Sie off_session auf
true
fest, um anzugeben, dass sich die Kundin/der Kunde während eines Zahlungsversuchs nicht in Ihrem Bezahlvorgang befindet und somit eine Authentifizierungsanfrage eines Partners, wie z. B. eines Kartenausstellers, einer Bank oder eines anderen Zahlungsinstituts, nicht erfüllen kann. Wenn ein Partner während Ihres Bezahlvorgangs eine Authentifizierung anfordert, fordert Stripe Ausnahmen unter Verwendung von Kundeninformationen aus einer vorherigen On-Session-Transaktion an. Wenn die Bedingungen für eine Ausnahme nicht erfüllt sind, gibt der PaymentIntent möglicherweise einen Fehler aus. - Legen Sie den Wert der Eigenschaft „confirm“ des PaymentIntent auf
true
fest. Dadurch erfolgt die Bestätigung sofort, wenn Sie den PaymentIntent erstellen.
Schlägt ein Zahlungsversuch fehl, schlägt die Anfrage ebenfalls mit einem HTTP-Statuscode 402 fehl, und der Status des PaymentIntent lautet requires_payment_method. Fordern Sie Ihre Kundinnen/Kunden auf, zu Ihrer Anwendung zurückzukehren (z. B. per E-Mail oder In-App-Benachrichtigung) und leiten Sie sie zu einer neuen Checkout-Sitzung weiter, um eine andere Zahlungsmethode auszuwählen.