Preskoči na glavno vsebino

Zaženite Payment for Stripe iz svoje aplikacije (URL sheme)

Kratek odgovor: Vaša aplikacija ali spletno mesto odpre URL payment://, Payment for Stripe sprejme plačilo in nato odpre vaš URL za povratni klic z rezultatom. Brez SDK-ja. Brez dela s strežnikom. Deluje enako na iPhoneu in Androidu, z nekaj razlikami, ki so navedene spodaj.

Celotna referenca je na voljo na paymentforstripe.com/api.

Kako deluje

  1. Vaša aplikacija odpre URL payment:// s parametri.
  2. Payment for Stripe se odpre in nastavi prodajo. Trgovec sprejme plačilo s čitalnikom, Tap to Pay ali vneseno kartico.
  3. Ko je končano, aplikacija odpre vaš URL callback z rezultatom, dodanim kot parametri poizvedbe.

Trgovec mora biti prijavljen. Če povezava prispe med drugim bremenitvijo, jo aplikacija zavrne in vaš povratni klic prejme napako error=charge_in_progress.

Ustvari bremenitev: payment://new

Enkratno plačilo v znesku, ki ga določite.

Ime Vrsta Zahtevano Opis
amount celo število Da Znesek v najmanjši enoti valute, večji od 0. 1000 = 10,00 $.
currency niz Ne Tričrkovna koda ISO, na primer usd ali eur. Če jo izpustite, bo aplikacija uporabila valuto, na katero je že nastavljena.
description niz Ne Opis bremenitve. Kodirajte ga v URL.
customer niz Ne Obstoječi ID stranke Stripe ( cus_…). customer_id deluje tudi. Ko je nastavljen, email in name prezreta.
email niz Ne E-poštni naslov stranke. Ustvari novo stranko.
name niz Ne Ime stranke. Kodiranje URL-ja. Ustvari novo stranko.
metadata niz Ne JSON-objekt parov ključ-vrednost, kodiran z URL-jem, dodan plačilu. Veljajo omejitve metapodatkov Stripe.
callback niz Ne URL, ki se odpre po koncu prodaje.
autoprocess logična vrednost Ne true preskoči tipkovnico in takoj začne polnjenje. Privzeto false.
auto_return logična vrednost Ne true odpre povratni klic takoj, ko je rezultat znan. Privzeta vrednost false: povratni klic počaka, da trgovec zapre zaslon z rezultati.
 payment://new?amount=2500&currency=eur&description=Coffee%20and%20pastry
 payment://new?amount=3500&autoprocess=true&auto_return=true&callback=myapp://payment-complete

Povezava z manjkajočim, ničelnim ali neštevilčnim amount se prezre.

Ustvarite račun iz kataloga: payment://cart

Napolni košarico s cenami iz vašega kataloga izdelkov Stripe. Trgovec nato zaračuna kot običajno, prodaja pa se v Stripe shrani kot plačan račun s temi postavkami. Stranki ne pošlje računa po e-pošti.

Ime Vrsta Zahtevano Opis
prices niz Da Pari price_id:quantity, ločeni z vejicami, kot je price_abc:2,price_xyz:1. Deluje tudi line_items.
coupon niz Ne ID kupona Stripe, ki ga želite uporabiti v košarici.
customer niz Ne Obstoječi ID stranke Stripe, customer_id, prav tako deluje.
email niz Ne E-poštni naslov stranke. Ustvari novo stranko.
name niz Ne Ime stranke. Kodirajte ga v URL.
metadata niz Ne URL-kodiran objekt JSON parov ključ-vrednost.
callback niz Ne URL, ki se odpre po koncu prodaje.
autoprocess logična vrednost Ne Vrednost true začne bremenitev, ko se naložijo vse cene (in kuponi).
auto_return logična vrednost Ne Enako kot zgoraj. Privzeto false.
 payment://cart?prices=price_coffee:2,price_muffin:1&email=customer@example.com

