Skip to main content

Pokrenite Payment for Stripe iz svoje aplikacije (URL sheme)

Kratak odgovor: Vaša aplikacija ili web stranica otvara URL payment://, Payment for Stripe prima plaćanje, a zatim otvara vaš URL povratnog poziva s rezultatom. Nema SDK-a. Nema rada poslužitelja. Radi isto na iPhoneu i Androidu, uz nekoliko razlika navedenih u nastavku.

Cijeli popis referenci nalazi se na paymentforstripe.com/api.

Kako funkcionira

  1. Vaša aplikacija otvara URL payment:// s parametrima.
  2. Payment for Stripe otvara i postavlja prodaju. Trgovac prima plaćanje čitačem, Tap to Pay ili unesenom karticom.
  3. Kada je gotovo, aplikacija otvara vaš URL callback s rezultatom dodanim kao parametrima upita.

Trgovac mora biti prijavljen. Ako veza stigne dok je u tijeku druga naplata, aplikacija je odbija, a vaš povratni poziv dobiva error=charge_in_progress.

Kreiraj naplatu: plaćanje://novo

Jednokratno plaćanje iznosa koji odredite.

Ime Tip Potreban Opis
amount cijeli broj Da Iznos u najmanjoj jedinici valute, veći od 0. 1000 = 10,00 USD.
currency niz Ne Troslovni ISO kod, poput usd ili eur. Ako ga izostavite, aplikacija će koristiti valutu na koju je već postavljena.
description niz Ne Opis naplate. Kodirajte ga URL-om.
customer niz Ne Postojeći Stripe ID korisnika ( cus_…). customer_id također funkcionira. Kada je postavljen, email i name se zanemaruju.
email niz Ne E-pošta kupca. Stvara novog kupca.
name niz Ne Ime kupca. Kodirajte ga URL-om. Stvara novog kupca.
metadata niz Ne URL-kodirani JSON objekt parova ključ-vrijednost, dodan plaćanju. Primjenjuju se ograničenja metapodataka Stripe-a.
callback niz Ne URL koji će se otvoriti nakon završetka prodaje.
autoprocess logička vrijednost Ne true preskače tipkovnicu i odmah pokreće punjenje. Zadano false.
auto_return logička vrijednost Ne true otvara povratni poziv čim rezultat postane poznat. Zadana vrijednost false: povratni poziv čeka dok trgovac ne zatvori zaslon s rezultatima.
 payment://new?amount=2500&currency=eur&description=Coffee%20and%20pastry
 payment://new?amount=3500&autoprocess=true&auto_return=true&callback=myapp://payment-complete

Veza s nedostajućim, nultim ili nenumeričkim amount se zanemaruje.

Izradite račun iz svog kataloga: plaćanje://košarica

Puni košaricu cijenama iz vašeg Stripe kataloga proizvoda. Trgovac zatim naplaćuje kao i obično, a prodaja se sprema u Stripe kao plaćeni račun s tim stavkama. Ne šalje račun e-poštom vašem kupcu.

Ime Tip Potreban Opis
prices niz Da Parovi price_id:quantity odvojeni zarezima, kao što je price_abc:2,price_xyz:1. line_items također funkcionira.
coupon niz Ne ID kupona Stripe koji se primjenjuje na košaricu.
customer niz Ne Postojeći Stripe ID korisnika. customer_id također funkcionira.
email niz Ne E-pošta kupca. Stvara novog kupca.
name niz Ne Ime kupca. Kodirajte ga URL-om.
metadata niz Ne URL-kodirani JSON objekt parova ključ-vrijednost.
callback niz Ne URL koji će se otvoriti nakon završetka prodaje.
autoprocess logička vrijednost Ne true pokreće naplatu nakon što se učita svaka cijena (i kupon).
auto_return logička vrijednost Ne Isto kao gore. Zadana vrijednost false.
 payment://cart?prices=price_coffee:2,price_muffin:1&email=customer@example.com

Nemojte slati amount s prices. Ukupan iznos dolazi iz cijena, a veza s oboje se zanemaruje. Cijene skrivene s payment_hidden i dalje ovdje rade.

