Aller au contenu principal

Intégrez Payment for Stripe depuis votre application (schémas d'URL)

En bref : votre application ou site web ouvre une URL payment://, Payment for Stripe encaisse le paiement, puis ouvre votre URL de rappel avec le résultat. Aucun SDK ni aucune configuration serveur ne sont nécessaires. Le fonctionnement est identique sur iPhone et Android, à quelques différences près (voir ci-dessous).

La documentation complète se trouve sur paymentforstripe.com/api.

Comment ça marche

  1. Votre application ouvre une URL payment:// avec des paramètres.
  2. Payment for Stripe ouvre et configure la vente. Le commerçant encaisse le paiement à l'aide d'un terminal de paiement, Tap to Pay ou d'une carte saisie manuellement.
  3. Une fois l'opération terminée, l'application ouvre votre URL callback avec le résultat ajouté en tant que paramètres de requête.

Le commerçant doit être connecté. Si un lien arrive pendant qu'une autre transaction est en cours, l'application le refuse et votre rappel reçoit error=charge_in_progress.

Créer une charge : payment://new

Un paiement unique d'un montant que vous fixez.

Nom Taper Requis Description
amount entier Oui Montant exprimé dans la plus petite unité monétaire, supérieur à 1000 = 10,00 $.
currency chaîne Non Code ISO à trois lettres, comme usd ou eur. Si vous ne le spécifiez pas, l'application utilisera la devise déjà configurée.
description chaîne Non Description des frais. Encodez-la en URL.
customer chaîne Non customer_id identifiant client Stripe existant ( cus_…) fonctionne également. Lorsqu'il est défini, email et name sont ignorés.
email chaîne Non Courriel du client. Crée un nouveau client.
name chaîne Non Nom du client. Encodage URL. Crée un nouveau client.
metadata chaîne Non Objet JSON encodé en URL contenant des paires clé-valeur, ajouté au paiement. Les limites de métadonnées de Stripe s'appliquent.
callback chaîne Non URL à ouvrir une fois la vente terminée.
autoprocess booléen Non true permet de passer outre le clavier et de démarrer la charge immédiatement. Valeur par défaut : false.
auto_return booléen Non Si la true la fonction de rappel s'active dès que le résultat est connu. Par défaut, si la false, la fonction de rappel attend que le commerçant ferme l'écran de résultat.
 payment://new?amount=2500&currency=eur&description=Coffee%20and%20pastry
 payment://new?amount=3500&autoprocess=true&auto_return=true&callback=myapp://payment-complete

Un lien comportant une amount manquante, nulle ou non numérique est ignoré.

Créez une facture à partir de votre catalogue : payment://cart

Le panier est automatiquement rempli avec les prix de votre catalogue produits Stripe. Le commerçant débite ensuite le montant comme d'habitude, et la vente est enregistrée dans Stripe sous forme de facture acquittée reprenant ces articles. Aucune facture n'est envoyée par e-mail à votre client.

Nom Taper Requis Description
prices chaîne Oui Les paires price_id:quantity séparées par des virgules, comme price_abc:2,price_xyz:1, fonctionnent également. line_items fonctionne aussi.
coupon chaîne Non Identifiant du coupon Stripe à appliquer au panier.
customer chaîne Non Identifiant client Stripe existant. customer_id fonctionne également.
email chaîne Non Courriel du client. Crée un nouveau client.
name chaîne Non Nom du client. Encodez-le en URL.
metadata chaîne Non Objet JSON encodé en URL contenant des paires clé-valeur.
callback chaîne Non URL à ouvrir une fois la vente terminée.
autoprocess booléen Non Le true commence une fois que tous les prix (et le coupon) ont été chargés.
auto_return booléen Non Identique à ci-dessus. Valeur par défaut : false.
 payment://cart?prices=price_coffee:2,price_muffin:1&email=customer@example.com

N'envoyez pas amount avec prices. Le total est calculé à partir des prix ; un lien contenant les deux sera ignoré. Les prix masqués avec `payment_hidden` fonctionnent toujours.

Réglez une facture existante : paiement://facture

Permet d'encaisser un paiement en personne pour une facture Stripe en cours. Le montant, la devise, le client et la TVA sont extraits de la facture. Une fois le paiement effectué, l'application marque la facture comme réglée. Compatible avec iPhone et Android.

Nom Taper Requis Description
id chaîne Oui Identifiant de la facture Stripe. Doit commencer par in_. Envoyer une facture ouverte. Sur iPhone, un brouillon est d'abord finalisé. Sur Android, un brouillon est refusé avec error=invoice_state_changed.
metadata chaîne Non Objet JSON encodé en URL, ajouté à l'intention de paiement.
callback chaîne Non URL à ouvrir une fois la vente terminée. Récupère invoice_id et payment_intent_id en cas de succès.
autoprocess booléen Non La facturation true démarre qu'après validation de la facture et uniquement lorsqu'un lecteur de carte est connecté.
auto_return booléen Non Identique à ci-dessus. Valeur par défaut : false.
 payment://invoice?id=in_1ABC123xyz&autoprocess=true&callback=myapp://invoice-paid

La facture enregistre la vente ; par conséquent, toute valeur manquante dans les champs amount », currency, customer, customer_id, email, name », « description », coupon, prices ou line_items entraîne le rejet du lien avec error=invoice_invalid_param. Les factures payées, annulées, irrécouvrables, d’un montant de 0 $, liées à un abonnement ou configurées pour débiter un mode de paiement par défaut sont également rejetées, chacune avec sa propre erreur invoice_….

Le rappel

L'application ajoute ces éléments à votre URL de rappel :

Nom Taper Envoyé Description
status chaîne Toujours success, error ou cancelled.
charge_id chaîne En cas de succès L'identifiant du paiement. Sur iPhone, il s'agit de la transaction Stripe ( ch_…). Sur Android, il s'agit de l'intention de paiement ( pi_…).
stripe_charge_id chaîne Android uniquement La facturation Stripe ( ch_…).
payment_intent_id chaîne En cas de succès L'objet PaymentIntent est envoyé par iPhone uniquement pour payment://invoice), et par Android pour chaque paiement par carte.
invoice_id chaîne Liens vers les factures La facture payée, pour payment://invoice.
amount entier En cas de succès Montant facturé, dans la plus petite unité.
currency chaîne En cas de succès Code ISO en minuscules.
error chaîne En cas d'erreur Un code court comme charge_in_progress ou invoice_already_paid, ou un message lisible pour une carte refusée.
 myapp://payment-complete?status=success&charge_id=ch_3Qx…&success=true&amount=3500&currency=usd&chargeId=ch_3Qx…

Vous avez besoin du même identifiant sur les deux plateformes ? Lisez d’abord stripe_charge_id, puis utilisez charge_id en cas de besoin.

Pour les intégrations plus anciennes, l'application envoie également success=true, chargeId, cancelled=true et error[message]. Le nouveau code devrait lire status.

Une annulation déclenche immédiatement une notification. La confirmation ou l'échec d'une transaction attend que le commerçant ferme l'écran de résultat, sauf si vous spécifiez auto_return=true. Sur iPhone, une vente au comptant ne déclenche jamais de notification, puisqu'aucun débit n'a été effectué.

Encodage URL

  • Encodez chaque valeur contenant des espaces ou des symboles. Les espaces deviennent %20, { et } deviennent %7B et %7D, " devient %22, : devient %3A.
  • Si votre URL de rappel possède sa propre chaîne de requête, encodez l'intégralité du rappel afin que le caractère & ne divise pas votre lien payment://.
  • Les virgules et les deux-points dans prices peuvent rester tels quels.

Les métadonnées {"order_id":"1234","location":"Store A"} deviennent :

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

L'ancienne forme metadata[order_id]=1234 fonctionne également.

Cet article vous a-t-il été utile ?
Utilisateurs qui ont trouvé cela utile : 0 sur 0