Intégration de Epay NC sur symfony 4/5 via le client Lyra.
L’intégration du module Epay NC avec le paiement embarqué / Javascript se révèle être compliqué sur le Framework symfony.
C’est pourquoi j’ai décidé de vous faire ce petit tutoriel afin de mettre en place sur votre propre site utilisant Symfony le module de paiement Epay NC.
Grâce au composant JavaScript, vous pouvez intégrer directement sur votre site un formulaire de paiement, et ainsi améliorer votre taux de conversion. Le composant peut également être intégré sous la forme d’un bouton ouvrant une élégante pop-in.
Compatible avec l’ensemble des navigateurs du marché (y compris mobiles), le formulaire de paiement embarqué s’intègre en quelques minutes sur n’importe quel site marchand. Enfin, le formulaire est également personnalisable (par le biais de thèmes prédéfinis ou par CSS), et peut ainsi s’intégrer harmonieusement avec votre site Internet.
Installation du composant Lyra
Une fois votre projet Symfony déployé et prêt à emploi, rendez-vous à la racine de votre projet, ouvrez un terminal et utilisez la commande suivante:
composer require lyracom/rest-php-sdk:4.0.*
Cette commande permettra d’installer les dépendances nécessaires à la mise en place de notre service de paiement.
Une fois les packages installés, rendez-vous dans votre fichier de configuration .env pour rajouter 5 variables d’environnement. A la fin de votre fichier, rajouter ces 5 lignes:
EPAY_USERNAME=
EPAY_ENDPOINT=
EPAY_PASSWORD=
EPAY_SHA256KEY=
EPAY_PUBLIC_KEY=
Ces variables d’environnements vont nous permettre de vous authentifier auprès du service de paiement, et de préciser à l’aide du Endpoint le service utilisé (dans notre cas, epaync)
Nous allons ensuite nous rendre dans le dossier /src et crée un nouveau dossier que vous nommerez: Services
Dans ce dossier, vous allez créer deux fichiers :
EpayInterface.php
EpayService.php
Vous pouvez retrouver le contenu de ces deux fichiers dans le github.
Création du Controller
Rendez-vous ensuite dans votre dossier Controller et dans le Controller dans lequel vous souhaitez implémenter le système de payement. Si vous n’avez encore aucun Controller, utiliser la commande:
php bin/console make:controller
et créer un Controller se nommant EpayServiceController.
Dans ce Controller, on appellera le service EpayService
use App\Services\EpayService;
On va ensuite retourner plusieurs variables dans le front afin de traiter notre payement, la publicKey, le endPoint et la response. (vous avez encore une fois tout le code disponible sur le github.)
Création de la vue
On va ensuite se rendre dans la vue rendue par notre Controller, dans notre cas:
/template/epay_service/index.html.twig
Une fois dans notre vue HTML, on va charger le script permettant d’appeler la libraire javascript de epaync en passant la public key pour s’authentifier. On va par la suite pouvoir construire notre formulaire à base de div et de classe.
Voici un petit résumé de l’utilité de chaque classe:
kr-pan - Numéro de la carte
kr-expiry - Date d’expiration
kr-security - Code de sécurité (cvv)
On rajoute une zone d’erreur à l’aide de la classe kr-form-error.
On plus qu’a gérer la redirection en cas de payement validé dans le script directement et c’est tout bon, vous avez tout réglé et vous êtes prêts à utiliser votre formulaire de payement partout sur votre site.
Documentation Epay.nc : https://epaync.nc/doc/fr-FR/
Github : https://github.com/MadxNC/lyra-symfony