Depuis plus de 35 ans, le parc du Puy du Fou émerveille les visiteurs par ses spectacles aux prouesses technologiques et artistiques légendaires. Il est d’ailleurs classé par plus de 100 000 avis d’internautes N°1 des grands sites culturels et de loisirs français.

Aujourd’hui c’est plus de 2,6 millions de visiteurs par an qui profitent des nombreux services qu’offrent le parc : animations, hôtelleries, restaurations…

Afin d’apporter un même niveau de qualité à ses clients lors de la préparation de leur séjour, le Puy du Fou a engagé depuis 2021 une profonde refonte de ses parcours de réservation. L’enjeu est de taille car le Puy du Fou doit maintenir son taux de satisfaction client exceptionnel de plus de 99%. D’autant que la grande majorité des visiteurs réservent sur internet.

Pour relever ce défi, Lyra a été choisi afin d’accompagner cette transformation au niveau du paiement. Une étape des plus sensibles dans un parcours de réservation.

Uniformisation des parcours et réassurance

Le premier travail a consisté à fusionner les différents sites existants pour n’en faire plus qu’un, à intégrer le paiement au sein du site lui-même et à harmoniser les canaux (site, app mobile, centrale de réservation téléphonique…). L’objectif était d’instaurer la confiance en offrant un parcours plus rapide, plus fluide et surtout en gardant le visiteur dans l’environnement du Puy du Fou tout au long du parcours.

Un challenge réussi grâce à la simplicité d’intégration du paiement embarqué Lyra. De plus la solution de paiement s’adapte aussi bien pour le site qu’aux autres canaux de vente (l’application mobile ou génération de lien de paiement réalisée par la centrale de réservation téléphonique).

site e-commerce paiement tourisme

Le paiement embarqué est véritablement un point fort de notre parcours d’achat. Jusque-là le paiement se faisait en redirection, ce qui générait une rupture dans le parcours et un sentiment d’insécurité pour nos clients. Grâce à Lyra, le paiement se réalise sur notre site, ce qui apporte aussi plus de fluidité et de rapidité.

Martin de Pas,
Responsable du développement digital du Puy du Fou

Flexibilité et mobilité

La clientèle du Puy du Fou est très hétéroclite, ce qui implique d’adapter le parcours en fonction. Certains visiteurs souhaitent réserver vite, d’autres prendre un maximum d’informations avant de finaliser voire même  directement réserver l’ensemble des prestations pour optimiser leur visite.

La réponse apportée passe par le choix des modes de paiement (comptant, fractionné, à plusieurs, click & collect…) et une page de checkout unique pour l’encaissement de l’ensemble des prestations.

L’analyse des habitudes de paiement des visiteurs a fait aussi ressortir un élément crucial : l’utilisation dominante du mobile. En effet, le mobile représente 70% du trafic sur le site. Pour apporter encore plus de flexibilité et de confort, le Puy du Fou a déjà pour projet d’ajouter de nouveaux moyens de paiement tels que les wallets et les Chèques vacances connect. Des évolutions facilement réalisables avec Lyra et qui ne nécessitera aucune action de développement.

Mobile paiement Puy du fou

« Le choix de Lyra s’est aussi imposé car c’est une solution simple à intégrer et qui propose de nombreux moyens de paiement pour permettre à chacun de payer selon ses habitudes. L’intégration des wallets devrait nous permettre de faciliter encore plus le parcours paiement et s’affranchir en partie du 3DSecure qui constitue une réelle contrainte pour nos clients.

Martin de Pas,
Responsable du développement digital du Puy du Fou

Au-delà de la Vendée

Ces dernières années, le savoir-faire artistique incroyable du Puy du Fou s’exporte et impulse de nouveaux projets avec la réalisation d’un film pour le cinéma, l’ouverture d’un nouveau parc en Espagne et la préparation d’un nouveau spectacle à bord d’un train d’époque.

De nouvelles aventures dans lesquelles Lyra s’impliquera avec le même engagement pour conserver l’esprit du Puy du Fou : susciter des émotions éternelles !  

Lyra a récemment interviewé Yaël, fondatrice des Babilleuses, une structure spécialisée dans la confection consciente et la commercialisation de coussins de maternité. Depuis son premier coussin réalisé en 2005, son entreprise n’a cessé de grandir jusqu’à s’adresser à une clientèle internationale. D’abord française, cette clientèle s’est révélée être particulièrement intéressée par la qualité, le confort et le large choix de ces coussins.

Proposer des moyens de paiement adaptés à différentes typologies de consommation est une solution optimale pour faire évoluer son commerce et Yael nous explique pourquoi.

Découvrons ensemble l’évolution des Babilleuses et l’impact qu’a eu Lyra en tant que solution de paiement.

