Swish-ZahlungenNur auf Einladung
Erfahren Sie, wie Sie Zahlungen per Swish, einer beliebten Zahlungsmethode in Schweden, akzeptieren.
Swish ist eine in Schweden verwendete Zahlungsmethoden zum einmaligen Gebrauch. Sie bietet Kundinnen und Kunden die Möglichkeit, Zahlungen mit der mobilen Swish-App und der schwedischen mobilen BankID-App zu authentifizieren und zu genehmigen.
Sie erhalten eine sofortige Benachrichtigung, ob die Zahlung erfolgreich war oder fehlgeschlagen ist.
Erforderliche Hinweise
Um die Swish-Regeln einzuhalten, müssen Sie in Ihrem Zahlungsablauf den folgenden Text anzeigen, bevor die Kundin/der Kunde die Swish-Zahlung autorisiert:
- Für englische Lokalisierungen: „Stripe Technology Europe Limited („Stripe“) has acquired the claim for payment. Therefore your payment will be made to Stripe.“
- Für schwedische Lokalisierungen: „Stripe Technology Europe Limited („Stripe“) har övertagit fordran på betalning. Din betalning görs därför till Stripe.”
- Für andere Sprachen eine gleichwertige Übersetzung des Vorstehenden.
Wenn Sie Swish über ein von Stripe gehostetes Zahlungsformular oder eine von Stripe gehostete Nutzeroberfläche wie Checkout oder das Payment Element integrieren, zeigt Stripe Ihnen diesen Hinweis an.
Wir empfehlen die Verwendung des mobilen Payment Element. Bei diesem handelt es sich um ein Zahlungsformular, über das Sie Swish und weitere Zahlungsmethoden mit wenig Aufwand zu Ihrer Integration hinzufügen können.
In diesem Leitfaden erfahren Sie, wie Sie Swish über Ihre native Mobilanwendung akzeptieren, wenn Sie Ihr eigenes benutzerdefiniertes Zahlungsformular verwenden möchten.
Wenn Sie Swish mit Ihrer nativen App für Mobilgeräte akzeptieren, werden Ihre Kundinnen/Kunden zur Authentifizierung an die App von Swish weitergeleitet. Die Zahlung wird während der Weiterleitung authentifiziert. In der mobilen Swish-App sind keine weiteren Schritte erforderlich, um den Kauf abzuschließen. Anschließend werden die Kundinnen/Kunden auf Ihre Seite 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, repräsentiert 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
swishzur Liste der Zahlungsmethoden für IhrenPaymentIntenthinzu. Vergewissern Sie sich, dass Swish im Dashboard aktiviert ist. - Setzen Sie
payment_aufmethod_ data[type] swish, 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 Swish 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. 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 anderen Personen zugänglich gemacht werden.
Swish-Zahlung bestätigen
Schließen Sie die Zahlung ab, indem Sie PaymentLauncher bestätigen aufrufen. Dies entspricht einer Webansicht, über die die Kundinnen/Kunden Zahlungen mit Swish durchführen können. Nach Abschluss wird der angegebene PaymentResultCallback mit dem Ergebnis der Zahlung aufgerufen.
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.
OptionalIntegration testen
Testen Sie Ihre Swish-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 Nutzer/innen sich nicht authentifizieren können, verwenden Sie Ihre Test-API-Schlüssel und zeigen die Weiterleitungsseite an. Klicken Sie auf der Weiterleitungsseite auf Testzahlung fehlschlagen lassen. Der PaymentIntent wechselt dann von requires_ zu requires_.
Wenn Sie im Live-Modus auf Bezahlen tippen, werden Sie zur mobilen App von Swish weitergeleitet. Dort können Sie die Zahlung genehmigen oder ablehnen.
OptionalKündigung
Sie können Swish-Zahlungen stornieren, bevor sie ablaufen, indem Sie den PaymentIntent stornieren, der mit der Swish-Zahlung verknüpft ist.
Fehlgeschlagene Zahlungen
Swish verwendet mehrere Datenpunkte, um zu entscheiden, wann eine Transaktion abgelehnt wird (zum Beispiel ist das Kundenguthaben auf dem Bankkonto nicht ausreichende oder die Kundin/der Kunde hat in der App auf Abbrechen geklickt).
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 Swish-PaymentIntent mit dem Status requires_ die Zahlung innerhalb von 3 Minuten nach abschließen. Wenn nach 3 Minuten keine Aktion erfolgt ist, wird die PaymentMethod getrennt, und der Status des PaymentIntent-Objekts wechselt automatisch zu requires_.