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
validUrlest l'URL vers laquelle l'usager est renvoyé en cas de succès, comme en cas d'erreurcancelUrlest 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 l'utilisateur a annulé sa transaction, il est renvoyé vers votre cancelUrl S'il a validé ou échoué sa transaction, il est redirigé vers votre validUrl
C'est alors à vous de récupérer l'état du paiement (cf. ci-dessous).
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é |