Une histoire écrite du bout des doigts

Les Babilleuses a son histoire, l’histoire de toute une vie. Couturière de profession, puis maman, sa fondatrice réalise qu’on n’est finalement jamais mieux servi que par soi-même ! De quelques coussins à l’émergence d’un réel besoin dans son entourage, Yael se prend au jeu. Quelques calculs, un peu (beaucoup) d’organisation, et de précieux conseils donnés par des sage-femmes et ses premiers coussins voient le jour.

De fils en aiguilles, les coussins se perfectionnent, séduisent et la demande explose.

Un site internet devient essentiel pour faciliter la visibilité puis la commercialisation. Rapidement la question du paiement se pose. C’est au travers d’une conversation avec l’un de ses collaborateurs que Lyra ressort comme solution de paiement.

Quoi de mieux qu’une solution française et des valeurs en accord avec sa démarche ? Les Babilleuses choisit de faire confiance à Lyra pour ses paiements, et ça dure depuis 14 ans.

Un patchwork de moyens de paiement pour une clientèle internationale

« Avoir un bon produit n’est plus suffisant, il faut aussi avoir les bons moyens de paiement »

Yaël, fondatrice des Babilleuses

Future maman, futur papa, meilleure amie ou bientôt tatie… Difficile de choisir un coussin quand on n’y connaît rien. Face à ce constat, Les Babilleuses pense et conçoit une application mobile, avec un concept et un processus d’achat simplifié : on choisit un coussin parmi les best-of et l’achat se fait en quelques clics !

Après quelques temps, les nouveaux modes de consommation sonnent le besoin d’agrandir cet éventail de moyens de paiement : plus l’achat est rapide, mieux c’est et la réponse est très simple grâce à Apple Pay.

Fort de sa popularité, le site Les Babilleuses arrive jusqu’à chez nos voisins belges. L’international devient alors un nouveau cap. Ni une ni deux et pour l’accompagner au mieux dans ce défi, Lyra propose aux Babilleuses le moyen de paiement préféré en Belgique : Payconiq. Grâce à un fonctionnement simple et rapide par QR Code, il a déjà conquis plus de 5 millions d’utilisateurs belges.

Motivée par l’idée d’offrir une expérience utilisateur la plus fluide possible pour une satisfaction maximale. Les Babilleuses ajoute Payconiq et les résultats sont immédiats. Qualifiée de simple, rapide et sécurisée par ses clients, le pari est gagnant.

67% des clients belges ont choisis Payconiq au moment du paiement

Yaël, fondatrice des Babilleuses

En échange régulier avec l’Espagne et la Suisse. Les Babilleuses devrait encore élargir son expansion grâce à Bizum le moyen de paiement préféré des Espagnols, et Twint celui des Suisses, qui sont prévus chez Lyra d’ici peu…

L’automne est bien entamé et les besoins d’évasion se font déjà ressentir. Pour replonger dans une nouvelle vague à l’esprit de vacances, nous avons rencontré Julien, fondateur de Mon Fourgon Shop. Boutique en ligne d’équipements pour les particuliers qui aménagent des vans sur-mesure (isolation, électricité, fenêtres, collage etc.).
L’activité est récente et le catalogue de cesse de prendre de l’ampleur. La brique du paiement a été bien pensée par Julien puisqu’il a su considérer l’importance d’un parcours d’achat simple, efficace et sans rupture dès le début de son activité. Le meilleur moment pour déjà envisager le paiement de demain c’est bien dès le démarrage !

Un choix local pour une conso raisonnée

Locale et recommandée, 2 qualités premières pour Lyra qui ont su séduire le fondateur de cette société toulousaine. S’en suit un accompagnement commercial disponible et sur-mesure pour aider cette nouvelle société à prendre la route vers de nouveaux horizons.

Une fois bien engagé, il y a des objectifs à ne pas prendre à la légère. Comme la rapidité et la mobilité que ce soit du côté des clients que de l’aboutissement de la commande. Récemment, en intégrant Apple Pay et le prélèvement SEPA Julien et son équipe assurent à leurs clients de régler plus facilement tous les types de paniers pour être équipé en un temps record !

Avec Apple Pay, des résultats qui parlent d’eux-mêmes !

Des paniers inférieurs à 100€ pour la spontanéité, aux paniers plus élevés pour être rassuré, Apple Pay a su s’imposer.

Apple Pay représente déjà un beau pourcentage de nos paiements pour un moyen de paiement qu’on propose en plus à nos clients. Avec du recul, je sais que la conversion et le confort du client passent par les moyens de paiement qu’on peut proposer 

Julien SATGÉ, fondateur de Mon Fourgon Shop

