# Ein Abonnement mit Amazon Pay einrichten Erfahren Sie, wie Sie ein Abonnement mit Amazon Pay einrichten und abrechnen können. Verwenden Sie diesen Leitfaden, um 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) mit [Amazon Pay](https://docs.stripe.com/payments/amazon-pay.md) als Zahlungsmethode einzurichten. # Setup Intents API > This is a Setup Intents API for when api-integration is setupintents. View the full page at https://docs.stripe.com/billing/subscriptions/amazon-pay?api-integration=setupintents. Erstellen und bestätigen Sie ein Abonnement mit zwei API-Aufrufen. Der [erste API-Aufruf](https://docs.stripe.com/billing/subscriptions/amazon-pay.md#create-setup-intent) verwendet die [Setup Intents API](https://docs.stripe.com/api/setup_intents.md), um Amazon Pay als Zahlungsmethode festzulegen. Der [zweite API-Aufruf](https://docs.stripe.com/billing/subscriptions/amazon-pay.md#create-subscription) sendet Kunden-, Produkt- und Zahlungsmethodeninformationen an die [Subscriptions API](https://docs.stripe.com/api/subscriptions.md), um ein Abonnement zu erstellen und eine Zahlung in einem Aufruf zu bestätigen. ## Produkt und Preis erstellen [Dashboard] [Produkte](https://docs.stripe.com/api/products.md) stehen für den von Ihnen angebotenen Artikel oder Dienst. [Preise](https://docs.stripe.com/api/prices.md) geben an, wie viel und wie häufig Sie für ein Produkt berechnen. Dies schließt ein, wie viel ein Produkt kostet, welche Währung Sie akzeptieren und ob es sich um eine einmalige oder eine wiederkehrende Zahlung handelt. Wenn Sie nur ein paar wenige Produkte und Preise haben, können Sie diese im Dashboard erstellen und verwalten. In diesem Leitfaden wird ein Stock-Foto-Service als Beispiel verwendet, für den Kund/innen ein monatliches Abonnement mit dem Betrag von 15 USD berechnet werden. Um dies zu modellieren: 1. Gehen Sie zur Seite [Produkte](https://dashboard.stripe.com/products?active=true) und klicken Sie auf **Produkt erstellen**. 1. Geben Sie einen **Namen** für das Produkt an. Sie können optional eine **Beschreibung** hinzufügen und ein Bild des Produkts hochladen. 1. Wählen Sie einen **Produktsteuercode** aus. Erfahren Sie mehr über [Produktsteuercodes](https://docs.stripe.com/tax/tax-codes.md). 1. Wählen Sie **Wiederkehrend** aus. Geben Sie im Anschluss daran **15** für den Preis ein und wählen Sie **USD** als Währung aus. 1. Wählen Sie, ob die **Steuer im Preis berücksichtigt** werden soll. Sie können entweder den Standardwert aus Ihren [Steuereinstellungen](https://dashboard.stripe.com/test/settings/tax) verwenden oder den Wert manuell festlegen. Wählen Sie in diesem Beispiel **Auto** aus. 1. Wählen Sie **Monatlich** als **Abrechnungszeitraum** aus. 1. Klicken Sie auf **Weitere Preisoptionen**. Wählen Sie dann **Pauschalpreis** als Preismodell für dieses Beispiel aus. Erfahren Sie mehr über [Pauschalpreise](https://docs.stripe.com/products-prices/pricing-models.md#flat-rate) und andere [Preismodelle](https://docs.stripe.com/products-prices/pricing-models.md). 1. Fügen Sie eine interne **Preisbeschreibung** und einen [Lookup-Schlüssel](https://docs.stripe.com/products-prices/manage-prices.md#lookup-keys) hinzu, um bestimmte Preise in Zukunft zu organisieren, abzufragen und zu aktualisieren. 1. Klicken Sie auf **Weiter**. Klicken Sie dann auf **Produkt hinzufügen**. Zeichnen Sie nach Erstellen des Produkts und des Preises die Preis-ID auf, sodass Sie diese in nachfolgenden Schritten verwenden können. Die ID wird auf der Preisseite angezeigt und sieht in etwa so aus: `price_G0FvDp6vZvdwRZ`. ## 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 `Customer`-Objekt, wenn Ihre Kundinnen und Kunden ein Konto bei Ihrem Unternehmen anlegen. Wenn Sie die ID des `Customer`-Objekts 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 `Customer`-Objekt 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)" ``` ## Einen SetupIntent erstellen [Serverseitig] Erstellen Sie einen [SetupIntent](https://docs.stripe.com/api/setup_intents.md), um die Zahlungsmethode eines Kunden/einer Kundin für zukünftige Zahlungen zu speichern. 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 confirm=true \ --data-urlencode "return_url=https://www.stripe.com" \ -d usage=off_session \ -d customer=cus_ODQluYFNl44ODI \ -d "payment_method_data[type]=amazon_pay" \ -d "payment_method_types[]=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" ``` Das SetupIntent-Objekt enthält ein `client_secret`, einen eindeutigen Schlüssel, den Sie auf der Client-Seite an Stripe.js übergeben müssen, um Ihre Käufer/innen an Amazon Pay weiterzuleiten und Mandate zu autorisieren. ### 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 ``` Speichern Sie als Nächstes 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. } ``` ## Abonnement erstellen [Serverseitig] Erstellen Sie ein Abonnement mit einem Preis und einer Kundin/einem Kunden. Legen Sie den Wert des Parameters `default_payment_method` auf die PaymentMethod-ID aus der SetupIntent-Antwort fest. ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d customer={{CUSTOMER_ID}} \ -d "items[0][price]={{PRICE_ID}}" \ -d default_payment_method={{PAYMENT_METHOD_ID}} \ -d off_session=true ``` Wenn Sie Abonnements erstellen, werden Kundinnen und Kunden ausstehende Zahlungen automatisch über deren voreingestellte Standardzahlungsmethode berechnet. War eine Zahlung erfolgreich, so ändert sich der Status im Stripe-Dashboard in **Aktiv**. Der Preis, den Sie zuvor festgelegt haben, bestimmt den Betrag für zukünftige Abrechnungen. Erfahren Sie, wie Sie ein [Abonnement mit kostenlosem Testzeitraum erstellen](https://docs.stripe.com/billing/subscriptions/trials.md). # Payment Intents API > This is a Payment Intents API for when api-integration is subscription. View the full page at https://docs.stripe.com/billing/subscriptions/amazon-pay?api-integration=subscription. Erstellen und bestätigen Sie ein Abonnement mit zwei API-Aufrufen. Der [erste API-Aufruf](https://docs.stripe.com/billing/subscriptions/amazon-pay.md#pi-create-subscription) sendet Kunden- und Produktinformationen an die [Subscriptions API](https://docs.stripe.com/api/subscriptions.md), um ein Abonnement und einen PaymentIntent in einem Aufruf zu erstellen. Die Antwort enthält eine PaymentIntent-ID, die Sie in einem [Payment Intents API](https://docs.stripe.com/api/payment_intents.md)-Aufruf verwenden müssen, um [die Zahlung zu bestätigen](https://docs.stripe.com/billing/subscriptions/amazon-pay.md#pi-confirm-payment). ## Produkt und Preis erstellen [Dashboard] [Produkte](https://docs.stripe.com/api/products.md) stehen für den von Ihnen angebotenen Artikel oder Dienst. [Preise](https://docs.stripe.com/api/prices.md) geben an, wie viel und wie häufig Sie für ein Produkt berechnen. Dies schließt ein, wie viel ein Produkt kostet, welche Währung Sie akzeptieren und ob es sich um eine einmalige oder eine wiederkehrende Zahlung handelt. Wenn Sie nur ein paar wenige Produkte und Preise haben, können Sie diese im Dashboard erstellen und verwalten. In diesem Leitfaden wird ein Stock-Foto-Service als Beispiel verwendet, für den Kund/innen ein monatliches Abonnement mit dem Betrag von 15 USD berechnet werden. Um dies zu modellieren: 1. Gehen Sie zur Seite [Produkte](https://dashboard.stripe.com/products?active=true) und klicken Sie auf **Produkt erstellen**. 1. Geben Sie einen **Namen** für das Produkt an. Sie können optional eine **Beschreibung** hinzufügen und ein Bild des Produkts hochladen. 1. Wählen Sie einen **Produktsteuercode** aus. Erfahren Sie mehr über [Produktsteuercodes](https://docs.stripe.com/tax/tax-codes.md). 1. Wählen Sie **Wiederkehrend** aus. Geben Sie im Anschluss daran **15** für den Preis ein und wählen Sie **USD** als Währung aus. 1. Wählen Sie, ob die **Steuer im Preis berücksichtigt** werden soll. Sie können entweder den Standardwert aus Ihren [Steuereinstellungen](https://dashboard.stripe.com/test/settings/tax) verwenden oder den Wert manuell festlegen. Wählen Sie in diesem Beispiel **Auto** aus. 1. Wählen Sie **Monatlich** als **Abrechnungszeitraum** aus. 1. Klicken Sie auf **Weitere Preisoptionen**. Wählen Sie dann **Pauschalpreis** als Preismodell für dieses Beispiel aus. Erfahren Sie mehr über [Pauschalpreise](https://docs.stripe.com/products-prices/pricing-models.md#flat-rate) und andere [Preismodelle](https://docs.stripe.com/products-prices/pricing-models.md). 1. Fügen Sie eine interne **Preisbeschreibung** und einen [Lookup-Schlüssel](https://docs.stripe.com/products-prices/manage-prices.md#lookup-keys) hinzu, um bestimmte Preise in Zukunft zu organisieren, abzufragen und zu aktualisieren. 1. Klicken Sie auf **Weiter**. Klicken Sie dann auf **Produkt hinzufügen**. Zeichnen Sie nach Erstellen des Produkts und des Preises die Preis-ID auf, sodass Sie diese in nachfolgenden Schritten verwenden können. Die ID wird auf der Preisseite angezeigt und sieht in etwa so aus: `price_G0FvDp6vZvdwRZ`. ## Abonnement erstellen [Serverseitig] Erstellen Sie ein [Abonnement](https://docs.stripe.com/api/subscriptions.md), dem ein Preis und eine Kundin/ein Kunde mit dem Status `incomplete` zugeordnet ist. Hierfür geben Sie den Parameter [payment_behavior](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-payment_behavior) mit dem Wert `default_incomplete` an. Legen Sie den Parameter `payment_settings.save_default_payment_method=on_subscription` fest, um eine Zahlungsmethode bei der Aktivierung eines Abonnements zu speichern. ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d customer={{CUSTOMER_ID}} \ -d payment_behavior=default_incomplete \ -d "items[0][price]={{PRICE_ID}}" \ -d "payment_settings[save_default_payment_method]=on_subscription" \ -d "payment_settings[payment_method_types][0]=amazon_pay" \ -d "payment_settings[payment_method_types][1]=card" \ -d "expand[0]=latest_invoice.payments" \ -d "expand[1]=latest_invoice.confirmation_secret" ``` Die Antwort enthält die erste [Rechnung](https://docs.stripe.com/api/invoices.md) des *Abonnements*. Diese enthält die Payments der Rechnung, darunter einen Standard-PaymentIntent, den Stripe für diese Rechnung generiert hat, und das Bestätigungsgeheimnis, das Sie auf Client-Seite verwendet haben, um den Prozess der Zahlung sicher abzuschließen, anstatt das gesamte PaymentIntent-Objekt zu übergeben. Sie erhalten die PaymentIntent ID, die Sie verwenden müssen, um eine Zahlung von `latest_Rechnung.Payments` zu bestätigen. Geben Sie das `latest_Rechnung.confirmation_secret.client_secret` an das Frontend zurück, um die Zahlung abzuschließen. Erfahren Sie, wie Sie [ein Abo mit einem kostenlosen Testzeitraum erstellen](https://docs.stripe.com/billing/subscriptions/trials.md). ## Zahlungen bestätigen [Serverseitig] Bestätigen Sie eine Zahlung mit [PaymentIntents](https://docs.stripe.com/api/payment_intents.md) unter Verwendung der PaymentIntent-ID aus der Abonnement-Antwort. Fügen Sie dann die PaymentIntent-ID zum URL-Pfad hinzu und legen Sie den Wert des Parameters `payment_method_types` auf `amazon_pay` fest: ```curl curl https://api.stripe.com/v1/payment_intents/:id/confirm \ -u "<>:" \ -d "payment_method_data[type]=amazon_pay" \ --data-urlencode "return_url=https://www.stripe.com" \ -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" \ -d "mandate_data[customer_acceptance][accepted_at]=1660000000" ``` Die PaymentIntent-Antwort enthält den Status `requires_action`. Das bedeutet, dass sich Ihre Nutzer/innen bei Amazon Pay authentifizieren müssen, um den PaymentIntent abzuschließen. Nach erfolgreicher Zahlung wird das Abonnement aktiv und speichert die Zahlungsmethode als Standard-Zahlungsmethode. # Von Stripe gehostete Seite > This is a Von Stripe gehostete Seite for when api-integration is checkout. View the full page at https://docs.stripe.com/billing/subscriptions/amazon-pay?api-integration=checkout. Sie können die [Checkout API](https://docs.stripe.com/api/checkout/sessions.md) verwenden, um ein Abonnement mit einer vorgefertigten Bezahlseite zu erstellen und zu bestätigen. ## Produkt und Preis erstellen [Dashboard] [Produkte](https://docs.stripe.com/api/products.md) stehen für den von Ihnen angebotenen Artikel oder Dienst. [Preise](https://docs.stripe.com/api/prices.md) geben an, wie viel und wie häufig Sie für ein Produkt berechnen. Dies schließt ein, wie viel ein Produkt kostet, welche Währung Sie akzeptieren und ob es sich um eine einmalige oder eine wiederkehrende Zahlung handelt. Wenn Sie nur ein paar wenige Produkte und Preise haben, können Sie diese im Dashboard erstellen und verwalten. In diesem Leitfaden wird ein Stock-Foto-Service als Beispiel verwendet, für den Kund/innen ein monatliches Abonnement mit dem Betrag von 15 USD berechnet werden. Um dies zu modellieren: 1. Gehen Sie zur Seite [Produkte](https://dashboard.stripe.com/products?active=true) und klicken Sie auf **Produkt erstellen**. 1. Geben Sie einen **Namen** für das Produkt an. Sie können optional eine **Beschreibung** hinzufügen und ein Bild des Produkts hochladen. 1. Wählen Sie einen **Produktsteuercode** aus. Erfahren Sie mehr über [Produktsteuercodes](https://docs.stripe.com/tax/tax-codes.md). 1. Wählen Sie **Wiederkehrend** aus. Geben Sie im Anschluss daran **15** für den Preis ein und wählen Sie **USD** als Währung aus. 1. Wählen Sie, ob die **Steuer im Preis berücksichtigt** werden soll. Sie können entweder den Standardwert aus Ihren [Steuereinstellungen](https://dashboard.stripe.com/test/settings/tax) verwenden oder den Wert manuell festlegen. Wählen Sie in diesem Beispiel **Auto** aus. 1. Wählen Sie **Monatlich** als **Abrechnungszeitraum** aus. 1. Klicken Sie auf **Weitere Preisoptionen**. Wählen Sie dann **Pauschalpreis** als Preismodell für dieses Beispiel aus. Erfahren Sie mehr über [Pauschalpreise](https://docs.stripe.com/products-prices/pricing-models.md#flat-rate) und andere [Preismodelle](https://docs.stripe.com/products-prices/pricing-models.md). 1. Fügen Sie eine interne **Preisbeschreibung** und einen [Lookup-Schlüssel](https://docs.stripe.com/products-prices/manage-prices.md#lookup-keys) hinzu, um bestimmte Preise in Zukunft zu organisieren, abzufragen und zu aktualisieren. 1. Klicken Sie auf **Weiter**. Klicken Sie dann auf **Produkt hinzufügen**. Zeichnen Sie nach Erstellen des Produkts und des Preises die Preis-ID auf, sodass Sie diese in nachfolgenden Schritten verwenden können. Die ID wird auf der Preisseite angezeigt und sieht in etwa so aus: `price_G0FvDp6vZvdwRZ`. ## 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, die einen serverseitigen Endpoint aufruft, um eine [Checkout-Sitzung](https://docs.stripe.com/api/checkout/sessions.md) zu erstellen. ```html Checkout
``` Erstellen Sie eine Checkout-Sitzung im `subscription`-Modus, um die erforderlichen Informationen zu erfassen. Leiten Sie Ihre Kundinnen und Kunden nach dem Erstellen der Checkout-Sitzung an die in der Antwort zurückgegebene [URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) weiter. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ --data-urlencode "success_url=https://example.com/success" \ -d "line_items[0][price]={{RECURRING_PRICE_ID}}" \ -d "line_items[0][quantity]=1" \ -d "payment_method_types[0]=card" \ -d "payment_method_types[1]=amazon_pay" \ -d mode=subscription ``` ## Integration testen [Serverseitig] Wählen Sie Amazon Pay als Zahlungsmethode aus und klicken Sie dann auf „Abonnieren“. Sie können die erfolgreiche Zahlung testen, indem Sie die Zahlung auf der Weiterleitungsseite authentifizieren. Der PaymentIntent wechselt von `requires_action` zu `succeeded`.