# Zahlungen für Kohlenstoffentfernung akzeptieren Ermöglichen Sie Ihren Kundinnen und Kunden, CO₂-Entnahme zu erwerben, indem Sie die Climate API mit Ihrer Zahlungsintegration verwenden. # QuickStart für Climate Orders Ermöglichen Sie Ihren Kundinnen und Kunden, CO₂-Entnahme zu erwerben, indem Sie die [Climate Orders API](https://docs.stripe.com/api/climate/order.md) mit Ihrer Zahlungsintegration verwenden. ### 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 ``` ### Endpoint erstellen, um die Anfrage zu verarbeiten Fügen Sie auf Ihrem Server einen Endpoint hinzu, der eine [Checkout-Sitzung](https://docs.stripe.com/api/checkout/sessions.md) erstellt. Die Checkout-Sitzung steuert, was Ihre Kundinnen und Kunden auf der Zahlungsseite sehen. ### Bestellwert berechnen Verwenden Sie [Climate-Produkte](https://docs.stripe.com/api/climate/product.md), um den aktuellen Preis abzurufen und den Gesamtbetrag der Bestellung zu berechnen. ### Kund/innen erstellen Suchen Sie in Ihrer Datenbank nach einem [Customer](https://docs.stripe.com/api/customers.md)-Objekt oder erstellen Sie einen neuen/eine neue `Customer`, um die Person, der Sie eine Rechnung ausstellen möchten, darzustellen. ### Leere Rechnung erstellen Übergeben Sie die [product.id](https://docs.stripe.com/api/climate/product/object.md#climate_product_object-id) in `metadata` und legen Sie das Attribut [collection_method](https://docs.stripe.com/api/invoices/object.md#invoice_object-collection_method) auf `send_invoice` fest. Damit Stripe eine Rechnung als überfällig kennzeichnet, müssen Sie den Parameter [days_until_due](https://docs.stripe.com/api/invoices/create.md#create_invoice-days_until_due) hinzufügen. Wenn Sie eine Rechnung senden, sendet Stripe die Rechnung per E-Mail mit Zahlungsanweisungen an den Kunden/die Kundin. Weitere Optionen zur Rechnungsanpassung finden Sie unter [Rechnungen](https://docs.stripe.com/api/invoices.md). ### Rechnungsposten erstellen Erstellen Sie einen Rechnungsposten, indem Sie `customer.id`, `invoice.id` sowie `amount_total` und `currency` der Bestellung übergeben. ### Rechnung senden Senden Sie die Rechnung an die mit dem Kunden/der Kundin verknüpfte E-Mail-Adresse und leiten Sie sie zu einer Bestätigungsseite weiter. Sobald Sie die Rechnung versenden, wird sie von Stripe finalisiert. In vielen Zuständigkeitsbereichen gelten finalisierte Rechnungen als rechtliches Dokument, sodass bestimmte Felder nicht geändert werden können. Wenn Sie Rechnungen versenden, die bereits bezahlt wurden, gibt es in der E-Mail keinen Hinweis auf die Zahlung. Für jede finalisierte Rechnung können Sie entweder eine [PDF](https://docs.stripe.com/api/invoices/object.md#invoice_object-invoice_pdf) oder den [Link](https://docs.stripe.com/api/invoices/object.md#invoice_object-hosted_invoice_url) zur entsprechenden [gehosteten Rechnungsseite](https://docs.stripe.com/invoicing/hosted-invoice-page.md) herunterladen und senden. ### Checkout-Sitzung erstellen Erstellen Sie eine `Checkout Session`, um Zahlungen von Ihren Kundinnen und Kunden einzuziehen. ### Checkout-Sitzung konfigurieren Übergeben Sie die [product.id](https://docs.stripe.com/api/climate/product/object.md#climate_product_object-id) in `metadata`. Weitere Anpassungsoptionen für die Checkout-Sitzung finden Sie unter [Checkout](https://docs.stripe.com/api/checkout/sessions.md). ### URLs für Bestätigung und Abbruch angeben Geben Sie URLs für Bestätigungs- und Abbruchseiten an und stellen Sie sicher, dass diese öffentlich aufrufbar sind. Nur so kann Stripe Ihre Kundinnen und Kunden entsprechend weiterleiten. Für beide Seiten kann die gleiche URL verwendet werden. ### Weiterleiten zu Checkout Leiten Sie nach dem Erstellen der Sitzung Ihre Kundinnen und Kunden an die URL für die Checkout-Seite weiter, die in der Antwort zurückgegeben wird. ### Aufstockung erstellen Dadurch wird Ihre Bestellung über das mit Ihrem Konto verknüpfte Bankkonto finanziert, wobei [product.id](https://docs.stripe.com/api/climate/product/object.md#climate_product_object-id) in `metadata` übergeben wird. Stellen Sie sicher, dass Ihr Bankkonto Abbuchungen von Stripe zulässt und über das Guthaben für Ihre Bestellung verfügt. ### CO₂-Ausgleich-Bestellung erstellen Eine [Climate Order](https://docs.stripe.com/api/climate/order.md) reserviert die CO-Entnahme und verfolgt sie bis zur Zustellung. Der Gesamtbetrag wird von Ihrem [Stripe-Guthaben](https://docs.stripe.com/api/balance.md) abgezogen. > Verschieben Sie die Erstellung der Climate Order für den Produktionscode in einen Offline-Prozess und handhaben Sie doppelte Ereignisse. Weitere Informationen finden Sie unter [Best Practices für die Verwendung von Webhooks](https://docs.stripe.com/webhooks.md#best-practices). ### CO₂-Ausgleich-Bestellung erstellen Wenn der/die Nutzer/in seine/ihre Rechnung bezahlt, erstellen Sie die [Climate Order](https://docs.stripe.com/api/climate/order.md). Der Gesamtbetrag wird von Ihrem [Stripe-Guthaben](https://docs.stripe.com/api/balance.md) abgezogen. > Verschieben Sie die Erstellung der Climate Order für den Produktionscode in einen Offline-Prozess und handhaben Sie doppelte Ereignisse. Weitere Informationen finden Sie unter [Best Practices für die Verwendung von Webhooks](https://docs.stripe.com/webhooks.md#best-practices). ### CO₂-Ausgleich-Bestellung erstellen Wenn der/die Nutzer/in seine/ihre Zahlung über Checkout abschließt, erstellen Sie die [Climate Order](https://docs.stripe.com/api/climate/order.md). Der Gesamtbetrag wird von Ihrem [Stripe Guthaben](https://docs.stripe.com/api/balance.md) abgezogen. > Verschieben Sie die Erstellung der Climate Order für den Produktionscode in einen Offline-Prozess und handhaben Sie doppelte Ereignisse. Weitere Informationen finden Sie unter [Best Practices für die Verwendung von Webhooks](https://docs.stripe.com/webhooks.md#best-practices). ### CO₂-Ausgleich-Bestellung erstellen Wenn die Aufstockung erfolgreich ist, erstellen Sie die [Climate Order](https://docs.stripe.com/api/climate/order.md). Der Gesamtbetrag wird von Ihrem [Stripe-Guthaben](https://docs.stripe.com/api/balance.md) abgezogen. > Verschieben Sie die Erstellung der Climate Order für den Produktionscode in einen Offline-Prozess und handhaben Sie doppelte Ereignisse. Weitere Informationen finden Sie unter [Best Practices für die Verwendung von Webhooks](https://docs.stripe.com/webhooks.md#best-practices). ### Bestellvorschau hinzufügen Fügen Sie eine Seite hinzu, um eine Vorschau der von Ihnen verkauften CO2-Entnahme zu erhalten, und erhalten Sie eine E-Mail von Ihrem Kunden/Ihrer Kundin. Zeigen Sie hier Ihre Marketing-Assets an und erläutern Sie das erwartete Lieferdatum und die geltenden Garantien für das Produkt. ### Bestellvorschau hinzufügen Fügen Sie eine Seite hinzu, um eine Vorschau der von Ihnen angebotenen CO2-Entnahme anzuzeigen. Zeigen Sie hier Ihre Marketing-Assets an und erläutern Sie das erwartete Lieferdatum und die geltenden Garantien für das Produkt. ### Eine Bestellschaltfläche hinzufügen Fügen Sie eine Schaltfläche hinzu, um eine Bestellung aufzugeben und die Rechnung zu senden. ### Eine Bestellschaltfläche hinzufügen Fügen Sie eine Schaltfläche hinzu, um eine Bestellung aufzugeben. Wenn Ihre Kundinnen und Kunden darauf klicken, werden sie zu der von Stripe gehosteten Zahlungsseite weitergeleitet. ### Weiterleitung von Checkout einrichten Zeigen Sie Ihren Kundinnen/Kunden eine Nachricht an, wenn sie auf Ihre Seite zurückgeleitet werden. ### Bestellseite hinzufügen Erstellen Sie eine Seite in Ihrer Anwendung, um eine Bestellung aufzugeben. ### Asset Kit herunterladen Verwenden Sie [das Asset Kit](https://stripe-images.s3.amazonaws.com/content-store/climate/APIAssetKit.zip), um Ihren Kundinnen/Kunden Produkte zur CO₂-Entnahme vorzustellen. ### 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. 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. ### Anwendung ausführen Starten Sie Ihre Anwendung mit `npm run dev` und gehen Sie zu . ### Jetzt testen Klicken Sie auf **Bezahlen**, um zur Checkout-Seite weitergeleitet zu werden. Nutzen Sie die Testkarten, um eine Zahlung zu simulieren. | Scenario | Card Number | | ----------------------------------- | ---------------- | | Payment succeeds | 4242424242424242 | | Payment requires 3DS authentication | 4000002500003155 | | Payment is declined | 4000000000009995 | ### Jetzt testen Klicken Sie auf **Bestellung aufgeben**, um eine Testrechnung zu senden. Verwenden Sie eine dieser Testkarten, um das Bezahlen der Rechnung zu simulieren. | Scenario | Card Number | | ----------------------------------- | ---------------- | | Payment succeeds | 4242424242424242 | | Payment requires 3DS authentication | 4000002500003155 | | Payment is declined | 4000000000009995 | ### CO₂-Ausgleich-Bestellung verifizieren Die `Climate Order` kann im [Stripe-Dashboard](https://dashboard.stripe.com/climate/orders) angezeigt werden, um zu bestätigen, dass sie erfolgreich erstellt wurde. // Check to see if this is a redirect back from the server const query = new URLSearchParams(window.location.search); if (query.get("success")) { setMessage("Order placed!"); } if (query.get("canceled")) { setMessage("Order canceled."); }

