Paiement E-commerce

Intégrations PSP HiPay & Payline/Monext

Rôle
Lead Développeur Full Stack
Durée
~4 mois
Année
2023–25
Schéma du projet
01

Contexte

Dans le cadre de la plateforme e-commerce multi-sites, deux PSP coexistaient : HiPay et Payline/Monext. La page de paiement, commune à l'ensemble des sites, était hébergée sur un site transverse dédié et constituait un point critique de l'architecture. Le routage vers le bon PSP était conditionné par le site et le pays du client, ainsi que d'autres règles complexes. Cette page concentrait l'essentiel du flux financier de la plateforme, en B2C et B2B.

02

Problème

Le code de paiement hérité était particulièrement difficile à appréhender : du PHP procédural, des portions de code obsolètes jamais nettoyées, et une logique dispersée dans plusieurs fichiers sans structure claire. L'investigation de l'existant a révélé des incohérences profondes dans la gestion des statuts de paiement, se traduisant par des commandes orphelines (indiquées comme payées auprès du PSP mais invalides en base de données).

En l'absence de logs structurés, débuguer un incident de paiement en production relevait du travail d'investigation long et incertain. La logique antifraude était également incomplète, avec un déclenchement du 3DS non conditionnel et des paramètres SDK partiellement exploités.

03

Solution

Le travail a débuté par une investigation approfondie de l'ancien code de paiement, croisée avec une lecture attentive des documentations officielles HiPay et Payline, afin de distinguer ce qui était à reprendre, à corriger ou à abandonner. Cette phase a permis d'établir une base solide avant tout développement.

L'intégration a été menée en deux itérations. Dans un premier temps, le code de paiement a été intégré directement dans l'instance Laravel. Dans un second temps, l'ensemble a été extrait et restructuré dans un package dédié (pkg-payment), permettant une meilleure séparation des responsabilités et une réutilisation facilitée sur l'ensemble des sites.

La page de paiement a été reconstruite en Livewire sous la forme d'un formulaire à étapes (panier, identification client, paiement, confirmation). La gestion multi-PSP a été repensée avec une logique d'activation et de désactivation de chaque moyen de paiement par pays, pilotable sans déploiement de code. L'enrichissement antifraude Payline a été complété avec les paramètres étendus du SDK et un déclenchement conditionnel du 3DS selon le profil du client. Des logs détaillés ont été mis en place à chaque étape du flux pour permettre un débugage rapide en cas d'incident. Des tests unitaires et des tests Laravel Dusk ont été intégrés pour couvrir les flux critiques.

04

Résultat

Les commandes orphelines ont disparu grâce à une gestion rigoureuse des codes statut PSP et à une meilleure synchronisation entre les notifications webhook et la base de données. Les logs mis en place ont réduit drastiquement le temps d'investigation lors d'incidents de paiement.

L'activation ou la désactivation d'un moyen de paiement par pays est centralisée dans un fichier de configuration dédié, rendant l'opération rapide et lisible là où elle nécessitait auparavant de parcourir du code dispersé dans plusieurs fichiers. L'expérience client sur le tunnel de paiement a été significativement améliorée grâce aux nouvelles pages Livewire et à un flux plus cohérent. Le code, désormais encapsulé dans pkg-payment, est maintenable, testable et réutilisable sur l'ensemble des sites de la plateforme.

Un projet Laravel en tête ?

Réponse sous 24 h. Missions en régie ou au forfait.

  • Île-de-France Sur site ou hybride
  • Partout en France Présentiel ponctuel à négocier — ex. Lyon, 2 jours par mois
  • International Full remote

Les données saisies servent uniquement à vous répondre. Politique de confidentialité.