Pour continuer sur cette belle lancée, Julien suit de très près toutes les évolutions Lyra. Notamment grâce à notre rendez-vous webinar L’instant Paiement et nos newsletters. Il sait que toutes les nouvelles fonctionnalités sont avant tout pensées et développées pour des structures qui en ont besoin avant les autres ! C’est ça de vouloir dépasser à vitesse grand V.

Depuis ces dernières années, le secteur du camping connaît une transformation importante vers une montée en gamme. Une évolution imposée par des attentes clients de plus de plus orientées confort et qualité de service. L’agence angevine Interaview Production a su rapidement identifier cette tendance et le challenge que cela implique pour les campings en termes de visibilité et de gestion.

Le portail Campingsluxe.fr a ainsi été créé pour rassembler l’ensemble de l’offre du territoire d’hébergement de plein air haut de gamme (Glamping, camping 4 et 5 étoiles…) et offrir une expérience de réservation ultra simple. Les critères de sélection pour être référencés sont très sélectifs. Ils prennent en compte le cadre, les infrastructures disponibles, le type et la qualité des hébergements…

site réservation campings.luxe
Campings.luxe solution paiement glamping

Objectifs atteints !

Campings.Luxe traite à ce jour plus de 6000 réservations par an. Pour un nouveau camping partenaire, la plateforme représente rapidement son premier apporteur de trafic référent.

Un fort levier de vente pour les propriétaires de campings, associé à une gestion simplifiée pour les réservations. En effet, le portail s’interconnecte avec tous les systèmes de réservation du secteur et dispose d’un parcours de paiement Lyra (PayZen) adapté à cette nouvelle clientèle. Finalement, un paiement performant pour des vacances inspirantes !

Entre lieu extraordinaire et prestations de haut standing, le parcours de réservation doit déjà donner un avant-goût du séjour. Cette clientèle désire se sentir en vacances dès le moment de la réservation ! Et pour ce faire, le parcours de paiement, en plus d’être simple et rapide, doit proposer :

  • un parcours fluide et optimisé mobile
  • la capacité de choisir sa langue natale
  • la disponibilité de son moyen de paiement préféré quel que soit son pays (CB, iDeal…)
  • des moyens de paiement innovants tel que le virement en ligne

Avec Lyra, nous avons toutes les cartes en main pour constamment améliorer notre taux de conversion au bénéfice de nos campings partenaires.

Rémy Dupé, Responsable informatique chez Campings.Luxe

Cap sur l’Europe

Fort de son succès en France, Campings.luxe enrichit son l’offre de destinations en dehors des frontières françaises (Belgique, Croatie, Espagne, Italie, Pays bas, Portugal, Slovénie) et vise par la même occasion une clientèle européenne.

Pour accompagner ce projet, Lyra mettra sa large gamme de moyens de paiement et sa connaissance des réglementations locales à disposition.   

 Avec Lyra, la facilité d’utilisation et d’intégration liée à la qualité du service d’un point de vue relation commerciale et support technique permettront d’accroitre notre activité sur le marché européen de façon sereine et pérenne.

Rémy Dupé, Responsable informatique chez Campings.Luxe

Considéré comme le Airbnb du camping-car par le secteur du Tourisme, Wikicampers c’est une promesse d’évasion en toute sérénité tant au niveau des services proposés que de ses parcours de paiement.

Source d’inspiration : Multi-activité proche de ses clients

Depuis plus de 10 ans, Wikicampers se positionne comme un tiers de confiance entre les propriétaires de camping-car et les voyageurs en quête d’une nouvelle forme de voyage !

Pour accompagner les voyageurs au plus près de leurs besoins, Wikicampers a développé plusieurs activités répondant aux attentes de cibles différentes. En optant pour Lyra comme partenaire paiement, Wikicampers a fait le choix d’une solution unique pour gérer l’ensemble des besoins d’aujourd’hui et demain.

S’appuyer sur une solution comme Lyra, avec une telle richesse de moyens de paiement disponibles, est un vrai plus pour gagner en réactivité et améliorer constamment le parcours de réservation.

Marion Woirhaye, Co-fondatrice et CEO de Wikicampers

Source d’évasion : Location avec étalement des paiements

L’une des activités phares de Wikicampers est la location entre particuliers. La plateforme propose plus de 6500 véhicules à travers la France en s’appuyant sur un CMS de réservation propriétaire.  

Pour 45% des voyageurs utilisant ce service, c’est une première ! Et avec un panier moyen autour des 1000€, il y a de quoi avoir quelques hésitations avant de se lancer. C’est pourquoi Wikicampers a opté pour la mise en place du paiement en plusieurs fois permettant d’étaler le règlement dans le temps et réserver en toute tranquillité.

