Salt la conținutul principal

Lansează Payment for Stripe din aplicația ta (scheme URL)

Răspuns scurt: Aplicația sau site-ul web deschide o adresă URL payment://, Payment for Stripe preia plata, apoi deschide adresa URL de apel invers cu rezultatul. Fără SDK. Nicio funcționare pe server. Funcționează la fel pe iPhone și Android, cu câteva diferențe menționate mai jos.

Referința completă se găsește la paymentforstripe.com/api.

Cum funcționează

  1. Aplicația ta deschide o adresă URL payment:// cu parametri.
  2. Payment for Stripe se deschide și configurează vânzarea. Comerciantul preia plata cu un cititor, Tap to Pay sau cu un card introdus la mașină.
  3. Când este gata, aplicația deschide adresa URL callback, rezultatul fiind adăugat ca parametri de interogare.

Comerciantul trebuie să fie conectat. Dacă un link sosește în timp ce o altă plată este în curs, aplicația îl refuză și apelul dvs. de retur primește error=charge_in_progress.

Creați o taxă: plată://nou

O plată unică pentru o sumă stabilită de dumneavoastră.

Nume Tip Necesar Descriere
amount întreg Da Sumă în cea mai mică unitate a monedei, mai mare decât 0. 1000 = 10,00 USD.
currency şir Nu Cod ISO din trei litere, cum ar usd sau eur. Dacă îl omiteți, aplicația va folosi moneda pe care este deja setată.
description şir Nu Descrierea taxei. Codificați-o prin URL.
customer şir Nu ID-ul clientului Stripe existent ( cus_…). customer_id funcționează și el. Când este setat, email și name sunt ignorate.
email şir Nu Adresă de e-mail a clientului. Creează un client nou.
name şir Nu Numele clientului. Codificare URL. Creează un client nou.
metadata şir Nu Obiect JSON codificat URL cu perechi cheie-valoare, adăugat la plată. Se aplică limitele de metadate Stripe.
callback şir Nu URL de deschis la finalizarea vânzării.
autoprocess boolean Nu true ignoră tastatura și începe încărcarea imediat. Implicit false.
auto_return boolean Nu true deschide apelul invers imediat ce rezultatul este cunoscut. false implicit: apelul invers așteaptă până când comerciantul închide ecranul cu rezultate.
 payment://new?amount=2500&currency=eur&description=Coffee%20and%20pastry
 payment://new?amount=3500&autoprocess=true&auto_return=true&callback=myapp://payment-complete

O legătură cu o amount lipsă, zero sau non-numerică este ignorată.

Creați o factură din catalogul dvs.: payment://cart

Completează coșul cu prețuri din catalogul tău de produse Stripe. Comerciantul percepe apoi taxele ca de obicei, iar vânzarea este salvată în Stripe ca factură plătită cu articolele respective. Nu trimite o factură prin e-mail clientului tău.

Nume Tip Necesar Descriere
prices şir Da Perechi separate prin virgulă price_id:quantity, cum ar fi price_abc:2,price_xyz:1. line_items funcționează și el.
coupon şir Nu ID-ul cuponului Stripe pentru aplicare în coș.
customer şir Nu ID-ul clientului Stripe existent, customer_id, funcționează și el.
email şir Nu Adresă de e-mail a clientului. Creează un client nou.
name şir Nu Numele clientului. Codificați-l în URL.
metadata şir Nu Obiect JSON codificat URL cu perechi cheie-valoare.
callback şir Nu URL de deschis la finalizarea vânzării.
autoprocess boolean Nu true începe taxarea odată ce fiecare preț (și cupon) s-a încărcat.
auto_return boolean Nu La fel ca mai sus. Implicit, false.
 payment://cart?prices=price_coffee:2,price_muffin:1&email=customer@example.com

Nu trimiteți amount cu prices. Totalul provine din prețuri, iar un link cu ambele este ignorat. Prețurile ascunse cu payment_hidden funcționează în continuare aici.