Platite postojeći račun: plaćanje://račun

Naplaćuje osobno za otvoreni Stripe račun. Iznos, valuta, kupac i porez potječu s računa. U slučaju uspjeha, aplikacija označava račun plaćenim. Radi na iPhoneu i Androidu.

Ime Tip Potreban Opis
id niz Da ID Stripe fakture. Mora počinjati s in_. Pošalji otvorenu fakturu. Na iPhoneu se prvo finalizira nacrt. Na Androidu se nacrt odbija s error=invoice_state_changed.
metadata niz Ne JSON objekt kodiran URL-om, dodan u PaymentIntent.
callback niz Ne URL koji će se otvoriti nakon završetka prodaje. U slučaju uspjeha dobiva invoice_id i payment_intent_id.
autoprocess logička vrijednost Ne true pokreće naplatu nakon što prođe provjera računa, samo kada je spojen čitač kartica.
auto_return logička vrijednost Ne Isto kao gore. Zadana vrijednost false.
 payment://invoice?id=in_1ABC123xyz&autoprocess=true&callback=myapp://invoice-paid

Faktura postavlja prodaju, tako da bilo koji od sljedećih vrijednosti: amount, currency, customer, customer_id, email, name, description, coupon, prices ili line_items dobiva vezu odbijenu s error=invoice_invalid_param. Fakture koje su plaćene, nevažeće, nenaplative, iznose 0 USD, vezane uz pretplatu ili su postavljene za naplatu zadanog načina plaćanja također se odbijaju, svaka sa svojom vlastitom greškom invoice_….

Povratni poziv

Aplikacija dodaje sljedeće vašem URL-u za povratni poziv:

Ime Tip Poslano Opis
status niz Uvijek success, error ili cancelled.
charge_id niz O uspjehu ID plaćanja. Na iPhoneu je to Stripe naplata ( ch_…). Na Androidu je to PaymentIntent ( pi_…).
stripe_charge_id niz Samo za Android Naboj Stripe ( ch_…).
payment_intent_id niz O uspjehu Namjera plaćanja. iPhone ga šalje samo za payment://invoice. Android ga šalje za svako plaćanje karticom.
invoice_id niz Veze na fakture Plaćeni račun, za payment://invoice.
amount cijeli broj O uspjehu Naplaćeni iznos, u najmanjoj jedinici.
currency niz O uspjehu Malim slovom ISO kod.
error niz U slučaju pogreške Kratki kod poput charge_in_progress ili invoice_already_paid ili čitljiva poruka za odbijenu karticu.
 myapp://payment-complete?status=success&charge_id=ch_3Qx…&success=true&amount=3500&currency=usd&chargeId=ch_3Qx…

Trebate isti ID na obje platforme? Prvo pročitajte stripe_charge_id, a zatim se vratite na charge_id.

Za starije integracije, aplikacija također šalje success=true, chargeId, cancelled=true i error[message]. Novi kod bi trebao čitati status.

Otkazivanje odmah otvara povratni poziv. Uspješna ili pogreška naplate čeka da trgovac zatvori zaslon s rezultatima, osim ako ne proslijedite auto_return=true. Na iPhoneu, prodaja gotovinom nikada ne otvara povratni poziv jer ništa nije naplaćeno.

Kodiranje URL-a

  • Kodirajte svaku vrijednost koja sadrži razmake ili simbole. Razmaci postaju %20, { i } postaju %7B i %7D, " postaje %22, : postaje %3A.
  • Ako vaš URL povratnog poziva ima vlastiti niz upita, kodirajte cijeli povratni poziv tako da " & ne dijeli vašu vezu payment://.
  • Zarezi i dvotočke u prices mogu ostati kakvi jesu.

Metapodaci {"order_id":"1234","location":"Store A"} postaju:

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

Stariji obrazac metadata[order_id]=1234 također funkcionira.

Je li ovaj članak bio koristan?
0 ljudi od 0 je reklo da je ovo korisno