Wikicampers se tient constamment à l’écoute de sa communauté, très active en retour d’expérience pour enrichir et simplifier au maximum le parcours de réservation. En plus de Chèques-Vacances Connect, Paypal et les cartes bancaires, déjà acceptés sur la plateforme, le paiement par virement en ligne sera bientôt proposé.

Une alternative à la carte permettant aux clients de préserver le niveau de dépenses sur leur plafond carte. Le virement en ligne est aussi une opportunité pour Wikicampers d’ouvrir facilement son activité en dehors des frontières avec un moyen de paiement utilisé dans 16 pays européens, les envies d’ailleurs vont pouvoir prendre la route !

Paiement site location campingcar

Source de liberté : Vente d’équipements & abonnement

Sur la plateforme, tout est pensé pour rendre l’expérience du voyage idéale pour le voyageur comme le propriétaire. Un voyage Wikicampers bien préparé commence d’ailleurs par une boutique en ligne proposant tous les accessoires de voyages indispensables, des guides, des produits d’entretien et même un traceur GPS Wikitrack.

Pour son utilisation, ce dernier est lié à un modèle d’abonnement pour lequel Wikicampers s’appuie là encore sur la solution Lyra pour enregistrer les cartes et déclencher automatiquement des paiements récurrents.

Paiement et abonnement boutique en ligne

Source de maîtrise : Simplification de la gestion financière

Vous l’aurez compris, ces différentes activités basées sur différents usages demandent une grande flexibilité. C’est pourquoi une solution unique, multi-activité, gérant la réconciliation bancaire et qui accompagne dans le suivi des encaissements est un grand confort ! Lyra permet à Wikicampers de consacrer plus de temps à sa communauté et aux nouvelles activités telles que la vente de véhicule de particuliers à particuliers et l’expansion vers l’Espagne.

L’intégration de la solution et l’activation d’un nouveau moyen de paiement voire d’une fonctionnalité est tellement simple, qu’il n’y a plus de limite technique pour ouvrir tous les champs des possibles.

Patxi Laduche, CTO de Wikicampers

Crédits photo Wikicampers

Le 14 mars 2022, nous avions rencontré la Compagnie des Transports Strasbourgeois (CTS) pour faire le point sur le lancement de leur application mobile, une révolution pour leurs usagers dont la fréquentation atteignait plus + de 400 000 voyages par jour en moyenne !

Un an après, le mobile est toujours au cœur de leur stratégie et ne cesse de s’étoffer ! Nous avons alors discuté des besoins émergents liés à ce type d’outil. C’est ainsi que nos développeurs ont œuvré pour permettre la mise en place d’Apple Pay. Une fonctionnalité très réclamée par les usagers CTS pour payer en mobilité.

« 50% des paiements sur l’application sont fait sur iPhone ! »

Vincent WEBER, CTS

Wagon « émergence des besoins »

Jusque-là les clients CTS avaient, entre autres choix, les modes de paiement suivants pour l’achat de leur titre de transport :

  • Via l’application mobile. Le ticket est émis sous format de code-barres. L’usager le scanne directement à l’intérieur du véhicule et peut se déplacer librement. Good to know : le passager ne le sait pas mais il utilise le SDK Lyra !
  • Via le site web. Les tickets ayant une durée de validité plutôt courte, l’achat via le site web est privilégié pour recharger les cartes de transport des usagers réguliers, payer des procès-verbaux, commander une carte de transport… Good to know : CTS a choisi l’intégration embarquée sans redirection !
  • Via le traditionnel paiement en espèces lors de la montée dans le bus. Ce mode est souvent retenu par manque de temps mais a l’inconvénient d’être chronophage et d’affecter une mission supplémentaire aux conducteurs, déjà très sollicités.

Animée d’une réelle volonté de fluidifier les transports et faciliter le quotidien des voyageurs, la Compagnie des Transports Strasbourgeois a vu tout le potentiel du wallet Apple Pay.

Wagon « Go Apple Pay »

Le paiement rendu possible directement depuis l’application est primordial pour les usagers. Afin de limiter l’achat direct auprès du conducteur et gagner en efficacité, la CTS a choisi de proposer un tarif plus avantageux via l’application. Cet argument incite les usagers à utiliser l’application et permet également de fidéliser ces derniers.

C’est agréable de travailler avec Lyra car il y a toujours des innovations, des nouveautés.

Vincent WEBER, CTS

Grâce à Apple Pay et au paiement mobile, l’achat à l’instant T reste faisable ! Une valeur sûre pour les frileux qui ne sont pas sûrs d’avoir leur bus à temps ou les usagers de seconde couronne qui ne profitent pas tous de caisses automatiques dans leur commune.  

