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 einrichtenServerseitig
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:
Erstellen Sie ein PaymentIntentServerseitig
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
cashappzur Liste der Zahlungsmethoden für IhrenPaymentIntenthinzu. Vergewissern Sie sich, dass Cash App Pay im Dashboard aktiviert ist.
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.
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.
<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:
// 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., um den PaymentIntent auf der Client-Seite zu bestätigen.
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_, 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.
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.
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; } } }); });
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.
Die Gelder erfassen
Nach erfolgreicher Autorisierung wechselt der Status des PaymentIntent zu requires_. Um die autorisierten Gelder zu erfassen, führen Sie eine Erfassungsanfrage für den PaymentIntent durch.
Der autorisierte Gesamtbetrag wird standardmäßig erfasst. Sie können auch amount_ 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.
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_.
Anders als bei einer abgelehnten Zahlung müssen Kundinnen/Kunden bei einem Cash App Pay-PaymentIntent mit dem Status requires_ 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_.
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:
| Fehlercode | Empfohlene Maßnahme |
|---|---|
payment_ | Geben Sie die korrekte Währung ein. Cash App Pay unterstützt nur usd. |
missing_ | In der Fehlermeldung erhalten Sie weitere Informationen zum erforderlichen Parameter. |
payment_ | Dieser 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_ | Geben Sie eine return_ an, wenn Sie einen PaymentIntent mit Cash App Pay bestätigen. |