# Erstellen Sie eine von Stripe gehostete Seite für den Bezahlvorgang # Von Stripe gehostete Seite Sehen Sie sich ein vollständiges, funktionierendes Codebeispiel einer Integration mit [Stripe Checkout](https://docs.stripe.com/payments/checkout.md) an, bei der Kunden/Kundinnen auf eine Schaltfläche auf Ihrer Website klicken und zu einer von Stripe gehosteten Zahlungsseite weitergeleitet werden. Das Beispiel enthält client- und serverseitigen Code, und die Zahlungsseite ist vorgefertigt. ### Stripe Node-Bibliothek installieren Installieren Sie das Paket und importieren Sie es in Ihren Code. Wenn Sie dagegen von Grund auf neu beginnen möchten und eine package.json-Datei benötigen, laden Sie die Projektdateien über den Download-Link im Code-Editor herunter. #### npm Bibliothek installieren: ```bash npm install --save stripe ``` #### GitHub Oder laden Sie den Quellcode der Stripe-Node-Bibliothek direkt von [GitHub](https://github.com/stripe/stripe-node) herunter. ### Stripe-Ruby-Bibliothek installieren Installieren Sie Stripe Ruby Gem und fordern Sie es in Ihrem Code an. Wenn Sie dagegen von Grund auf neu beginnen möchten und eine Gemfile benötigen, laden Sie die Projektdateien über den Download-Link im Code-Editor herunter. #### Terminal Gem installieren: ```bash gem install stripe ``` #### Bundler Fügen Sie diese Zeile in Ihre Gemfile ein: ```bash gem 'stripe' ``` #### GitHub Oder laden Sie den Quellcode von Stripe Ruby Gem direkt von [GitHub](https://github.com/stripe/stripe-ruby) herunter. ### Stripe Java-Bibliothek installieren Fügen Sie Ihrem Build die Abhängigkeit hinzu und importieren Sie die Bibliothek. Wenn Sie dagegen von Grund auf neu beginnen möchten und eine pom.xml-Beispieldatei (für Maven) benötigen, laden Sie die Projektdateien über den Download-Link im Code-Editor herunter. #### Maven Fügen Sie folgende Abhängigkeit zu Ihrer POM-Datei hinzu und ersetzen Sie {VERSION} durch die Versionsnummer, die Sie verwenden möchten. ```bash \ncom.stripe\nstripe-java\n{VERSION}\n ``` #### Gradle Fügen Sie die Abhängigkeit zu Ihrer build.gradle-Datei hinzu und ersetzen Sie {VERSION} durch die Versionsnummer, die Sie verwenden möchten. ```bash implementation "com.stripe:stripe-java:{VERSION}" ``` #### GitHub Laden Sie die JAR-Datei direkt von [GitHub](https://github.com/stripe/stripe-java/releases/latest) herunter. ### Stripe-Python-Paket installieren Installieren Sie das Stripe-Paket und importieren Sie es in Ihren Code. Wenn Sie dagegen von Grund auf neu beginnen möchten und eine requirements.txt-Datei benötigen, laden Sie die Projektdateien über den Download-Link im Code-Editor herunter. #### pip Installieren Sie das Paket über pip: ```bash pip3 install stripe ``` #### GitHub Laden Sie den Quellcode der Stripe-Python-Bibliothek direkt [von GitHub](https://github.com/stripe/stripe-python) herunter. ### Stripe PHP-Bibliothek installieren Installieren Sie die Bibliothek mit Composer und initialisieren Sie sie mit Ihrem geheimen API-Schlüssel. Wenn Sie dagegen von Grund auf neu beginnen möchten und eine composer.csproj-Datei benötigen, laden Sie die Dateien über den Download-Link im Code-Editor herunter. #### Composer Bibliothek installieren: ```bash composer require stripe/stripe-php ``` #### GitHub Oder laden Sie den Quellcode der Stripe-PHP-Bibliothek direkt von [GitHub](https://github.com/stripe/stripe-php) herunter. ### Server einrichten Fügen Sie Ihrem Build die Abhängigkeit hinzu und importieren Sie die Bibliothek. Wenn Sie dagegen von Grund auf neu beginnen möchten und eine go.mod-Datei benötigen, laden Sie die Projektdateien über den Download-Link im Code-Editor herunter. #### Go Nutzen Sie für die Initialisierung Go-Module: ```bash go get -u github.com/stripe/stripe-go/v85 ``` #### GitHub Oder laden Sie den Quellcode des Stripe-Go-Moduls direkt von [GitHub](https://github.com/stripe/stripe-go) herunter. ### Stripe.net-Bibliothek installieren Installieren Sie das Paket mit .NET oder NuGet. Wenn Sie aber von Grund auf neu beginnen möchten, laden Sie die Dateien herunter, die eine konfigurierte .csproj-Datei enthalten. #### dotnet Bibliothek installieren: ```bash dotnet add package Stripe.net ``` #### NuGet Bibliothek installieren: ```bash Install-Package Stripe.net ``` #### GitHub Oder laden Sie den Quellcode der Stripe.net-Bibliothek direkt von [GitHub](https://github.com/stripe/stripe-dotnet) herunter. ### Stripe-Bibliotheken installieren Installieren Sie die Pakete und importieren Sie sie in Ihren Code. Wenn Sie dagegen von Grund auf neu beginnen möchten und eine `package.json`-Datei benötigen, laden Sie die Projektdateien über den Download-Link im Code-Editor herunter. Bibliotheken installieren: ```bash npm install --save stripe @stripe/stripe-js next ``` ### Checkout-Sitzung erstellen Fügen Sie einen Endpoint auf Ihrem Server hinzu, der eine [Checkout-Sitzung](https://docs.stripe.com/api/checkout/sessions.md) erstellt. Eine Checkout-Sitzung steuert, was Ihre Kundinnen/Kunden auf der Zahlungsseite sehen, zum Beispiel die Einzelposten, den Bestellbetrag und die Währung sowie die zulässigen Zahlungsmethoden. Wir aktivieren standardmäßig Karten und andere gängige Zahlungsmethoden für Sie, und Sie können Zahlungsmethoden direkt im [Stripe-Dashboard](https://dashboard.stripe.com/settings/payment_methods) aktivieren oder deaktivieren. ### Checkout-Sitzung erstellen Fügen Sie einen [Routen-Handler](https://nextjs.org/docs/app/building-your-application/routing/route-handlers) in Ihrer Anwendung hinzu, der eine [Checkout-Sitzung](https://docs.stripe.com/api/checkout/sessions.md) erstellt. Über eine Checkout-Sitzung wird gesteuert, was die Kundinnen und Kunden auf der Zahlungsseite sehen, z. B. Einzelposten, Bestellbetrag und Währung sowie die akzeptierten Zahlungsmethoden. Wir aktivieren standardmäßig Karten und andere gängige Zahlungsmethoden für Sie, und Sie können Zahlungsmethoden direkt im [Stripe-Dashboard](https://dashboard.stripe.com/settings/payment_methods) aktivieren oder deaktivieren. ### Ein zu verkaufendes Produkt definieren Bewahren Sie sensible Informationen über Ihren Produktbestand, wie Preis und Verfügbarkeit, immer auf Ihrem Server auf, um Änderungen durch Kunden/Kundinnen auf dem Client zu verhindern. Definieren Sie Produktinformationen bei Erstellung der Checkout-Sitzung mit [predefined price IDs](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=checkout&ui=stripe-hosted#create-product-prices-upfront) oder spontan mit [price_data](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items-price_data). ### Modus auswählen Um verschiedene Transaktionen abzuwickeln, passen Sie den Parameter `Modus` an. Verwenden Sie für einmalige Zahlungen `Zahlung`. Um wiederkehrende Zahlungen mit [Abonnements](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md?payment-ui=checkout&ui=stripe-hosted) einzuleiten, ändern Sie den `Modus` auf `Abonnement`. Und für die [Einrichtung zukünftiger Zahlungen](https://docs.stripe.com/payments/save-and-reuse.md?platform=web&ui=stripe-hosted) legen Sie den `Modus` auf `Einrichtung` fest. ### Erfolgs-URL angeben Geben Sie eine URL für die Erfolgsseite an – stellen Sie sicher, dass sie öffentlich zugänglich ist, damit Stripe Kundinnen und Kunden dorthin weiterleiten kann. ### Zu Checkout weiterleiten Leiten Sie nach dem Erstellen der Sitzung Ihre Kund/innen an die URL für die Checkout-Seite weiter, die in der Antwort zurückgegeben wird. ### Bestätigungsseite hinzufügen Erstellen Sie eine Bestätigungsseite für die URL, die Sie als `success_url` der Checkout-Sitzung angegeben haben, um Ihren Kund/innen eine Bestellbestätigung oder Bestelldetails anzuzeigen. Stripe leitet an diese Seite weiter, nachdem die Kund/innen den Bezahlvorgang erfolgreich abgeschlossen haben. ### Seite mit einer Vorschau der Bestellung hinzufügen Fügen Sie schließlich eine Seite mit einer Vorschau der Bestellung des/der Kund/in hinzu. Geben Sie dem/der Kund/in die Möglichkeit, seine/ihre Bestellung zu überprüfen oder zu ändern. Sobald der/die Kund/in auf die Checkout-Seite weitergeleitet wird, ist die Bestellung endgültig und kann nicht mehr geändert werden, ohne dass eine neue Checkout-Sitzung erstellt wird. ### Seite mit einer Vorschau der Bestellung hinzufügen Fügen Sie eine Seite mit einer Bestellvorschau hinzu. Geben Sie der Kundin/dem Kunden die Möglichkeit, die jeweilige Bestellung zu überprüfen oder zu ändern. Sobald die Weiterleitung auf die Checkout-Seite erfolgt ist, ist die Bestellung endgültig und kann nicht mehr geändert werden, ohne dass eine neue Checkout-Sitzung erstellt wird. ### Schaltfläche zum Bezahlen hinzufügen Fügen Sie der Bestellvorschau eine Schaltfläche hinzu. Wenn Ihre Kundinnen und Kunden darauf klicken, werden sie zu der von Stripe gehosteten Zahlungsseite weitergeleitet. ### Schaltfläche zum Bezahlen hinzufügen Fügen Sie der Seite mit der Bestellvorschau eine Schaltfläche hinzu. Wenn Ihre Kundinnen und Kunden auf diese Schaltfläche klicken, werden sie zu dem von Stripe gehosteten Zahlungsformular weitergeleitet. ### Seite mit einer Vorschau der Bestellung hinzufügen Fügen Sie unter `pages/` eine Seite mit einer Vorschau der Bestellung des/der Kund/in hinzu. Geben Sie dem/der Kund/in die Möglichkeit, seine/ihre Bestellung zu überprüfen oder zu ändern. Sobald der/die Kund/in auf die Checkout-Seite weitergeleitet wird, ist die Bestellung endgültig und kann nicht mehr geändert werden, ohne dass eine neue Checkout-Sitzung erstellt wird. ### Checkout-Sitzung abrufen Fügen Sie der Seite mit der Bestellvorschau eine Schaltfläche hinzu. Wenn Ihre Kundinnen/Kunden darauf klicken, stellen Sie eine Anfrage an den Routen-Handler, um die Kundinnen/Kunden zu einer neuen Checkout-Sitzung weiterzuleiten. ### Weiterleitung von Checkout einrichten Zeigen Sie Ihren Kundinnen/Kunden eine Nachricht an, wenn sie auf Ihre Seite zurückgeleitet werden. Warten Sie mit der Abwicklung der Bestellung (zum Beispiel Warenversand oder E-Mail-Zahlungsbelege), bis die Zahlung erfolgreich war. Erfahren Sie mehr über die [Ausführung von Bestellungen mit Checkout](https://docs.stripe.com/checkout/fulfillment.md). ### Legen Sie Ihre Umgebungsvariablen fest Fügen Sie Ihre veröffentlichbaren und geheimen Schlüssel einer `.env`-Datei hinzu. Next.js lädt sie automatisch als [Umgebungsvariablen](https://nextjs.org/docs/basic-features/environment-variables) in Ihre Anwendung. Wenn Sie Webhooks überwachen möchten, fügen Sie auch einen geheimen Webhook-Schlüssel hinzu, den Sie im [Dashboard](https://dashboard.stripe.com/webhooks) oder mit der [Stripe-CLI](https://docs.stripe.com/stripe-cli.md) erstellen können. ### Bevor Sie die Anwendung ausführen Fügen Sie während der lokalen Entwicklung `“proxy”: “”` zu Ihrer `package.json`-Datei hinzu. ### Anwendung ausführen Starten Sie Ihren Server und gehen Sie zu . ### Anwendung ausführen Starten Sie Ihren Server und gehen Sie zu . ### Anwendung ausführen Starten Sie Ihre Anwendung mit `npm run dev` und gehen Sie zu . ### Jetzt testen Klicken Sie auf die Schaltfläche zum Bezahlen, um zur Stripe Checkout-Seite weitergeleitet zu werden. Verwenden Sie eine dieser Testkarten, um eine Zahlung zu simulieren. | Scenario | Card Number | | ----------------------------------- | ---------------- | | Payment succeeds | 4242424242424242 | | Payment requires 3DS authentication | 4000002500003155 | | Payment is declined | 4000000000009995 | ## Glückwunsch! Ihre grundlegende Checkout-Integration funktioniert. Erfahren Sie nun, wie Sie das Erscheinungsbild Ihrer Bezahlseite anpassen und den Steuereinzug automatisieren können. ### Stripe Checkout-Seite anpassen Passen Sie das Erscheinungsbild der gehosteten Zahlungsseite wie folgt an: - Fügen Sie Ihr Logo und Ihr Farbdesign zu Ihren [Branding-Einstellungen](https://dashboard.stripe.com/settings/branding). - Mit der [Checkout Sessions API](https://docs.stripe.com/api/checkout/sessions/create.md) zusätzliche Funktionen wie das Erfassen von Adressen oder das Vorausfüllen von Kundendaten aktivieren. ### Kundendaten vorab angeben Verwenden Sie [customer_email](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-customer_email), um die E-Mail-Adresse des Kunden/der Kundin in das E-Mail-Eingabefeld zu übernehmen. Sie können auch eine [Kunden](https://docs.stripe.com/api/customers.md)-ID an das Feld `customer` übergeben, um die für den Kunden/die Kundin gespeicherte E-Mail-Adresse in das E-Mail-Adressfeld zu übernehmen. ### Schaltfläche auswählen Konfigurieren Sie die Kopie, die unter der Schaltfläche zum Absenden von Checkout angezeigt wird, indem Sie den [submit_type](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-submit_type) festlegen. Es gibt vier verschiedene Übermittlungsarten. ### Angaben zur Abrechnung und zum Versand erfassen Verwenden Sie [billing_address_collection](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-billing_address_collection) und [shipping_address_collection](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-shipping_address_collection), um die Adresse Ihres Kunden/Ihrer Kundin zu erfassen. [shipping_address_collection](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-shipping_address_collection) erfordert eine Liste von `allowed_countries`. Checkout zeigt die Liste der zulässigen Länder in einem Dropdown-Menü auf der Seite an. ### Angepasste Seite in der Vorschau ansehen Klicken Sie auf die Schaltfläche zum Bezahlen, um eine Stripe Checkout-Beispielseite mit diesen zusätzlichen Feldern anzuzeigen. Erfahren Sie mehr über die Möglichkeiten zur [Anpassung von Checkout](https://docs.stripe.com/payments/checkout/customization.md). ### Steuererhebung automatisieren Berechnen und erheben Sie den richtigen Steuerbetrag für Ihre Stripe-Transaktionen. Erfahren Sie mehr über [Stripe Tax](https://docs.stripe.com/tax.md) und [Stripe Tax zu Checkout hinzugefügt wird](https://docs.stripe.com/tax/checkout.md). ### Richten Sie Stripe Tax im Dashboard ein [Aktivieren Sie Stripe Tax](https://dashboard.stripe.com/tax), um Ihre Steuerverpflichtungen zu überwachen, Steuern automatisch einzuziehen und auf die Berichte zuzugreifen, die Sie zum Einreichen von Steuererklärungen benötigen. ### Parameter für die automatische Steuererhebung hinzufügen Legen Sie den Parameter `automatic_tax` auf `enabled: true` fest. ### Neue und wiederkehrende Kundinnen und Kunden Standardmäßig erstellt Checkout nur dann [Kundinnen und Kunden](https://docs.stripe.com/api/customers.md), wenn ein Kunde/eine Kundin erforderlich ist (z. B. für Abonnements). Andernfalls verwendet Checkout [Gastkundinnen und Gastkunden](https://docs.stripe.com/payments/checkout/guest-customers.md), um Zahlungen im Dashboard zu gruppieren. Optional können Sie Checkout so konfigurieren, dass immer neue Kundinnen und Kunden erstellt werden oder dass wiederkehrende Kundinnen und Kunden angegeben werden. ### Kundinnen und Kunden immer erstellen Um immer dann Kundinnen und Kunden zu erstellen, wenn keine Kundin/ein Kunde angegeben ist, legen Sie [customer_creation](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-customer_creation) auf `'always'` fest. ### Geben Sie wiederkehrende Kundinnen und Kunden an Um einen Bezahlvorgang mit einer bereits vorhandenen Kundin/einem Kunden zu verknüpfen, geben Sie die [Kundin/den Kunden](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-customer) beim Erstellen einer Sitzung an. Wenn Sie Kundinnen/Kunden mit Accounts v2 modellieren, können Sie auch eine Konto-ID an das Feld [customer_account](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-customer_account) übergeben, um die zugehörige E-Mail-Adresse vorab auszufüllen. Erfahren Sie mehr über den [Unterschied zwischen der Verwendung von v1-Customers und v2-Accounts](https://docs.stripe.com/connect/use-accounts-as-customers.md). // This test secret API key is a placeholder. Don't include personal details in requests with this key. // To see your test secret API key embedded in code samples, sign in to your Stripe account. // You can also find your test secret API key at https://dashboard.stripe.com/test/apikeys. const stripe = require('stripe')('<>'); const session = await stripe.checkout.sessions.create({ customer_email: 'customer@example.com', submit_type: 'donate', billing_address_collection: 'auto', shipping_address_collection: { allowed_countries: ['US', 'CA'], }, line_items: [ { // Provide the exact Price ID (for example, price_1234) of the product you want to sell price: '{{PRICE_ID}}', quantity: 1, }, ], mode: {{CHECKOUT_MODE}}, success_url: `${YOUR_DOMAIN}/success.html`, success_url: `${YOUR_DOMAIN}?success=true`, automatic_tax: {enabled: true}, customer_creation: 'always', // Provide the Customer ID (for example, cus_1234) for an existing customer to associate it with this session // customer: '{{CUSTOMER_ID}}' }); res.redirect(303, session.url); { "name": "stripe-sample", "version": "1.0.0", "description": "A sample Stripe implementation", "main": "server.js", "scripts": { "start": "node server.js" }, "author": "stripe-samples", "license": "ISC", "dependencies": { "express": "^4.17.1", "stripe": "^21.0.1" } } { "name": "stripe-sample", "version": "0.1.0", "dependencies": { "@stripe/react-stripe-js": "^3.7.0", "@stripe/stripe-js": "^7.3.0", "express": "^4.17.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "^3.4.0", "stripe": "21.0.1" }, "devDependencies": { "concurrently": "4.1.2" }, "homepage": "http://localhost:3000/checkout", "proxy": "http://localhost:4242", "scripts": { "start-client": "react-scripts start", "start-server": "node server.js", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject", "start": "concurrently \"yarn start-client\" \"yarn start-server\"" }, "eslintConfig": { "extends": "react-app" }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] } } \# This test secret API key is a placeholder. Don't include personal details in requests with this key. # To see your test secret API key embedded in code samples, sign in to your Stripe account. # You can also find your test secret API key at https://dashboard.stripe.com/test/apikeys. client = Stripe::StripeClient.new('<>') session = client.v1.checkout.sessions.create({ customer_email: 'customer@example.com', submit_type: 'donate', billing_address_collection: 'required', shipping_address_collection: { allowed_countries: ['US', 'CA'], }, line_items: [{ \# Provide the exact Price ID (for example, price_1234) of the product you want to sell price: '{{PRICE_ID}}', quantity: 1, }], mode: {{CHECKOUT_MODE}}, success_url: YOUR_DOMAIN + '/success.html', success_url: YOUR_DOMAIN + '?success=true', automatic_tax: {enabled: true}, customer_creation: 'always', \# Provide the Customer ID (for example, cus_1234) for an existing customer to associate it with this session # customer: '{{CUSTOMER_ID}}' }) redirect session.url, 303 import stripe \# This test secret API key is a placeholder. Don't include personal details in requests with this key. # To see your test secret API key embedded in code samples, sign in to your Stripe account. # You can also find your test secret API key at https://dashboard.stripe.com/test/apikeys. client = stripe.StripeClient('<>') checkout_session = client.v1.checkout.sessions.create(params={ 'customer_email': 'customer@example.com', 'submit_type': 'donate', 'billing_address_collection': 'auto', 'shipping_address_collection': { 'allowed_countries': ['US', 'CA'], }, 'line_items': [ { \# Provide the exact Price ID (for example, price_1234) of the product you want to sell 'price': '{{PRICE_ID}}', 'quantity': 1, }, ], 'mode': {{CHECKOUT_MODE}}, 'success_url': YOUR_DOMAIN + '/success.html', 'success_url': YOUR_DOMAIN + '?success=true', 'automatic_tax': {'enabled': True}, 'customer_creation': 'always', \# Provide the Customer ID (for example, cus_1234) for an existing customer to associate it with this session # customer='{{CUSTOMER_ID}}' }) return redirect(checkout_session.url, code=303) certifi==2026.1.4 chardet==5.2.0 click==8.3.1 Flask==3.1.2 idna==3.11 itsdangerous==2.2.0 Jinja2==3.1.6 MarkupSafe==3.0.3 requests==2.32.5 stripe==15.0.0 toml==0.10.2 Werkzeug==3.1.5 \Stripe\Stripe::setApiKey($stripeSecretKey); $checkout_session = \Stripe\Checkout\Session::create([ 'customer_email' => 'customer@example.com', 'submit_type' => 'donate', 'billing_address_collection' => 'required', 'shipping_address_collection' => [ 'allowed_countries' => ['US', 'CA'], ], 'line_items' => [[ \# Provide the exact Price ID (for example, price_1234) of the product you want to sell 'price' => '{{PRICE_ID}}', 'quantity' => 1, ]], 'mode' => {{CHECKOUT_MODE}}, 'success_url' => $YOUR_DOMAIN . '/success.html', 'success_url' => $YOUR_DOMAIN . '?success=true', 'automatic_tax' => [ 'enabled' => true, ], 'customer_creation' => 'always', \# Provide the Customer ID (for example, cus_1234) for an existing customer to associate it with this session # 'customer' => '{{CUSTOMER_ID}}' ]); header("HTTP/1.1 303 See Other"); header("Location: " . $checkout_session->url); $stripeSecretKey = '<>'; // This test secret API key is a placeholder. Don't include personal details in requests with this key. // To see your test secret API key embedded in code samples, sign in to your Stripe account. // You can also find your test secret API key at https://dashboard.stripe.com/test/apikeys. services.AddSingleton(new StripeClient("<>")); CustomerEmail = "customer@example.com", SubmitType = "donate", BillingAddressCollection = "auto", ShippingAddressCollection = new SessionShippingAddressCollectionOptions { AllowedCountries = new List { "US", "CA", }, }, LineItems = new List { new SessionLineItemOptions { // Provide the exact Price ID (for example, price_1234) of the product you want to sell Price = "{{PRICE_ID}}", Quantity = 1, }, }, Mode = {{CHECKOUT_MODE}}, SuccessUrl = domain + "/success.html", SuccessUrl = domain + "?success=true", AutomaticTax = new SessionAutomaticTaxOptions { Enabled = true }, CustomerCreation = "always", // Provide the Customer ID (for example, cus_1234) for an existing customer to associate it with this session // Customer="cus_RnhPlBnbBbXapY", Session session = _client.V1.Checkout.Sessions.Create(options); Response.Headers.Add("Location", session.Url); return new StatusCodeResult(303); "github.com/stripe/stripe-go/v85" sc := stripe.NewClient("<>") params := &stripe.CheckoutSessionCreateParams{ CustomerEmail: stripe.String("customer@example.com"), SubmitType: stripe.String("donate"), BillingAddressCollection: stripe.String("auto"), ShippingAddressCollection: &stripe.CheckoutSessionCreateShippingAddressCollectionParams{ AllowedCountries: stripe.StringSlice([]string{ "US", "CA", }), }, LineItems: []*stripe.CheckoutSessionCreateLineItemParams{ &stripe.CheckoutSessionCreateLineItemParams{ // Provide the exact Price ID (for example, price_1234) of the product you want to sell Price: stripe.String("{{PRICE_ID}}"), Quantity: stripe.Int64(1), }, }, Mode: {{CHECKOUT_MODE}}, SuccessURL: stripe.String(domain + "/success.html"), SuccessURL: stripe.String(domain + "?success=true"), AutomaticTax: &stripe.CheckoutSessionCreateAutomaticTaxParams{Enabled: stripe.Bool(true)}, CustomerCreation: stripe.String(stripe.CheckoutSessionCustomerCreationAlways), // Provide the Customer ID (for example, cus_1234) for an existing customer to associate it with this session // Customer: stripe.String("{{CUSTOMER_ID}}"), } s, err := sc.V1CheckoutSessions.Create(context.TODO(), params) if err != nil { log.Printf("sc.V1CheckoutSessions.Create: %v", err) } http.Redirect(w, r, s.URL, http.StatusSeeOther) require github.com/stripe/stripe-go/v85 v85.0.0 // This test secret API key is a placeholder. Don't include personal details in requests with this key. // To see your test secret API key embedded in code samples, sign in to your Stripe account. // You can also find your test secret API key at https://dashboard.stripe.com/test/apikeys. Stripe.apiKey = "<>"; SessionCreateParams params = SessionCreateParams.builder() .setCustomerEmail("customer@example.com") .setSubmitType(SessionCreateParams.SubmitType.DONATE) .setBillingAddressCollection(SessionCreateParams.BillingAddressCollection.REQUIRED) .setShippingAddressCollection( SessionCreateParams.ShippingAddressCollection.builder() .addAllowedCountry(SessionCreateParams.ShippingAddressCollection.AllowedCountry.CA) .addAllowedCountry(SessionCreateParams.ShippingAddressCollection.AllowedCountry.US) .build()) .setMode({{CHECKOUT_MODE}}) .setSuccessUrl(YOUR_DOMAIN + "/success.html") .setSuccessUrl(YOUR_DOMAIN + "?success=true") .setAutomaticTax( SessionCreateParams.AutomaticTax.builder() .setEnabled(true) .build()) .setCustomerCreation(SessionCreateParams.CustomerCreation.ALWAYS) // Provide the Customer ID (for example, cus_1234) for an existing customer to associate it with this session // .setCustomer("{{CUSTOMER_ID}}") .addLineItem( SessionCreateParams.LineItem.builder() .setQuantity(1L) // Provide the exact Price ID (for example, price_1234) of the product you want to sell .setPrice("{{PRICE_ID}}") .build()) .build(); response.redirect(session.getUrl(), 303); return "";
The cover of Stubborn Attachments

