Weiter zum Inhalt
Konto erstellen oder anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellenAnmelden
Jetzt starten
Zahlungen
Umsatz
Plattformen und Marktplätze
Geldmanagement
Entwicklerressourcen
APIs und SDKsHilfe
Übersicht
Informationen zu Stripe Payments
Aktualisieren Sie Ihre Integration
Zahlungsanalysefunktionen
Online-Zahlungen
ÜbersichtIhren Use case findenVerwenden Sie Managed Payments
Payment Links verwenden
Vorgefertigte Checkout-Seite verwenden
Erstellen Sie eine benutzerdefinierte Integration mit Elements
In-App-Integration erstellen
Präsenzzahlungen
Terminal
Zahlungsmethoden
Zahlungsmethoden hinzufügen
    Übersicht
    Optionen für die Integration von Zahlungsmethoden
    Standardzahlungsmethoden im Dashboard verwalten
    Arten von Zahlungsmethoden
    Karten
    Mit Stripe-Guthaben bezahlen
    Stablecoin-Zahlungen
    Lastschriften
    Bank Redirect
    Banküberweisungen
    Überweisungen (Sources)
    Jetzt kaufen, später bezahlen
    Zahlungen in Echtzeit
    Gutscheine
    Geldbörsen
      Alipay
      Amazon Pay
      Apple Pay
      Cash App Pay
        Zahlung annehmen
        Zahlungsdaten speichern
      Google Pay
      GrabPay
      Link
      MB WAY
      MobilePay
      PayPal
      PayPay
      Revolut Pay
      Satispay
      Secure Remote Commerce
      Vipps
      WeChat Pay
    Lokale Zahlungsmethoden nach Land aktivieren
    Nutzerdefinierte Zahlungsmethoden
Zahlungsmethoden verwalten
Schnellerer Bezahlvorgang mit Link
Zahlungsszenarien
Umgang mit mehreren Währungen
Nutzerdefinierte Zahlungsabläufe
Flexibles Acquiring
Orchestrierung
Mehr als Zahlungen
Unternehmensgründung
Krypto
Agentenbasierter Handel
Financial Connections
Climate
Betrug verstehen
Betrugsprävention von Radar
Zahlungsanfechtungen verwalten
Identitäten verifizieren
Vereinigte Staaten
Deutsch
StartseiteZahlungenAdd payment methodsWalletsCash App Pay

Cash App Pay-Zahlungen

Fügen Sie Ihrer Integration Unterstützung für Cash App Pay hinzu.

Wir empfehlen die Implementierung des nutzerdefinierten Zahlungsablaufs. Mit dem nutzerdefinierten Zahlungsablauf können Sie Cash App Pay und andere Zahlungsmethoden mit wenig Aufwand zu Ihrer Integration hinzufügen. Die Annahme von Zahlungen per Cash App Pay über eine direkte API-Integration umfasst die folgenden Schritte:

  • Erstellen eines PaymentIntent-Objekts, um eine Zahlung zu verfolgen.
  • Zahlung wird zur Abwicklung an Stripe übermittelt.
  • Authentifizierung der Zahlung (durch Weiterleitung einer mobilen App oder QR-Code).
  • Ereignisse nach der Zahlung verarbeiten, um Kundinnen/Kunden nach erfolgreicher oder fehlgeschlagener Bestellung weiterzuleiten.

Stripe einrichten
Serverseitig

Zunächst benötigen Sie ein Stripe-Konto. Registrieren Sie sich jetzt.

Nutzen Sie unsere offiziellen Bibliotheken für den Zugriff auf die Stripe-API über Ihre Anwendung:

Command Line
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Erstellen Sie ein PaymentIntent
Serverseitig

Ein PaymentIntent ist ein Objekt, das Ihre Absicht, eine Kundenzahlung einzuziehen, darstellt und den gesamten Zahlungsvorgang dokumentiert.

So erstellen Sie einen PaymentIntent auf Ihrem Server:

  • Geben Sie den einzuziehenden Betrag und die Währung an.
  • Fügen Sie cashapp zur Liste der Zahlungsmethoden für Ihren PaymentIntent hinzu. Vergewissern Sie sich, dass Cash App Pay im Dashboard aktiviert ist.
Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=6000 \ -d currency=usd \ -d "payment_method_types[]"=cashapp

