Zahlungen mit Revolut Pay annehmen
Fügen Sie Unterstützung für Revolut Pay zu Ihrer Integration hinzu.
Wir empfehlen die Verwendung des Mobile Payment Element. Bei diesem handelt es sich um ein Zahlungsformular, über das Sie Revolut Pay (und weitere Zahlungsmethoden) mit wenig Aufwand zu Ihrer Integration hinzufügen können.
In diesem Leitfaden erfahren Sie, wie Sie Revolut Pay über Ihre native Mobilanwendung akzeptieren, wenn Sie Ihr eigenes benutzerdefiniertes Zahlungsformular verwenden möchten.
Die Zahlung wird während der Weiterleitung authentifiziert.
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 die offiziellen Bibliotheken für den Zugriff auf die Stripe-API von Ihrem Server aus:
Clientseitig
Das Stripe iOS SDK ist Open Source, vollständig dokumentiert und kompatibel mit Apps, die iOS 13 oder höher unterstützen.
Notiz
Details zur aktuellen SDK-Version und zu vorherigen Versionen finden Sie auf der Seite Releases auf GitHub. Um bei Veröffentlichung einer neuen Version eine Benachrichtigung zu erhalten, achten Sie auf die Releases zum jeweiligen Repository.
Konfigurieren Sie das SDK mit Ihrem veröffentlichbaren Schlüssel von Stripe, um es beim Start der App auszuführen. Dadurch kann Ihre App Anfragen an die Stripe-API senden.
Notiz
Verwenden Sie Ihre Testschlüssel beim Testen und Entwickeln Ihrer App und Ihre Live-Modus-Schlüssel beim Veröffentlichen Ihrer App.
PaymentIntent erstellenServerseitigClient-seitig
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
revolut_
zur Liste der Zahlungsmethoden für Ihrenpay PaymentIntent
hinzu. Vergewissern Sie sich, dass Revolut Pay im Dashboard aktiviert ist.
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.
Client-seitig
Fordern Sie auf dem Client einen PaymentIntent von Ihrem Server an und speichern Sie sein Client-Geheimnis.
Zahlung an Stripe sendenClient-seitig
Wenn Kundinnen/Kunden die Schaltfläche zum Bezahlen mit Revolut Pay antippen, bestätigen Sie den PaymentIntent
, um die Zahlung abzuschließen. Konfigurieren Sie ein STPPaymentIntentParams
-Objekt mit dem Client-Geheimnis des PaymentIntent
.
Das Client-Geheimnis unterscheidet sich von Ihren API-Schlüsseln, die die Stripe API-Anfragen authentifizieren. Achten Sie auf einen vorsichtigen Umgang mit dem Client-Geheimnis, da mit ihm die Zahlungen abgeschlossen werden können. Es darf nicht protokolliert, in URLs eingebettet oder Personen zugänglich gemacht werden.
Rückgabe-URL einrichten
Das iOS SDK zeigt zur Durchführung einer Zahlung per Revolut Pay eine Webansicht in Ihrer App an. Wenn die Authentifizierung abgeschlossen ist, muss Ihre Kundin/Ihr Kunde sie nicht schließen, sondern dies geschieht automatisch. Um dieses Verhalten zu aktivieren, konfigurieren Sie ein benutzerdefiniertes URL-Schema oder einen Universal-Link und richten Sie Ihre App so ein, dass die URL an das SDK weitergeleitet wird.
Übergeben Sie die URL als return_
, wenn Sie den PaymentIntent bestätigen. Nach Abschluss der Authentifizierung über die Webansicht leitet Stripe die Nutzerin/den Nutzer an die return_
weiter.
Zahlung per Revolut Pay bestätigen
Führen Sie durch Aufrufen von STPPaymentHandler confirmPayment
die Zahlung durch. Dies entspricht einer Webansicht, über die die Kundinnen/Kunden die Zahlung per Revolut Pay durchführen können. Danach wird der Completion-Block mit dem Ergebnis der Zahlung aufgerufen.
Integration testen
Testen Sie Ihre Revolut Pay-Integration mit Ihren Test-API-Schlüsseln, indem Sie die Weiterleitungsseite anzeigen. Den Fall einer erfolgreichen Zahlung testen Sie, indem Sie die Zahlung auf der Weiterleitungsseite authentifizieren. Der PaymentIntent wechselt dann 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_
.
Für die manuelle Erfassung von PaymentIntents im Testmodus läuft der nicht erfasste PaymentIntent 7 Tage nach erfolgreicher Autorisierung automatisch ab.
Fehlgeschlagene Zahlungen
Revolut Pay verwendet mehrere Datenpunkte, um zu entscheiden, wann eine Transaktion abgelehnt wird (zum Beispiel hat das KI-Modell ein hohes Betrugsrisiko für die Transaktion festgestellt oder der Kunde/die Kundin hat die Zustimmung zur Abbuchung über Revolut Pay 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 Revolut Pay-PaymentIntent mit dem Status requires_
die Zahlung innerhalb von 10 Minuten nach der Weiterleitung zur Revolut Pay-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 |
---|---|
missing_ | Überprüfen Sie die Fehlermeldung, um weitere Informationen über den erforderlichen Parameter zu erhalten. |
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 Revolut Pay bestätigen. |