Frontier's 2027 offtake portfolio

$550.00/ton

Frontier's 2027 offtake portfolio

$550.00/ton
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY); export default async function handler(req, res) { const currency = 'usd'; const {data: products} = await stripe.climate.products.list(); // Select which carbon removal product you want to order const climateProduct = products.find((p) => p.id === 'climsku_frontier_offtake_portfolio_2027'); // Calculate the total amount based on the number of tons const unit_amount = 1.0 * climateProduct.current_prices_per_metric_ton[currency].amount_total; // Look up a product in your database or create a new one const product = await stripe.products.create({ name: climateProduct.name, }); // Create Checkout Sessions from body params. const session = await stripe.checkout.sessions.create({ line_items: [ { price_data: { unit_amount, currency, product: product.id, }, quantity: 1, }, ], mode: 'payment', metadata: { climate_product: climateProduct.id }, success_url: `${req.headers.origin}?success=true`, }); res.redirect(303, session.url); const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY); export default async function handler(req, res) { const currency = 'usd'; const {data: products} = await stripe.climate.products.list(); // Select which carbon removal product you want to order const climateProduct = products.find((p) => p.id === 'climsku_frontier_offtake_portfolio_2027'); // Calculate the total amount based on the number of tons const unit_amount = 1.0 * climateProduct.current_prices_per_metric_ton[currency].amount_total; // Look up a customer in your database or create a new one const customer = await stripe.customers.create({email: 'TODO@example.com'}); // Create an Invoice const invoice = await stripe.invoices.create({ customer: customer.id, collection_method: 'send_invoice', days_until_due: 1, metadata: { climate_product: climateProduct.id }, }); // Look up a product in your database or create a new one const product = await stripe.products.create({ name: climateProduct.name, }); // Create an Invoice Item with the Price, and Customer you want to charge await stripe.invoiceItems.create({ customer: customer.id, invoice: invoice.id, price_data: { unit_amount, currency, product: product.id, }, }); // Send the Invoice await stripe.invoices.sendInvoice(invoice.id); res.redirect(303, req.headers.origin + '?success=true'); const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY); export default async function handler(req, res) { const currency = 'usd'; const {data: products} = await stripe.climate.products.list(); // Select which product you want to order const product = products.find((product) => product.id === 'climsku_frontier_offtake_portfolio_2027'); // Calculate the total amount based on the number of tons const amount = 1.0 * product.current_prices_per_metric_ton[currency].amount_total; // Create a top-up await stripe.topups.create({ amount, currency, metadata: { climate_product: product.id }, }); res.redirect(303, req.headers.origin + '?success=true'); const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY); export default async function handler(req, res) { const order = await stripe.climate.orders.create({ metric_tons: '1.0', product: 'climsku_frontier_offtake_portfolio_2027', }); res.redirect(303, req.headers.origin + '?success=true'); case 'invoice.paid': { const invoice = event.data.object; if (invoice.metadata.climate_product) { await stripe.climate.orders.create({ amount: invoice.total, currency: invoice.currency, product: invoice.metadata.climate_product, }); } break; } case 'checkout.session.completed': { const session = event.data.object; if (session.metadata.climate_product) { await stripe.climate.orders.create({ amount: session.amount_total, currency: session.currency, product: session.metadata.climate_product, }); } break; } case 'topup.succeeded': { const topup = event.data.object; if (topup.metadata.climate_product) { await stripe.climate.orders.create({ amount: topup.amount, currency: topup.currency, product: topup.metadata.climate_product, }); } break; } \# https://dashboard.stripe.com/apikeys STRIPE_SECRET_KEY=<> \# Set this environment variable to support webhooks — https://stripe.com/docs/webhooks#verify-events STRIPE_WEBHOOK_SECRET=whsec_12345