Plata unei facturi existente: payment://invoice

Colectează o plată în persoană pentru o factură Stripe deschisă. Suma, moneda, clientul și taxa provin toate din factură. În caz de succes, aplicația marchează factura ca fiind plătită. Funcționează pe iPhone și Android.

Nume Tip Necesar Descriere
id şir Da ID-ul facturii Stripe. Trebuie să înceapă cu in_. Trimiteți o factură deschisă. Pe iPhone, o schiță este finalizată mai întâi. Pe Android, o schiță este refuzată cu error=invoice_state_changed.
metadata şir Nu Obiect JSON codificat URL, adăugat la PaymentIntent.
callback şir Nu URL de deschis la finalizarea vânzării. Obține invoice_id și payment_intent_id în caz de succes.
autoprocess boolean Nu true începe taxarea după ce verificările facturilor sunt trecute, numai atunci când este conectat un cititor de carduri.
auto_return boolean Nu La fel ca mai sus. Implicit, false.
 payment://invoice?id=in_1ABC123xyz&autoprocess=true&callback=myapp://invoice-paid

Factura setează vânzarea, așadar oricare dintre amount, currency, customer, customer_id, email, name, description, coupon, prices sau line_items primește linkul refuzat cu error=invoice_invalid_param. Facturile plătite, nule, neîncasabile, cu valoarea de 0 USD, legate de un abonament sau setate să debiteze o metodă de plată implicită sunt, de asemenea, refuzate, fiecare cu propria eroare invoice_….

Apelul invers

Aplicația adaugă următoarele la adresa URL de apel invers:

Nume Tip Trimis Descriere
status şir Întotdeauna success, error sau cancelled.
charge_id şir La succes ID-ul plății. Pe iPhone este ID-ul debitării Stripe ( ch_…). Pe Android este ID-ul PaymentIntent ( pi_…).
stripe_charge_id şir Numai pentru Android Taxa Stripe ( ch_…).
payment_intent_id şir La succes Intenția de plată. iPhone o trimite doar pentru payment://invoice. Android o trimite pentru fiecare plată cu cardul.
invoice_id şir Linkuri către facturi Factura plătită, pentru payment://invoice.
amount întreg La succes Suma percepută, în cea mai mică unitate.
currency şir La succes Cod ISO cu litere mici.
error şir În caz de eroare Un cod scurt precum charge_in_progress sau invoice_already_paid sau un mesaj lizibil pentru un card respins.
 myapp://payment-complete?status=success&charge_id=ch_3Qx…&success=true&amount=3500&currency=usd&chargeId=ch_3Qx…

Aveți nevoie de același ID pe ambele platforme? Citiți mai întâi stripe_charge_id, apoi reveniți la charge_id.

Pentru integrările mai vechi, aplicația trimite și success=true, chargeId, cancelled=true și error[message]. Noul cod ar trebui să citească status.

O anulare deschide imediat apelul invers. Succesul sau eroarea unei plăți așteaptă ca comerciantul să închidă ecranul cu rezultate, cu excepția cazului în care transmiteți auto_return=true. Pe iPhone, o vânzare cu numerar nu deschide niciodată apelul invers, deoarece nu s-a perceput nimic.

Codificare URL

  • Codificați fiecare valoare care conține spații sau simboluri. Spațiile devin %20, { și } devin %7B, iar %7D, " devine %22, : devine %3A.
  • Dacă adresa URL de apel invers are propriul șir de interogare, codificați întreaga apel invers astfel încât să fie & să nu divizeze linkul payment://.
  • Virgulele și două punctele din prices pot rămâne neschimbate.

Metadatele {"order_id":"1234","location":"Store A"} devin:

 payment://new?amount=10000&description=Invoice%20%231234&metadata=%7B%22order_id%22%3A%221234%22%2C%22location%22%3A%22Store%20A%22%7D

Și formularul mai vechi metadata[order_id]=1234 funcționează.

A fost util acest articol?
0 din 0 au considerat acest conținut util