Przejdź do głównej zawartości

Uruchom Payment for Stripe z poziomu swojej aplikacji (schematy URL)

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

  1. Twoja aplikacja otwiera adres URL payment:// z parametrami.
  2. Payment for Stripe zostaje otwarta i skonfigurowana. Sprzedawca pobiera płatność za pomocą czytnika, Tap to Pay lub karty płatniczej.
  3. Po zakończeniu aplikacja otwiera adres URL callback z 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&currency=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&currency=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 łącza payment://.
  • Przecinki i dwukropki w prices mogą 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.

Czy ten artykuł był pomocny?
Liczba użytkowników, którzy uważają ten artykuł za przydatny: 0 z 0