Kurz gesagt: Ihre App oder Website öffnet eine payment:// URL, Payment for Stripe verarbeitet die Zahlung und öffnet anschließend Ihre Callback-URL mit dem Ergebnis. Kein SDK. Keine Serverkonfiguration. Funktioniert auf iPhone und Android identisch, mit einigen unten aufgeführten Unterschieden.
Die vollständige Referenz finden Sie unter paymentforstripe.com/api.
So funktioniert es
- Ihre App öffnet eine
payment://-URL mit Parametern. - Payment for Stripe wird gestartet und der Verkauf eingerichtet. Der Händler nimmt die Zahlung mit einem Lesegerät, Tap to Pay oder per Karte entgegen.
- Wenn der Vorgang abgeschlossen ist, öffnet die App Ihre
callbackURL, wobei das Ergebnis als Abfrageparameter hinzugefügt wird.
Der Händler muss angemeldet sein. Wenn ein Link eingeht, während eine andere Zahlung ausgeführt wird, lehnt die App ihn ab und Ihr Callback gibt error=charge_in_progress zurück.
Eine Zahlung erstellen: payment://new
Eine einmalige Zahlung in einer von Ihnen festgelegten Höhe.
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
amount
|
ganze Zahl | Ja | Betrag in der kleinsten Währungseinheit, größer als 0. 1000 = 10,00 $. |
currency
|
Zeichenkette | NEIN | Dreistelliger ISO-Code, z. B. usd oder eur. Lässt man ihn weg, verwendet die App die bereits eingestellte Währung. |
description
|
Zeichenkette | NEIN | Gebührenbeschreibung. URL-codieren. |
customer
|
Zeichenkette | NEIN | Eine bestehende Stripe Kunden-ID ( cus_…) funktioniert ebenfalls. Die Kunden email name customer_id) wird ignoriert, sofern sie angegeben ist. |
email
|
Zeichenkette | NEIN | Kunden-E-Mail. Erstellt einen neuen Kunden. |
name
|
Zeichenkette | NEIN | Kundenname. URL-codieren. Erstellt einen neuen Kunden. |
metadata
|
Zeichenkette | NEIN | URL-codiertes JSON-Objekt mit Schlüssel-Wert-Paaren, das der Zahlung hinzugefügt wurde. Es gelten die Metadatenbeschränkungen von Stripe. |
callback
|
Zeichenkette | NEIN | URL, die nach Ende des Verkaufs geöffnet werden soll. |
autoprocess
|
boolescher Wert | NEIN | true überspringt die Tastatur und startet den Ladevorgang sofort. Standardmäßig false. |
auto_return
|
boolescher Wert | NEIN | true aktiviert den Callback, sobald das Ergebnis bekannt ist. Standardwert: false: Der Callback wartet, bis der Händler die Ergebnisseite schließt. |
payment://new?amount=2500¤cy=eur&description=Coffee%20and%20pastry payment://new?amount=3500&autoprocess=true&auto_return=true&callback=myapp://payment-complete Ein Link mit einem fehlenden, nullwertigen oder nicht-numerischen amount wird ignoriert.
Erstellen Sie eine Rechnung aus Ihrem Katalog: payment://cart
Der Warenkorb wird mit Preisen aus Ihrem Stripe-Produktkatalog befüllt. Der Händler bucht den Betrag wie gewohnt ab, und der Verkauf wird in Stripe als bezahlte Rechnung mit diesen Positionen gespeichert. Es wird keine Rechnung per E-Mail an Ihren Kunden versendet.
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
prices
|
Zeichenkette | Ja | Durch Kommas getrennte price_id:quantity Paare, wie z. B. price_abc:2,price_xyz:1. Auch line_items funktionieren. |
coupon
|
Zeichenkette | NEIN | Stripe Gutscheincode-ID, die im Warenkorb angewendet werden soll. |
customer
|
Zeichenkette | NEIN | Vorhandene Stripe Kunden-ID. customer_id funktioniert auch. |
email
|
Zeichenkette | NEIN | Kunden-E-Mail. Erstellt einen neuen Kunden. |
name
|
Zeichenkette | NEIN | Kundenname. URL-codieren. |
metadata
|
Zeichenkette | NEIN | URL-codiertes JSON-Objekt mit Schlüssel-Wert-Paaren. |
callback
|
Zeichenkette | NEIN | URL, die nach Ende des Verkaufs geöffnet werden soll. |
autoprocess
|
boolescher Wert | NEIN | Die true beginnt erst, wenn alle Preise (und der Coupon) geladen sind. |
auto_return
|
boolescher Wert | NEIN | Gleiches gilt wie oben. Standardmäßig false. |
payment://cart?prices=price_coffee:2,price_muffin:1&email=customer@example.com Senden Sie keinen amount zusammen mit prices. Der Gesamtbetrag ergibt sich aus den Preisen, und ein Link, der beides enthält, wird ignoriert. Mit payment_hidden ausgeblendete Preise funktionieren hier weiterhin.
Eine bestehende Rechnung bezahlen: Zahlung://Rechnung
Akzeptiert Zahlungen vor Ort für offene Stripe Rechnungen. Betrag, Währung, Kunde und Steuer werden der Rechnung entnommen. Bei erfolgreicher Zahlung markiert die App die Rechnung als bezahlt. Funktioniert auf iPhone und Android.
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id
|
Zeichenkette | Ja | Stripe Rechnungs-ID. Muss mit in_ beginnen. Senden Sie eine offene Rechnung. Auf dem iPhone wird zuerst ein Entwurf abgeschlossen. Auf Android wird ein Entwurf mit error=invoice_state_changed abgelehnt. |
metadata
|
Zeichenkette | NEIN | URL-codiertes JSON-Objekt, das dem PaymentIntent hinzugefügt wurde. |
callback
|
Zeichenkette | NEIN | URL, die nach Abschluss des Verkaufs geöffnet wird. Ruft bei Erfolg invoice_id und payment_intent_id ab. |
autoprocess
|
boolescher Wert | NEIN | Die Abbuchung true erst, nachdem die Rechnungsprüfung erfolgreich war und ein Kartenlesegerät angeschlossen ist. |
auto_return
|
boolescher Wert | NEIN | Gleiches gilt wie oben. Standardmäßig false. |
payment://invoice?id=in_1ABC123xyz&autoprocess=true&callback=myapp://invoice-paid Die Rechnung legt den Verkauf fest. Daher wird der Link für alle Felder wie amount, currency, customer, customer_id, email, name, description, coupon, prices oder line_items mit error=invoice_invalid_param abgelehnt. Auch bezahlte, stornierte, uneinbringliche Rechnungen, Rechnungen mit dem Wert 0 €, Rechnungen, die mit einem Abonnement verknüpft sind oder eine Standardzahlungsmethode verwenden, werden abgelehnt – jeweils mit einem eigenen invoice_… -Fehler.
Der Rückruf
Die App fügt diese Ihrer Callback-URL hinzu:
| Name | Typ | Gesendet | Beschreibung |
|---|---|---|---|
status
|
Zeichenkette | Stets | success, error oder cancelled. |
charge_id
|
Zeichenkette | Zum Erfolg | Die Zahlungs-ID. Auf dem iPhone ist es die Stripe-Zahlungsnummer ( ch_…). Auf Android ist es der PaymentIntent ( pi_…). |
stripe_charge_id
|
Zeichenkette | Nur für Android | Die Stripe-Gebühr ( ch_…). |
payment_intent_id
|
Zeichenkette | Zum Erfolg | Die PaymentIntent. iPhones senden sie nur für payment://invoice. Android sendet sie bei jeder Kartenzahlung. |
invoice_id
|
Zeichenkette | Rechnungslinks | Die bezahlte Rechnung, für payment://invoice. |
amount
|
ganze Zahl | Zum Erfolg | Berechneter Betrag in der kleinsten Einheit. |
currency
|
Zeichenkette | Zum Erfolg | ISO-Code in Kleinbuchstaben. |
error
|
Zeichenkette | Im Fehler | Ein kurzer Code wie charge_in_progress oder invoice_already_paid oder eine lesbare Meldung für eine abgelehnte Karte. |
myapp://payment-complete?status=success&charge_id=ch_3Qx…&success=true&amount=3500¤cy=usd&chargeId=ch_3Qx… Benötigen Sie dieselbe ID auf beiden Plattformen? Lesen Sie zuerst stripe_charge_id und verwenden Sie dann charge_id als Fallback.
Bei älteren Integrationen sendet die App außerdem success=true, chargeId, cancelled=true und error[message]. Neuer Code sollte status auslesen.
Eine Stornierung löst sofort den Rückruf aus. Bei einer erfolgreichen oder fehlgeschlagenen Zahlung wartet der Händler, bis er die Ergebnisseite schließt, es sei denn, Sie übergeben auto_return=true. Auf dem iPhone löst ein Barverkauf niemals den Rückruf aus, da keine Zahlung erfolgte.
URL-Codierung
- Jeder Wert, der Leerzeichen oder Symbole enthält, wird kodiert. Leerzeichen werden zu
%20,{und}zu%7Bund%7D,"wird zu%22,:wird zu%3A. - Wenn Ihre Callback-URL eine eigene Abfragezeichenfolge hat, kodieren Sie die gesamte Callback-URL, damit das
&Ihrenpayment://Link nicht trennt. - Die Kommas und Doppelpunkte in
priceskönnen so bleiben, wie sie sind.
Die Metadaten {"order_id":"1234","location":"Store A"} werden zu:
payment://new?amount=10000&description=Invoice%20%231234&metadata=%7B%22order_id%22%3A%221234%22%2C%22location%22%3A%22Store%20A%22%7D Die ältere Form metadata[order_id]=1234 funktioniert auch.