Overslaan en naar hoofdcontent gaan

Start Payment for Stripe vanuit uw app (URL-schema's)

Kort antwoord: Uw app of website opent een payment:// URL, Payment for Stripe verwerkt de betaling en opent vervolgens uw callback-URL met het resultaat. Geen SDK nodig. Geen serverwerk. Het werkt hetzelfde op iPhone en Android, met een paar verschillen die hieronder worden beschreven.

De volledige referentie is te vinden op paymentforstripe.com/api.

Hoe het werkt

  1. Je app opent een payment:// URL met parameters.
  2. Payment for Stripe wordt geopend en ingesteld. De verkoper accepteert de betaling met een kaartlezer, Tap to Pay of een ingevoerde kaart.
  3. Als het klaar is, opent de app je callback URL met het resultaat als queryparameters.

De verkoper moet ingelogd zijn. Als er een link binnenkomt terwijl er al een andere betaling gaande is, wordt deze door de app geweigerd en krijgt uw callback de foutmelding error=charge_in_progress.

Een betaling aanmaken: payment://new

Een eenmalige betaling voor een bedrag dat u zelf bepaalt.

Naam Type Vereist Beschrijving
amount geheel getal Ja Bedrag in de kleinste eenheid van de valuta, groter dan 1000 = $10,00.
currency snaar Nee Een ISO-code van drie letters, zoals usd of eur. Laat deze weg en de app gebruikt de valuta die al is ingesteld.
description snaar Nee Omschrijving van de kosten. Codeer deze met een URL.
customer snaar Nee Bestaande Stripe klant-ID ( cus_…). customer_id werkt ook. Indien ingesteld, worden email en name genegeerd.
email snaar Nee E-mailadres van de klant. Hiermee wordt een nieuwe klant aangemaakt.
name snaar Nee Klantnaam. URL-coderen. Maakt een nieuwe klant aan.
metadata snaar Nee URL-gecodeerd JSON-object met sleutel-waardeparen, toegevoegd aan de betaling. De metadatalimieten van Stripe zijn van toepassing.
callback snaar Nee URL die wordt geopend wanneer de uitverkoop is afgelopen.
autoprocess booleaans Nee true wordt het toetsenbord overgeslagen en begint het opladen direct. Standaardwaarde: false.
auto_return booleaans Nee Als de true staat, wordt de callback gestart zodra het resultaat bekend is. Standaardwaarde: false: de callback wacht totdat de verkoper het resultaatscherm sluit.
 payment://new?amount=2500&currency=eur&description=Coffee%20and%20pastry
 payment://new?amount=3500&autoprocess=true&auto_return=true&callback=myapp://payment-complete

Een link met een ontbrekende, nul- of niet-numerieke amount wordt genegeerd.

Maak een factuur aan vanuit uw catalogus: payment://cart

Vult het winkelmandje met prijzen uit uw Stripe-productcatalogus. De verkoper brengt vervolgens de kosten in rekening zoals gebruikelijk en de verkoop wordt in Stripe opgeslagen als een betaalde factuur met die artikelregels. Er wordt geen factuur per e-mail naar uw klant verzonden.

Naam Type Vereist Beschrijving
prices snaar Ja Door komma's gescheiden price_id:quantity paren, zoals price_abc:2,price_xyz:1, werken ook line_items.
coupon snaar Nee Gebruik Stripe couponcode om in de winkelwagen toe te passen.
customer snaar Nee Bestaande Stripe klant-ID. customer_id werkt ook.
email snaar Nee E-mailadres van de klant. Hiermee wordt een nieuwe klant aangemaakt.
name snaar Nee Klantnaam. Codeer deze URL-compatibel.
metadata snaar Nee URL-gecodeerd JSON-object met sleutel-waardeparen.
callback snaar Nee URL die wordt geopend wanneer de uitverkoop is afgelopen.
autoprocess booleaans Nee De true start pas nadat alle prijzen (en de kortingsbonnen) zijn geladen.
auto_return booleaans Nee Hetzelfde als hierboven. Standaardwaarde false.
 payment://cart?prices=price_coffee:2,price_muffin:1&email=customer@example.com

Stuur geen amount samen met prices. Het totaalbedrag wordt berekend op basis van de prijzen, en een link met beide wordt genegeerd. Prijzen die verborgen zijn met `payment_hidden` werken hier nog steeds.

Betaal een bestaande factuur: payment://invoice

Hiermee kunt u contant betalen voor een openstaande Stripe factuur. Het bedrag, de valuta, de klant en de btw worden allemaal van de factuur overgenomen. Bij een succesvolle betaling markeert de app de factuur als betaald. Werkt op iPhone en Android.

Naam Type Vereist Beschrijving
id snaar Ja Stripe factuur-ID. Moet beginnen met in_. Verstuur een openstaande factuur. Op iPhone wordt eerst een conceptfactuur definitief gemaakt. Op Android wordt een conceptfactuur afgewezen met error=invoice_state_changed.
metadata snaar Nee URL-gecodeerd JSON-object, toegevoegd aan de PaymentIntent.
callback snaar Nee URL die wordt geopend wanneer de verkoop is afgerond. Ontvangt invoice_id en payment_intent_id bij succes.
autoprocess booleaans Nee De betaling wordt true gestart nadat de factuur is gecontroleerd, en alleen wanneer er een kaartlezer is aangesloten.
auto_return booleaans Nee Hetzelfde als hierboven. Standaardwaarde false.
 payment://invoice?id=in_1ABC123xyz&autoprocess=true&callback=myapp://invoice-paid

De factuur bepaalt de verkoop, dus elke parameter zoals amount, currency, customer, customer_id, email, name, description, coupon, prices of line_items wordt afgewezen met error=invoice_invalid_param. Facturen die betaald, ongeldig, oninbaar, € 0, gekoppeld aan een abonnement of ingesteld om een standaard betaalmethode te gebruiken, worden ook afgewezen, elk met een eigen invoice_… error.

De terugbelactie

De app voegt deze toe aan je callback-URL:

Naam Type Verstuurd Beschrijving
status snaar Altijd success, error of cancelled.
charge_id snaar Over succes De betalings-ID. Op iPhone is dit de Stripe-betaling ( ch_…). Op Android is dit de PaymentIntent ( pi_…).
stripe_charge_id snaar alleen voor Android De Stripe lading ( ch_…).
payment_intent_id snaar Over succes De PaymentIntent. iPhones versturen deze alleen voor payment://invoice. Android-apparaten versturen deze voor elke kaartbetaling.
invoice_id snaar Factuurlinks De betaalde factuur, te vinden op payment://invoice.
amount geheel getal Over succes Het gefactureerde bedrag, in de kleinste eenheid.
currency snaar Over succes ISO-code in kleine letters.
error snaar Bij een fout Een korte code zoals charge_in_progress of invoice_already_paid, of een leesbaar bericht voor een geweigerde kaart.
 myapp://payment-complete?status=success&charge_id=ch_3Qx…&success=true&amount=3500&currency=usd&chargeId=ch_3Qx…

Moet dezelfde ID op beide platforms gebruikt worden? Lees dan eerst stripe_charge_id en gebruik daarna charge_id als alternatief.

Bij oudere integraties stuurt de app ook success=true, chargeId, cancelled=true en error[message]. Nieuwe code moet status weergeven.

Bij een annulering wordt de callback direct geopend. Bij een succesvolle of mislukte betaling wordt gewacht tot de verkoper het resultaatenscherm sluit, tenzij je auto_return=true doorgeeft. Op een iPhone wordt de callback nooit geopend bij een contante verkoop, omdat er niets in rekening is gebracht.

URL-codering

  • Codeer elke waarde die spaties of symbolen bevat. Spaties worden %20, { en } worden %7B en %7D, " wordt %22, : wordt %3A.
  • Als uw callback-URL een eigen queryreeks heeft, codeer dan de volledige callback zodat de & uw payment:// link niet splitst.
  • De komma's en dubbele punten in prices kunnen blijven zoals ze zijn.

Metadata {"order_id":"1234","location":"Store A"} wordt:

 payment://new?amount=10000&description=Invoice%20%231234&metadata=%7B%22order_id%22%3A%221234%22%2C%22location%22%3A%22Store%20A%22%7D

De oudere metadata[order_id]=1234 -vorm werkt ook.

Was dit artikel nuttig?
Aantal gebruikers dat dit nuttig vond: 0 van 0