Krótka odpowiedź: Twoja aplikacja lub strona internetowa otwiera adres URL payment://, Payment for Stripe pobiera płatność, a następnie otwiera adres URL wywołania zwrotnego z wynikiem. Bez zestawu SDK. Bez pracy serwera. Działa tak samo na iPhonie i Androidzie, z kilkoma różnicami opisanymi poniżej.
Pełna informacja znajduje się na stronie paymentforstripe.com/api.
Jak to działa
- Twoja aplikacja otwiera adres URL
payment://z parametrami. - Payment for Stripe zostaje otwarta i skonfigurowana. Sprzedawca pobiera płatność za pomocą czytnika, Tap to Pay lub karty płatniczej.
- Po zakończeniu aplikacja otwiera adres URL
callbackz wynikiem dodanym jako parametry zapytania.
Sprzedawca musi być zalogowany. Jeśli link przyjdzie w trakcie pobierania innej opłaty, aplikacja odrzuci go, a wywołanie zwrotne wyświetli error=charge_in_progress.
Utwórz opłatę: payment://new
Jednorazowa płatność na ustaloną przez Ciebie kwotę.
| Nazwa | Typ | Wymagany | Opis |
|---|---|---|---|
amount
|
liczba całkowita | Tak | Kwota w najmniejszej jednostce waluty większa niż 0. 1000 = 10,00 USD. |
currency
|
smyczkowy | NIE | Trzyliterowy kod ISO, taki jak usd lub eur. Pomiń go, a aplikacja użyje waluty, którą już ustawiła. |
description
|
smyczkowy | NIE | Opis opłaty. Zakoduj go w adresie URL. |
customer
|
smyczkowy | NIE | Istniejący identyfikator klienta Stripe ( cus_…). customer_id również działa. Po ustawieniu, email i imię i name są ignorowane. |
email
|
smyczkowy | NIE | Adres e-mail klienta. Tworzy nowego klienta. |
name
|
smyczkowy | NIE | Nazwa klienta. Zakoduj ją w formacie URL. Tworzy nowego klienta. |
metadata
|
smyczkowy | NIE | Obiekt JSON zakodowany w adresie URL zawierający pary klucz-wartość, dodany do płatności. Obowiązują limity metadanych Stripe. |
callback
|
smyczkowy | NIE | Adres URL, który zostanie otwarty po zakończeniu sprzedaży. |
autoprocess
|
wartość logiczna | NIE | true pomija klawiaturę i rozpoczyna ładowanie od razu. Wartość domyślna to false. |
auto_return
|
wartość logiczna | NIE | true otwiera wywołanie zwrotne, gdy tylko wynik jest znany. Domyślna wartość false: wywołanie zwrotne czeka, aż sprzedawca zamknie ekran wyników. |
payment://new?amount=2500¤cy=eur&description=Coffee%20and%20pastry payment://new?amount=3500&autoprocess=true&auto_return=true&callback=myapp://payment-complete Link z brakującą kwotą, kwotą zerową lub kwotą niebędącą amount liczbową jest ignorowany.
Utwórz fakturę ze swojego katalogu: payment://cart
Wypełnia koszyk cenami z katalogu produktów Stripe. Następnie sprzedawca nalicza opłatę jak zwykle, a sprzedaż zostaje zapisana w Stripe jako opłacona faktura z tymi pozycjami. Nie wysyła faktury e-mailem do klienta.
| Nazwa | Typ | Wymagany | Opis |
|---|---|---|---|
prices
|
smyczkowy | Tak | Pary price_id:quantity rozdzielone przecinkami, takie jak price_abc:2,price_xyz:1 line_items również działają. |
coupon
|
smyczkowy | NIE | Identyfikator kuponu Stripe do zastosowania w koszyku. |
customer
|
smyczkowy | NIE | Istniejący identyfikator klienta Stripe. customer_id również działa. |
email
|
smyczkowy | NIE | Adres e-mail klienta. Tworzy nowego klienta. |
name
|
smyczkowy | NIE | Nazwa klienta. Zakoduj ją w adresie URL. |
metadata
|
smyczkowy | NIE | Obiekt JSON zakodowany w formacie URL zawierający pary klucz-wartość. |
callback
|
smyczkowy | NIE | Adres URL, który zostanie otwarty po zakończeniu sprzedaży. |
autoprocess
|
wartość logiczna | NIE | true rozpoczyna naliczanie opłaty po załadowaniu każdej ceny (i kuponu). |
auto_return
|
wartość logiczna | NIE | Tak samo jak powyżej. Domyślnie false. |
payment://cart?prices=price_coffee:2,price_muffin:1&email=customer@example.com Nie wysyłaj amount z prices. Suma pochodzi z cen, a link z nimi jest ignorowany. Ceny ukryte za pomocą payment_hidden nadal tutaj działają.
Zapłać istniejącą fakturę: payment://invoice
Pobiera osobiście płatność za otwartą fakturę Stripe. Kwota, waluta, klient i podatek pochodzą z faktury. W przypadku pomyślnego pobrania, aplikacja oznacza fakturę jako opłaconą. Działa na iPhone'ach i Androidzie.
| Nazwa | Typ | Wymagany | Opis |
|---|---|---|---|
id
|
smyczkowy | Tak | Identyfikator faktury Stripe. Musi zaczynać się od in_. Wyślij otwartą fakturę. Na iPhonie najpierw finalizowany jest projekt. Na Androidzie projekt jest odrzucany z error=invoice_state_changed. |
metadata
|
smyczkowy | NIE | Obiekt JSON zakodowany w formacie URL, dodany do PaymentIntent. |
callback
|
smyczkowy | NIE | Adres URL do otwarcia po zakończeniu sprzedaży. W przypadku powodzenia pobierane są invoice_id i payment_intent_id. |
autoprocess
|
wartość logiczna | NIE | true rozpoczyna naliczanie opłat po zatwierdzeniu faktury, ale tylko wtedy, gdy czytnik kart jest podłączony. |
auto_return
|
wartość logiczna | NIE | Tak samo jak powyżej. Domyślnie false. |
payment://invoice?id=in_1ABC123xyz&autoprocess=true&callback=myapp://invoice-paid Faktura ustala sprzedaż, więc każda amount, currency, customer, customer_id, email, name, description, coupon, prices lub line_items są odrzucane z powodu error=invoice_invalid_param. Faktury opłacone, nieważne, nieściągalne, o wartości 0 USD, powiązane z subskrypcją lub ustawione na domyślną metodę płatności również są odrzucane, z własnym błędem invoice_….
Odwołanie zwrotne
Aplikacja dodaje je do adresu URL wywołania zwrotnego:
| Nazwa | Typ | Wysłano | Opis |
|---|---|---|---|
status
|
smyczkowy | Zawsze | success, error lub cancelled. |
charge_id
|
smyczkowy | O sukcesie | Identyfikator płatności. Na iPhonie to opłata Stripe ( ch_…). Na Androidzie to PaymentIntent ( pi_…). |
stripe_charge_id
|
smyczkowy | Tylko Android | Opłata Stripe ( ch_…). |
payment_intent_id
|
smyczkowy | O sukcesie | PaymentIntent. iPhone wysyła go tylko do payment://invoice. Android wysyła go przy każdej płatności kartą. |
invoice_id
|
smyczkowy | Linki do faktur | Zapłacona faktura, do payment://invoice. |
amount
|
liczba całkowita | O sukcesie | Kwota naliczona w najmniejszej jednostce. |
currency
|
smyczkowy | O sukcesie | Kod ISO małymi literami. |
error
|
smyczkowy | W przypadku błędu | Krótki kod, taki jak charge_in_progress lub invoice_already_paid, albo czytelna wiadomość w przypadku odrzucenia karty. |
myapp://payment-complete?status=success&charge_id=ch_3Qx…&success=true&amount=3500¤cy=usd&chargeId=ch_3Qx… Potrzebujesz tego samego identyfikatora na obu platformach? Najpierw odczytaj stripe_charge_id, a następnie wróć do charge_id.
W przypadku starszych integracji aplikacja wysyła również success=true, chargeId, cancelled=true i error[message]. Nowy kod powinien odczytywać status.
Anulowanie natychmiast uruchamia funkcję wywołania zwrotnego. Powodzenie lub błąd płatności czekają na zamknięcie ekranu wyników przez sprzedawcę, chyba że zostanie przesłany auto_return=true. Na iPhonie transakcja gotówkowa nigdy nie uruchamia funkcji wywołania zwrotnego, ponieważ nic nie zostało pobrane.
Kodowanie adresu URL
- Zakoduj każdą wartość zawierającą spacje lub symbole. Spacje stają się
%20,{i}stają się%7B, a%7D,"staje się%22,:staje się%3A. - Jeśli adres URL wywołania zwrotnego ma własny ciąg zapytania, zakoduj całe wywołanie zwrotne tak, aby
&nie rozdzielało łączapayment://. - Przecinki i dwukropki w
pricesmogą pozostać bez zmian.
Metadane {"order_id":"1234","location":"Store A"} stają się:
payment://new?amount=10000&description=Invoice%20%231234&metadata=%7B%22order_id%22%3A%221234%22%2C%22location%22%3A%22Store%20A%22%7D Starsza forma metadata[order_id]=1234 również działa.