Payzen et Stripe : Intégration avec Vue et Express

a marqué ce sujet comme résolu.

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

Hello,

Tu peux t’inspirer de Prestashop. Un panier est créé pour que l’utilisateur puisse ajouter ses produits. Après le paiement, valide ou invalide, ça crée une commande ; l’état du paiement est évidemment reporté. C’est une confirmation pour décrémenter le stock, après pour gérer la facturation on peut le réaliser en suivant en ré-itérant la proposition ou en payant par d’autres moyens (si tu le souhaites).

+1 -0

Merci pour ta réponse. :)

J’ai décidé d’appeler le support PayZen pour avoir plus d’informations. Ils m’ont beaucoup aidé.

Alors comment ça se passe :

Je dois demander le Form Token PayZen. Sauf que je peux passer des paramètres lors de la demande, paramètres qui me seront retournés lorsque PayZen va faire un appel à mon API, que le paiement soit accepté ou non.

Donc le gars m’a expliqué que je ne devais pas créer la commande dans la base de données en même temps que je demande le Form Token, mais une fois que PayZen appel mon API. Et comme je peux retrouver toutes les infos, comme le client, le panier, les adresses etc, je peux le faire très facilement.

L’intégration s’est donc passée sans accrocs. J’ai ensuite testé avec Stripe, et c’est exactement la même chose, à la seul différence que les noms des champs ne sont pas les même.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte