Kartenzahlungen einziehen
Bereiten Sie Ihre Anwendung und Ihr Backend auf das Einziehen von Kartenzahlungen mit Stripe Terminal vor.
Zum Einziehen von Zahlungen mit Stripe Terminal müssen Sie einen Zahlungsablauf in Ihrer Anwendung programmieren. Verwenden Sie das Stripe Terminal SDK, um einen PaymentIntent zu erstellen und zu aktualisieren. Bei einem PaymentIntent handelt es sich um ein Objekt, das eine einzelne Zahlungssitzung darstellt.
Die fehlerresistente Terminal-Integration teilt den Zahlungsvorgang in mehrere Schritte auf, von denen jeder sicher erneut versucht werden kann:
- PaymentIntent erstellen.
- Abwickeln der Zahlung. Die Autorisierung der Karte der Kundin/des Kunden erfolgt, wenn das SDK die Zahlung abwickelt.
- (Optional) Zahlung erfassen
Erstellen Sie ein PaymentIntentClientseitigServerseitig
Der erste Schritt beim Einziehen von Zahlungen ist das Starten des Zahlungsablaufs. Wenn Kundinnen/Kunden den Bestellvorgang abschließen, muss Ihre Anwendung ein PaymentIntent-Objekt erstellen. Dies stellt eine neue Zahlungssitzung auf Stripe dar.
Einen PaymentIntent können Sie auf dem Client oder auf dem Server erstellen.
Verwenden Sie Test-Beträge, um verschiedene Ergebnisse zu erzielen. Ein Betrag, der auf 00 endet, führt zu einer bestätigten Zahlung.
Häufiger Fehler
Erstellen Sie einen PaymentIntent nicht neu, wenn eine Karte abgelehnt wird. Verwenden Sie stattdessen denselben PaymentIntent wieder, um doppelte Abbuchungen zu vermeiden.
Clientseitig
Erstellen Sie einen PaymentIntent auf Ihrem Client:
Warnung
Wenn Ihre App mit dem Lesegerät Verifone P400 verbunden ist, können Sie keinen PaymentIntent über das iOS SDK erstellen. Sie müssen stattdessen den PaymentIntent auf dem Server erstellen und den PaymentIntent in Ihrer App mithilfe der Methode Terminal. im SDK abrufen.
Serverseitig
Wenn die zum Starten einer Zahlung erforderlichen Informationen in Ihrer App nicht jederzeit verfügbar sind, können Sie den PaymentIntent auch auf Ihrem Server erstellen.
Das folgende Beispiel zeigt, wie Sie einen PaymentIntent auf Ihrem Server erstellen:
Für Terminal-Zahlungen muss der Parameter payment_ card_ enthalten.
Sie können den Zahlungsablauf wie folgt steuern:
- Um den Zahlungsablauf für
card_-Zahlungen vollständig zu steuern, setzen Siepresent capture_aufmethod manual. So können Sie vor der endgültigen Finalisierung der Zahlung einen Abgleichschritt hinzufügen. - Um Zahlungen in einem Schritt zu autorisieren und zu erfassen, setzen Sie
capture_aufmethod automatic.
Um in Australien Zahlungen zu akzeptieren, müssen Sie capture_ auf automatic oder manual_ setzen. Weitere Informationen finden Sie in unserer Dokumentation zu Australien. Um Interac-Zahlungen in Kanada zu akzeptieren, müssen Sie auch interac_ in payment_ aufnehmen. Weitere Informationen finden Sie in unserer Dokumentation zu Kanada.
Der PaymentIntent enthält ein Client-Geheimnis, einen Schlüssel, der für jeden PaymentIntent eindeutig ist. Um das Client-Geheimnis zu verwenden, müssen Sie es vom PaymentIntent auf Ihrem Server beziehen und an den Client übergeben.
Um einen PaymentIntent abzurufen, rufen Sie mithilfe des Client-Geheimnisses retrievePaymentIntent auf.
Nachdem Sie den PaymentIntent abgerufen haben, verwenden Sie ihn, um processPaymentIntent aufzurufen.
Zahlung abwickelnClientseitig
Sie können eine Zahlung sofort mit der von einer Kundin/einem Kunden vorgelegten Karte abwickeln oder stattdessen die Kartenangaben überprüfen, bevor Sie mit dem Prozess der Zahlung fortfahren. Für die meisten Use Cases empfehlen wir eine sofortige Verarbeitung, da es sich um eine einfachere Integration mit weniger API-Aufrufen handelt. Wenn Sie jedoch Ihre eigene Geschäftslogik hinzufügen möchten, bevor die Karte autorisiert wird, können Sie den Vorgang zur Erfassung und Bestätigung in zwei Schritten verwenden.
Zahlung erfassenServerseitig
Wenn Sie bei der Erstellung des PaymentIntent in Schritt 1 capture_ als manual definiert haben, gibt das SDK einen autorisierten, aber nicht erfassten PaymentIntent an Ihre Anwendung zurück. Erfahren Sie mehr über den Unterschied zwischen Autorisierung und Erfassung.
Wenn Ihre App einen bestätigten PaymentIntent von Ihrem SDK empfängt, stellen Sie sicher, dass Ihr Backend angewiesen wird, die Zahlung zu erfassen. Erstellen Sie einen Endpoint in Ihrem Backend, der eine PaymentIntent-ID akzeptiert und eine Anfrage zum Erfassen des PaymentIntent an die Stripe-API übermittelt:
Eine erfolgreiche capture führt zu einem PaymentIntent mit dem Status succeeded.
Hinweis
Um sicherzustellen, dass die erfasste Plattformgebühr für verbundene Konten korrekt ist, überprüfen Sie jeden PaymentIntent und ändern Sie die Plattformgebühr bei Bedarf, bevor Sie die Zahlung manuell erfassen.
Zahlungen abgleichen
Um die Zahlungsaktivität Ihres Unternehmens zu überwachen, können Sie am Tagesende PaymentIntents mit Ihrem internen Bestellsystem auf Ihrem Server abgleichen.
Ein PaymentIntent, der den Status requires_ beibehält, kann eines der folgenden zwei Szenarien darstellen:
Überflüssige Autorisierung auf der Kartenabrechnung Ihrer Kundin/Ihres Kunden
- Ursache: Der/die Nutzer/in hat den Bezahlvorgang Ihrer App während einer Transaktion verlassen.
- Lösung: Wenn der nicht erfasste
PaymentIntentkeiner abgeschlossenen Bestellung auf Ihrem Server zugeordnet ist, können Sie ihn abbrechen. Sie können einen storniertenPaymentIntentnicht zur Durchführung von Zahlungen verwenden.
Unvollständiger Einzug von Geldern von einer Kundin/einem Kunden
- Ursache: Die Anfrage Ihrer App, die Ihr Backend zur Erfassung der Zahlung anweist, ist fehlgeschlagen.
- Lösung: Wenn der nicht erfasste
PaymentIntenteiner abgeschlossenen Bestellung auf Ihrem Server zugeordnet ist und keine andere Zahlung (zum Beispiel eine Barzahlung) für die Bestellung angenommen wurde, können Sie ihn erfassen.
Trinkgelder einziehen US only
In den USA können anspruchsberechtigte Nutzer/innen beim Erfassen von Zahlungen Trinkgelder einziehen.
