# Zahlungsdaten bei der Zahlung speichern So akzeptieren Sie eine Zahlung uns speichern die Zahlungsdetails Ihrer Kundin/Ihres Kunden für zukünftige Käufe. # Hosted page > This is a Hosted page for when payment-ui is stripe-hosted. View the full page at https://docs.stripe.com/payments/checkout/save-during-payment?payment-ui=stripe-hosted. [Stripe Checkout](https://docs.stripe.com/payments/checkout.md) bietet eine schnelle Low-Code-Integration, dank derer Ihre Kundinnen und Kunden ihre Zahlungsdetails für zukünftige Käufe speichern können. ## Stripe einrichten [Serverseitig] [Registrieren Sie sich](https://dashboard.stripe.com/register) zunächst für ein Stripe-Konto. Verwenden Sie unsere offiziellen Bibliotheken, um von Ihrer Anwendung aus auf die Stripe API zuzugreifen: #### Ruby ```bash # Available as a gem sudo gem install stripe ``` ```ruby # If you use bundler, you can add this line to your Gemfile gem 'stripe' ``` ## Kundin/Kunden erstellen [Serverseitig] Um eine Karte für zukünftige Zahlungen einzurichten, müssen Sie sie einem/einer *Kund/in* (Customer objects represent customers of your business. They let you reuse payment methods and give you the ability to track multiple payments) hinzufügen. Erstellen Sie ein Customer-Objekt, wenn Ihr/e Kund/in ein Konto bei Ihrem Unternehmen erstellt. Customer-Objekte ermöglichen die Wiederverwendung von Zahlungsmethoden und die Nachverfolgung über mehrere Zahlungen hinweg. > #### Vergleichen Sie die Referenzen von Customers v1 und Accounts v2 > > Wenn Ihre Connect-Plattform von [Kunden/Kundinnen konfigurierte Konten](https://docs.stripe.com/api/v2/core/accounts/create.md#v2_create_accounts-configuration-customer) verwendet, nutzen Sie bitte unseren [Leitfaden](https://docs.stripe.com/connect/use-accounts-as-customers.md), um `Customer`- und Ereignisreferenzen in Ihrem Code durch die entsprechende API-Dokumentation von Accounts v2 zu ersetzen. ```curl curl https://api.stripe.com/v1/customers \ -u "<>:" \ -d "name=Jenny Rosen" \ --data-urlencode "email=jennyrosen@example.com" ``` Bei erfolgreicher Erstellung wird das [Kundenobjekt](https://docs.stripe.com/api/customers/object.md) zurückgegeben. Sie können das Objekt bezüglich der Kunden-`id` überprüfen and den Wert zum späteren Abruf in Ihrer Datenbank speichern. Sie finden diese Kundinnen/Kunden auf der Seite [Kundinnen/Kunden](https://dashboard.stripe.com/customers) im Dashboard. ## Checkout-Sitzung erstellen [Clientseitig] [Serverseitig] Fügen Sie Ihrer Website eine Schaltfläche zum Bezahlen hinzu, über die ein serverseitiger Endpoint aufgerufen wird, um eine [Checkout-Sitzung](https://docs.stripe.com/api/checkout/sessions/create.md) zu erstellen. Sie können auch eine Checkout-Sitzung für [einen bestehenden Kunden/eine bestehende Kundin](https://docs.stripe.com/payments/existing-customers.md?platform=web&ui=stripe-hosted) erstellen. Dadurch können Sie Checkout-Felder mit bekannten Kontaktinformationen vorab ausfüllen und Ihre Kaufhistorie für diesen Kunden/diese Kundin vereinheitlichen. ```html Buy cool new product
``` Eine Checkout-Sitzung ist eine programmgesteuerte Darstellung dessen, was Ihren Kundinnen und Kunden bei der Weiterleitung zum Zahlungsformular angezeigt wird. Es gibt folgende Konfigurationsoptionen: - [Posten](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) für die Zahlungsabwicklung - Zu verwendende Währungen Sie müssen `success_url` mit dem URL-Wert einer Seite auf Ihrer Website ausfüllen, zu der Checkout Ihre Kundinnen und Kunden nach Abschluss der Zahlung zurückleitet. > Checkout-Sitzungen laufen standardmäßig 24 Stunden nach Erstellung ab. Leiten Sie Ihre Kundinnen und Kunden nach dem Erstellen einer Checkout-Sitzung zu der in der Antwort zurückgegebenen [URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) weiter. #### Ruby ```ruby # This example sets up an endpoint using the Sinatra framework. require 'json' require 'sinatra' require 'stripe' # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. Stripe.api_key = '<>' post '/create-checkout-session' dosession = Stripe::Checkout::Session.create({ line_items: [{ price_data: { currency: 'usd', product_data: { name: 'T-shirt', }, unit_amount: 2000, }, quantity: 1, }], mode: 'payment', # These placeholder URLs will be replaced in a following step. success_url: 'https://example.com/success', }) redirect session.url, 303 end ``` ### Zahlungsmethoden Standardmäßig aktiviert Stripe Karten und andere gängige Zahlungsmethoden. Sie können einzelne Zahlungsmethoden im [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods) aktivieren oder deaktivieren. In Checkout wertet Stripe die Währung und etwaige Einschränkungen aus und zeigt den Kundinnen/Kunden dann dynamisch die unterstützten Zahlungsmethoden an. Um zu sehen, wie Ihre Zahlungsmethoden Kundinnen und Kunden angezeigt werden, geben Sie eine Transaktions-ID ein oder legen Sie einen Bestellbetrag und eine Währung im Dashboard fest. Sie können Apple Pay und Google Pay in Ihren [Einstellungen für Zahlungsmethoden](https://dashboard.stripe.com/settings/payment_methods) aktivieren. Standardmäßig ist Apple Pay aktiviert und Google Pay deaktiviert. In einigen Fällen filtert Stripe die Optionen jedoch heraus, auch wenn sie aktiviert sind. Wir filtern Google Pay, wenn Sie [automatische Steuern aktivieren](https://docs.stripe.com/tax/checkout.md), ohne eine Versandadresse zu erfassen. Die von Stripe gehosteten Checkout-Seiten benötigen keine Integrationsänderungen, um Apple Pay oder Google Pay zu aktivieren. Stripe verarbeitet diese Zahlungen genauso wie andere Kartenzahlungen. ### Ihren Endpoint bestätigen Bestätigen Sie, dass auf Ihren Endpoint zugegriffen werden kann, indem Sie Ihren Webserver starten (beispielsweise `localhost:4242`) und den folgenden Befehl ausführen: ```bash curl -X POST -is "http://localhost:4242/create-checkout-session" -d "" ``` In Ihrem Terminal sollten Sie folgende Antwort sehen: ```bash HTTP/1.1 303 See Other Location: https://checkout.stripe.com/c/pay/cs_test_... ... ``` ### Testen Sie sollten jetzt eine funktionierende Schaltfläche zum Bezahlen haben, über die Ihre Kundinnen und Kunden zu Stripe Checkout weitergeleitet werden. 1. Klicken Sie auf die Schaltfläche zum Bezahlen. 1. Sie werden zum Zahlungsformular von Stripe Checkout weitergeleitet. Wenn Ihre Integration nicht funktioniert: 1. Öffnen Sie in den Entwickler-Tools Ihres Browsers die Registerkarte „Netzwerk“. 1. Klicken Sie auf die Schaltfläche zum Bezahlen und bestätigen Sie, dass eine XHR-Anfrage an Ihren serverseitigen Endpoint gesendet wurde (`POST /create-checkout-session`). 1. Prüfen Sie, ob die Anfrage den Status 200 zurückgibt. 1. Verwenden Sie in Ihrem Button-Click-Listener `console.log(session)`, um zu prüfen, ob die richtigen Daten zurückgegeben werden. Weitere Informationen zum Konfigurieren und Testen Ihrer gehosteten Checkout-Integration finden Sie unter [Zahlung akzeptieren](https://docs.stripe.com/payments/accept-a-payment.md?platform=web&ui=hosted-form). ## Zahlungsmethode speichern [Serverseitig] Nachdem Sie Ihre gehostete Checkout-Integration eingerichtet haben, wählen Sie die Konfiguration für Ihre Integration aus, um die von Ihren Kundinnen und Kunden verwendeten Zahlungsmethoden zu speichern. Standardmäßig sind Zahlungsmethoden, die für einmalige Zahlungen mit Checkout verwendet werden, nicht für die zukünftige Verwendung verfügbar. ### Zahlungsmethoden speichern, um sie Off-Session zu belasten Sie können Checkout die für eine einmalige Zahlung verwendeten Zahlungsmethoden speichern lassen, indem Sie das Argument [payment_intent_data.setup_future_usage](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_intent_data-setup_future_usage) übergeben. Das ist hilfreich, wenn Sie eine hinterlegte Zahlungsmethode für künftige Gebühren, wie Stornogebühren oder Gebühren bei Nichterscheinen, erfassen müssen. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d customer_creation=always \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ --data-urlencode "success_url=https://example.com/success.html" \ -d "payment_intent_data[setup_future_usage]=off_session" ``` If you use Checkout in `subscription` mode, Stripe automatically saves the payment method to charge it for subsequent payments. Card payment methods saved to customers using either `setup_future_usage` or `subscription` mode don’t appear for return purchases in Checkout (more on this below). We recommend using [custom text](https://docs.stripe.com/payments/checkout/custom-components.md#customize-text) to link out to any relevant terms regarding the usage of saved payment information. > Die weltweiten Datenschutzgesetze sind komplex und vielschichtig. Wir empfehlen Ihnen, sich vor der Implementierung von [setup_future_usage](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_intent_data-setup_future_usage) mit Ihrem Rechts- und Datenschutzteam in Verbindung zu setzen, da dies Ihr bestehendes Compliance-Framework für den Datenschutz beeinträchtigen könnte. Weitere Informationen zum Speichern von Zahlungsdaten finden Sie in den [Leitlinien des Europäischen Datenschutzausschusses](https://edpb.europa.eu/system/files/2021-05/recommendations022021_on_storage_of_credit_card_data_en_1.pdf). ### Zahlungsmethoden speichern, um sie in Checkout vorab auszufüllen By default, Checkout uses [Link](https://docs.stripe.com/payments/link/checkout-link.md) to provide your customers with the option to securely save and reuse their payment information. If you prefer to manage payment methods yourself, use [saved_payment_method_options.payment_method_save](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-saved_payment_method_options-payment_method_save) when creating a Checkout Session to let your customers save their payment methods for future purchases in Checkout. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d customer_creation=always \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ --data-urlencode "success_url=https://example.com/success.html" \ -d "saved_payment_method_options[payment_method_save]=enabled" ``` Wenn Sie diesen Parameter entweder im [Zahlungs](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-mode)- oder im [Abonnement](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-mode)-Modus übergeben, wird ein optionales Kontrollkästchen angezeigt, mit dem Kundinnen/Kunden ihre Zahlungsmethode für zukünftige Käufe explizit speichern können. Wenn Kundinnen/Kunden dieses Kontrollkästchen aktivieren, speichert Checkout die Zahlungsmethode mit [allow_redisplay: always](https://docs.stripe.com/api/payment_methods/object.md#payment_method_object-allow_redisplay). Checkout verwendet diesen Parameter, um zu ermitteln, ob eine Zahlungsmethode für zukünftige Käufe vorausgefüllt werden kann. Wenn Sie `saved_payment_method_options.payment_method_save` verwenden, müssen Sie `setup_future_usage` nicht übergeben, um die Zahlungsmethode zu speichern. Wenn Ihre Connect-Plattform verwendet [kundenkonfigurierte Konten](https://docs.stripe.com/api/v2/core/accounts/create.md#v2_create_accounts-configuration-customer), benutze unser [Anleitung](https://docs.stripe.com/connect/use-accounts-as-customers.md) Ersetzen `Customer` und Ereignisreferenzen in Ihrem Code mit den entsprechenden Accounts v2 API-Referenzen. Für die Verwendung von [saved_payment_method_options.payment_method_save](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-saved_payment_method_options-payment_method_save) ist ein `Customer` erforderlich. Um einen neuen Kunden/eine neue Kundin zu speichern, legen Sie die [customer_creation der Checkout-Sitzung](https://docs.stripe.com/api/checkout/sessions/create.md) auf `always` fest. Andernfalls wird in der Sitzung weder der Kunde/die Kundin noch die Zahlungsmethode gespeichert. Wenn `payment_method_save` nicht übergeben wird oder wenn der Kunde/die Kundin nicht zustimmt, die Zahlungsmethode zu speichern, speichert Checkout weiterhin Zahlungsmethoden, die im Modus `subscription` oder mit `setup_future_usage` erstellt wurden. Diese Zahlungsmethoden haben den `allow_redisplay`-Wert `limited`, der verhindert, dass sie für wiederkehrende Käufe vorausgefüllt werden, und es Ihnen ermöglicht, die Regeln des Kartennetzwerks und die Datenschutzbestimmungen einzuhalten. Erfahren Sie, wie Sie [das durch diese Modi aktivierte Standardverhalten ändern](https://support.stripe.com/questions/prefilling-saved-cards-in-checkout) und wie Sie das `allow_redisplay`-Verhalten ändern oder außer Kraft setzen können. > Sie können Checkout verwenden, um Karten und andere Zahlungsmethoden zu speichern, um sie Off-Session zu belasten, aber Checkout füllt nur gespeicherte Karten vorab aus. So können Sie [gespeicherte Karten vorab ausfüllen](https://support.stripe.com/questions/prefilling-saved-cards-in-checkout). Um eine Zahlungsmethode ohne anfängliche Zahlung zu speichern, [verwenden Sie Checkout im Einrichtungsmodus](https://docs.stripe.com/payments/save-and-reuse.md?platform=checkout). ### Lassen Sie Kundinnen und Kunden gespeicherte Zahlungsmethoden entfernen Damit Ihre Kundinnen und Kunden eine gespeicherte Zahlungsmethode entfernen können, damit sie für zukünftige Zahlungen nicht wieder angezeigt wird, verwenden Sie beim Erstellen einer Checkout-Sitzung [saved_payment_method_options.payment_method_remove](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-saved_payment_method_options-payment_method_remove). ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d customer={{CUSTOMER_ID}} \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ --data-urlencode "success_url=https://example.com/success.html" \ -d "saved_payment_method_options[payment_method_remove]=enabled" ``` Der Kunde/Die Kundin kann eine Zahlungsmethode nicht entfernen, wenn sie an ein aktives Abonnement gebunden ist und der Kunde/die Kundin keine Standardzahlungsmethode für Rechnungs- und Abonnementzahlungen gespeichert hat. # Embedded page > This is a Embedded page for when payment-ui is embedded-form. View the full page at https://docs.stripe.com/payments/checkout/save-during-payment?payment-ui=embedded-form. Mit [Stripe Checkout](https://docs.stripe.com/payments/checkout.md) können Sie ein vorgefertigtes Zahlungsformular auf Ihrer Website einbetten, über das Ihre Kundinnen und Kunden ihre Zahlungsdetails für zukünftige Käufe speichern können. ## Stripe einrichten [Serverseitig] [Registrieren Sie sich](https://dashboard.stripe.com/register) zunächst für ein Stripe-Konto. Verwenden Sie unsere offiziellen Bibliotheken, um von Ihrer Anwendung aus auf die Stripe API zuzugreifen: #### Ruby ```bash # Available as a gem sudo gem install stripe ``` ```ruby # If you use bundler, you can add this line to your Gemfile gem 'stripe' ``` ## Kundin/Kunden erstellen [Serverseitig] Um eine Karte für zukünftige Zahlungen einzurichten, müssen Sie sie einem/einer *Kund/in* (Customer objects represent customers of your business. They let you reuse payment methods and give you the ability to track multiple payments) hinzufügen. Erstellen Sie ein Customer-Objekt, wenn Ihr/e Kund/in ein Konto bei Ihrem Unternehmen erstellt. Customer-Objekte ermöglichen die Wiederverwendung von Zahlungsmethoden und die Nachverfolgung über mehrere Zahlungen hinweg. > #### Vergleichen Sie die Referenzen von Customers v1 und Accounts v2 > > Wenn Ihre Connect-Plattform von [Kunden/Kundinnen konfigurierte Konten](https://docs.stripe.com/api/v2/core/accounts/create.md#v2_create_accounts-configuration-customer) verwendet, nutzen Sie bitte unseren [Leitfaden](https://docs.stripe.com/connect/use-accounts-as-customers.md), um `Customer`- und Ereignisreferenzen in Ihrem Code durch die entsprechende API-Dokumentation von Accounts v2 zu ersetzen. ```curl curl https://api.stripe.com/v1/customers \ -u "<>:" \ -d "name=Jenny Rosen" \ --data-urlencode "email=jennyrosen@example.com" ``` Bei erfolgreicher Erstellung wird das [Kundenobjekt](https://docs.stripe.com/api/customers/object.md) zurückgegeben. Sie können das Objekt bezüglich der Kunden-`id` überprüfen and den Wert zum späteren Abruf in Ihrer Datenbank speichern. Sie finden diese Kundinnen/Kunden auf der Seite [Kundinnen/Kunden](https://dashboard.stripe.com/customers) im Dashboard. ## Checkout-Sitzung erstellen [Serverseitig] From your server, create a *Checkout Session* (A Checkout Session represents your customer's session as they pay for one-time purchases or subscriptions through Checkout. After a successful payment, the Checkout Session contains a reference to the Customer, and either the successful PaymentIntent or an active Subscription) and set the [ui_mode](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-ui_mode) to `embedded_page`. You can configure the [Checkout Session](https://docs.stripe.com/api/checkout/sessions/create.md) with [line items](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items) to include and options such as [currency](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-currency). Sie können auch eine Checkout-Sitzung für [einen bestehenden Kunden/eine bestehende Kundin](https://docs.stripe.com/payments/existing-customers.md?platform=web&ui=stripe-hosted) erstellen. Dadurch können Sie Checkout-Felder mit bekannten Kontaktinformationen vorab ausfüllen und Ihre Kaufhistorie für diesen Kunden/diese Kundin vereinheitlichen. Um Kundinnen/Kunden zu einer nutzerdefinierten Seite zurückzuleiten, die Sie auf Ihrer Website hosten, geben Sie die URL dieser Seite im Parameter [return_url](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-return_url) an. Fügen Sie die Vorlagenvariable `{CHECKOUT_SESSION_ID}` in die URL ein, um den Status der Sitzung auf der Rückgabeseite abzurufen. Checkout ersetzt die Variable vor der Weiterleitung automatisch durch die Checkout-Sitzungs-ID. Erfahren Sie mehr über die [Konfiguration der Rückgabeseite](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=checkout&ui=embedded-form#return-page) und weitere Optionen zur [Anpassung des Weiterleitungsverhalten](https://docs.stripe.com/payments/checkout/custom-success-page.md?payment-ui=embedded-form). Nachdem Sie die Checkout-Sitzung erstellt haben, verwenden Sie das `client_secret`, das in der Antwort auf [Checkout verbinden](https://docs.stripe.com/payments/checkout/save-during-payment.md#mount-checkout) zurückgegeben wurde. #### Ruby ```ruby # This example sets up an endpoint using the Sinatra framework. require 'json' require 'sinatra' require 'stripe' # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. Stripe.api_key = '<>' post '/create-checkout-session' do session = Stripe::Checkout::Session.create({ line_items: [{ price_data: { currency: 'usd', product_data: { name: 'T-shirt', }, unit_amount: 2000, }, quantity: 1, }], mode: 'payment',ui_mode: 'embedded_page',return_url: 'https://example.com/checkout/return?session_id={CHECKOUT_SESSION_ID}' }) {clientSecret: session.client_secret}.to_json end ``` ## Checkout verbinden [Clientseitig] [Serverseitig] #### HTML + JS Checkout ist als Teil von [Stripe.js](https://docs.stripe.com/js.md) verfügbar. Nehmen Sie das Stripe.js-Skript in Ihre Seite auf, indem Sie es zum Header Ihrer HTML-Datei hinzufügen. Als Nächstes erstellen Sie einen leeren DOM-Knoten (Container), der zum Verbinden verwendet wird. ```html
``` Initialisieren Sie Stripe.js mit Ihrem veröffentlichbaren API-Schlüssel. Erstellen Sie eine asynchrone `fetchClientSecret`-Funktion, die eine Anfrage an Ihren Server stellt, um eine Checkout-Sitzung zu erstellen und das Client-Geheimnis abzurufen. Übergeben Sie diese Funktion an `options`, wenn Sie die Checkout-Instanz erstellen: ```javascript // Initialize Stripe.js const stripe = Stripe('<>'); initialize(); // Fetch Checkout Session and retrieve the client secret async function initialize() { const fetchClientSecret = async () => { const response = await fetch("/create-checkout-session", { method: "POST", }); const { clientSecret } = await response.json(); return clientSecret; }; // Initialize Checkout const checkout = await stripe.createEmbeddedCheckoutPage({ fetchClientSecret, }); // Mount Checkout checkout.mount('#checkout'); } ``` #### React Installieren Sie [react-stripe-js](https://docs.stripe.com/sdks/stripejs-react.md) und den Stripe.js-Loader von npm: ```bash npm install --save @stripe/react-stripe-js @stripe/stripe-js ``` Um die eingebettete Checkout-Komponente zu verwenden, erstellen Sie einen `EmbeddedCheckoutProvider`. Rufen Sie `loadStripe` mit Ihrem veröffentlichbaren API-Schlüssel auf und übergeben Sie das zurückgegebene `Promise` an den Anbieter. Erstellen Sie eine asynchrone `fetchClientSecret`-Funktion, die eine Anfrage an Ihren Server stellt, um eine Checkout-Sitzung zu erstellen und das Client-Geheimnis abzurufen. Übergeben Sie diese Funktion an die vom Anbieter akzeptierte Eigenschaft `options`. ```jsx import * as React from 'react'; import {loadStripe} from '@stripe/stripe-js'; import { EmbeddedCheckoutProvider, EmbeddedCheckout } from '@stripe/react-stripe-js'; // Make sure to call `loadStripe` outside of a component’s render to avoid // recreating the `Stripe` object on every render. const stripePromise = loadStripe('pk_test_123'); const App = () => { const fetchClientSecret = React.useCallback(() => { // Create a Checkout Session return fetch("/create-checkout-session", { method: "POST", }) .then((res) => res.json()) .then((data) => data.clientSecret); }, []); const options = {fetchClientSecret}; return (
) } ``` Checkout wird in einem iFrame gerendert, der Zahlungsdaten sicher über eine HTTPS-Verbindung an Stripe sendet. > Vermeiden Sie es, Checkout in einem anderen iFrame zu platzieren, da bei einigen Zahlungsmethoden die Weiterleitung an eine andere Seite zur Zahlungsbestätigung erforderlich ist. ## Zahlungsmethode speichern [Serverseitig] Nachdem Sie Ihre eingebettete Checkout-Integration eingerichtet haben, wählen Sie die Konfiguration für Ihre Integration aus, um die von Ihren Kundinnen und Kunden verwendeten Zahlungsmethoden zu speichern. Standardmäßig sind Zahlungsmethoden, die für einmalige Zahlungen mit Checkout verwendet werden, nicht für die zukünftige Verwendung verfügbar. ### Zahlungsmethoden speichern, um sie Off-Session zu belasten Sie können Checkout die für eine einmalige Zahlung verwendeten Zahlungsmethoden speichern lassen, indem Sie das Argument [payment_intent_data.setup_future_usage](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_intent_data-setup_future_usage) übergeben. Das ist hilfreich, wenn Sie eine hinterlegte Zahlungsmethode für künftige Gebühren, wie Stornogebühren oder Gebühren bei Nichterscheinen, erfassen müssen. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d customer_creation=always \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ -d ui_mode=embedded_page \ --data-urlencode "return_url=https://example.com/return" \ -d "payment_intent_data[setup_future_usage]=off_session" ``` If you use Checkout in `subscription` mode, Stripe automatically saves the payment method to charge it for subsequent payments. Card payment methods saved to customers using either `setup_future_usage` or `subscription` mode don’t appear for return purchases in Checkout (more on this below). We recommend using [custom text](https://docs.stripe.com/payments/checkout/custom-components.md#customize-text) to link out to any relevant terms regarding the usage of saved payment information. > Die weltweiten Datenschutzgesetze sind komplex und vielschichtig. Wir empfehlen Ihnen, sich vor der Implementierung von [setup_future_usage](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_intent_data-setup_future_usage) mit Ihrem Rechts- und Datenschutzteam in Verbindung zu setzen, da dies Ihr bestehendes Compliance-Framework für den Datenschutz beeinträchtigen könnte. Weitere Informationen zum Speichern von Zahlungsdaten finden Sie in den [Leitlinien des Europäischen Datenschutzausschusses](https://edpb.europa.eu/system/files/2021-05/recommendations022021_on_storage_of_credit_card_data_en_1.pdf). ### Zahlungsmethoden speichern, um sie in Checkout vorab auszufüllen By default, Checkout uses [Link](https://docs.stripe.com/payments/link/checkout-link.md) to provide your customers with the option to securely save and reuse their payment information. If you prefer to manage payment methods yourself, use [saved_payment_method_options.payment_method_save](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-saved_payment_method_options-payment_method_save) when creating a Checkout Session to let your customers save their payment methods for future purchases in Checkout. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d customer_creation=always \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ -d ui_mode=embedded_page \ --data-urlencode "return_url=https://example.com/return" \ -d "saved_payment_method_options[payment_method_save]=enabled" ``` Wenn Sie diesen Parameter entweder im [Zahlungs](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-mode)- oder im [Abonnement](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-mode)-Modus übergeben, wird ein optionales Kontrollkästchen angezeigt, mit dem Kundinnen/Kunden ihre Zahlungsmethode für zukünftige Käufe explizit speichern können. Wenn Kundinnen/Kunden dieses Kontrollkästchen aktivieren, speichert Checkout die Zahlungsmethode mit [allow_redisplay: always](https://docs.stripe.com/api/payment_methods/object.md#payment_method_object-allow_redisplay). Checkout verwendet diesen Parameter, um zu ermitteln, ob eine Zahlungsmethode für zukünftige Käufe vorausgefüllt werden kann. Wenn Sie `saved_payment_method_options.payment_method_save` verwenden, müssen Sie `setup_future_usage` nicht übergeben, um die Zahlungsmethode zu speichern. Wenn Ihre Connect-Plattform verwendet [kundenkonfigurierte Konten](https://docs.stripe.com/api/v2/core/accounts/create.md#v2_create_accounts-configuration-customer), benutze unser [Anleitung](https://docs.stripe.com/connect/use-accounts-as-customers.md) Ersetzen `Customer` und Ereignisreferenzen in Ihrem Code mit den entsprechenden Accounts v2 API-Referenzen. Für die Verwendung von [saved_payment_method_options.payment_method_save](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-saved_payment_method_options-payment_method_save) ist ein `Customer` erforderlich. Um einen neuen Kunden/eine neue Kundin zu speichern, legen Sie die [customer_creation der Checkout-Sitzung](https://docs.stripe.com/api/checkout/sessions/create.md) auf `always` fest. Andernfalls wird in der Sitzung weder der Kunde/die Kundin noch die Zahlungsmethode gespeichert. Wenn `payment_method_save` nicht übergeben wird oder wenn der Kunde/die Kundin nicht zustimmt, die Zahlungsmethode zu speichern, speichert Checkout weiterhin Zahlungsmethoden, die im Modus `subscription` oder mit `setup_future_usage` erstellt wurden. Diese Zahlungsmethoden haben den `allow_redisplay`-Wert `limited`, der verhindert, dass sie für wiederkehrende Käufe vorausgefüllt werden, und es Ihnen ermöglicht, die Regeln des Kartennetzwerks und die Datenschutzbestimmungen einzuhalten. Erfahren Sie, wie Sie [das durch diese Modi aktivierte Standardverhalten ändern](https://support.stripe.com/questions/prefilling-saved-cards-in-checkout) und wie Sie das `allow_redisplay`-Verhalten ändern oder außer Kraft setzen können. > Sie können Checkout verwenden, um Karten und andere Zahlungsmethoden zu speichern, um sie Off-Session zu belasten, aber Checkout füllt nur gespeicherte Karten vorab aus. So können Sie [gespeicherte Karten vorab ausfüllen](https://support.stripe.com/questions/prefilling-saved-cards-in-checkout). Um eine Zahlungsmethode ohne anfängliche Zahlung zu speichern, [verwenden Sie Checkout im Einrichtungsmodus](https://docs.stripe.com/payments/save-and-reuse.md?platform=checkout). ### Lassen Sie Kundinnen und Kunden gespeicherte Zahlungsmethoden entfernen Damit Ihre Kundinnen und Kunden eine gespeicherte Zahlungsmethode entfernen können, damit sie für zukünftige Zahlungen nicht wieder angezeigt wird, verwenden Sie beim Erstellen einer Checkout-Sitzung [saved_payment_method_options.payment_method_remove](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-saved_payment_method_options-payment_method_remove). ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d customer={{CUSTOMER_ID}} \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ -d ui_mode=embedded_page \ --data-urlencode "return_url=https://example.com/return" \ -d "saved_payment_method_options[payment_method_remove]=enabled" ``` Der Kunde/Die Kundin kann eine Zahlungsmethode nicht entfernen, wenn sie an ein aktives Abonnement gebunden ist und der Kunde/die Kundin keine Standardzahlungsmethode für Rechnungs- und Abonnementzahlungen gespeichert hat.