# Stablecoin-Zahlungen annehmen Beginnen Sie mit der Annahme von Stablecoins, indem Sie die Zahlungsmethode „Krypto“ aktivieren. Sie können Zahlungen mit *Stablecoins* (A cryptocurrency that's pegged to the value of a fiat currency or other asset in order to limit volatility) über *Payment Links* (A link to a secure, hosted payment page that you can generate without code. Share it directly with your customers, or point them to it with a button or QR code), *, Checkout* (A low-code payment integration that creates a customizable form for collecting payments. You can embed Checkout directly in your website, redirect customers to a Stripe-hosted payment page, or create a customized checkout page with Stripe Elements), *,* (A set of UI components for building a web checkout flow. They adapt to your customer's locale, validate input, and use tokenization, keeping sensitive customer data from touching your server)Elements** oder die *Payment Intents APII* (The Payment Intents API tracks the lifecycle of a customer checkout flow and triggers additional authentication steps when required by regulatory mandates, custom Radar fraud rules, or redirect-based payment methods) akzeptieren. Bei Zahlungen mit Stablecoins wie USDC werden Kundinnen und Kunden zu **crypto.stripe.com** weitergeleitet, um ihre Krypto-Wallet zu verbinden und die Transaktion abzuschließen. Die Gelder werden in USD auf Ihrem Stripe-Saldo gutgeschrieben. ## Before you begin > Ihre Kundinnen und Kunden können Stablecoins weltweit zur Zahlung verwenden, doch derzeit können nur Unternehmen in den USA können Zahlungen mit Stablecoin akzeptieren. So akzeptieren Sie Stablecoin-Zahlungen: 1. Stellen Sie sicher, dass Sie [Ihr Stripe-Konto eingerichtet](https://dashboard.stripe.com/register) haben. 1. Gehen Sie zu Ihren Einstellungen der [Zahlungsmethoden](https://dashboard.stripe.com/settings/payment_methods) im Dashboard und fordern Sie die Zahlungsmethode **Stablecoins und Krypto** an. 1. Stripe prüft Ihre Anfrage und kann Sie bei Bedarf für weitere Informationen kontaktieren. Die Zahlungsmethode wird während der Überprüfung als **ausstehend** angezeigt. 1. Nachdem wir Ihre Anfrage genehmigt haben, wird die Zahlungsmethode **Stablecoins und Krypto** im Dashboard aktiv. ## Verwendung mit dynamischen Zahlungsmethoden (Recommended) Wenn Sie die standardmäßigen [dynamischen Zahlungsmethoden](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md) von Stripe mit Payment Links, Hosted Checkout, Embedded Checkout Forms oder Elements verwenden, sind keine weiteren Aktualisierungen erforderlich. Stripe zeigt berechtigten Kundinnen und Kunden automatisch Stablecoin-Zahlungsoptionen an. ## Verwendung mit einer benutzerdefinierten Integration Falls erforderlich, können Sie die Krypto-Zahlungsmethode manuell in Ihre Zahlungsintegration aufnehmen. # Direct API Integrieren Sie „Mit Krypto bezahlen“ direkt über die *Payment Intents API* (The Payment Intents API tracks the lifecycle of a customer checkout flow and triggers additional authentication steps when required by regulatory mandates, custom Radar fraud rules, or redirect-based payment methods). ## Stripe einrichten [Serverseitig] [Erstellen Sie zunächst ein Stripe-Konto](https://dashboard.stripe.com/register) oder [melden Sie sich an](https://dashboard.stripe.com/login). Verwenden Sie unsere offiziellen Bibliotheken, um von Ihrer Anwendung aus auf die Stripe API zuzugreifen: #### Ruby ```bash # Available as a gem sudo gem install stripe ``` ```ruby # If you use bundler, you can add this line to your Gemfile gem 'stripe' ``` ## PaymentIntent erstellen und das Client-Geheimnis abrufen [Serverseitig] Das [PaymentIntent](https://docs.stripe.com/api/payment_intents.md)-Objekt stellt Ihre Absicht dar, eine Zahlung von der Kundin/dem Kunden einzuziehen und verfolgt den Zahlungsablauf. Erstellen Sie einen PaymentIntent auf Ihrem Server und geben Sie den einzuziehenden Betrag und eine unterstützte Währung an. Wenn Sie über eine PaymentIntents-Integration verfügen, fügen Sie `crypto` zur Liste der [payment_method_types](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_types) hinzu. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=usd \ -d "payment_method_types[]=crypto" ``` ### Client-Geheimnis abrufen Im PaymentIntent 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 PaymentIntent {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/payment_intents/object.md#payment_intent_object-client_secret) in Ihr Bezahlformular ein. Rufen Sie in Ihrem serverseitigen Code das Client-Geheimnis aus dem PaymentIntent ab: #### Ruby ```erb
``` ```ruby get '/checkout' do @intent = # ... Fetch or create the PaymentIntent erb :checkout end ``` ## Auf die Stablecoin-Zahlungsseite weiterleiten Verwenden Sie [Stripe.js](https://docs.stripe.com/js.md), um die Zahlung an Stripe zu übermitteln, wenn ein Kunde/eine Kundin **Krypto** als Zahlungsmethode auswählt. Stripe.js 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. Fügen Sie das Stripe.js-Skript auf Ihrer Bezahlseite ein, indem Sie es im `` Ihrer HTML-Datei einfügen. ```html Checkout ``` Erstellen Sie auf Ihrer Bezahlseite 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 das [Client-Geheimnis](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-client_secret) des PaymentIntent und rufen Sie `stripe.confirmPayment` auf, um die „Mit Krypto bezahlen“-Weiterleitung zu handhaben. Fügen Sie eine `return_url` hinzu, um festzulegen, wohin Stripe die Kundinnen/Kunden nach Durchführung der Zahlung weiterleitet. ```javascript const form = document.getElementById('payment-form'); form.addEventListener('submit', async function(event) { event.preventDefault(); // Set the clientSecret of the PaymentIntent const { error } = await stripe.confirmPayment({ clientSecret: clientSecret, confirmParams: { payment_method_data: { type: 'crypto', }, // Return URL where the customer should be redirected after the authorization return_url: `${window.location.href}`, }, }); if (error) { // Inform the customer that there was an error. const errorElement = document.getElementById('error-message'); errorElement.textContent = result.error.message; } }); ``` Die `return_url` verweist auf eine Seite auf Ihrer Website, auf der das Ergebnis der Zahlung angezeigt wird. Sie können festlegen, was angezeigt werden soll, indem Sie den [Status](https://docs.stripe.com/payments/payment-intents/verifying-status.md#checking-status) des PaymentIntent überprüfen. Um den Status zu verifizieren, enthält die Stripe-Weiterleitung zur `return_url` die folgenden URL-Abfrageparameter. Sie können auch Ihre eigenen Abfrageparameter an die `return_url` anhängen. Sie bleiben während des gesamten Weiterleitungsvorgangs bestehen. | | | | | `payment_intent` | Die eindeutige ID für den `PaymentIntent`. | | `payment_intent_client_secret` | Das [Client-Geheimnis](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-client_secret) des `PaymentIntent`-Objekts. | ## Optional: Ereignisse nach der Zahlung verarbeiten Stripe sendet ein [payment_intent.succeeded](https://docs.stripe.com/api/events/types.md#event_types-payment_intent.succeeded)-Ereignis, wenn die Zahlung abgeschlossen ist. Verwenden Sie das Dashboard, einen nutzerdefinierten [Webhook](https://docs.stripe.com/webhooks.md) oder eine Partnerlösung, um diese Ereignisse zu empfangen und Aktionen, wie das Versenden einer Bestellbestätigung per E-Mail, das Erfassen des Verkaufs in einer Datenbank oder das Initiieren eines Versandworkflows, auszuführen. Überwachen Sie diese Ereignisse, statt auf einen Callback vom Client zu warten. Auf dem Client könnte der Kunde/die Kundin das Browserfenster schließen oder die App beenden, bevor der Callback erfolgt ist und böswillige Clients die Antwort manipulieren könnten. Wenn Sie Ihre Integration so einrichten, dass sie asynchrone Ereignisse überwacht, können Sie auch zukünftig zusätzliche Zahlungsmethoden akzeptieren. Informationen über die Unterschiede zwischen allen unterstützten Zahlungsmethoden finden Sie in unserem Leitfaden zu [Zahlungsmethoden](https://stripe.com/payments/payment-methods-guide). ### Ereignisse empfangen und Geschäftsaktionen ausführen Es gibt mehrere Möglichkeiten, Geschäftsaktionen zu empfangen und auszuführen: - **Manuell:** Im [Stripe-Dashboard](https://dashboard.stripe.com/test/payments) können Sie alle Stripe-Zahlungen anzeigen, Zahlungsbelege per E-Mail versenden, Auszahlungen abwickeln oder fehlgeschlagene Zahlungen erneut durchführen. - **Benutzerdefinierter Code:** [Erstellen Sie einen Webhook](https://docs.stripe.com/webhooks/handling-payment-events.md#build-your-own-webhook)-Handler, um Ereignisse zu überwachen und benutzerdefinierte asynchrone Zahlungsabläufe zu erstellen. Mit der Stripe-CLI können Sie Ihre Webhook-Integration lokal testen und Fehler beheben. - **Vorgefertigte Apps:** Verarbeiten Sie häufige Geschäftsereignisse, wie [Automatisierung](https://stripe.partners/?f_category=automation) oder [Marketing und Vertrieb](https://stripe.partners/?f_category=marketing-and-sales) durch Integration einer Partneranwendung. ### Unterstützte Währungen Sie können Krypto-Zahlungen in den Währungen erstellen, die Ihrem Land zugeordnet sind. Die lokale Standardwährung für Kryptowährungen ist USD, wobei die Kundinnen/Kunden ihren Kaufbetrag auch in dieser Währung sehen. ## Optional: Weiterleitung manuell verarbeiten [Serverseitig] Wir empfehlen, die Verarbeitung von Weiterleitungen mit `confirmPayment` Stripe.js zu überlassen. Wenn Sie Ihre Kundinnen/Kunden jedoch manuell weiterleiten müssen: 1. Geben Sie die URL an, an die Ihre Kundinnen/Kunden weitergeleitet werden sollen, sobald sie ihre Zahlung abgeschlossen haben. ```curl curl https://api.stripe.com/v1/payment_intents/pi_1DRuHnHgsMRlo4MtwuIAUe6u/confirm \ -u "<>:" \ -d payment_method=pm_1EnPf7AfTbPYpBIFLxIc8SD9 \ --data-urlencode "return_url=https://shop.example.com/crtA6B28E1" ``` 1. Bestätigen Sie, dass sich der `PaymentIntent` im Status `requires_action` befindet. Der Typ für die `next_action` ist `redirect_to_url`. ```json "next_action": { "type": "redirect_to_url", "redirect_to_url": { "url": "https://hooks.stripe.com/...", "return_url": "https://example.com/checkout/complete" } } ``` 1. Leiten Sie Kundinnen/Kunden an die in der Eigenschaft `next_action` angegebene URL weiter. Bei Abschluss des Bezahlvorgangs werden die Kundinnen/Kunden an das Ziel `return_url` weitergeleitet. Die URL-Abfrageparameter `payment_intent` und `payment_intent_client_secret` sind enthalten und Sie können wie oben beschrieben Ihre eigenen Abfrageparameter übergeben. ## Ihre Integration testen Testen Sie die Integration Ihrer Kryptozahlung, indem Sie die Weiterleitungsseite der Zahlung mit Ihren Test-API-Schlüsseln öffnen. Sie können einen erfolgreichen Zahlungsablauf kostenlos mit [Testnet-Assets](https://docs.stripe.com/payments/accept-stablecoin-payments.md#testnet-assets) testen. 1. Erstellen Sie in einer *Sandbox* eine neue Transaktion mit der von Ihnen gewählten Integrationsmethode und öffnen Sie die entsprechende Weiterleitungs-URL. 1. Verbinden Sie Ihre bevorzugte Wallet und Ihr bevorzugtes Zahlungsnetzwerk. 1. Schließen Sie die Zahlung ab und bestätigen Sie, dass Sie an die erwartete URL weitergeleitet werden. ### Zahlungen mit Testnet-Assets testen Die meisten Kryptowährungen bieten Testnet-Assets oder -Token ohne Geldwert an, die Sie zum Testen von Blockchain-Transaktionen verwenden können. Stripe empfiehlt die MetaMask-Wallet, das Polygon Amoy Testnet und den Circle-Faucet zum Testen, aber Sie können Ihre eigenen bevorzugten Dienste verwenden. #### Wallet installieren 1. [Laden Sie die MetaMask-Erweiterung](https://metamask.io/download) für Ihren Webbrowser herunter. 1. [Erstellen Sie eine neue Wallet](https://support.metamask.io/start/creating-a-new-wallet/) oder [importieren Sie eine bestehende](https://support.metamask.io/start/use-an-existing-wallet/). #### Testnet aktivieren 1. Wählen Sie in Ihrer MetaMask-Wallet im Hauptmenü **Netzwerke** aus. 1. Klicken Sie auf **Benutzerdefiniertes Netzwerk hinzufügen**. 1. Geben Sie die folgenden Details ein: - **Netzwerkname**: `Amoy` - **Standard-RPC-URL**: `https://rpc-amoy.polygon.technology/` - **Ketten-ID**: `80002` - **Währungssymbol**: `POL` - **Explorer-URL blockieren**: `https://amoy.polygonscan.com/` 1. Klicken Sie auf **Speichern**. #### Token importieren 1. Wählen Sie in Ihrer MetaMask-Wallet unter **Token** die Option **Amoy** aus dem Netzwerk-Dropdown-Menü aus. 1. Klicken Sie auf das Überlaufmenü (⋯) und wählen Sie **Token importieren** aus. 1. Klicken Sie auf **Netzwerk auswählen** > **Amoy**. 1. Fügen Sie unter **Token Vertragsadresse** die Testnet-Vertragsadresse für Polygon Amoy ein: ``` 0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582 ``` Das Feld **Tokensymbol** wird automatisch mit `USDC` und das Feld **Dezimalstellen** mit `6` aktualisiert. 1. Klicken Sie auf **Weiter**. 1. Verifizieren Sie, dass Sie den `USDC`-Token importieren, und klicken Sie dann auf **Importieren**. Ihre MetaMask-Wallet zeigt jetzt **POL** und **USDC** in der Tokenliste an. Beim Testen von Rückerstattungen kann es vorkommen, dass der an Ihre Wallet gesendete Token einen anderen Vertrag hat als derjenige, der für die Zahlung verwendet wurde. Wir empfehlen Ihnen, den [transaction_hash](https://docs.stripe.com/api/refunds/object.md?rds=1#refund_object-destination_details-crypto-reference) Ihrer Rückerstattung im Block Explorer zu überprüfen und den Vertrag dieses Tokens zu Ihrer Wallet hinzuzufügen. Beispielsweise könnte für Sepolia ETH-USDC-Rückerstattungen die Token-Vertragsadresse `0x58277ebcabbe2a6694fbca8daf9e23163dbacf3e` angezeigt werden. #### Testnet-Assets abrufen > Um einige Testnet-Faucets zu verwenden, müssen Sie möglicherweise eine kleine Menge an Mainnet-Token halten. 1. Öffnen Sie [faucet.circle.com](https://faucet.circle.com/) 1. Klicken Sie auf **USDC**. 1. Wählen Sie unter **Netzwerk** **Polygon POS Amoy** aus. 1. Fügen Sie unter **Senden an** Ihre Wallet Adresse ein. 1. Klicken Sie auf **20 USDC senden**. Zusätzlich zu USDC für Zahlungen benötigen Sie POL, um Transaktionskosten zu bezahlen: 1. Öffnen Sie [faucet.polygon.technology](https://faucet.polygon.technology/). 1. Wählen Sie unter **Kette und Token auswählen** **Polygon Amoy** und **POL** aus. 1. Klicken Sie unter **Ihre Identität verifizieren** auf die Drittanbieterplattform, bei der Sie sich authentifizieren möchten, und schließen Sie den Anmeldeprozess ab. 1. Fügen Sie unter **Wallet-Adresse eingeben** Ihre Wallet-Adresse ein. 1. Klicken Sie auf **Anspruch**. Die Durchführung von Testnet-Transaktionen kann einige Minuten dauern. Überprüfen Sie Ihre Wallet, um zu bestätigen, dass die Überweisungen von USDC und POL durchgeführt wurden. ### Weitere Testnet-Faucets Weitere Optionen zum Testen von Token finden Sie in diesen Faucet-Diensten: - [Paxos USDP](https://faucet.paxos.com/) - [Devnet SOL](https://faucet.solana.com/) - [Sepolia ETH](https://faucets.chain.link/sepolia) - [Amoy POL](https://faucet.polygon.technology/)