Кратък отговор: Вашето приложение или уебсайт отваря URL адрес payment://, Payment for Stripe приема плащането, след което отваря URL адреса ви за обратно извикване с резултата. Няма SDK. Няма работа със сървъра. Работи по същия начин на iPhone и Android, с няколко разлики, посочени по-долу.
Пълният справочен файл е достъпен на paymentforstripe.com/api.
Как работи
- Приложението ви отваря URL адрес с параметри
payment://. - Payment for Stripe отваря и настройва продажбата. Търговецът приема плащането с четец, Tap to Pay или въведена карта.
- Когато това е готово, приложението отваря URL адреса ви
callbackс добавения резултат като параметри на заявката.
Търговецът трябва да е влязъл в профила си. Ако линк пристигне, докато се извършва друго плащане, приложението го отхвърля и обратното ви извикване получава error=charge_in_progress.
Създаване на такса: плащане://ново
Еднократно плащане за определена от вас сума.
| Име | Тип | Задължително | Описание |
|---|---|---|---|
amount
|
цяло число | Да | Сума в най-малката единица на валутата, по-голяма от 0. 1000 = $10,00. |
currency
|
низ | Не | Трибуквен ISO код, като usd или eur. Ако го пропуснете, приложението ще използва валутата, която вече е зададено. |
description
|
низ | Не | Описание на таксата. Кодирайте го чрез URL. |
customer
|
низ | Не | Съществуващият идентификатор на клиент Stripe ( cus_…). customer_id също работи. Когато е зададен, email и name се игнорират. |
email
|
низ | Не | Имейл на клиент. Създава нов клиент. |
name
|
низ | Не | Име на клиента. URL кодирането му. Създава нов клиент. |
metadata
|
низ | Не | URL-кодиран JSON обект от двойки ключ-стойност, добавен към плащането. Прилагат се ограничения за метаданните на Stripe. |
callback
|
низ | Не | URL адрес, който да се отвори, когато продажбата приключи. |
autoprocess
|
булево | Не | true пропуска клавиатурата и започва зареждането веднага. По подразбиране false. |
auto_return
|
булево | Не | true отваря обратното извикване веднага щом резултатът стане известен. По подразбиране false: обратното извикване изчаква, докато търговецът затвори екрана с резултатите. |
payment://new?amount=2500¤cy=eur&description=Coffee%20and%20pastry payment://new?amount=3500&autoprocess=true&auto_return=true&callback=myapp://payment-complete Връзка с липсваща, нулева или нечислова amount се игнорира.
Създайте фактура от вашия каталог: плащане://кошница
Запълва количката с цени от вашия продуктов каталог Stripe. След това търговецът таксува както обикновено и продажбата се запазва в Stripe като платена фактура с тези артикули. Не изпраща фактура по имейл на вашия клиент.
| Име | Тип | Задължително | Описание |
|---|---|---|---|
prices
|
низ | Да | Двойките price_id:quantity, разделени със запетаи, като price_abc:2,price_xyz:1. line_items също работят. |
coupon
|
низ | Не | Идентификационен номер на купон Stripe, който да се приложи към количката. |
customer
|
низ | Не | Съществуващият идентификатор на клиент Stripe. customer_id също работи. |
email
|
низ | Не | Имейл на клиент. Създава нов клиент. |
name
|
низ | Не | Име на клиента. Кодирайте го чрез URL. |
metadata
|
низ | Не | URL-кодиран JSON обект от двойки ключ-стойност. |
callback
|
низ | Не | URL адрес, който да се отвори, когато продажбата приключи. |
autoprocess
|
булево | Не | true стартира таксуването, след като всяка цена (и купон) се заредят. |
auto_return
|
булево | Не | Същото като по-горе. По подразбиране е false. |
payment://cart?prices=price_coffee:2,price_muffin:1&email=customer@example.com Не изпращайте amount с prices. Общата сума се получава от цените, а връзката и с двете се игнорира. Цените, скрити с payment_hidden, все още работят тук.
Плащане на съществуваща фактура: плащане://фактура
Събира лично плащане за отворена фактура Stripe. Сумата, валутата, клиентът и данъкът са от фактурата. При успех приложението маркира фактурата като платена. Работи на iPhone и Android.
| Име | Тип | Задължително | Описание |
|---|---|---|---|
id
|
низ | Да | Идентификационен номер на фактура Stripe. Трябва да започва с in_. Изпращане на отворена фактура. На iPhone черновата първо се финализира. На Android черновата се отхвърля с error=invoice_state_changed. |
metadata
|
низ | Не | JSON обект, кодиран с URL адрес, добавен към PaymentIntent. |
callback
|
низ | Не | URL адрес, който да се отвори след приключване на продажбата. Получава invoice_id и payment_intent_id при успех. |
autoprocess
|
булево | Не | true стартира таксуването след преминаване на проверката на фактурите, само когато е свързан четец на карти. |
auto_return
|
булево | Не | Същото като по-горе. По подразбиране е false. |
payment://invoice?id=in_1ABC123xyz&autoprocess=true&callback=myapp://invoice-paid Фактурата определя продажбата, така че за всеки от amount, currency, customer, customer_id, email, name, description, coupon, prices или line_items връзката се отхвърля с error=invoice_invalid_param. Фактури, които са платени, невалидни, несъбираеми, $0, обвързани с абонамент или настроени да таксуват метод на плащане по подразбиране, също се отхвърлят, всяка със собствена грешка invoice_….
Обратното повикване
Приложението добавя тези данни към URL адреса ви за обратно извикване:
| Име | Тип | Изпратено | Описание |
|---|---|---|---|
status
|
низ | Винаги | success, error или cancelled. |
charge_id
|
низ | При успех | Идентификаторът на плащането. На iPhone това е таксата Stripe ( ch_…). На Android това е PaymentIntent ( pi_…). |
stripe_charge_id
|
низ | Само за Android | Зарядът Stripe ( ch_…). |
payment_intent_id
|
низ | При успех | Намерението за плащане (PaymentIntent). iPhone го изпраща само за payment://invoice. Android го изпраща за всяко плащане с карта. |
invoice_id
|
низ | Връзки към фактури | Платената фактура, за payment://invoice. |
amount
|
цяло число | При успех | Начислена сума, в най-малката единица. |
currency
|
низ | При успех | Малък ISO код. |
error
|
низ | При грешка | Кратък код като charge_in_progress или invoice_already_paid, или четливо съобщение за отхвърлена карта. |
myapp://payment-complete?status=success&charge_id=ch_3Qx…&success=true&amount=3500¤cy=usd&chargeId=ch_3Qx… Нуждаете се от един и същ идентификатор и на двете платформи? Първо прочетете stripe_charge_id, след което се върнете към charge_id.
За по-стари интеграции, приложението изпраща също success=true, chargeId, cancelled=true и error[message]. Новият код трябва да чете status.
Отмяната отваря обратното извикване веднага. Успешно или грешно плащане изчаква търговецът да затвори екрана с резултатите, освен ако не подадете auto_return=true. На iPhone продажбата в брой никога не отваря обратното извикване, тъй като нищо не е било таксувано.
Кодиране на URL адреси
- Кодирайте всяка стойност, която съдържа интервали или символи. Интервалите стават
%20,{и}стават%7Bи%7D,"става%22,:става%3A. - Ако вашият URL адрес за обратно извикване има собствен низ за заявка, кодирайте цялото обратно извикване, така че
&да не разделя връзката виpayment://. - Запетаите и двоеточията в
pricesмогат да останат такива, каквито са.
Метаданните {"order_id":"1234","location":"Store A"} стават:
payment://new?amount=10000&description=Invoice%20%231234&metadata=%7B%22order_id%22%3A%221234%22%2C%22location%22%3A%22Store%20A%22%7D По-старият формуляр metadata[order_id]=1234 също работи.