Hoppa till huvudinnehållet

Starta Payment for Stripe från din app (URL-scheman)

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

  1. Din app öppnar en payment:// -URL med parametrar.
  2. Payment for Stripe öppnas och köpet konfigureras. Handlaren tar emot betalningen med en kortläsare, Tap to Pay eller ett maskinskrivet kort.
  3. 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&currency=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&currency=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 %7B och %7D, " blir %22, : blir %3A.
  • Om din återuppringnings-URL har en egen frågesträng, koda hela återuppringningen så att den & inte delar din payment:// länk.
  • Kommatecknen och kolonen i prices kan 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å.

Var denna artikel till hjälp?
0 av 0 tyckte detta var till hjälp