Cash App Pay-Zahlungen
Fügen Sie Ihrer Integration Unterstützung für Cash App Pay hinzu.
Wir empfehlen die Verwendung des mobilen Payment Element. Bei diesem handelt es sich um ein Zahlungsformular, über das Sie Cash App Pay (und weitere Zahlungsmethoden) mit wenig Aufwand zu Ihrer Integration hinzufügen können.
In diesem Leitfaden erfahren Sie, wie Sie Cash App Pay über Ihre native Mobilanwendung akzeptieren, wenn Sie Ihr eigenes benutzerdefiniertes Zahlungsformular verwenden möchten.
Wenn Sie Cash App Pay über Ihre native mobile App akzeptieren, werden Ihre Kundinnen/Kunden zur Authentifizierung an die mobile App Cash App weitergeleitet. Der Kauf wird in der mobilen Cash App-Anwendung abgeschlossen und der Kunde/die Kundin wird zu Ihrer systemeigenen mobilen Anwendung zurückgeleitet.
Stripe einrichtenServerseitigClientseitig
Zunächst benötigen Sie ein Stripe-Konto. Registrieren Sie sich jetzt.
Serverseitig
Diese Integration erfordert Endpoints auf Ihrem Server, die mit der Stripe-API kommunizieren können. Nutzen Sie diese offiziellen Bibliotheken für den Zugriff auf die Stripe-API von Ihrem Server aus:
Clientseitig
Das Stripe Android SDK ist Open Source und vollständig dokumentiert.
Um das SDK zu installieren, fügen Sie stripe-android
in den Block dependencies
Ihrer app/build.gradle-Datei ein:
Notiz
Details zur aktuellen SDK-Version und zu vorherigen Versionen finden Sie auf der Seite Releases auf GitHub. Um bei Veröffentlichung eines neuen Release eine Benachrichtigung zu erhalten, beobachten Sie Veröffentlichungen für das jeweilige Repository.
Konfigurieren Sie das SDK mit Ihrem veröffentlichbaren Schlüssel von Stripe so, dass dieser Anfragen an die API stellen kann, wie beispielsweise in Ihrer Unterklasse Application
:
Notiz
Verwenden Sie Ihre Testschlüssel beim Testen und Entwickeln Ihrer App und Ihre Live-Modus-Schlüssel beim Veröffentlichen Ihrer App.
Stripe-Beispiele nutzen auch OkHttp und GSON, um HTTP-Anfragen an einen Server zu stellen.
Erstellen Sie ein PaymentIntentServerseitigClientseitig
Serverseitig
Ein PaymentIntent ist ein Objekt, das Ihre Absicht, eine Kundenzahlung einzuziehen, darstellt und den gesamten Zahlungsvorgang dokumentiert.
So erstellen und bestätigen 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 IhrenPaymentIntent
hinzu. Vergewissern Sie sich, dass Cash App Pay im Dashboard aktiviert ist. - Setzen Sie
payment_
aufmethod_ data[type] cashapp
, um eine PaymentMethod zu erstellen und diese sofort mit diesem PaymentIntent zu verwenden.
Der zurückgegebene PaymentIntent enthält ein Client-Geheimnis, das Sie verwenden werden, um den PaymentIntent zu bestätigen. Übermitteln Sie das Client-Geheimnis zurück an den Client, damit Sie es im nächsten Schritt verwenden können.
Clientseitig
Fordern Sie auf dem Client einen PaymentIntent von Ihrem Server an und speichern Sie sein Client-Geheimnis.
Zahlung an Stripe sendenClientseitig
Wenn Kundinnen/Kunden die Schaltfläche zum Bezahlen mit Cash App antippen, bestätigen Sie den PaymentIntent
, um die Zahlung abzuschließen. Konfigurieren Sie ein ConfirmPaymentIntentParams
-Objekt mit dem Client-Geheimnis des PaymentIntent
.
Das Client-Geheimnis unterscheidet sich von Ihren API-Schlüsseln, die die Stripe API-Anfragen authentifizieren. Es darf nicht protokolliert, in URLs eingebettet oder Personen außer der Kundin/dem Kunden selbst zugänglich gemacht werden.
Barzahlung per Cash App Pay bestätigen
Schließen Sie die Zahlung ab, indem Sie PaymentLauncher bestätigen aufrufen. Dies entspricht einer Webansicht, über die die Kund/innen die Zahlung mit Cash App Pay durchführen können. Nach Abschluss wird der angegebene PaymentResultCallback
mit dem Ergebnis der Zahlung aufgerufen.
Integration testen
Testen Sie Ihre Cash App Pay-Integration mit Ihren Test-API-Schlüsseln, indem Sie die Weiterleitungsseite anzeigen. Sie können die erfolgreiche Zahlung testen, indem Sie die Zahlung auf der Weiterleitungsseite authentifizieren. Der PaymentIntent wechselt von requires_
zu succeeded
.
Um den Fall zu testen, in dem sich Nutzer/innen nicht authentifizieren können, verwenden Sie Ihre Test-API-Schlüssel und zeigen Sie die Weiterleitungsseite an. Klicken Sie auf der Weiterleitungsseite auf Fail test payment (Testzahlung fehlschlagen lassen). Der PaymentIntent wechselt von requires_
zu requires_
.
Bei der manuellen Testerfassung von PaymentIntents läuft der nicht erfasste PaymentIntent 7 Minuten nach erfolgreicher Autorisierung automatisch ab.
Es gibt einige Unterschiede zwischen der Funktionsweise von Sandbox- und Live-Modus-Zahlungen. Wenn Sie beispielsweise im Live-Modus auf Bezahlen tippen, werden Sie zur mobilen Anwendung von Cash App weitergeleitet. In der Cash App haben Sie nicht die 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_
.
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. |