Paiement en ligne
La documentation suivante décrit la mise en place, via API, du paiement en ligne au travers du PSP mis en place par Resamania pour le compte du club.
Resamania permets actuellement d'utiliser deux PSP différents :
- Payline
- Stripe
Macro process et prérequis
Le process d'utilisation des codes promo suit les étapes suivantes:
- Créer une vente (consulter la documentation dédiée)
- Créer un object de paiement
- Rediriger l'usager vers le formulaire de paiement
- Traiter le succès ou l'echec
- Récupérer l'état d'un paiement
Créer un object de paiement
POST {clientToken}/payable_objects
Les payableObjects sont des demandes de paiement. En indiquant pour quels entités (vente) et quel montant vous souhaitez régler via un paiement en ligne, vous recevez en retour une représentation de payableObject vous permettant de rediriger l'usager vers le formulaire de paiement en ligne.
Vous devez préciser les validUrl
et cancelUrl
validUrl
est l'URL vers laquelle l'usager est renvoyé en cas de succès, comme en cas d'erreurcancelUrl
est l'URL vers laquelle l'usager est renvoyé s'il annule la transation
WARNING
Pour savoir si le paiement est accépté ou non, vous devez donc prendre soin de récupérer l'état d'un paiement.
NOTE
Vous pouvez ne réclamer qu'une partie du montant de la vente en paiement en ligne. Si le contact souhaite régler le reste du montant au club par exemple.
Rediriger l'utilisateur
La redirection de l'utilisateur dépend du PSP utilisé.
Dans le cas de Payline
La redirection est simple : Il faut récupérer la redirectURL
du PayableObject
reçu en réponse.
Dans le cas de Stripe
Le cas de Stripe est un peu particulier puisque nous utilisons les elements
que Stripe propose. Un dépôt github de démonstration détaille la manière de l'implémenter : https://github.com/stadline/resamania2-partners-examples/tree/master/stripe/react[Accessible ici]
Traiter le succès ou l'echec
Si vous avez différencié les URLs de succès ou d'echec, il vous suffit simplement de vous y fier pour afficher la bonne page à l'usager.
WARNING: Attention, aucune information n'est renvoyée à ces pages (ni reference, ni identifiants) qui permettraient d'identifier l'usager et sa commande, c'est à vous de les renseigner dans vos validUrl
et cancelUrl
Si vous avez utilisé la même URL pour le succès et l'echec, suivez le point suivant pour récupérer l'état du paiement et afficher la bonne page à votre usager.
Récupérer l'état d'un paiement
Utilisez l'endpoint PUT /{clientToken}/payable_objects/{id}/check
pour récupérer l'état du paiement. Cet endpoint va vérifier si Resamania a déjà connaissance de l'état du paiement. Et le cas échéant aller demander l'information directement au PSP.
En échange, vous récupérez l'object PayableObject
à jour.
Basez vous sur sa propriété state
pour connaître son état. Vous pouvez également utiliser sa propriété logs
pour avoir plus d'informations.
Etat | Description |
---|---|
created | Tout juste créé, pas encore utilisé |
pending | En attente d'information de la part du PSP |
requested | Paiement en attente |
canceled | Demande de paiement annulée |
validated | Paiement reçu |
refused | Paiement refusé |