Kısa cevap: Uygulamanız veya web siteniz bir payment:// URL'si açar, Payment for Stripe ödemeyi alır ve ardından sonucu içeren geri çağırma URL'nizi açar. SDK yok. Sunucu çalışması yok. Aşağıda belirtilen birkaç fark dışında iPhone ve Android'de aynı şekilde çalışır.
Referansın tamamı paymentforstripe.com/api adresinde bulunmaktadır.
Nasıl çalışır?
- Uygulamanız, parametrelerle birlikte bir
payment://URL'si açar. - Payment for Stripe başlar ve satış kurulur. Satıcı ödemeyi kart okuyucu, Tap to Pay veya kart bilgileriyle alır.
- İşlem tamamlandığında, uygulama, sonucu sorgu parametreleri olarak ekleyerek
callbackURL'nizi açar.
Satıcının oturum açmış olması gerekiyor. Başka bir ödeme işlemi devam ederken bir bağlantı gelirse, uygulama bunu reddeder ve geri bildiriminizde error=charge_in_progress oluşur.
Ödeme oluşturun: payment://new
Belirlediğiniz tutarda tek seferlik ödeme.
| İsim | Tip | Gerekli | Tanım |
|---|---|---|---|
amount
|
tamsayı | Evet | Para biriminin en küçük birimi cinsinden miktar, 0'dan büyük. 1000 = 10,00 ABD doları. |
currency
|
sicim | HAYIR | Üç harfli ISO kodu, örneğin usd veya eur. Bunu belirtmezseniz, uygulama önceden ayarlanmış olan para birimini kullanır. |
description
|
sicim | HAYIR | Ücret açıklaması. URL kodlaması yapın. |
customer
|
sicim | HAYIR | Mevcut Stripe müşteri kimliği ( cus_…). customer_id de çalışır. Ayarlandığında, email ve name dikkate alınmaz. |
email
|
sicim | HAYIR | Müşteri e-postası. Yeni bir müşteri oluşturur. |
name
|
sicim | HAYIR | Müşteri adı. URL kodlaması yapın. Yeni bir müşteri oluşturun. |
metadata
|
sicim | HAYIR | Ödeme işlemine eklenen, URL kodlamalı JSON formatında anahtar-değer çiftlerinden oluşan nesne. Stripe meta veri sınırları geçerlidir. |
callback
|
sicim | HAYIR | Satış tamamlandığında açılacak URL. |
autoprocess
|
mantıksal | HAYIR | true seçeneği tuş takımını atlar ve şarj işlemine hemen başlar. Varsayılan değer false tur. |
auto_return
|
mantıksal | HAYIR | true sonucun öğrenilmesinin hemen ardından geri çağırma işlevini açar. Varsayılan değer false: geri çağırma işlevi, satıcı sonuç ekranını kapatana kadar bekler. |
payment://new?amount=2500¤cy=eur&description=Coffee%20and%20pastry payment://new?amount=3500&autoprocess=true&auto_return=true&callback=myapp://payment-complete Değeri eksik, sıfır veya sayısal amount bağlantılar dikkate alınmaz.
Kataloğunuzdan fatura oluşturun: payment://cart
Stripe ürün kataloğunuzdaki fiyatlarla sepeti doldurur. Ardından satıcı her zamanki gibi ücreti tahsil eder ve satış, bu kalemlerle birlikte Stripe ödenmiş bir fatura olarak kaydedilir. Müşterinize e-posta yoluyla fatura göndermez.
| İsim | Tip | Gerekli | Tanım |
|---|---|---|---|
prices
|
sicim | Evet | Virgülle ayrılmış price_id:quantity çiftleri, örneğin price_abc:2,price_xyz:1 gibi. line_items de çalışır. |
coupon
|
sicim | HAYIR | Sepete uygulanacak Stripe kupon kodu. |
customer
|
sicim | HAYIR | Mevcut Stripe müşteri kimliği. customer_id de geçerlidir. |
email
|
sicim | HAYIR | Müşteri e-postası. Yeni bir müşteri oluşturur. |
name
|
sicim | HAYIR | Müşteri adı. URL kodlaması yapın. |
metadata
|
sicim | HAYIR | Anahtar-değer çiftlerinden oluşan, URL kodlamalı JSON nesnesi. |
callback
|
sicim | HAYIR | Satış tamamlandığında açılacak URL. |
autoprocess
|
mantıksal | HAYIR | true, tüm fiyatlar (ve kuponlar) yüklendikten sonra ücretlendirmeyi başlatır. |
auto_return
|
mantıksal | HAYIR | Yukarıdakiyle aynı. Varsayılan değer false. |
payment://cart?prices=price_coffee:2,price_muffin:1&email=customer@example.com prices birlikte amount göndermeyin. Toplam tutar fiyatlardan hesaplanır ve ikisini birlikte içeren bir bağlantı dikkate alınmaz. payment_hidden ile gizlenmiş fiyatlar burada hala çalışır.
Mevcut bir faturayı ödeyin: payment://invoice
Açık bir Stripe faturası için elden ödeme alır. Tutar, para birimi, müşteri ve vergi bilgileri faturadan alınır. Başarılı olduğunda, uygulama faturayı ödenmiş olarak işaretler. iPhone ve Android'de çalışır.
| İsim | Tip | Gerekli | Tanım |
|---|---|---|---|
id
|
sicim | Evet | Stripe fatura kimliği. in_ ile başlamalıdır. Açık bir fatura gönderin. iPhone'da önce taslak kesinleştirilir. Android'de taslak, error=invoice_state_changed hatasıyla reddedilir. |
metadata
|
sicim | HAYIR | URL kodlu JSON nesnesi, PaymentIntent'e eklendi. |
callback
|
sicim | HAYIR | Satış işlemi tamamlandığında açılacak URL. İşlem başarılı olduğunda invoice_id ve payment_intent_id alır. |
autoprocess
|
mantıksal | HAYIR | true seçeneği, fatura kontrolleri başarılı olduktan sonra ve yalnızca kart okuyucu bağlı olduğunda ücretlendirmeyi başlatır. |
auto_return
|
mantıksal | HAYIR | Yukarıdakiyle aynı. Varsayılan değer false. |
payment://invoice?id=in_1ABC123xyz&autoprocess=true&callback=myapp://invoice-paid Fatura satışı belirler, bu nedenle amount, currency, customer, customer_id, email, name, description, coupon, prices veya line_items herhangi biri için bağlantı hatası oluşur ve error=invoice_invalid_param olarak verilir. Ödenmiş, geçersiz, tahsil edilemez, 0$, aboneliğe bağlı veya varsayılan ödeme yöntemiyle ücretlendirilecek şekilde ayarlanmış faturalar da reddedilir ve her birinin kendine özgü invoice_… hatası vardır.
Geri arama
Uygulama, bunları geri arama URL'nize ekler:
| İsim | Tip | Gönderilmiş | Tanım |
|---|---|---|---|
status
|
sicim | Her zaman | success, error veya cancelled. |
charge_id
|
sicim | Başarı üzerine | Ödemenin kimliği. iPhone'da Stripe charge ( ch_…) olarak, Android'de ise PaymentIntent ( pi_…) olarak gösterilir. |
stripe_charge_id
|
sicim | Yalnızca Android | Stripe ücreti ( ch_…). |
payment_intent_id
|
sicim | Başarı üzerine | PaymentIntent. iPhone bunu yalnızca payment://invoice için gönderir. Android ise her kart ödemesi için gönderir. |
invoice_id
|
sicim | Fatura bağlantıları | Ödenmiş fatura, payment://invoice. |
amount
|
tamsayı | Başarı üzerine | Tahsil edilen tutar, en küçük birim cinsinden. |
currency
|
sicim | Başarı üzerine | Küçük harfli ISO kodu. |
error
|
sicim | Hata durumunda | charge_in_progress veya invoice_already_paid gibi kısa bir kod ya da reddedilen kart için okunabilir bir mesaj. |
myapp://payment-complete?status=success&charge_id=ch_3Qx…&success=true&amount=3500¤cy=usd&chargeId=ch_3Qx… İki platformda da aynı kimliğe mi ihtiyacınız var? Önce stripe_charge_id okuyun, ardından charge_id geri dönün.
Eski entegrasyonlar için uygulama ayrıca success=true, chargeId, cancelled=true ve error[message] de gönderir. Yeni kod ise status okumalıdır.
İptal işlemi hemen geri çağırma işlevini açar. Ödeme işleminin başarılı veya başarısız olması durumunda, auto_return=true seçeneğini belirtmediğiniz sürece, satıcının sonuç ekranını kapatmasını bekler. iPhone'da, nakit satışlarda hiçbir ücret alınmadığı için geri çağırma işlevi asla açılmaz.
URL kodlaması
- Boşluk veya sembol içeren her değeri kodlayın. Boşluklar
%20olur,{ve}işaretleri%7Bve%7Dolur,"işareti%22olur,:işareti%3Aolur. - Geri arama URL'nizin kendi sorgu dizesi varsa, geri arama URL'sinin tamamını kodlayın, böylece
&payment://bağlantınızı bölmesin. -
pricesvirgüller ve iki nokta üst üste işaretleri olduğu gibi kalabilir.
Metadata {"order_id":"1234","location":"Store A"} şu hale gelir:
payment://new?amount=10000&description=Invoice%20%231234&metadata=%7B%22order_id%22%3A%221234%22%2C%22location%22%3A%22Store%20A%22%7D Daha eski metadata[order_id]=1234 biçimi de çalışıyor.