Ne pošiljajte amount s prices. Skupni znesek izhaja iz cen, povezava z obema pa se prezre. Cene, skrite s payment_hidden, tukaj še vedno delujejo.

Plačilo obstoječega računa: plačilo://račun

Osebno pobere plačilo za odprt račun Stripe. Znesek, valuta, stranka in davek so navedeni na računu. V primeru uspešnega plačila aplikacija označi račun kot plačan. Deluje na iPhoneu in Androidu.

Ime Vrsta Zahtevano Opis
id niz Da ID računa Stripe. Začeti se mora z in_. Pošlji odprt račun. V napravi iPhone se osnutek najprej dokonča. V napravi Android se osnutek zavrne z error=invoice_state_changed.
metadata niz Ne URL-kodiran objekt JSON, dodan nameri plačila (PaymentIntent).
callback niz Ne URL, ki se odpre po zaključku prodaje. V primeru uspeha pridobi invoice_id in payment_intent_id.
autoprocess logična vrednost Ne Vrednost true začne bremenitev po uspešno opravljenem preverjanju računov, le če je priključen čitalnik kartic.
auto_return logična vrednost Ne Enako kot zgoraj. Privzeto false.
 payment://invoice?id=in_1ABC123xyz&autoprocess=true&callback=myapp://invoice-paid

Račun določa prodajo, zato se za katero koli amount, currency, customer, customer_id, email, name, description, coupon, prices ali line_items povezava zavrne z error=invoice_invalid_param. Zavrnjeni so tudi računi, ki so plačani, nični, neizterljivi, v vrednosti 0 $, vezani na naročnino ali nastavljeni za bremenitev privzetega načina plačila, vsak s svojo napako invoice_….

Povratni klic

Aplikacija doda te elemente vašemu URL-ju za povratni klic:

Ime Vrsta Poslano Opis
status niz Vedno success, error ali cancelled.
charge_id niz O uspehu ID plačila. Na iPhonu je to bremenitev Stripe ( ch_…). Na Androidu je to PaymentIntent ( pi_…).
stripe_charge_id niz Samo za Android Naboj Stripe ( ch_…).
payment_intent_id niz O uspehu Namen plačila. iPhone ga pošlje samo za payment://invoice. Android ga pošlje za vsako plačilo s kartico.
invoice_id niz Povezave do računov Plačani račun, za payment://invoice.
amount celo število O uspehu Zaračunani znesek, v najmanjši enoti.
currency niz O uspehu Mala tiskana koda ISO.
error niz Ob napaki Kratka koda, kot je charge_in_progress ali invoice_already_paid, ali berljivo sporočilo za zavrnjeno kartico.
 myapp://payment-complete?status=success&charge_id=ch_3Qx…&success=true&amount=3500&currency=usd&chargeId=ch_3Qx…

Potrebujete enak ID na obeh platformah? Najprej preberite stripe_charge_id, nato pa se vrnite na charge_id.

Pri starejših integracijah aplikacija pošlje tudi success=true, chargeId, cancelled=true in error[message]. Nova koda bi morala prebrati status.

Preklic takoj odpre povratni klic. Uspešna ali napaka pri bremenitvi počaka, da trgovec zapre zaslon z rezultati, razen če posredujete auto_return=true. Na iPhonu gotovinska prodaja nikoli ne odpre povratnega klica, ker ni bilo nič zaračunano.

Kodiranje URL-jev

  • Kodirajte vsako vrednost, ki vsebuje presledke ali simbole. Presledki postanejo %20, { in } postaneta %7B in %7D, " postane %22, : postane %3A.
  • Če ima vaš URL za povratni klic svoj niz poizvedbe, kodirajte celoten povratni klic, tako da & element ne razdeli vaše povezave payment:// «.
  • Vejice in dvopičja v prices lahko ostanejo takšne, kot so.

Metapodatki {"order_id":"1234","location":"Store A"} postanejo:

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

Starejši obrazec metadata[order_id]=1234 deluje tudi.

Je bil ta sklop koristen?
0 od 0 meni, da je to koristno