Прескачане към основното съдържание

Стартирайте Payment for Stripe от вашето приложение (URL схеми)

Кратък отговор: Вашето приложение или уебсайт отваря URL адрес payment://, Payment for Stripe приема плащането, след което отваря URL адреса ви за обратно извикване с резултата. Няма SDK. Няма работа със сървъра. Работи по същия начин на iPhone и Android, с няколко разлики, посочени по-долу.

Пълният справочен файл е достъпен на paymentforstripe.com/api.

Как работи

  1. Приложението ви отваря URL адрес с параметри payment://.
  2. Payment for Stripe отваря и настройва продажбата. Търговецът приема плащането с четец, Tap to Pay или въведена карта.
  3. Когато това е готово, приложението отваря 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&currency=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&currency=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 също работи.

Беше ли полезна тази статия?
0 от 0 считат материала за полезен