Depuis l’application, il est possible d’enregistrer sa carte pour un paiement ultrarapide en un clic. Mais avec le wallet Apple Pay, les détenteurs d’Iphone n’ont pas à enregistrer leur carte sur une énième application. Le paiement instantané grâce à Apple Pay permet de prendre son titre au dernier moment et d’être assuré d’utiliser tranquillement son titre et de faire gagner du temps au conducteur.

Wagon « retour d’expérience »

Le panel d’actions mises en place (campagne d’affichage, application et maintenant Apple Pay) a permis de réduire de façon concrète le recours au paiement auprès du conducteur et de fluidifier l’acte d’achat de titre de transport.

Et demain ? Pourquoi ne pas aller encore plus loin ! Le virement instantané s’affiche comme une opportunité envisageable pour les équipes de la CTS pour permettre la gestion de montants plus élevés à régler sans carte : amendes, recharge mensuelle/annuelle…

À propos de la Compagnie des Transports Strasbourgeois

La Compagnie des Transports Strasbourgeois (CTS), Société Publique Locale, est l’opérateur de mobilité de l’agglomération strasbourgeoise. Elle produit chaque année plus de 18 millions de km d’offre de transport urbain à l’aide de 246 bus, dont 8 bus à haut niveau de service et 110 tramways. Plus de 1700 personnes, dont près de 1 100 Conducteurs-Receveurs, sont réparties sur 3 Unités de Production situées à Strasbourg. La CTS transporte plus de 127 millions de voyageurs par an, ce qui en fait l’un des plus importants réseaux de transport public en France et le premier réseau de tramway par sa taille, sa complexité et sa performance.

Pour conclure cette série d’articles, reprenons les objectifs et les différentes solutions apportées.

L’objectif principal est le développement d’une librairie de composants React Native, dans le but de mutualiser des composants de deux applications : PayZen et Lyra Collect.

La difficulté principale étant que certains composants peuvent être de haut niveau, quasiment des écrans entiers. C’est-à-dire qu’ils embarquent de la logique métier : des appels serveurs, de la navigation entre plusieurs écrans, des paramètres utilisateurs etc.

Reprenons les principales problématiques ainsi que les solutions apportées :

Gestion des dépendances dans le contexte React Native / Expo

  • L’utilisation des peerDependencies permet de mutualiser les dépendances
  • On a pu démontrer une configuration qui fonctionne avec le bundler Metro (au niveau du code source et des assets)
  • La librairie est écrite en TypeScript et tout le typage est bien exporté
  • La compilation de la librairie est simple et rapide

L’environnement de développement, l’intégration continue et le déploiement

  • Bonne expérience de développement, tout l’outillage fonctionne comme avant (refresh de composant à chaud, debugger, inspecteur d’éléments etc.)
  • Le développeur continue de tester son application, qu’il travail sur la librairie ou sur son application
  • Linking de la librairie en local très facile
  • Intégration continue et déploiement avec Bitrise

Gestion des personnalisations : le thème, l’internationalisation et les paramètres utilisateur

  • Passage de paramètres et création d’un contexte grâce à un composant Provider
  • Possibilité de personnaliser le thème, les traductions et la configuration de la librairie
  • Les paramètres des composants de la lib peuvent être intégré dans l’écran des préférences de l’application

Gestion des appels serveur et de l’authentification

  • Utilisation d’un client HTTP (Axios) qui permet d’embarquer la configuration des appels serveurs (URL de base, authentification etc.)
  • La librairie est capable d’effectuer des appels serveurs avec des urls relatives
  • La gestion des tokens d’authentification et de l’URL du back-end restent de la responsabilité des applications, la librairie ne s’en occupe pas
  • Le déploiement de la brique « API Proxy » côté Lyra Collect permet d’accéder aux API de PayZen depuis l’app Lyra Collect
  • Les appels REST sont validés par les specs OpenAPI fournies par le back-end

Les grands principes à retenir

  • Librairie écrite en TypeScript
  • Elle expose un composant Provider qui lui permet d’accepter des paramètres et d’initialiser les librairies utilitaires
    • React Native Paper pour le thème
    • I18n-js pour l’internationalisation
    • Axios pour les appels HTTP

L’objectif principal de cette librairie est d’apporter les fonctionnalités liées aux ordres de paiement de l’application PayZen dans l’application Lyra Collect. Mettre ces écrans dans une librairie nous permet de mutualiser le code et facilite la maintenance.

Les ordres (aussi appelés liens) de paiement, sont des liens générés par le marchand qu’ils peuvent envoyer à leur client pour se faire payer. Ces liens amènent vers la page de paiement PayZen du marchant avec toutes les informations de paiement pré-remplies.