Client-Geheimnis abrufen

Im PaymentIntent ist ein Client-Geheimnis enthalten, das auf dem Client verwendet wird, um Zahlungen sicher abzuschließen. Es gibt verschiedene Verfahren zum Übergeben des Client-Geheimnisses an den Client.

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:

main.rb
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
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:

(async () => { const response = await fetch('/secret'); const {client_secret: clientSecret} = await response.json(); // Render the form using the clientSecret })();

Zahlung an Stripe senden und Transaktionen clientseitig authentifizieren

In diesem Schritt führen Sie Cash App Pay-Zahlungen auf dem Client mit Stripe.js durch. Um eine Transaktion zu authentifizieren, müssen Sie die Kundinnen/Kunden an Cash App weiterleiten.

Binden Sie das Stripe.js-Skript in Ihre Bezahlseite ein, indem Sie es im head Ihrer HTML-Datei einfügen.

checkout.html
<head> <title>Checkout</title> <script src="https://js.stripe.com/clover/stripe.js"></script> </head>

Erstellen Sie auf Ihrer Bezahlseite mit dem folgenden JavaScript eine Instanz von Stripe.js:

client.js
// 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(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
);

Verwenden Sie stripe.confirmCashappPayment, um den PaymentIntent auf der Client-Seite zu bestätigen.

client.js
const form = document.getElementById('payment-form'); form.addEventListener('submit', function(event) { event.preventDefault(); // Pass the clientSecret obtained from the server in step 2 as the first argument stripe.confirmCashappPayment( clientSecret, { payment_method: { type: 'cashapp', }, return_url: 'https://www.example.com/checkout/done', }, ); });

Vorsicht

confirmCashappPayment leitet nur mobile Browser an Ihre return_url, nicht die Desktop-Browser. Sie können Kundinnen/Kunden, die Desktop-Browser verwenden, manuell zu Ihrer Rückgabe-URL weiterleiten, nachdem das zurückgegebene Promise aufgelöst wurde.

Kundinnen/Kunden können Transaktionen per Cash App Pay mit der mobilen App oder der Desktop-App authentifizieren. Der kundenseitig verwendete Client bestimmt die Authentifizierungsmethode, nachdem confirmCashappPayment aufgerufen wurde.

Nachdem confirmCashappPayment aufgerufen wurde, werden die Kundinnen/Kunden zu Cash App weitergeleitet, um die Zahlung zu genehmigen oder abzulehnen. Nachdem die Zahlung kundenseitig autorisiert wurde, werden diese zur return_url des Payment Intent weitergeleitet. Stripe fügt payment_intent, payment_intent_client_secret, redirect_pm_type und redirect_status als URL-Abfrageparameter hinzu (zusätzlich zu allen vorhandenen Abfrageparametern in return_url ).

Eine Authentifizierungssitzung läuft nach 60 Minuten ab, der Status des PaymentIntent wechselt dann wieder auf require_payment_method. Nach der Statusänderung sehen Kundinnen/Kunden einen Zahlungsfehler und müssen den Zahlungsvorgang von vorne beginnen.

OptionalWeiterleitung und Authentifizierung manuell handhaben

Wir empfehlen die Verwendung von Stripe.js, um Weiterleitungen zu verarbeiten und Authentifizierung über confirmCashappPayment durchzuführen. Sie können Weiterleitungen und Authentifizierungen jedoch auch manuell auf Ihrem Server handhaben.

Geben Sie handleActions: false im confirmCashappPayment-Aufruf an.

client.js
const form = document.getElementById('payment-form'); form.addEventListener('submit', function(event) { event.preventDefault(); // Set the clientSecret here you got in Step 2 stripe.confirmCashappPayment( clientSecret, { payment_method_data: { type: 'cashapp', }, return_url: 'https://www.example.com/checkout/done', }, { handleActions: false }, ).then((result) => { if (result.error) { // Display error to your customer. } else if (result.paymentIntent.status === "requires_action") { const nextAction = result.paymentIntent.next_action.cashapp_handle_redirect_or_display_qr_code; const expiresAt = nextAction.qr_code.expires_at; if (IS_MOBILE) { // This URL redirects the customer to Cash App to approve or decline the payment. const mobileAuthUrl = nextAction.mobile_auth_url; } else if (IS_DESKTOP) { // Render the QR code and display it to the customer using the below image source. const imageUrlSvg = nextAction.qr_code.image_url_svg; const imageUrlPng = nextAction.qr_code.image_url_png; } } }); });

Wenn ein Kunde/eine Kundin mit Cash App Pay über ein Mobilgerät bezahlt:

  1. Leiten Sie den Kunden/die Kundin an die als Eigenschaft result.paymentIntent.next_action.cashapp_handle_redirect_or_display_qr_code.mobile_auth_url festgelegte URL weiter. Dadurch werden die Kundinnen/Kunden zur Cash App weitergeleitet, um die Zahlung zu genehmigen oder abzulehnen.

  2. Nachdem der Kunde/die Kundin die Zahlung autorisiert hat, wird er/sie zur return_url des Payment Intent weitergeleitet. Stripe fügt payment_intent, payment_intent_client_secret, redirect_pm_type und redirect_status als URL-Abfrageparameter hinzu (zusammen mit allen vorhandenen Abfrageparametern in return_url).

  3. Beachten Sie, dass die mobile_auth_url nach 30 Sekunden abläuft. Falls der Kunde/die Kundin vor Ablauf nicht zu mobile_auth_url weitergeleitet wird, rufen Sie stripe.retrievePaymentIntent auf, um eine neue mobile_auth_url zu erhalten.

OptionalSeparate Autorisierung und Erfassung

Sie können Autorisierung und Erfassung trennen, um eine Zahlung sofort zu erstellen, Gelder jedoch erst später zu erfassen. Stripe storniert den PaymentIntent und sendet das Ereignis payment_intent.canceled, wenn die Zahlung nicht innerhalb des 7-tägigen Zeitfensters erfasst wird.

Wenn Sie wissen, dass Sie die Zahlung nicht erfassen können, sollten Sie den PaymentIntent stornieren und nicht warten, bis das Zeitfenster von 7 Tagen abgelaufen ist.

  • Stripe anweisen, nur die Autorisierung durchzuführen
  • Um anzugeben, dass Sie Autorisierung und Erfassung trennen möchten, legen Sie capture_method beim Erstellen des PaymentIntent auf manual fest. Dieser Parameter weist Stripe an, nur den Betrag auf dem Cash App Pay-Konto der Kundin/des Kunden zu autorisieren.

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl https://api.stripe.com/v1/payment_intents \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d amount=6000 \ -d confirm=true \ -d currency=usd \ -d "payment_method_types[]"=cashapp \ -d "payment_method_data[type]"=cashapp \ -d capture_method=manual \ --data-urlencode return_url="https://www.example.com/checkout/done"

  • Die Gelder erfassen
  • Nach erfolgreicher Autorisierung wechselt der Status des PaymentIntent zu requires_capture. Um die autorisierten Gelder zu erfassen, führen Sie eine Erfassungsanfrage für den PaymentIntent durch.

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl -X POST https://api.stripe.com/v1/payment_intents/{PAYMENT_INTENT_ID}/capture \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"

    Der autorisierte Gesamtbetrag wird standardmäßig erfasst. Sie können auch amount_to_capture angeben. Dieser kann kleiner oder gleich der Summe sein.

    Optional Autorisierung stornieren

    Wenn Sie eine Autorisierung stornieren müssen, können Sie den PaymentIntent stornieren.

    OptionalEreignisse nach der Zahlung verarbeiten

    Stripe übermittelt ein payment_intent.succeeded-Ereignis, wenn die Zahlung abgeschlossen ist. Verwenden Sie im Dashboard einen Webhook oder eine Partnerlösung, um diese Ereignisse zu empfangen und Aktionen auszuführen (Versenden einer Bestellbestätigung per E-Mail an die Kund/innen, Erfassen des Verkaufs in einer Datenbank oder Einleiten des Versandablaufs).

    Ü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 könnten die Antwort manipulieren. Wenn Sie Ihre Integration so einrichten, dass asynchrone Ereignisse überwacht werden, hilft Ihnen dies auch dabei, in Zukunft mehr Zahlungsmethoden zu akzeptieren. Hier erhalten Sie Informationen zu den Unterschieden zwischen allen unterstützten Zahlungsmethoden.

    • Manuelles Bearbeiten von Ereignissen im Dashboard

      Verwenden Sie das Dashboard, um Ihre Testzahlungen im Dashboard anzuzeigen, E-Mail-Belege zu senden, Auszahlungen zu bearbeiten oder fehlgeschlagene Zahlungen erneut zu versuchen.

    • Erstellen eines benutzerdefinierten Webhooks

      Erstellen Sie einen benutzerdefinierten Webhook-Handler, um auf Ereignisse zu hören und eigene asynchrone Zahlungsabläufe zu implementieren. Testen und debuggen Sie Ihre Webhook-Integration lokal mit der Stripe CLI.

    • Integrieren einer vorgefertigten App

      Bearbeiten Sie häufige Unternehmensereignisse, wie z. B.Automatisierung oderMarketing und Vertrieb, indem Sie eine Partneranwendung integrieren.

    Integration testen

    Um Ihre Integration zu testen, wählen Sie als Zahlungsmethode Cash App Pay aus und tippen Sie auf Bezahlen. Während des Tests werden Sie auf eine Testzahlungsseite weitergeleitet, auf der Sie die Zahlung genehmigen oder ablehnen können.

    Wenn Sie im Live-Modus auf Bezahlen tippen, werden Sie zur mobilen Anwendung von Cash App weitergeleitet. In der Cash App haben Sie keine Möglichkeit, die Zahlung zu genehmigen oder abzulehnen. Die Zahlung wird nach abgeschlossener Weiterleitung automatisch genehmigt.

    Fehlgeschlagene Zahlungen

    Cash App Pay verwendet mehrere Datenpunkte, um zu entscheiden, wann eine Transaktion abgelehnt wird (zum Beispiel hat das KI-Modell ein hohes Verbraucherbetrugsrisiko für die Transaktion festgestellt oder der Verbraucher/die Verbraucherin hat die Zustimmung zur Abbuchung über die Cash App widerrufen).

    In diesen Fällen wird die PaymentMethod getrennt und der Status des PaymentIntent-Objekts wechselt automatisch zu requires_payment_method.

    Anders als bei einer abgelehnten Zahlung müssen Kundinnen/Kunden bei einem Cash App Pay-PaymentIntent mit dem Status requires_action die Zahlung innerhalb von 10 Minuten nach Weiterleitung zur Cash App-Website abschließen. Wenn nach 10 Minuten keine Aktion erfolgt ist, wird die Verbindung mit der PaymentMethod getrennt, und der Status des PaymentIntent-Objekts wechselt automatisch zu requires_payment_method.

    In diesem Fall zeigt das Payment Element Fehlermeldungen an und fordert Ihre Kundinnen/Kunden auf, es mit einer anderen Zahlungsmethode erneut zu versuchen.

    Fehlercodes

    In der folgenden Tabelle finden Sie häufige Fehlercodes und die empfohlenen Maßnahmen:

    FehlercodeEmpfohlene Maßnahme
    payment_intent_invalid_currencyGeben Sie die korrekte Währung ein. Cash App Pay unterstützt nur usd.
    missing_required_parameterIn der Fehlermeldung erhalten Sie weitere Informationen zum erforderlichen Parameter.
    payment_intent_payment_attempt_failedDieser Code kann im Feld last_payment_error.code eines PaymentIntent angezeigt werden. Eine genauere Fehlerursache und Vorschläge zur Fehlerbehebung finden Sie in der Fehlermeldung.
    payment_intent_redirect_confirmation_without_return_urlGeben Sie eine return_url an, wenn Sie einen PaymentIntent mit Cash App Pay bestätigen.
    War diese Seite hilfreich?
    JaNein
    • Benötigen Sie Hilfe? Kontaktieren Sie den Kundensupport.
    • Schauen Sie sich unser Änderungsprotokoll an.
    • Fragen? Sales-Team kontaktieren.
    • LLM? Lesen Sie llms.txt.
    • Unterstützt von Markdoc