Jawapan ringkas: Aplikasi atau laman web anda membuka URL payment://, Payment for Stripe akan menerima pembayaran, kemudian membuka URL panggilan balik anda dengan hasilnya. Tiada SDK. Tiada pelayan berfungsi. Ia berfungsi sama pada iPhone dan Android, dengan beberapa perbezaan yang dinyatakan di bawah.
Rujukan penuh boleh didapati di paymentforstripe.com/api.
Cara ia berfungsi
- Apl anda membuka URL
payment://dengan parameter. - Payment for Stripe akan dibuka dan disediakan untuk jualan. Pedagang akan menerima pembayaran dengan pembaca, Tap to Pay atau kad yang ditaip.
- Apabila selesai, aplikasi akan membuka URL
callbackanda dengan hasil yang ditambah sebagai parameter pertanyaan.
Pedagang perlu log masuk. Jika pautan tiba semasa caj lain sedang dijalankan, aplikasi akan menolaknya dan panggilan balik anda akan mendapat error=charge_in_progress.
Cipta caj: pembayaran://baharu
Bayaran sekali sahaja untuk jumlah yang anda tetapkan.
| Nama | Jenis | Diperlukan | Penerangan |
|---|---|---|---|
amount
|
integer | Ya | Amaun dalam unit terkecil mata wang, lebih besar daripada 0. 1000 = $10.00. |
currency
|
tali | Tidak | Kod ISO tiga huruf, seperti usd atau eur. Biarkan ia dan apl akan menggunakan mata wang yang telah ditetapkan. |
description
|
tali | Tidak | Huraian caj. Kodkan URL-nya. |
customer
|
tali | Tidak | ID pelanggan Stripe sedia ada ( cus_…). customer_id juga berfungsi. Apabila ditetapkan, email dan name akan diabaikan. |
email
|
tali | Tidak | E-mel pelanggan. Mencipta pelanggan baharu. |
name
|
tali | Tidak | Nama pelanggan. Kodkan URL-nya. Mencipta pelanggan baharu. |
metadata
|
tali | Tidak | Objek JSON pasangan nilai-kunci yang dikodkan URL, ditambah pada pembayaran. Had metadata Stripe dikenakan. |
callback
|
tali | Tidak | URL untuk dibuka apabila jualan tamat. |
autoprocess
|
boolean | Tidak | true melangkau pad kekunci dan memulakan pengecasan serta-merta. Lalai false. |
auto_return
|
boolean | Tidak | true membuka panggilan balik sebaik sahaja hasilnya diketahui. false lalai: panggilan balik menunggu sehingga pedagang menutup skrin hasil. |
payment://new?amount=2500¤cy=eur&description=Coffee%20and%20pastry payment://new?amount=3500&autoprocess=true&auto_return=true&callback=myapp://payment-complete Pautan dengan amount yang hilang, sifar atau bukan angka diabaikan.
Cipta invois daripada katalog anda: pembayaran://cart
Mengisi troli dengan harga daripada katalog produk Stripe anda. Pedagang kemudiannya mengenakan bayaran seperti biasa dan jualan disimpan dalam Stripe sebagai invois berbayar dengan item baris tersebut. Ia tidak menghantar invois melalui e-mel kepada pelanggan anda.
| Nama | Jenis | Diperlukan | Penerangan |
|---|---|---|---|
prices
|
tali | Ya | Pasangan price_id:quantity yang dipisahkan koma, seperti price_abc:2,price_xyz:1. line_items juga berfungsi. |
coupon
|
tali | Tidak | ID kupon Stripe untuk digunakan pada troli. |
customer
|
tali | Tidak | ID pelanggan Stripe sedia ada. customer_id juga berfungsi. |
email
|
tali | Tidak | E-mel pelanggan. Mencipta pelanggan baharu. |
name
|
tali | Tidak | Nama pelanggan. Kodkan URL-nya. |
metadata
|
tali | Tidak | Objek JSON pasangan kunci-nilai yang dikodkan URL. |
callback
|
tali | Tidak | URL untuk dibuka apabila jualan tamat. |
autoprocess
|
boolean | Tidak | true akan memulakan caj sebaik sahaja setiap harga (dan kupon) dimuatkan. |
auto_return
|
boolean | Tidak | Sama seperti di atas. Lalai false. |
payment://cart?prices=price_coffee:2,price_muffin:1&email=customer@example.com Jangan hantar amount dengan prices. Jumlah tersebut datang daripada harga, dan pautan dengan kedua-duanya diabaikan. Harga yang disembunyikan dengan payment_hidden masih berfungsi di sini.
Bayar invois sedia ada: pembayaran://invois
Mengutip bayaran secara bersemuka untuk invois Stripe terbuka. Amaun, mata wang, pelanggan dan cukai semuanya datang daripada invois. Setelah berjaya, aplikasi menandakan invois telah dibayar. Berfungsi pada iPhone dan Android.
| Nama | Jenis | Diperlukan | Penerangan |
|---|---|---|---|
id
|
tali | Ya | ID invois Stripe. Mesti bermula dengan in_. Hantar invois yang dibuka. Pada iPhone, draf dimuktamadkan terlebih dahulu. Pada Android, draf ditolak dengan error=invoice_state_changed. |
metadata
|
tali | Tidak | Objek JSON yang dikodkan URL, ditambahkan pada PaymentIntent. |
callback
|
tali | Tidak | URL untuk dibuka apabila jualan selesai. Mendapatkan invoice_id dan payment_intent_id apabila berjaya. |
autoprocess
|
boolean | Tidak | true akan memulakan caj selepas semakan invois lulus, hanya apabila pembaca kad disambungkan. |
auto_return
|
boolean | Tidak | Sama seperti di atas. Lalai false. |
payment://invoice?id=in_1ABC123xyz&autoprocess=true&callback=myapp://invoice-paid Invois menetapkan jualan, jadi sebarang amount, currency, customer, customer_id, email, name, description, coupon, prices atau line_items akan ditolak pautannya dengan error=invoice_invalid_param. Invois yang telah dibayar, terbatal, tidak boleh dikutip, $0, terikat dengan langganan atau ditetapkan untuk mengenakan bayaran kaedah pembayaran lalai juga ditolak, setiap satunya dengan ralat invoice_… nya sendiri.
Panggilan balik
Aplikasi ini menambahkan ini pada URL panggilan balik anda:
| Nama | Jenis | Dihantar | Penerangan |
|---|---|---|---|
status
|
tali | Sentiasa | success, error atau cancelled. |
charge_id
|
tali | Mengenai kejayaan | ID pembayaran. Pada iPhone, ia ialah caj Stripe ( ch_…). Pada Android, ia ialah PaymentIntent ( pi_…). |
stripe_charge_id
|
tali | Android sahaja | Cas Stripe ( ch_…). |
payment_intent_id
|
tali | Mengenai kejayaan | PaymentIntent. iPhone menghantarnya untuk payment://invoice sahaja. Android menghantarnya untuk setiap pembayaran kad. |
invoice_id
|
tali | Pautan invois | Invois yang telah dibayar, untuk payment://invoice. |
amount
|
integer | Mengenai kejayaan | Amaun yang dikenakan, dalam unit terkecil. |
currency
|
tali | Mengenai kejayaan | Kod ISO huruf kecil. |
error
|
tali | Pada ralat | Kod pendek seperti charge_in_progress atau invoice_already_paid, atau mesej yang boleh dibaca untuk kad yang ditolak. |
myapp://payment-complete?status=success&charge_id=ch_3Qx…&success=true&amount=3500¤cy=usd&chargeId=ch_3Qx… Perlukan ID yang sama pada kedua-dua platform? Baca stripe_charge_id dahulu, kemudian kembali ke charge_id.
Untuk integrasi lama, aplikasi juga menghantar success=true, chargeId, cancelled=true dan error[message]. Kod baharu sepatutnya membaca status.
Pembatalan akan membuka panggilan balik serta-merta. Kejayaan atau ralat caj menunggu sehingga peniaga menutup skrin keputusan, melainkan anda lulus auto_return=true. Pada iPhone, jualan tunai tidak pernah membuka panggilan balik, kerana tiada apa yang dicaj.
Pengekodan URL
- Kodkan setiap nilai yang mempunyai ruang atau simbol. Ruang menjadi
%20,{dan}menjadi%7Bdan%7D,"menjadi%22,:menjadi%3A. - Jika URL panggil balik anda mempunyai rentetan pertanyaannya sendiri, kodkan keseluruhan panggilan balik supaya
&tidak memisahkan pautanpayment://anda. - Koma dan titik bertindih dalam
pricesboleh kekal seperti sedia ada.
Metadata {"order_id":"1234","location":"Store A"} menjadi:
payment://new?amount=10000&description=Invoice%20%231234&metadata=%7B%22order_id%22%3A%221234%22%2C%22location%22%3A%22Store%20A%22%7D Borang metadata[order_id]=1234 yang lebih lama juga berfungsi.