Voici quelques exemples d’écrans pour les ordres de paiement (liste, détail, création) :

Dans les articles précédents, nous avons répondu aux problématiques liées aux dépendances, à l’environnement de développement et aux personnalisations.

Il nous reste un sujet à aborder, qui est spécifique aux écrans des ordres de paiement, ce sont les appels serveurs et l’authentification.

En effet, la librairie expose des composants de haut niveau qui peuvent être des écrans complets :

  • PaymentOrderList : écran complet de la liste des ordres de paiement, avec ses propres appels serveur
  • PaymentOrderDetail : écran complet du détail d’un ordre de paiement, avec ses propres appels serveur
  • PaymentOrderCreation : enchainement d’écrans pour la création d’un ordre de paiement, avec ses propres appels serveur
  • PaymentOrderSettings : section de paramètres des ordres de paiement

L’architecture de nos services

Nos deux applications communiquent avec leur back-end respectif (donc URL différentes) qui ont chacun leur méthode d’authentification spécifique.

  • Côté PayZen, c’est une authentification à base de cookie et de tokens.
  • Côté Lyra Collect, l’authentification s’appuie sur RH-SSO (Keycloak), à base de Bearer Token.

Ce qu’il faut savoir, c’est que la plateforme Lyra Collect se base sur la solution PayZen. Et les ordres de paiement sont une notion portée par PayZen.

Donc pour l’app PayZen, aucun problème avec les ordres de paiement : elle communique avec son back-end, et l’authentification est naturellement gérée.

Par contre pour l’application Lyra Collect, il faut communiquer directement avec le back-end PayZen (sauf à devoir dupliquer l’API des Ordres de Paiement sur Lyra Collect, ce que nous voulons justement éviter).Et bien entendu, il n’est pas souhaitable de gérer plusieurs authentifications sur l’application Lyra Collect (une pour les fonctionnalités des Ordres de Paiement, l’autre pour le reste de l’application).

En revanche, les systèmes d’information Lyra Collect et PayZen communiquent très bien entre eux car ils sont hébergés au sein de la plateforme Lyra.

L’idée est donc d’ajouter une brique de proxy d’API devant le back-end Lyra Collect qui aura les rôles suivant :

  1. authentifier l’utilisateur Lyra Collect avec RH-SSO
  2. transférer l’appel vers PayZen en lui adjoignant les paramètres d’authentification (PayZen) correspondant

Voici un schéma simplifié qui illustre l’architecture cible. En vert l’existant, en orange les nouveaux composants :

La gestion des appels serveurs dans la librairie

Une fois ces modules en place, la problématique suivante est : comment la librairie va pouvoir effectuer ses requêtes alors qu’elle ne connait ni l’URL du serveur ni la méthode d’authentification à configurer ?

En effet, elle est utilisée à la fois dans l’application Lyra Collect (qui communique avec le backend Lyra-Collect) et PayZen (qui communique… oui, avec le backend PayZen).

Et ce que nous voulons éviter, c’est qu’à chaque appel, la librairie fasse quelque chose comme :

Première hypothèse

Au début, nous avons imaginé que les applications passent des paramètres au niveau du Provider de la librairie :

  • baseURL : l’URL de base à utiliser pour tous les appels
  • mode : EP / VAD selon le mode d’authentification à utiliser
  • token : le token d’authentification

Ce qui donnerait :

// depuis l’app PayZen // depuis l’app Lyra Collect

La librairie dispose ainsi que tout le nécessaire pour effectuer les appels. Selon le mode d’authentification, le token sera utilisé différemment.

Après un essai, cela fonctionne mais plusieurs points ne nous conviennent pas :

  • le mode revient à utiliser un if/else que nous voulions éviter. De plus, cela introduit un couplage fort entre la librairie et les applications qui l’utilisent (la librairie doit forcément connaître ces dernières…)
  • le nouveau token PayZen est passé dans le retour de l’appel, il faut donc mettre en place un mécanisme pour retourner le nouveau token à l’appli
  • l’authentification côté PayZen utilise des cookies, et pour que ça fonctionne, il vaut mieux utiliser la même API de requête → nouveau couplage app / lib

(erreur)  Cette hypothèse n’est pas retenue


Deuxième hypothèse

Une solution alternative serait d’utiliser un client HTTP autre que l’API native ‘fetch’. Ainsi avec la librairie Axios, il est possible de :

  • créer une instance de client HTTP avec des paramètres, par exemple une URL de base
  • utiliser des middlewares pre- et post-request, par exemple pour configurer l’authentification

Avec Axios, l’application peut ainsi créer une instance de client HTTP et la configurer avec toutes ses spécificités (URL de base et authentification notamment) et la transmettre à la librairie.

