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
- Je app opent een
payment://URL met parameters. - Payment for Stripe wordt geopend en ingesteld. De verkoper accepteert de betaling met een kaartlezer, Tap to Pay of een ingevoerde kaart.
- Als het klaar is, opent de app je
callbackURL 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¤cy=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¤cy=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%7Ben%7D,"wordt%22,:wordt%3A. - Als uw callback-URL een eigen queryreeks heeft, codeer dan de volledige callback zodat de
&uwpayment://link niet splitst. - De komma's en dubbele punten in
priceskunnen 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.