# Künftige Amazon Pay-Zahlungen einrichten Erfahren Sie, wie Sie Amazon Pay-Details speichern und später Zahlungen Ihrer Kundschaft akzeptieren. # Bezahlvorgang > This is a Bezahlvorgang for when payment-ui is checkout. View the full page at https://docs.stripe.com/payments/amazon-pay/set-up-future-payments?payment-ui=checkout. In diesem Leitfaden wird erläutert, wie Sie die Zahlungsangaben für Amazon Pay mit [Checkout](https://docs.stripe.com/payments/checkout.md), unserer vollständig gehosteten Bezahlseite, speichern. Erfahren Sie, wie Sie [ein Abonnement mit Amazon Pay einrichten](https://docs.stripe.com/billing/subscriptions/amazon-pay.md) und wiederkehrende Zahlungen erstellen, nachdem Sie Ihre Zahlungsmethode in Checkout gespeichert haben. ## Stripe einrichten [Serverseitig] Zunächst benötigen Sie ein Stripe-Konto. [Registrieren Sie sich jetzt](https://dashboard.stripe.com/register). Nutzen Sie unsere offiziellen Bibliotheken für den Zugriff auf die Stripe-API über Ihre Anwendung: #### 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' ``` ## Erlaubnis zur Speicherung von Zahlungsmethoden einholen [Serverseitig] Wenn Sie eine Zahlungsmethode für die spätere Verwendung speichern, benötigen Sie hierfür eine kundenseitige Zustimmung. Indem Sie im Voraus eine Vereinbarung (auch Mandat bezeichnet) erstellen, können Sie die Zahlungsdaten Ihrer Kundinnen und Kunden speichern und die Kundenkonten belasten, wenn sie Ihre Website oder App nicht aktiv nutzen. Binden Sie Geschäftsbedingungen in Ihre Website oder App ein, aus denen hervorgeht, wie Sie die Angaben Ihrer Kundinnen und Kunden zu den Zahlungsmethoden speichern möchten, und holen Sie deren Zustimmung ein. Wenn Sie Zahlungen auch verarbeiten möchten, wenn Ihre Kundinnen und Kunden offline sind, müssen Sie sicherstellen, dass Ihre Geschäftsbedingungen außerdem Folgendes beinhalten: - Die kundenseitige Erlaubnis, eine Zahlung oder mehrere Zahlungen für bestimmte Transaktionen in deren Namen einzuleiten - Die voraussichtliche Häufigkeit (d. h. einmalig oder wiederkehrend) und der Zahlungszeitpunkt - Wie Sie den Zahlbetrag ermitteln - Ihre Stornorichtlinie, wenn Sie die Zahlungsmethode für einen Abonnementdienst einrichten. Dokumentieren Sie unbedingt die schriftliche Zustimmung Ihrer Kundinnen und Kunden zu diesen Bedingungen. ## Kundinnen/Kunden erstellen oder abrufen [Serverseitig] Um die Zahlungsmethode Amazon Pay für künftige Zahlungen zu hinterlegen, ordnen Sie diese den gewünschten *Kundinnen und Kunden* (Customer objects represent customers of your business. They let you reuse payment methods and give you the ability to track multiple payments) zu. Erstellen Sie ein [Customer-Objekt](https://docs.stripe.com/api/customers.md), wenn Ihr Kunde/Ihre Kundin ein Konto bei Ihrem Unternehmen anlegt. Verknüpfen Sie die ID des Customer-Objekts mit Ihrer eigenen internen Darstellung dieses Kunden/dieser Kundin. Alternativ können Sie neue Kundinnen/Kunden auch erstellen, bevor Sie eine Zahlungsmethode für zukünftige Zahlungen speichern. Legen Sie neue Kundinnen und Kunden an oder rufen Sie bestehende ab, um sie mit dieser Zahlung zu verknüpfen. Fügen Sie den folgenden Code auf Ihrem Server hinzu, um neue Kundinnen und Kunden zu erstellen: ```curl curl https://api.stripe.com/v1/customers \ -u "<>:" \ --data-urlencode "description=My First Test Customer (created for API docs)" ``` ## Checkout-Sitzung erstellen [Serverseitig] Ihre Kundinnen und Kunden müssen Sie autorisieren, damit Sie deren Amazon-Konto für zukünftige Zahlungen über Stripe Checkout verwenden dürfen. Auf diese Weise können Sie Amazon-Zahlungen annehmen. 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.md) zu erstellen. ```html Checkout
``` Erstellen Sie eine Checkout-Sitzung im `setup`-Modus, um die erforderlichen Informationen zu erfassen. Leiten Sie Ihre Kundinnen/Kunden nach dem Erstellen der 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 Stripe::Checkout::Session.create({ mode: 'setup',payment_method_types: ['card', 'amazon_pay'], customer: customer.id, success_url: 'https://example.com/success', }) ``` ## Integration testen Wählen Sie Amazon Pay als Zahlungsmethode aus und klicken Sie dann auf **Weiter zu Amazon Pay**. Sie können die erfolgreiche Einrichtung testen, indem Sie den SetupIntent auf der Weiterleitungsseite authentifizieren. Der SetupIntent wechselt von „requires_action“zu „succeeded“. # Direct API > This is a Direct API for when payment-ui is direct-api. View the full page at https://docs.stripe.com/payments/amazon-pay/set-up-future-payments?payment-ui=direct-api. Sie können die [Setup Intents API](https://docs.stripe.com/payments/setup-intents.md) verwenden, um Details zur Zahlungsmethode im Voraus zu erfassen. Der endgültige Betrag bzw. das Zahlungsdatum werden hierbei erst später festgelegt. Dies ist nützlich für Folgendes: - Speichern von Zahlungsmethoden in einer Wallet, um zukünftige Einkäufe zu optimieren - Einziehen von Zuschlägen nach Abwicklung einer Dienstleistung - [Kostenlosen Testzeitraum für ein Abonnement starten](https://docs.stripe.com/billing/subscriptions/trials.md) Verwenden Sie die [Payment Intents API](https://docs.stripe.com/payments/payment-intents.md), um Angaben zur Zahlungsmethode zu erfassen und die gespeicherte Zahlungsmethode umgehend zu belasten. Erfahren Sie, wie Sie [ein Abonnement mit Amazon Pay einrichten](https://docs.stripe.com/billing/subscriptions/amazon-pay.md) und wiederkehrende Zahlungen erstellen, nachdem Sie Ihre Zahlungsmethode in Checkout gespeichert haben. ## Stripe einrichten [Serverseitig] Zunächst benötigen Sie ein Stripe-Konto. [Registrieren Sie sich jetzt](https://dashboard.stripe.com/register). Nutzen Sie unsere offiziellen Bibliotheken für den Zugriff auf die Stripe-API über Ihre Anwendung: #### 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' ``` ## Erlaubnis zur Speicherung von Zahlungsmethoden einholen [Serverseitig] Wenn Sie eine Zahlungsmethode für die spätere Verwendung speichern, benötigen Sie hierfür eine kundenseitige Zustimmung. Indem Sie im Voraus eine Vereinbarung (auch Mandat bezeichnet) erstellen, können Sie die Zahlungsdaten Ihrer Kundinnen und Kunden speichern und die Kundenkonten belasten, wenn sie Ihre Website oder App nicht aktiv nutzen. Binden Sie Geschäftsbedingungen in Ihre Website oder App ein, aus denen hervorgeht, wie Sie die Angaben Ihrer Kundinnen und Kunden zu den Zahlungsmethoden speichern möchten, und holen Sie deren Zustimmung ein. Wenn Sie Zahlungen auch verarbeiten möchten, wenn sie offline sind, müssen Sie sicherstellen, dass Ihre Geschäftsbedingungen außerdem Folgendes abdecken: - Die kundenseitige Erlaubnis, eine Zahlung oder mehrere Zahlungen für bestimmte Transaktionen in deren Namen einzuleiten - Die voraussichtliche Häufigkeit (d. h. einmalig oder wiederkehrend) und der Zahlungszeitpunkt - Wie Sie den Zahlbetrag ermitteln - Ihre Stornorichtlinie, wenn Sie die Zahlungsmethode für einen Abonnementdienst einrichten Dokumentieren Sie unbedingt die schriftliche Zustimmung Ihrer Kundinnen und Kunden zu diesen Bedingungen. ## Kundinnen/Kunden erstellen oder abrufen [Serverseitig] Um die Zahlungsmethode Amazon Pay für künftige Zahlungen zu speichern, müssen Sie diese den gewünschten *Kundinnen und Kunden* (Customer objects represent customers of your business. They let you reuse payment methods and give you the ability to track multiple payments) zuordnen. Erstellen Sie ein Kundenobjekt, wenn Ihre Kundinnen und Kunden ein Konto bei Ihrem Unternehmen anlegen. Wenn Sie die ID des Kundenobjekts mit Ihrer eigenen Kundendarstellung verknüpfen, können Sie später die gespeicherten Angaben zur Zahlungsmethode abrufen und verwenden. Wurde kundenseitig noch kein Konto erstellt, können Sie dennoch ein Kundenobjekt erstellen und es zu einem späteren Zeitpunkt mit Ihrer eigenen internen Darstellung des Kontos verknüpfen. ```curl curl https://api.stripe.com/v1/customers \ -u "<>:" \ --data-urlencode "description=My First Test Customer (created for API docs)" ``` ## Zeigen Sie die Autorisierungsbedingungen auf Ihrem Zahlungsformular an [Clientseitig] Speichern Sie die Amazon Pay-Anmeldeinformationen der Kundin/des Kunden, um ihr/sein Konto für zukünftige *Off-Session-Zahlungen* (A payment is described as off-session if it occurs without the direct involvement of the customer, using previously-collected payment information) zu belasten. Ihr nutzerspezifisches Zahlungsformular muss einen schriftlichen Autorisierungshinweis enthalten, bevor der [PaymentIntent](https://docs.stripe.com/api/payment_intents.md) oder der [SetupIntent](https://docs.stripe.com/api/setup_intents.md) bestätigt wird. Sie müssen die Autorisierung nur anzeigen, wenn Sie die Amazon Pay-Anmeldedaten der Kundin/des Kunden zum ersten Mal speichern. Wir empfehlen Ihnen, den folgenden Text für Ihr individuelles Zahlungsformular zu verwenden: > Indem Sie fortfahren, erteilen Sie Rocket Rides die Genehmigung, Ihr Amazon Pay-Konto für diese und künftige Zahlungen im Einklang mit den AGB von Rocket Rides zu belasten, bis Sie Ihre Genehmigung widerrufen. #### Zahlungsmethode mit der Setup Intents API speichern Verwenden Sie die [Setup Intents API](https://docs.stripe.com/payments/setup-intents.md), um Angaben zur Zahlungsmethode im Voraus zu erfassen. Den endgültigen Betrag bzw. das Zahlungsdatum können Sie zu einem späteren Zeitpunkt bestimmen. Dies ist nützlich für Folgendes: - Zahlungsmethoden für Kundinnen/Kunden speichern, damit deren künftige Käufe keine Authentifizierungen erfordern - Kostenlosen Testzeitraum für ein *Abonnement* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis) starten ## SetupIntent erstellen und Zahlungsmethode speichern [Serverseitig] Ein [SetupIntent](https://docs.stripe.com/api/setup_intents.md) ist ein Objekt, mit dem Sie eine Zahlungsmethode eines Kunden/einer Kundin für zukünftige Zahlungen einrichten können. Der SetupIntent verfolgt die Schritte dieses Einrichtungsvorgangs. Erstellen Sie einen SetupIntent auf Ihrem Server, wobei [payment_method_types](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-payment_method_types) auf `amazon_pay` gesetzt ist, und geben Sie die Kunden-ID und [usage=off_session](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-usage) oder `usage=on_session` an. ```curl curl https://api.stripe.com/v1/setup_intents \ -u "<>:" \ -d "payment_method_types[]=amazon_pay" \ -d "payment_method_data[type]=amazon_pay" \ -d usage=off_session \ -d customer={{CUSTOMER_ID}} ``` ### Client-Geheimnis abrufen Im SetupIntent ist ein *Client-Geheimnis* (The client secret is a unique key returned from Stripe as part of a PaymentIntent. This key lets the client access important fields from the PaymentIntent (status, amount, currency) while hiding sensitive ones (metadata, customer)) enthalten, das auf dem Client verwendet wird, um Zahlungen sicher abzuschließen. Es gibt verschiedene Verfahren zum Übergeben des Client-Geheimnisses an den Client. #### Einseitige Anwendung Rufen Sie das Client-Geheimnis von einem Endpoint auf Ihrem Server ab, indem Sie die Browser-Funktion `fetch` verwenden. Diese Vorgehensweise funktioniert am besten, wenn es sich bei Ihrer Client-Seite um eine einseitige Anwendung handelt, insbesondere wenn sie mit einem modernen Frontend-Framework wie React erstellt wurde. Erstellen Sie den Server-Endpoint, der das Client-Geheimnis bereitstellt: #### Ruby ```ruby get '/secret' do intent = # ... Create or retrieve the SetupIntent {client_secret: intent.client_secret}.to_json end ``` Und dann rufen Sie das Client-Geheimnis mit JavaScript auf der Client-Seite ab: ```javascript (async () => { const response = await fetch('/secret'); const {client_secret: clientSecret} = await response.json(); // Render the form using the clientSecret })(); ``` #### Serverseitiges Rendering Übergeben Sie das Client-Geheimnis von Ihrem Server an den Client. Diese Vorgehensweise funktioniert am besten, wenn Ihre Anwendung statische Inhalte auf dem Server generiert, bevor sie an den Browser gesendet werden. Fügen Sie das [client_secret](https://docs.stripe.com/api/setup_intents/object.md#setup_intent_object-client_secret) in Ihr Bezahlformular ein. Rufen Sie in Ihrem serverseitigen Code das Client-Geheimnis aus dem SetupIntent ab: #### Ruby ```erb
``` ```ruby get '/checkout' do @intent = # ... Fetch or create the SetupIntent erb :checkout end ``` Als Nächstes speichern Sie Amazon Pay auf dem Client mit [Stripe.js](https://docs.stripe.com/payments/elements.md). Binden Sie das Stripe.js-Skript in Ihre Bezahlseite ein, indem Sie es im `head` Ihrer HTML-Datei einfügen. ```html Checkout ``` Wenn Kundinnen/Kunden über das „Click to Pay“-Verfahren mit Amazon Pay bezahlen, verwenden Sie Stripe.js, um die Zahlungen an Stripe zu übermitteln. [Stripe.js](https://docs.stripe.com/payments/elements.md) ist die grundlegende JavaScript-Bibliothek für die Erstellung von Zahlungsabläufen. Sie verarbeitet automatisch komplexe Szenarien wie die nachfolgend beschriebene Weiterleitung und ermöglicht die Erweiterung Ihrer Integration durch zusätzliche Zahlungsmethoden. Binden Sie das Stripe.js-Skript in Ihre Bezahlseite ein, indem Sie es im `head` Ihrer HTML-Datei einfügen. ```html Checkout ``` Erstellen Sie auf Ihrer Checkout-Seite mit dem folgenden JavaScript eine Instanz von Stripe.js. ```javascript // Set your publishable key. Remember to change this to your live publishable key in production! // See your keys here: https://dashboard.stripe.com/apikeys const stripe = Stripe('<>'); ``` Verwenden Sie `stripe.confirmAmazonPaySetup`, um den SetupIntent clientseitig zu bestätigen, und geben Sie eine [return_url](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-return_url) und optionale [mandate_data](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-mandate_data) an. Verwenden Sie die [return_url](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-return_url), um Kundinnen und Kunden nach einem erfolgreichen SetupIntent auf eine bestimmte Seite weiterzuleiten. ```javascript // Redirects away from the client const {error} = await stripe.confirmAmazonPaySetup( '{{SETUP_INTENT_CLIENT_SECRET}}', { return_url: 'https://example.com/setup/complete', mandate_data: { customer_acceptance: { type: 'online', online: { infer_from_client: true } } }, } ); if (error) { // Inform the customer that there was an error. } ``` ## Optional: Amazon Pay-Weiterleitung manuell handhaben Wenn Sie Stripe.js verwenden, können Sie Ihre Integration einfacher um weitere Zahlungsmethoden erweitern. Sie können Ihre Kundinnen und Kunden jedoch auch manuell an Ihren Server weiterleiten. 1. Erstellen und *bestätigen* (Confirming an intent indicates that the customer intends to use the current or provided payment method. Upon confirmation, the intent attempts to initiate the portions of the flow that have real-world side effects) Sie eine PaymentIntent des Typs `amazon_pay`. Durch Angabe von `payment_method_data` wird eine PaymentMethod erstellt und sofort mit dem PaymentIntent verwendet. Im Feld `return_url` müssen Sie auch die URL angeben, an die Ihre Kund/innen nach Abschluss ihrer Zahlung weitergeleitet werden. Sie können Ihre eigenen Abfrageparameter in dieser URL angeben. Diese Parameter werden nach Abschluss der Weiterleitung in die endgültige URL aufgenommen. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1000 \ -d currency=usd \ -d "payment_method_types[]=amazon_pay" \ -d "payment_method_data[type]=amazon_pay" \ --data-urlencode "return_url=https://example.com/checkout/complete" \ -d confirm=true ``` 1. Überprüfen Sie, ob der `PaymentIntent` den Status `requires_action` und ob `next_action` den Typ `redirect_to_url` hat. #### JSON ```json {"status": "requires_action", "next_action": { "type": "redirect_to_url", "redirect_to_url": { "url": "https://hooks.stripe.com/...", "return_url": "https://example.com/checkout/complete" } }, "id": "pi_1G1sgdKi6xqXeNtkldRRE6HT", "object": "payment_intent", ... } ``` 1. Leiten Sie die Kundinnen/Kunden an die in der Eigenschaft `next_action.redirect_to_url.url` angegebene URL weiter. Dieses Codebeispiel ist nur eine Annäherung und kann sich vom Weiterleitungsverfahren in Ihrem Web-Framework unterscheiden. #### Ruby ```ruby if payment_intent.status == 'requires_action' && payment_intent.next_action.type == 'redirect_to_url' url = payment_intent.next_action.redirect_to_url.url redirect(url) end ``` Bei Abschluss des Bezahlvorgangs werden Ihre Kundinnen/Kunden zu Ihrer `return_url` weitergeleitet. Die URL-Abfrageparameter `payment_intent` und `payment_intent_client_secret` sind zusammen mit Ihren eigenen Abfrageparametern enthalten. Stripe empfiehlt, einen [Webhook-Endpoint](https://docs.stripe.com/payments/payment-intents/verifying-status.md#webhooks) einzurichten, um den Zahlungsstatus programmgesteuert zu bestätigen. #### Zahlungsmethode mit der Payment Intents API speichern Verwenden Sie die [Payment Intents API](https://docs.stripe.com/payments/payment-intents.md), um Angaben zur Zahlungsmethode beim Bezahlvorgang zu erfassen und eine Zahlungsmethode für eine Kundin/einen Kunden zu speichern. Verwenden Sie dies für: - Zahlungsmethoden für Kundinnen/Kunden speichern, damit deren künftige Käufe keine Authentifizierungen erfordern - Kostenlosen Testzeitraum für ein *Abonnement* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis) starten ## PaymentIntent erstellen und Zahlungsmethode speichern [Serverseitig] Ein [PaymentIntent](https://docs.stripe.com/api/payment_intents.md) ist ein Objekt, das Ihre Absicht darstellt, Kundinnen/Kunden Zahlungen in Rechnung zu stellen. Wenn Sie bei der PaymentIntent-Anfrage keine gespeicherte Zahlungsmethode angeben, erstellen wir eine neue Zahlungsmethode und fügen diese den Kundinnen und Kunden hinzu, bevor der PaymentIntent bestätigt wird. Erstellen Sie einen PaymentIntent auf Ihrem Server, wobei [payment_method_types](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_types) auf `amazon_pay` festgelegt ist, und geben Sie die Kunden-ID, `confirm=true`, [setup_future_usage=off_session](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-setup_future_usage) mit einer [return_url](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-return_url) und optionalen [mandate_data](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-mandate_data) an. Verwenden Sie die [return_url](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-return_url), um Kundinnen/Kunden nach erfolgreicher PaymentIntent auf eine bestimmte Seite weiterzuleiten. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=amazon_pay" \ -d "payment_method_data[type]=amazon_pay" \ -d "mandate_data[customer_acceptance][type]=online" \ -d "mandate_data[customer_acceptance][online][ip_address]=127.0.0.0" \ -d "mandate_data[customer_acceptance][online][user_agent]=device" \ --data-urlencode "return_url=https://www.stripe.com" \ -d customer={{CUSTOMER_ID}} \ -d setup_future_usage=off_session \ -d amount=1000 \ -d currency=usd \ -d statement_descriptor=test_statement \ -d capture_method=automatic \ -d confirm=true ``` Der zurückgegebene PaymentIntent enthält ein *Client-Geheimnis* (The client secret is a unique key returned from Stripe as part of a PaymentIntent. This key lets the client access important fields from the PaymentIntent (status, amount, currency) while hiding sensitive ones (metadata, customer)), das auf Client-Seite verwendet wird, um die Zahlung sicher abzuschließen, anstatt das gesamte PaymentIntent-Objekt zu übergeben. Übergeben Sie das Client-Geheimnis an die Anwendung auf Client-Seite, um mit dem Zahlungsvorgang fortzufahren. ## PaymentIntent mit einer gespeicherten Zahlungsmethode erstellen [Serverseitig] Nachdem Sie eine [PaymentMethod](https://docs.stripe.com/api/payment_methods.md) erstellt haben, können Sie zukünftige Zahlungen per Amazon Pay annehmen, indem Sie ein [PaymentIntent](https://docs.stripe.com/api/payment_intents.md) erstellen und bestätigen. Verwenden Sie zum Bestätigen eines PaymentIntent dieselbe Zahlungsmethoden-ID aus dem vorherigen SetupIntent- oder PaymentIntent-Objekt. Der Wert `off_session` muss auch auf „true“ gesetzt sein, wenn sich Kundinnen und Kunden in diesem PaymentIntent nicht in einem Bezahlvorgang befinden. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=amazon_pay" \ -d payment_method={{PAYMENT_METHOD_ID}} \ -d amount=1000 \ -d currency=usd \ -d customer={{CUSTOMER_ID}} \ -d statement_descriptor=test_statement \ -d capture_method=automatic \ -d confirm=true \ -d off_session=true ``` ## Optional: Wiederverwendbare Zahlungsmethode entfernen Um eine wiederverwendbare Zahlungsmethode zu deaktivieren, kann Ihr Server die [detach PaymentMethod](https://docs.stripe.com/api/payment_methods/detach.md) API aufrufen. Stripe sendet sowohl ein [mandate.updated](https://docs.stripe.com/api/events/types.md#event_types-mandate.updated)-Ereignis als auch ein [payment_method.detached](https://docs.stripe.com/api/events/types.md#event_types-payment_method.detached)-Ereignis. Wenn Sie Benachrichtigungen erhalten möchten, abonnieren Sie [Webhook](https://docs.stripe.com/webhooks.md)-Ereignisse. # iOS > This is a iOS for when payment-ui is mobile and platform is ios. View the full page at https://docs.stripe.com/payments/amazon-pay/set-up-future-payments?payment-ui=mobile&platform=ios. Sie können die [Setup Intents API](https://docs.stripe.com/payments/setup-intents.md) verwenden, um Details zur Zahlungsmethode im Voraus zu erfassen. So können Sie den endgültigen Betrag oder das Zahlungsdatum später festlegen. Diese API ist für die folgenden Szenarien nützlich: - Speichern von Zahlungsmethoden in einer Geldbörse, um künftige Käufe zu optimieren. - Einziehen von Zuschlägen nach Erbringung einer Dienstleistung. - [Kostenlosen Testzeitraum für ein Abonnement starten](https://docs.stripe.com/billing/subscriptions/trials.md) Wenn Sie Angaben zur Zahlungsmethode erfassen und die gespeicherte Zahlungsmethode sofort belasten müssen, sollten Sie die [Payment Intents API](https://docs.stripe.com/payments/payment-intents.md) verwenden. ## Stripe einrichten [Serverseitig] [Clientseitig] Zunächst benötigen Sie ein Stripe-Konto. [Registrieren Sie sich jetzt](https://dashboard.stripe.com/register). ### Serverseitig Diese Integration erfordert Endpoints auf Ihrem Server, die mit der Stripe-API kommunizieren können. Nutzen Sie die offiziellen Bibliotheken für den Zugriff auf die Stripe-API von Ihrem Server aus: #### 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' ``` ### Clientseitig Das [Stripe iOS SDK](https://github.com/stripe/stripe-ios) ist Open Source, [vollständig dokumentiert](https://stripe.dev/stripe-ios/index.html) und kompatibel mit Apps, die iOS 13 oder höher unterstützen. #### Swift Package Manager Führen Sie zur Installation des SDK die folgenden Schritte aus: 1. Wählen Sie in Xcode **Datei** > **Add Package Dependencies** (Paketabhängigkeiten hinzufügen) aus und geben Sie als Repository-URL `https://github.com/stripe/stripe-ios-spm` ein. 1. Wählen auf unserer [Veröffentlichungsseite](https://github.com/stripe/stripe-ios/releases) die neueste Version aus. 1. Fügen Sie das Produkt **StripePaymentsUI** zum [Ziel Ihrer App](https://developer.apple.com/documentation/swift_packages/adding_package_dependencies_to_your_app) hinzu. #### CocoaPods 1. Falls noch nicht geschehen, installieren Sie bitte die aktuellste Version von [CocoaPods](https://guides.cocoapods.org/using/getting-started.html). 1. Wenn Sie keine bestehende [Podfile](https://guides.cocoapods.org/syntax/podfile.html) haben, führen Sie folgenden Befehl aus, um eine zu erstellen: ```bash pod init ``` 1. Fügen Sie folgende Zeile in Ihre `Podfile` ein: ```podfile pod 'StripePaymentsUI' ``` 1. Führen Sie folgenden Befehl aus: ```bash pod install ``` 1. Vergessen Sie nicht, ab jetzt in Zukunft anstelle der Datei `.xcodeproj` die Datei `.xcworkspace` zum Öffnen Ihres Projekts in Xcode zu verwenden. 1. Führen Sie für zukünftige Updates auf die jeweils aktuelle Version des SDK Folgendes aus: ```bash pod update StripePaymentsUI ``` #### Carthage 1. Falls noch nicht geschehen, installieren Sie bitte die aktuelle Version von [Carthage](https://github.com/Carthage/Carthage#installing-carthage). 1. Fügen Sie folgende Zeile in Ihre `Cartfile` ein: ```cartfile github "stripe/stripe-ios" ``` 1. Befolgen Sie die [Carthage-Installationsanweisungen](https://github.com/Carthage/Carthage#if-youre-building-for-ios-tvos-or-watchos). Vergewissern Sie sich, dass Sie alle [hier](https://github.com/stripe/stripe-ios/tree/master/StripePaymentsUI/README.md#manual-linking) aufgeführten erforderlichen Frameworks einbetten. 1. Führen Sie für zukünftige Updates auf die aktuelle Version unseres SDK einfach folgenden Befehl aus: ```bash carthage update stripe-ios --platform ios ``` #### Manuelles Framework 1. Gehen Sie auf unsere [GitHub-Release-Seite](https://github.com/stripe/stripe-ios/releases/latest), laden Sie **Stripe.xcframework.zip** herunter und entpacken Sie die Datei. 1. Ziehen Sie **StripePaymentsUI.xcframework** in den Abschnitt **Embedded Binaries** (Eingebettete Binärdateien) der Einstellungen unter **General** (Allgemeines) Ihres Xcode-Projekts. Aktivieren Sie dabei die Option **Copy items if needed** (Elemente kopieren, falls nötig). 1. Wiederholen Sie Schritt 2 für alle [hier](https://github.com/stripe/stripe-ios/tree/master/StripePaymentsUI/README.md#manual-linking) aufgeführten erforderlichen Frameworks. 1. Wiederholen Sie für zukünftige Updates auf die jeweils aktuelle Version des SDK die Schritte 1–3. > Details zur aktuellen SDK-Version und zu vorherigen Versionen finden Sie auf der Seite [Releases](https://github.com/stripe/stripe-ios/releases) auf GitHub. Um bei Veröffentlichung einer neuen Version eine Benachrichtigung zu erhalten, [achten Sie auf die Releases zum jeweiligen Repository](https://help.github.com/en/articles/watching-and-unwatching-releases-for-a-repository#watching-releases-for-a-repository). Konfigurieren Sie das SDK mit Ihrem [veröffentlichbaren Schlüssel](https://dashboard.stripe.com/test/apikeys) von Stripe, um es beim Start der App auszuführen. Dadurch kann Ihre App Anfragen an die Stripe-API senden. #### Swift ```swift import UIKitimportStripePaymentsUI @main class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {StripeAPI.defaultPublishableKey = "<>" // do any other necessary launch configuration return true } } ``` > Verwenden Sie Ihre [Testschlüssel](https://docs.stripe.com/keys.md#obtain-api-keys) beim Testen und Entwickeln Ihrer App und Ihre [Live-Modus](https://docs.stripe.com/keys.md#test-live-modes)-Schlüssel beim Veröffentlichen Ihrer App. ## Erlaubnis zur Speicherung von Zahlungsmethoden einholen [Serverseitig] Wenn Sie eine Zahlungsmethode für die spätere Verwendung speichern, benötigen Sie hierfür eine kundenseitige Zustimmung. Indem Sie im Voraus eine Vereinbarung (auch Mandat bezeichnet) erstellen, können Sie die Zahlungsdaten Ihrer Kundinnen und Kunden speichern und die Kundenkonten belasten, wenn sie Ihre Website oder App nicht aktiv nutzen. Binden Sie Geschäftsbedingungen in Ihre Website oder App ein, aus denen hervorgeht, wie Sie die Angaben Ihrer Kundinnen und Kunden zu den Zahlungsmethoden speichern möchten, und holen Sie deren Zustimmung ein. Wenn Sie Zahlungen auch verarbeiten möchten, wenn sie offline sind, müssen Sie sicherstellen, dass Ihre Geschäftsbedingungen außerdem Folgendes abdecken: - Die kundenseitige Erlaubnis, eine Zahlung oder mehrere Zahlungen für bestimmte Transaktionen in deren Namen einzuleiten. - Die voraussichtliche Häufigkeit (d. h. einmalig oder wiederkehrend) und der Zahlungszeitpunkt. - Wie Sie den Zahlbetrag ermitteln. - Ihre Stornorichtlinie, wenn Sie die Zahlungsmethode für einen Abonnementdienst einrichten. Dokumentieren Sie unbedingt die schriftliche Zustimmung Ihrer Kundinnen und Kunden zu diesen Bedingungen. ## Kundinnen/Kunden erstellen oder abrufen [Serverseitig] Um eine Amazon Pay-Zahlungsmethode für zukünftige Zahlungen zu speichern, müssen Sie sie einem Kunden/einer Kundin zuordnen. Erstellen Sie ein *Customer* (Customer objects represent customers of your business. They let you reuse payment methods and give you the ability to track multiple payments)-Objekt und fügen Sie die Zahlungsmethode mit den folgenden Schritten hinzu: Erstellen Sie ein `Customer`-Objekt, wenn Kundinnen/Kunden Konten bei Ihrem Unternehmen anlegen. Verknüpfen Sie unbedingt die ID des `Customer`-Objekts mit Ihrer eigenen internen Darstellung der Kundinnen/Kunden. Alternativ können Sie das `Customer`-Objekt erstellen, bevor Sie eine Zahlungsmethode für künftige Zahlungen speichern. Verwenden Sie den folgenden Code auf Ihrem Server, um eine/n neue/n `Customer` zu erstellen. ```curl curl https://api.stripe.com/v1/customers \ -u "<>:" \ --data-urlencode "description=My First Test Customer (created for API docs)" ``` ## Zeigen Sie die Autorisierungsbedingungen auf Ihrem Zahlungsformular an [Clientseitig] Speichern Sie die Amazon Pay-Anmeldeinformationen der Kundin/des Kunden, um ihr/sein Konto für zukünftige *Off-Session-Zahlungen* (A payment is described as off-session if it occurs without the direct involvement of the customer, using previously-collected payment information) zu belasten. Ihr nutzerspezifisches Zahlungsformular muss einen schriftlichen Autorisierungshinweis enthalten, bevor der [PaymentIntent](https://docs.stripe.com/api/payment_intents.md) oder der [SetupIntent](https://docs.stripe.com/api/setup_intents.md) bestätigt wird. Sie müssen die Autorisierung nur anzeigen, wenn Sie die Amazon Pay-Anmeldedaten der Kundin/des Kunden zum ersten Mal speichern. Wir empfehlen Ihnen, den folgenden Text für Ihr individuelles Zahlungsformular zu verwenden: > Indem Sie fortfahren, erteilen Sie Rocket Rides die Genehmigung, Ihr Amazon Pay-Konto für diese und künftige Zahlungen im Einklang mit den AGB von Rocket Rides zu belasten, bis Sie Ihre Genehmigung widerrufen. ## Angaben zur Zahlungsmethode erfassen [Clientseitig] #### Swift ```swift // Amazon Pay does not require additional parameters so we only need to pass the initialized // STPPaymentMethodAmazonPayParams instance to STPPaymentMethodParams let amazonPay = STPPaymentMethodAmazonPayParams() let paymentMethodParams = STPPaymentMethodParams(amazonPay: amazonPay, billingDetails: nil, metadata: nil) ``` ## Zahlung an Stripe senden [Clientseitig] Rufen Sie das Client-Geheimnis vom erstellten SetupIntent ab und rufen Sie [STPPaymentHandler confirmSetupIntent](https://stripe.dev/stripe-ios/stripe-payments/Classes/STPPaymentHandler.html#/c:objc\(cs\)STPPaymentHandler\(im\)confirmSetupIntent:withAuthenticationContext:completion:). auf. Dies entspricht einer Webansicht, über die die Kundinnen/Kunden die Zahlung mit Amazon Pay durchführen können. Danach wird der Completion-Block mit dem Ergebnis der Zahlung aufgerufen. #### Swift ```swift let setupIntentParams = STPSetupIntentConfirmParams(clientSecret: setupIntentClientSecret) setupIntentParams.paymentMethodParams = paymentMethodParams setupIntentParams.returnURL = "payments-example://stripe-redirect" STPPaymentHandler.shared().confirmSetupIntent(setupIntentParams, with: self) { (handlerStatus, setupIntent, error) in switch handlerStatus { case .succeeded: // Setup succeeded case .canceled: // Setup was canceled case .failed: // Setup failed @unknown default: fatalError() } } ``` ## PaymentIntent mit einer gespeicherten Zahlungsmethode erstellen [Serverseitig] Nachdem Sie eine [PaymentMethod](https://docs.stripe.com/api/payment_methods.md) erstellt haben, können Sie zukünftige Zahlungen per Amazon Pay annehmen, indem Sie ein [PaymentIntent](https://docs.stripe.com/api/payment_intents.md) erstellen und bestätigen. Verwenden Sie zum Bestätigen eines PaymentIntent dieselbe Zahlungsmethoden-ID aus dem vorherigen SetupIntent- oder PaymentIntent-Objekt. Der Wert `off_session` muss auch auf „true“ gesetzt sein, wenn sich Kundinnen und Kunden in diesem PaymentIntent nicht in einem Bezahlvorgang befinden. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=amazon_pay" \ -d payment_method={{PAYMENT_METHOD_ID}} \ -d amount=1000 \ -d currency=usd \ -d customer={{CUSTOMER_ID}} \ -d statement_descriptor=test_statement \ -d capture_method=automatic \ -d confirm=true \ -d off_session=true ``` ## Eine wiederverwendbare Zahlungsmethode trennen Um eine wiederverwendbare Zahlungsmethode zu deaktivieren, können Sie mithilfe der Stripe-API den Endpoint [PaymentMethod entfernen](https://docs.stripe.com/api/payment_methods/detach.md) auf Ihrem Server aufrufen. Dadurch wird die Verbindung der Zahlungsmethode mit dem Konto des Kunden/der Kundin getrennt. Wenn Sie eine Zahlungsmethode entfernen, sendet Stripe zwei Ereignisse: - [mandate.updated](https://docs.stripe.com/api/events/types.md#event_types-mandate.updated): Dieses Ereignis gibt an, dass das mit der Zahlungsmethode verknüpfte Mandat aktualisiert wurde. - [payment_method.detached](https://docs.stripe.com/api/events/types.md#event_types-payment_method.detached): Dieses Ereignis gibt an, dass die Verbindung der Zahlungsmethode mit dem Konto des Kunden/der Kundin getrennt wurde. Um Benachrichtigungen über diese Ereignisse zu erhalten, können Sie [Webhook](https://docs.stripe.com/webhooks.md)-Ereignisse abonnieren. Weitere Informationen dazu, wie Sie eine wiederverwendbare Zahlungsmethode widerrufen können, finden Sie unter [PaymentMethod entfernen](https://docs.stripe.com/api/payment_methods/detach.md). # Android > This is a Android for when payment-ui is mobile and platform is android. View the full page at https://docs.stripe.com/payments/amazon-pay/set-up-future-payments?payment-ui=mobile&platform=android. Sie können die [Setup Intents API](https://docs.stripe.com/payments/setup-intents.md) verwenden, um Details zur Zahlungsmethode im Voraus zu erfassen. So können Sie den endgültigen Betrag oder das Zahlungsdatum später festlegen. Diese API ist für die folgenden Szenarien nützlich: - Speichern von Zahlungsmethoden in einer Geldbörse, um künftige Käufe zu optimieren. - Erhebung von Zuschlägen nach Erbringung einer Dienstleistung. - [Kostenlosen Testzeitraum für ein Abonnement starten](https://docs.stripe.com/billing/subscriptions/trials.md) Wenn Sie Angaben zur Zahlungsmethode erfassen und die gespeicherte Zahlungsmethode sofort belasten müssen, verwenden Sie die [Payment Intents API](https://docs.stripe.com/payments/payment-intents.md). ## Stripe einrichten [Serverseitig] [Clientseitig] Zunächst benötigen Sie ein Stripe-Konto. [Registrieren Sie sich jetzt](https://dashboard.stripe.com/register). ### Serverseitig Diese Integration erfordert Endpoints auf Ihrem Server, die mit der Stripe-API kommunizieren können. Nutzen Sie diese offiziellen Bibliotheken für den Zugriff auf die Stripe-API von Ihrem Server aus: #### 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' ``` ### Clientseitig Das [Stripe Android SDK](https://github.com/stripe/stripe-android) ist Open Source und [vollständig dokumentiert](https://stripe.dev/stripe-android/). Um das SDK zu installieren, fügen Sie `stripe-android` in den Block `dependencies` Ihrer [app/build.gradle](https://developer.android.com/studio/build/dependencies)-Datei ein: #### Kotlin ```kotlin plugins { id("com.android.application") } android { ... } dependencies { // ... // Stripe Android SDK implementation("com.stripe:stripe-android:23.2.0") // Include the financial connections SDK to support US bank account as a payment method implementation("com.stripe:financial-connections:23.2.0") } ``` > Details zur aktuellen SDK-Version und zu vorherigen Versionen finden Sie auf der Seite [Releases](https://github.com/stripe/stripe-android/releases) auf GitHub. Um bei Veröffentlichung eines neuen Release eine Benachrichtigung zu erhalten, [beobachten Sie Veröffentlichungen für das jeweilige Repository](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#configuring-your-watch-settings-for-an-individual-repository). Konfigurieren Sie das SDK mit Ihrem [veröffentlichbaren Schlüssel](https://dashboard.stripe.com/apikeys) von Stripe so, dass dieser Anfragen an die API stellen kann, wie beispielsweise in Ihrer Unterklasse `Application`: #### Kotlin ```kotlin import com.stripe.android.PaymentConfiguration class MyApp : Application() { override fun onCreate() { super.onCreate() PaymentConfiguration.init( applicationContext, "<>" ) } } ``` > Verwenden Sie Ihre [Testschlüssel](https://docs.stripe.com/keys.md#obtain-api-keys) beim Testen und Entwickeln Ihrer App und Ihre [Live-Modus](https://docs.stripe.com/keys.md#test-live-modes)-Schlüssel beim Veröffentlichen Ihrer App. Stripe-Beispiele nutzen auch [OkHttp](https://github.com/square/okhttp) und [GSON](https://github.com/google/gson), um HTTP-Anfragen an einen Server zu stellen. ## Kundinnen/Kunden erstellen oder abrufen [Serverseitig] Um eine Amazon Pay-Zahlungsmethode für zukünftige Zahlungen zu speichern, müssen Sie sie einem Kunden/einer Kundin zuordnen. Erstellen Sie ein *Customer* (Customer objects represent customers of your business. They let you reuse payment methods and give you the ability to track multiple payments)-Objekt und fügen Sie die Zahlungsmethode mit den folgenden Schritten hinzu: Erstellen Sie ein Customer-Objekt, wenn Kundinnen/Kunden Konten bei Ihrem Unternehmen anlegen. Verknüpfen Sie unbedingt die ID des Customer-Objekts mit Ihrer eigenen internen Darstellung der Kundinnen/Kunden. Alternativ können Sie das Customer-Objekt erstellen, bevor Sie eine Zahlungsmethode für künftige Zahlungen speichern. Verwenden Sie den folgenden Code auf Ihrem Server, um neue Kundinnen/Kunden zu erstellen. ```curl curl https://api.stripe.com/v1/customers \ -u "<>:" \ --data-urlencode "description=My First Test Customer (created for API docs)" ``` ## SetupIntent erstellen [Serverseitig] Ein [SetupIntent](https://docs.stripe.com/api/setup_intents.md) stellt Ihre Absicht dar, die Zahlungsmethode eines Kunden/einer Kundin für zukünftige Zahlungen einzurichten. Die Schritte dieses Einrichtungsprozesses werden nachverfolgt. Führen Sie die folgenden Schritte aus, um einen SetupIntent auf Ihrem Server zu erstellen: 1. Setzen Sie [payment_method_types](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-payment_method_types) auf `amazon_pay`. 1. Geben Sie die Kunden-ID an und legen Sie [`usage`](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-usage) auf `off_session` oder `on_session` fest. 1. Fügen Sie den folgenden Code auf Ihrem Server ein: ```curl curl https://api.stripe.com/v1/setup_intents \ -u "<>:" \ -d "payment_method_types[]=amazon_pay" \ -d "payment_method_data[type]=amazon_pay" \ -d usage=off_session \ -d customer={{CUSTOMER_ID}} ``` Beachten Sie, dass Sie `{{CUSTOMER_ID}}` durch die tatsächliche ID des Kunden/der Kundin ersetzen müssen. ## Autorisierungsbedingungen auf Ihrem Zahlungsformular anzeigen [Clientseitig] Wenn Sie die Amazon Pay-Anmeldeinformationen der Kundin/des Kunden speichern, um ihr/sein Konto für zukünftige *Off-Session* (A payment is described as off-session if it occurs without the direct involvement of the customer, using previously-collected payment information)-Zahlungen zu belasten, muss Ihr nutzerspezifisches Zahlungsformular unbedingt einen schriftlichen Autorisierungshinweis enthalten, bevor der [PaymentIntent](https://docs.stripe.com/api/payment_intents.md) oder der [SetupIntent](https://docs.stripe.com/api/setup_intents.md) bestätigt wird. Beachten Sie, dass die Autorisierungsbedingungen nur angezeigt werden müssen, wenn Sie die Anmeldeinformationen eines Kunden/einer Kundin zum ersten Mal speichern. Wir empfehlen Ihnen, den folgenden Text für Ihr individuelles Zahlungsformular zu verwenden: > Indem Sie fortfahren, erteilen Sie Rocket Rides die Genehmigung, Ihr Amazon-Konto in Höhe dieser und künftiger Zahlungen im Einklang mit den AGB von Rocket Rides zu belasten, bis diese Genehmigung widerrufen wird. Sie können diese Zustimmung jederzeit in Ihren Amazon-Einstellungen ändern. Ersetzen Sie Rocket Rides unbedingt durch den tatsächlichen Unternehmensnamen Ihrer juristischen Person. ## Angaben zur Zahlungsmethode an Stripe übermitteln [Clientseitig] Um die Angaben zur Zahlungsmethode an Stripe zu übermitteln, befolgen Sie diese Schritte: 1. Rufen Sie das Client-Geheimnis aus dem erstellten SetupIntent ab. 1. Rufen `PaymentLauncher.confirm()` mit dem Client-Geheimnis auf. Dadurch wird der Kunde/die Kundin zu Amazon weitergeleitet, wo er/sie den Einrichtungsvorgang abschließen kann. 1. Nachdem der Kunde/die Kundin den Einrichtungsvorgang abgeschlossen hat, wird der von Ihnen angegebene `PaymentResultCallback` mit dem Ergebnis der Zahlung aufgerufen. Weitere Informationen finden Sie unter [PaymentLauncher bestätigen](https://stripe.dev/stripe-android/payments-core/com.stripe.android.payments.paymentlauncher/-payment-launcher/confirm.html). #### Kotlin ```kotlin class AmazonPaySetupActivity : AppCompatActivity() { // ... private val paymentLauncher: PaymentLauncher by lazy { val paymentConfiguration = PaymentConfiguration.getInstance(applicationContext) PaymentLauncher.create( activity = this, publishableKey = paymentConfiguration.publishableKey, stripeAccountId = paymentConfiguration.stripeAccountId, callback = ::onPaymentResult, ) } override fun onCreate(savedInstanceState: Bundle?) { // … startCheckout() } private fun startCheckout() { // Create a SetupIntent on your backend and return the client_secret here val setupIntentClientSecret = // … val amazonPayParams = PaymentMethodCreateParams.createAmazonPay() val confirmParams = ConfirmSetupIntentParams.create( paymentMethodCreateParams = amazonPayParams, clientSecret = setupIntentClientSecret, // Add a mandate ID or MandateDataParams… ) paymentLauncher.confirm(confirmParams) } private fun onPaymentResult(paymentResult: PaymentResult) { // Handle the setup result… } } ``` ## PaymentIntent mit einer gespeicherten Zahlungsmethode erstellen [Serverseitig] Um zukünftige Amazon Pay-Zahlungen zu akzeptieren, können Sie nach dem Erstellen einer PaymentMethod einen PaymentIntent erstellen und bestätigen. Gehen Sie wie folgt vor: 1. Erstellen Sie einen [PaymentMethod](https://docs.stripe.com/api/payment_methods.md) für den Kunden/die Kundin. 1. Verwenden Sie dieselbe Zahlungsmethoden-ID aus dem vorherigen SetupIntent- oder PaymentIntent-Objekt, wenn Sie den PaymentIntent bestätigen. 1. Wenn sich der Kunde/die Kundin nicht in einem Bezahlvorgang für diesen PaymentIntent befindet, müssen Sie sicherstellen, dass der `off_session`-Wert auf „true“ festgelegt ist. Wenn Sie diese Schritte befolgen, können Sie zukünftige Amazon Pay-Zahlungen mit der gespeicherten Zahlungsmethode akzeptieren. Ausführlichere Anweisungen zum Erstellen und Bestätigen eines PaymentIntent mit einer gespeicherten Zahlungsmethode finden Sie unter [PaymentIntent](https://docs.stripe.com/api/payment_intents.md). ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=amazon_pay" \ -d payment_method={{PAYMENT_METHOD_ID}} \ -d amount=1000 \ -d currency=usd \ -d customer={{CUSTOMER_ID}} \ -d statement_descriptor=test_statement \ -d capture_method=automatic \ -d confirm=true \ -d off_session=true ``` ## Eine wiederverwendbare Zahlungsmethode trennen Um eine wiederverwendbare Zahlungsmethode zu deaktivieren, können Sie mithilfe der Stripe-API den Endpoint [PaymentMethod entfernen](https://docs.stripe.com/api/payment_methods/detach.md) auf Ihrem Server aufrufen. Dadurch wird die Verbindung der Zahlungsmethode mit dem Konto des Kunden/der Kundin getrennt. Wenn Sie eine Zahlungsmethode entfernen, sendet Stripe zwei Ereignisse: - [mandate.updated](https://docs.stripe.com/api/events/types.md#event_types-mandate.updated): Dieses Ereignis gibt an, dass das mit der Zahlungsmethode verknüpfte Mandat aktualisiert wurde. - [payment_method.detached](https://docs.stripe.com/api/events/types.md#event_types-payment_method.detached): Dieses Ereignis gibt an, dass die Verbindung der Zahlungsmethode mit dem Konto des Kunden/der Kundin getrennt wurde. Um Benachrichtigungen über diese Ereignisse zu erhalten, können Sie [Webhook](https://docs.stripe.com/webhooks.md)-Ereignisse abonnieren. Weitere Informationen dazu, wie Sie eine wiederverwendbare Zahlungsmethode widerrufen können, finden Sie unter [PaymentMethod entfernen](https://docs.stripe.com/api/payment_methods/detach.md).