Création de l’instance Axios :

import Axios from 'axios'
 
// création de l'instance Axios
export const axios = Axios.create({
  baseURL: 'https://api.example.com',
})

Configuration d’une authentification Bearer

import { useContext, useLayoutEffect, useRef } from 'react'
import { SessionContext } from '../contexts/SessionContext'
import { axios } from './axios'
 
export function useAuthInterceptor() {
  // on récupère le token depuis un contexte
  const { accessToken } = useContext(SessionContext)
  // stockage de l'identifiant de l'intercepteur dans une référence React
  const reqInterceptor = useRef<number>()
 
  useLayoutEffect(() => {
    // si l'interceptor existe déjà, on le libère
    if (reqInterceptor.current !== undefined) {
      axios.interceptors.request.eject(reqInterceptor.current)
    }
 
    // déclaration d'un nouvel intercepteur de requête, appelé avant chaque requête
    reqInterceptor.current = axios.interceptors.request.use((config) => {
      if (accessToken && config.headers) {
        // configuration du header Authorization de la requête
        config.headers.Authorization = `Bearer ${accessToken}`
      }
 
      // on retourne la config modifiée
      return config
    })
 
    return () => {
      // au nettoyage, on libère l'intercepteur
      if (reqInterceptor.current !== undefined) {
        axios.interceptors.request.eject(reqInterceptor.current)
      }
    }
  }, [accessToken])
}

Déclaration du Provider dans l’app

import { Provider } from '@lyra/shared-components'
import { axios, useAuthInterceptor } from './rest'
import { Root } from './components/Root'
 
export const App = () => {
  // initialisation de notre intercepteur d'authentification
  useAuthInterceptor()
 
  return (
    <Provider axios={axios}>
      <Root />
    </Provider>
   )
}

Avec cette solution, la librairie ne s’occupe plus de gérer :

  • l’URL de base, elle fait seulement des appels relatifs
  • l’authentification, elle est configurée côté application

L’avantage c’est que quelque soit la méthode d’authentification, le fonctionnement de la librairie n’est pas impacté : pas de if / else, pas de mécanisme de synchro de token entre lib et app. Avec les interceptors, chaque application reste maître de sa gestion de token.

Exemple d’appel REST depuis la librairie

import { useContext } from 'react'
import { ConfigContext } from '../contexts/ConfigContext'
 
export const FooComponent = () => {
  const { axios } = useContext(ConfigContext)
  const result = axios.get('/path/to/resource')
  ...
}

En outre, cela nous permet de développer une nouvelle application mobile qui utiliserait la librairie, sans modifier cette dernière.

 ✅ Cette hypothèse répond à nos besoins, elle est donc retenue

Spécifications OpenAPI

Le back-end PayZen fournit des spécifications OpenAPI pour tous ses web services REST. Par conséquent, pour éviter toute erreur de communication avec le back-end, nous utilisons ces contrats pour nous assurer que nos appels sont corrects dès la librairie.

Pour cela, nous utilisons le projet OpenAPI Generator qui permet de générer un client REST en fonction d’un contrat OpenAPI.

Et par chance (ou pas (sourire)), il existe un générateur typescript-axios. Parfait pour notre cas d’utilisation !

Il suffit donc de passer notre instance Axios au client REST généré par typescript-axios, et ce dernier expose les différentes requêtes disponibles sur notre back-end.

Et bien entendu, le client généré contient le typage de tout le modèle.

Voici le fichier de configuration utilisé pour le générateur typescript-axios :

openapi-generator.config.json


{
  "withSeparateModelsAndApi": true,
  "apiPackage": "api",
  "modelPackage": "model",
  "useSingleRequestParameter": true,
  "enumPropertyNaming": "UPPERCASE",
  "stringEnums": true
}

La ligne de commande pour générer le client REST :

Commande pour générer le client REST

npx @openapitools/openapi-generator-cli generate -g typescript-axios -c openapi-generator.config.json -i payment-order.yaml -o src/openapi/payment-order

Dans le code, on peut maintenant utiliser le client généré (PaymentOrderApi dans notre cas) en lui passant l’instance Axios :

Exemple d’un composant utilisant le client REST généré

import { useContext } from 'react'
import { ConfigContext } from '../contexts/ConfigContext'
import { PaymentOrderApi, Configuration } from '../openapi/payment-order'
 
