Kort svar: Din app eller webbplats öppnar en payment:// -URL, Payment for Stripe tar emot betalningen och öppnar sedan din callback-URL med resultatet. Ingen SDK. Inget serverarbete. Det fungerar på samma sätt på iPhone och Android, med några skillnader som anges nedan.
Den fullständiga referensen finns på paymentforstripe.com/api.
Hur det fungerar
- Din app öppnar en
payment://-URL med parametrar. - Payment for Stripe öppnas och köpet konfigureras. Handlaren tar emot betalningen med en kortläsare, Tap to Pay eller ett maskinskrivet kort.
- När det är klart öppnar appen din
callback-URL med resultatet tillagt som frågeparametrar.
Handlaren måste vara inloggad. Om en länk kommer medan en annan debitering pågår, avvisar appen den och din återuppringning får error=charge_in_progress.
Skapa en debitering: betalning://ny
En engångsbetalning på ett belopp du anger.
| Namn | Typ | Nödvändig | Beskrivning |
|---|---|---|---|
amount
|
heltal | Ja | Belopp i valutans minsta enhet, större än 0. 1000 = 10,00 USD. |
currency
|
sträng | Inga | ISO-kod med tre bokstäver, som usd eller eur. Utelämna den så använder appen den valuta den redan är inställd på. |
description
|
sträng | Inga | Beskrivning av avgift. URL-koda den. |
customer
|
sträng | Inga | Befintligt Stripe kund-ID ( cus_…). customer_id fungerar också. När det är inställt ignoreras email och name. |
email
|
sträng | Inga | Kundens e-postadress. Skapar en ny kund. |
name
|
sträng | Inga | Kundnamn. URL-kodar det. Skapar en ny kund. |
metadata
|
sträng | Inga | URL-kodat JSON-objekt med nyckel-värde-par, tillagt i betalningen. Stripe metadatabegränsningar gäller. |
callback
|
sträng | Inga | URL som ska öppnas när försäljningen är klar. |
autoprocess
|
boolesk | Inga | true hoppar över knappsatsen och startar laddningen direkt. Standardinställningen false. |
auto_return
|
boolesk | Inga | true öppnar återuppringningen så snart resultatet är känt. Standard false: återuppringningen väntar tills handlaren stänger resultatskärmen. |
payment://new?amount=2500¤cy=eur&description=Coffee%20and%20pastry payment://new?amount=3500&autoprocess=true&auto_return=true&callback=myapp://payment-complete En länk med ett saknat, noll eller icke-numeriskt amount ignoreras.
Skapa en faktura från din katalog: payment://cart
Fyller varukorgen med priser från din Stripe-produktkatalog. Handlaren debiterar sedan som vanligt och försäljningen sparas i Stripe som en betald faktura med dessa radartiklar. Den skickar inte en faktura till din kund via e-post.
| Namn | Typ | Nödvändig | Beskrivning |
|---|---|---|---|
prices
|
sträng | Ja | Kommaavgränsade price_id:quantity par, som price_abc:2,price_xyz:1. line_items fungerar också. |
coupon
|
sträng | Inga | Stripe kupong-ID som ska tillämpas på varukorgen. |
customer
|
sträng | Inga | Befintligt Stripe kund-ID. customer_id fungerar också. |
email
|
sträng | Inga | Kundens e-postadress. Skapar en ny kund. |
name
|
sträng | Inga | Kundnamn. URL-koda det. |
metadata
|
sträng | Inga | URL-kodat JSON-objekt av nyckel-värde-par. |
callback
|
sträng | Inga | URL som ska öppnas när försäljningen är klar. |
autoprocess
|
boolesk | Inga | true startar debiteringen när varje pris (och kupongen) har laddats. |
auto_return
|
boolesk | Inga | Samma som ovan. Standardvärde false. |
payment://cart?prices=price_coffee:2,price_muffin:1&email=customer@example.com Skicka inte amount med prices. Totalsumman kommer från priserna, och en länk med båda ignoreras. Priser dolda med payment_hidden fungerar fortfarande här.
Betala en befintlig faktura: payment://invoice
Tar emot en personlig betalning för en öppen Stripe-faktura. Belopp, valuta, kund och moms kommer alla från fakturan. Vid lyckad betalning markerar appen fakturan som betald. Fungerar på iPhone och Android.
| Namn | Typ | Nödvändig | Beskrivning |
|---|---|---|---|
id
|
sträng | Ja | Stripe faktura-ID. Måste börja med in_. Skicka en öppen faktura. På iPhone slutförs ett utkast först. På Android avvisas ett utkast med error=invoice_state_changed. |
metadata
|
sträng | Inga | URL-kodat JSON-objekt, tillagt i PaymentIntent. |
callback
|
sträng | Inga | URL som ska öppnas när försäljningen är klar. Hämtar invoice_id och payment_intent_id om försäljningen lyckas. |
autoprocess
|
boolesk | Inga | true startar debiteringen efter att fakturakontrollerna har godkänts, endast när en kortläsare är ansluten. |
auto_return
|
boolesk | Inga | Samma som ovan. Standardvärde false. |
payment://invoice?id=in_1ABC123xyz&autoprocess=true&callback=myapp://invoice-paid Fakturan anger försäljningen, så alla av följande alternativ: amount, currency, customer, customer_id, email, name, description, coupon, prices eller line_items får länken avvisad med error=invoice_invalid_param. Fakturor som är betalda, ogiltiga, ouppbördsbara, $0, knutna till en prenumeration eller inställda på att debitera en standardbetalningsmetod avvisas också, var och en med sitt eget invoice_… -fel.
Återuppringningen
Appen lägger till dessa i din återuppringnings-URL:
| Namn | Typ | Skickat | Beskrivning |
|---|---|---|---|
status
|
sträng | Alltid | success, error eller cancelled. |
charge_id
|
sträng | På framgång | Betalningens ID. På iPhone är det Stripe-betalningen ( ch_…). På Android är det PaymentIntent ( pi_…). |
stripe_charge_id
|
sträng | Endast Android | Stripe-laddningen ( ch_…). |
payment_intent_id
|
sträng | På framgång | PaymentIntent. iPhone skickar den endast för payment://invoice. Android skickar den för varje kortbetalning. |
invoice_id
|
sträng | Fakturalänkar | Den betalda fakturan, för payment://invoice. |
amount
|
heltal | På framgång | Debiterat belopp, i minsta enhet. |
currency
|
sträng | På framgång | ISO-kod med gemener. |
error
|
sträng | Vid fel | En kort kod som charge_in_progress eller invoice_already_paid, eller ett läsbart meddelande för ett avvisat kort. |
myapp://payment-complete?status=success&charge_id=ch_3Qx…&success=true&amount=3500¤cy=usd&chargeId=ch_3Qx… Behöver du samma ID på båda plattformarna? Läs stripe_charge_id först, återgå sedan till charge_id.
För äldre integrationer skickar appen även success=true, chargeId, cancelled=true och error[message]. Ny kod ska läsa status.
En avbrytning öppnar återuppringningen direkt. Om en debitering lyckas eller är fel väntar det på att handlaren stänger resultatskärmen, såvida du inte skickar auto_return=true. På iPhone öppnar en kontantförsäljning aldrig återuppringningen, eftersom ingenting debiterades.
URL-kodning
- Koda alla värden som innehåller mellanslag eller symboler. Mellanslag blir
%20,{och}blir%7Boch%7D,"blir%22,:blir%3A. - Om din återuppringnings-URL har en egen frågesträng, koda hela återuppringningen så att den
&inte delar dinpayment://länk. - Kommatecknen och kolonen i
priceskan förbli som de är.
Metadata {"order_id":"1234","location":"Store A"} blir:
payment://new?amount=10000&description=Invoice%20%231234&metadata=%7B%22order_id%22%3A%221234%22%2C%22location%22%3A%22Store%20A%22%7D Det äldre formuläret metadata[order_id]=1234 fungerar också.