Stubborn Attachments

$20.00

We appreciate your business! If you have any questions, please email orders@example.com.

Forgot to add something to your cart? Shop around then come back to pay!

{ "name": "stripe-sample", "version": "0.1.0", "dependencies": { "@stripe/react-stripe-js": "^3.7.0", "@stripe/stripe-js": "^7.3.0", "express": "^4.17.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "^5.0.1", "stripe": "^8.202.0" }, "devDependencies": { "concurrently": "4.1.2" }, "homepage": "http://localhost:3000/checkout", "proxy": "http://127.0.0.1:4242", "scripts": { "start-client": "react-scripts start", "start-server": "node server.js", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject", "start": "concurrently \"yarn start-client\" \"yarn start-server\"" }, "eslintConfig": { "extends": "react-app" }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] } } { "name": "client", "version": "0.1.0", "private": true, "dependencies": { "@stripe/react-stripe-js": "^3.7.0", "@stripe/stripe-js": "^7.3.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "^5.0.1" }, "homepage": "http://localhost:3000/checkout", "proxy": "http://127.0.0.1:4242", "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, "eslintConfig": { "extends": "react-app" }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] } }
The cover of Stubborn Attachments

Stubborn Attachments

$20.00
// Check to see if this is a redirect back from Checkout const query = new URLSearchParams(window.location.search); if (query.get("success")) { setMessage("Order placed! You will receive an email confirmation."); } if (query.get("canceled")) { setMessage( "Order canceled -- continue to shop around and checkout when you're ready." ); } { "name": "stripe-sample", "version": "0.1.0", "dependencies": { "@stripe/react-stripe-js": "^3.7.0", "@stripe/stripe-js": "^7.3.0", "express": "^4.17.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "^3.4.0", "stripe": "^8.202.0" }, "devDependencies": { "concurrently": "4.1.2" }, "homepage": "http://localhost:3000/checkout", "proxy": "http://localhost:4242", "scripts": { "start-client": "react-scripts start", "start-server": "node server.js", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject", "start": "concurrently \"yarn start-client\" \"yarn start-server\"" }, "eslintConfig": { "extends": "react-app" }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] } } { "name": "client", "version": "0.1.0", "private": true, "dependencies": { "@stripe/react-stripe-js": "^3.7.0", "@stripe/stripe-js": "^7.3.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "^3.4.0" }, "homepage": "http://localhost:3000/checkout", "proxy": "http://localhost:4242", "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, "eslintConfig": { "extends": "react-app" }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] } } // Create Checkout Sessions from body params. const session = await stripe.checkout.sessions.create({ customer_email: 'customer@example.com', submit_type: 'donate', billing_address_collection: 'auto', shipping_address_collection: { allowed_countries: ['US', 'CA'], }, line_items: [ { // Provide the exact Price ID (for example, price_1234) of the product you want to sell price: '{{PRICE_ID}}', quantity: 1, }, ], mode: {{CHECKOUT_MODE}}, success_url: `${origin}/success?session_id={CHECKOUT_SESSION_ID}`, automatic_tax: {enabled: true}, }); return NextResponse.redirect(session.url, 303) \# https://dashboard.stripe.com/apikeys NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=<> STRIPE_SECRET_KEY=<> \# Set this environment variable to support webhooks — https://stripe.com/docs/webhooks#verify-events # STRIPE_WEBHOOK_SECRET=whsec_12345 export default async function IndexPage({ searchParams }) {
import 'server-only' import Stripe from 'stripe' export const stripe = new Stripe(process.env.STRIPE_SECRET_KEY) export default async function Success({ searchParams }) { const { session_id } = await searchParams if (!session_id) throw new Error('Please provide a valid session_id (`cs_test_...`)') const { status, customer_details: { email: customerEmail } } = await stripe.checkout.sessions.retrieve(session_id, { expand: ['line_items', 'payment_intent'] }) if (status === 'open') { return redirect('/') } if (status === 'complete') { return (

We appreciate your business! A confirmation email will be sent to{' '} {customerEmail}. If you have any questions, please email{' '} orders@example.com.

) } } 1. Build the server ~~~ pip3 install -r requirements.txt ~~~ 1. Build the server ~~~ bundle install ~~~ 1. Build the server ~~~ composer install ~~~ 1. Build the server ~~~ dotnet restore ~~~ 1. Build the server ~~~ mvn package ~~~ 2. Run the server ~~~ export FLASK_APP=server.py python3 -m flask run --port=4242 ~~~ 2. Run the server ~~~ ruby server.rb -o 0.0.0.0 ~~~ 2. Run the server ~~~ php -S 127.0.0.1:4242 --docroot=public ~~~ 2. Run the server ~~~ dotnet run ~~~ 2. Run the server ~~~ java -cp target/sample-jar-with-dependencies.jar com.stripe.sample.Server ~~~ 3. Build the client app ~~~ npm install ~~~ 4. Run the client app ~~~ npm start ~~~ If you run into an error, when running npm start, try running the following code and starting again: ~~~ export NODE_OPTIONS=--openssl-legacy-provider ~~~ 5. Go to [http://localhost:3000/checkout](http://localhost:3000/checkout) 3. Go to [http://localhost:4242/checkout.html](http://localhost:4242/checkout.html) 3. Build the client app ~~~ npm install ~~~ 4. Run the client app ~~~ npm start ~~~ 5. Go to [http://localhost:3000/checkout](http://localhost:3000/checkout) 3. Go to [http://localhost:4242/checkout.html](http://localhost:4242/checkout.html) 3. Build the client app ~~~ npm install ~~~ 4. Run the client app ~~~ npm start ~~~ 5. Go to [http://localhost:3000/checkout](http://localhost:3000/checkout) 3. Go to [http://localhost:4242/checkout.html](http://localhost:4242/checkout.html) 3. Build the client app ~~~ npm install ~~~ 4. Run the client app ~~~ npm start ~~~ 5. Go to [http://localhost:3000/checkout](http://localhost:3000/checkout) 3. Go to [http://localhost:4242/checkout.html](http://localhost:4242/checkout.html) 3. Build the client app ~~~ npm install ~~~ 4. Run the client app ~~~ npm start ~~~ 5. Go to [http://localhost:3000/checkout](http://localhost:3000/checkout) 3. Go to [http://localhost:4242/checkout.html](http://localhost:4242/checkout.html) 1. Run the server ~~~ go run server.go ~~~ 2. Build the client app ~~~ npm install ~~~ 3. Run the client app ~~~ npm start ~~~ 4. Go to [http://localhost:3000/checkout](http://localhost:3000/checkout) 1. Run the server ~~~ go run server.go ~~~ 2. Go to [http://localhost:4242/checkout.html](http://localhost:4242/checkout.html) 1. Build the application ~~~ npm install ~~~ 2. Run the application ~~~ npm start ~~~ 3. Go to [http://localhost:3000/checkout](http://localhost:3000/checkout) 1. Build the server ~~~ npm install ~~~ 2. Run the server ~~~ npm start ~~~ 3. Go to [http://localhost:4242/checkout.html](http://localhost:4242/checkout.html) \### Development 1. Build the application ~~~shell $ npm install ~~~ 2. _Optional_: download and run the [Stripe CLI](https://stripe.com/docs/stripe-cli) ~~~shell $ stripe listen --forward-to localhost:3000/api/webhooks ~~~ 3. Run the application ~~~shell $ STRIPE_WEBHOOK_SECRET=$(stripe listen --print-secret) npm run dev ~~~ 4. Go to [localhost:3000](http://localhost:3000) ### Production 1. Build the application ~~~shell $ npm install $ npm build ~~~ 2. Run the application ~~~shell $ npm start ~~~ ## Nächste Schritte #### [Bestellungen ausführen](https://docs.stripe.com/checkout/fulfillment.md) Richten Sie ein Ereignisziel ein, um Bestellungen nach erfolgreicher Zahlung abzuwickeln und andere kritische Ereignisse zu verarbeiten. #### [Auszahlungen empfangen](https://docs.stripe.com/payouts.md) Erfahren Sie, wie Sie Gelder von Ihrem Stripe-Konto auf Ihr Bankkonto übertragen können. #### [Zahlungen zurückerstatten und stornieren](https://docs.stripe.com/refunds.md) Bearbeiten Sie Rückerstattungsanforderungen über die Stripe-API oder das Dashboard. #### [Kundenverwaltung](https://docs.stripe.com/customer-management.md) Lassen Sie Ihre Kundinnen und Kunden ihre Zahlungsdaten, Rechnungen und Abonnements selbst verwalten. #### [Adaptive Pricing](https://docs.stripe.com/payments/currencies/localize-prices/adaptive-pricing.md) Zeigen Sie die Preise automatisch in der Landeswährung Ihrer Kundinnen und Kunden an.