Online Payment
The following documentation describes the implementation, via API, of online payment through the PSP set up by Resamania on behalf of the club.
Resamania currently allows the use of two different PSPs:
- Payline
- Stripe
Macro Process and Prerequisites
The process of using promo codes follows these steps:
- 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
Create a payment object
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.
You must specify the validUrl
and 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.
Redirect the user
User redirection depends on the PSP used.
In the case of Payline
Redirection is simple: Retrieve the redirectURL
from the PayableObject
received in response.
In the case of 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]
Handle success or failure
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.
Retrieve the status of a payment
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.
In return, you receive the updated PayableObject
.
Use its state
property to determine its status. Vous pouvez également utiliser sa propriété logs
pour avoir plus d'informations.
State | Description |
---|---|
created | Just created, not yet used |
pending | Waiting for information from the PSP |
requested | Payment pending |
canceled | Payment request canceled |
validated | Payment received |
refused | Payment refused |