Bonsoir !
J’essaye d’intégrer correctement Payzen et Stripe à un site. Ce que j’ai fait fonctionne très bien, mais je ne suis pas certain d’adopter la bonne stratégie.
Aujourd’hui, voici comment je gère les achats :
- Le visiteur est sur la page panier
- Il valider le panier, un formulaire avec nom/prénom/adresse s’affiche
- Il entre les informations puis clique sur "Procéder au paiement"
- Le front fait un appel au back pour récupérer le FormToken (requis par Payzen, et quasi la même chose sur Stripe)
- Le back fait alors un appel à Payzen (ou Stripe) pour récupérer ce token
- Avant de renvoyer le token au front, je créer dans la base de données la commande, avec un status "En attente"
- Le back renvois le token au front
- Le formulaire de paiement s’affiche
- Le visiteur entre ses infos de paiement et valide
- Le front affiche un message de succès (en fonction du retour de Payzen ou Stripe)
- Le back attend l’appel de Payzen (ou Stripe) pour modifier le status de la commande en "Payée" ou "Echouée".
Ca marche plutôt bien, mais je me demande si c’est la bonne façon de faire.
Là, j’ai deux soucis :
- Je créer une commande en attente dans ma base à chaque fois que le formulaire s’affiche. Je risque d’avoir plein d’entrées pour rien (si panier abandonné)
- Avec cette méthode, je ne peux pas afficher le formulaire de paiement en même temps que le formulaire nom/prénom/adresse, car j’ai besoin d’avoir ces infos pour créer la commande, et la commande est créée au moment de l’affichage du formulaire (et donc à un moment où le client n’a pas encore entré ces informations).
J’ai alors pensé à faire autrement. Un peu la même chose que plus haut, sauf que :
- Je ne créer pas la commande à la récupération du FormToken
- Je fait un évenement où, lorsque le client clique sur "Payer" après avoir entré toutes les infos, le front fait un appel au back pour créer la commande (et le front passe alors au back l’orderId - que je pourrais mettre dans un token JWT avec expiration pour plus de sécurité)
- Le back créer la commande avec le status "En attente"
- Le front fait en même temps un appel à Payzen (ou Stripe) pour valider le paiement
- Après, comme avant, le back attend la réponse de Payzen (ou Stripe) pour changer le status de la commande.
Quelle est la meilleur façon de faire ?
Merci !
+0
-0