export const PaymentOrderList = () => {
  const { axios } = useContext(ConfigContext)
 
  // récupération du basePath depuis l'instance axios
  const basePath = axios.defaults.baseURL
 
  // création d'une configuration et d'un client d'API avec les objets générés
  const configuration = new Configuration({ basePath })
  const paymentOrderApi = new PaymentOrderApi(configuration, basePath, axios)
 
  // on peut maintenant utiliser notre API qui va effectuer les requêtes en utilisant l'instance axios passée en config
  const result = paymentOrderApi.findPaymentOrder({
    page: 1,
    perPage: 10,
    minAmount: 42,
  })
 
  ...
}

Conclusion

(coche)  La librairie est capable d’effectuer des appels serveurs avec des urls relatives.

(coche)  La gestion des tokens d’authentification et de l’URL du back-end reste de la responsabilité des applications, la librairie ne s’en occupe pas.

(coche)  Le déploiement de la brique « API Proxy » côté Lyra Collect permet d’accéder aux API de PayZen depuis l’app Lyra Collect.

(coche)  Les appels REST sont validés par les specs OpenAPI fournies par le back-end.

Les problématiques liées aux appels serveurs sont résolues. La librairie est donc capable d’embarquer des composants métiers de haut niveau (écrans complets).

GetResto est une application mobile basée sur un modèle de marketplace, qui met en relation les restaurants et les foodies. Cherchez, réservez et commandez dans vos restaurants favoris mais soyez également au fait de leurs actualités. Les clients pourront alors sauvegarder et partager leurs bonnes adresses. Offrant une expérience optimale et privilégiée, cette solution packagée n’a pas fini de séduire.

Les enjeux de GetResto se concentrent sur l’expérience utilisateur mobile et la proposition de moyens de paiement incontournable, Daniel Abitbol, créateur du concept est revenu avec nous sur ce qui devient essentiel dans ce secteur !

Le mobile, l’essence des foodies

Au cours de l’année 2020, les commandes en ligne, en livraison ou en click & collect, ont connu un véritable engouement avec une croissance de 25 % aussi bien en dépenses qu’en visites. Un français sur deux s’est déjà fait livrer ! Et parce que la majorité des commandes s‘effectue via smartphone, pour plus de rapidité et d’instantanéité, le développement d’une stratégie mobile est capital pour les restaurateurs. GetResto en a donc fait son arme principale !

GetResto a alors mis toutes les chances de son côté pour proposer la meilleure expérience utilisateur possible. Et pour s’inscrire totalement dans cette démarche, ils ont pu utiliser en avant-première le paiement embarqué intelligent, la nouvelle technologie de Lyra. Grâce à celui-ci, ils peuvent proposer tous les moyens de paiement, même les plus locaux, sans aucune redirection ! Les foodies confirment leur commande sur l’application, sans redirection et sans coupure. Le design de l’application est même repensé autour de ce nouveau schéma pour plus de cohérence et de fluidité.

Au-delà d’un parcours de paiement simple et user friendly, le choix des moyens de paiement a toute son importance et GetResto l’a bien compris. Proposant déjà les moyens de paiement classiques liés au secteur de la restauration tels que la carte ou les tickets-restaurants, ils ont décidé de surfer sur les nouvelles tendances en ajoutant l’incontournable Apple Pay.

Apple Pay au service des restaurateurs

Get Resto utilise déjà ce nouveau moyen de paiement phare pour répondre aux besoins de ses partenaires restaurateurs en s’appuyant sur la solution Lyra. Apple Pay offre un taux de réussite de 100% ! Quand on sait qu’en fonction de son emplacement, un restaurant peut avoir jusqu’à 60% des paiements via Apple Pay, on comprend toute son importance dans ce secteur.

En effet, Apple Pay est LE moyen de paiement incontournable lorsqu’on propose des services via une application mobile. La combinaison d’Apple Pay sur application mobile, permet de proposer un parcours ultra optimisé pour une expérience utilisateur fluide :

  • Rapidité et instantanéité : en quelques clics seulement, la commande est passée. Plus besoin d’aller chercher sa carte, remplir les informations bancaires etc. Le paiement est à portée de doigt !
  • Conversion optimisée. Aucune information à compléter, pas d’erreur de CVV possible, processus ultra rapide… Les foodies valident leurs commandes à coup sûr et en quelques secondes.
  • Sécurité accrue. Aucune information bancaire ou d’identité n’est communiquée aux restaurateurs, ni stockés sur les serveurs d’Apple, ce qui limite fortement la fraude.

L’un des plus gros avantages de Lyra, c’est son avancement dans la proposition des moyens de paiement, et même les plus atypiques.

Daniel ABITBOL, Gérant de GetResto

À propos de GetResto

GetResto est l’application française qui réunit tous les amoureux des bons repas : les foodies. Proposant déjà plus de 200 000 restaurants en France, vos restaurants favoris disponibles en quelques clics.

APPLICATION DISPONIBLE SUR IOS ET ANDROID !