Weiter zum Inhalt
Konto erstellen oder anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellenAnmelden
Jetzt starten
Zahlungen
Umsatz
Plattformen und Marktplätze
Geldmanagement
Entwicklerressourcen
APIs und SDKsHilfe

PayTo-Zahlungen

So akzeptieren Sie Zahlungen per PayTo.

PayTo is a real-time payment method in Australia for accepting one-time and recurring payments. When paying with PayTo, customers authenticate and approve mandates using their mobile banking app or online banking.

You get delayed notification on whether the payment succeeded or failed. Stripe typically sends a notification of the final status of the payment within 60 seconds of the mandate authorization.

Stripe einrichten
Serverseitig

Zunächst benötigen Sie ein Stripe-Konto. Registrieren Sie sich jetzt.

Um von Ihrer Anwendung auf die Stripe API zuzugreifen, verwenden Sie unsere offiziellen Bibliotheken:

Command Line
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

PaymentIntent erstellen
Serverseitig

Ein PaymentIntent ist ein Objekt, das Ihre Absicht darstellt, eine Kundenzahlung einzuziehen, und den Zahlungsvorgang dokumentiert. Um einen PaymentIntent zu erstellen, der eine ShopeePay-Zahlungsmethode akzeptiert, geben Sie den einzuziehenden Betrag, aud als Währung und payto in der Liste der payment_method_types an. Wenn Sie eine Liste mit Zahlungsmethodentypen haben, die Sie beim Erstellen eines PaymentIntent übergeben, fügen Sie dieser Liste payto hinzu.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1000 \ -d currency=aud \ -d "payment_method_types[]"=payto

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.

Rufen Sie das Client-Geheimnis von einem Endpoint auf Ihrem Server ab, indem Sie die Browser-Funktion fetch verwenden. Diese Vorgehensweise funktioniert am besten, wenn es sich bei Ihrer Client-Seite um eine einseitige Anwendung handelt, insbesondere wenn sie mit einem modernen Frontend-Framework wie React erstellt wurde. Erstellen Sie den Server-Endpoint, der das Client-Geheimnis bereitstellt:

main.rb
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
get '/secret' do intent = # ... Create or retrieve the PaymentIntent {client_secret: intent.client_secret}.to_json end

Und dann rufen Sie das Client-Geheimnis mit JavaScript auf der Client-Seite ab:

(async () => { const response = await fetch('/secret'); const {client_secret: clientSecret} = await response.json(); // Render the form using the clientSecret })();

Angaben zur Zahlungsmethode erfassen und die Zahlung übermitteln
Clientseitig

Wenn Sie die Zahlung bestätigen, übergeben Sie das Client-Geheimnis.

Vorsicht

Gehen Sie sorgfältig mit dem Client-Geheimnis um, da es den Zugriff auf den PaymentIntent ermöglicht. Es darf nicht protokolliert, in URLs eingebettet oder Personen außer der Kundin/dem Kunden selbst zugänglich gemacht werden.

Verwenden Sie stripe.confirmPayToPayment, um die Zahlungsautorisierung mit Ihrer Kundin/Ihrem Kunden zu initiieren.

Die Kundin/der Kunde erhält eine Benachrichtigung über die Zahlungsanfrage und genehmigt oder lehnt diese über die Banking-App ab.

script.js
// Inititates the payment request notification to the customer stripe.confirmPayToPayment( '{{PAYMENT_INTENT_CLIENT_SECRET}}', { payment_method: { billing_details: { // Name is required for all PayTo payments name: 'Jenny Rosen', // Email is required only for PayID payments, for refund processing email: 'jenny@example.com' }, payto: { // Either provide a PayID (typically an email or phone number) pay_id: 'jenny@example.com' // ...or provide bank account details account_number: '000123456', bsb_number: '000000' } } } ).then(function(result) { if (result.error) { // Inform the customer that there was an error. console.log(result.error.message); } });

Standardmäßig fragt Stripe.js nach Aktualisierungen des PaymentIntent. Das von confirmPayToPayment zurückgegebene Promise wird aufgelöst, wenn die PaymentIntent den Status succeeded erreicht, oder wenn die Zahlung fehlschlägt und die PaymentIntent wieder in den Status requires_payment_method wechselt. Nähere Informationen dazu, wie diese Übergänge stattfinden, finden Sie im Ablauf eines PaymentIntent.

Deaktivieren Sie die automatische Abfrage, indem Sie handleActions: false festlegen, um sich selbst abzufragen:

script.js
stripe.confirmPayToPayment( '{{PAYMENT_INTENT_CLIENT_SECRET}}', { payment_method: { payto: { account_number: '000123456', bsb_number: '000000' } } } { handleActions: false } // <---- Like this )

Rufen Sie in diesem Fall die PaymentIntents API auf, um den Status der PaymentIntent selbst abzurufen.

Integration testen

Testen Sie Ihre PayTo-Integration mit Ihren Test-API-Schlüsseln, indem Sie die verschiedenen Test-PayIDs und Bankkontodaten unten verwenden. Jeder Datensatz hat ein anderes Szenario zufolge, mit dem Ihre Integration im Live-Modus häufig konfrontiert wird.

PayIDBeschreibung
{any_prefix}+succeed@{any_domain}Der Status des PaymentIntent wechselt nach 10 Sekunden von requires_action auf processing und dann nach weiteren 5 Sekunden zu succeeded.
{any_prefix}+decline@{any_domain}Der PaymentIntent-Status wechselt nach 10 Sekunden von requires_action zu requires_payment_method. Stripe gibt den Fehlercode payment_method_provider_decline und den Ablehnungscode invalid_authorization zurück.
{any_prefix}+expire@{any_domain}Der PaymentIntent Status wechselt nach 10 Sekunden von requires_action zu requires_payment_method. Stripe gibt den Fehlercode payment_method_provider_timeout und den Ablehnungscode generic_decline zurück.
{any_prefix}+insufficient_funds@{any_domain}Der Status des PaymentIntent wechselt nach 10 Sekunden von requires_action zu processing und dann nach weiteren 5 Sekunden zu requires_payment_method. Stripe gibt den Fehlercode payment_method_provider_decline und den Ablehnungscode insufficient_funds zurück.
{any_prefix}+agreement_type_not_supported@{any_domain}Der PaymentIntent Status wechselt nach 10 Sekunden von requires_action zu requires_payment_method. Stripe gibt den Fehlercode payment_method_provider_decline zurück. Das Mandat geht in den Status inactive über.

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.

War diese Seite hilfreich?
JaNein
  • Benötigen Sie Hilfe? Kontaktieren Sie den Kundensupport.
  • Schauen Sie sich unser Änderungsprotokoll an.
  • Fragen? Sales-Team kontaktieren.
  • LLM? Lesen Sie llms.txt.
  • Unterstützt von Markdoc