Installer Virevo sur votre boutique en ligne
WooCommerce, PrestaShop ou Magento : le parcours est le même en quatre étapes, une clé d'API, l'extension, le webhook, puis un paiement de test. Comptez vingt minutes la première fois, et gardez le mode test jusqu'à ce que tout soit vert.
Au sommaire
Avant de commencer
Trois choses à avoir sous la main.
- Un compte Virevo, gratuit, créé sur app.virevo.fr. Le mode test fonctionne immédiatement, sans vérification d'identité.
-
Le fichier de l'extension, une archive
.zip. Elle n'est pas encore publiée sur les places de marché : écrivez à contact@virevo.fr et nous vous l'envoyons, avec la version qui correspond à votre boutique. - Une boutique accessible depuis Internet. C'est le point que tout le monde découvre trop tard : la confirmation de paiement arrive par un appel de nos serveurs vers les vôtres. Une boutique qui tourne seulement sur votre machine ne peut pas la recevoir.
Il faudra en plus vérifier votre identité et renseigner votre IBAN professionnel dans le tableau de bord. Rien de tout cela n'est nécessaire pour la phase de test, et mieux vaut avoir fini l'installation avant de s'en occuper.
Étape 1 : créer votre clé d'API
- Connectez-vous à app.virevo.fr et ouvrez Développeurs.
- Dans Mode, choisissez Test.
- Donnez-lui un Nom, par exemple « Boutique WooCommerce ». C'est facultatif, mais indispensable le jour où vous en aurez cinq.
- Cliquez sur Créer une clé.
Elle commence par vrv_test_, ou vrv_live_ en
production. Copiez-la tout de suite : nous n'en
conservons qu'une empreinte, personne ne peut vous la réafficher. Si
vous la perdez, il suffit d'en créer une autre et de révoquer la
première.
Étape 2 : installer l'extension
WooCommerce
- Dans l'administration WordPress : Extensions → Ajouter → Téléverser une extension.
- Choisissez l'archive
virevo-for-woocommerce-x.y.z.zip, installez, puis activez. - Allez dans WooCommerce → Réglages → Paiements, ligne « Virevo — virement instantané », puis Gérer.
- Cochez « Activer le paiement par virement instantané Virevo ».
- Mode : « Test (bac à sable) ».
- Collez votre clé dans Clé API test. Le champ Clé API live attendra.
- Enregistrez. Ne quittez pas cet écran : l'URL du webhook y est affichée, vous en aurez besoin à l'étape 3.
Le champ « URL de l'API (avancé) » se laisse vide. Il ne sert qu'à pointer vers une API locale pendant un développement.
PrestaShop 1.7 et 8
- Dans le back-office : Modules → Gestionnaire de modules → Importer un module.
- Déposez l'archive
virevopay-x.y.z.zip, puis Configurer. - Mode : test. Collez votre clé dans le champ de clé de test.
- Enregistrez. L'écran affiche alors l'URL de webhook propre à votre boutique.
Tant que le virement n'est pas reçu, la commande reste dans l'état natif « En attente de virement », puis bascule en « Paiement accepté » à la confirmation. Vous retrouvez donc vos automatismes habituels, sans nouvel état à configurer.
Magento 2 et Adobe Commerce
Au choix, par Composer ou par dépôt de fichiers.
bin/magento module:enable Virevo_Payment
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush
Puis Stores → Configuration → Sales → Payment Methods → « Virevo — virement instantané » : Activer, Mode sur test, et la clé dans Clé API test.
Le module Magento respecte les conventions 2.4 mais n'a pas encore été éprouvé en production chez un marchand. Prévenez-nous avant de l'installer, nous suivrons la mise en route avec vous.
Étape 3 : enregistrer le webhook
C'est l'étape qui décide. Sans elle, vos clients paieront correctement et vos commandes resteront en attente, parce que rien ne viendra dire à votre boutique que l'argent est arrivé.
L'adresse à déclarer dépend de votre boutique :
| Boutique | URL de notification |
|---|---|
| WooCommerce | https://votre-boutique.fr/wp-json/virevo/v1/webhook |
| PrestaShop | celle affichée dans l'écran de configuration du module |
| Magento | https://votre-boutique.fr/virevo/standard/webhook |
- Dans le tableau de bord, Développeurs, section des webhooks.
- Collez l'adresse dans URL de notification et validez.
- Le Secret de signature s'affiche, une seule fois lui aussi. Il commence par
whsec_. - Retournez dans les réglages de l'extension et collez-le dans Secret de webhook. Enregistrez.
- Revenez au tableau de bord et utilisez le bouton de test de l'endpoint : votre boutique doit répondre. Si elle ne répond pas, arrêtez-vous là et voyez le dépannage.
Chaque notification est signée avec ce secret. Votre boutique recalcule la signature avant d'accepter quoi que ce soit : personne ne peut donc valider une commande en devinant l'adresse de votre webhook. Le secret se renouvelle depuis le tableau de bord, et les deux versions restent acceptées pendant la bascule, ce qui évite toute coupure.
Étape 4 : un paiement de test, de bout en bout
En mode test, rien n'est réel : aucun compte bancaire n'est sollicité, aucun mouvement n'a lieu. Vous pouvez donc jouer le parcours entier.
- Passez une commande sur votre boutique et choisissez « Virement instantané » au paiement.
- Vous êtes redirigé vers la page de paiement Virevo. Vérifiez que le montant et la référence de commande sont les bons.
- Notez l'identifiant du paiement, puis déclenchez un encaissement fictif :
curl -X POST https://app.virevo.fr/v1/payments/{id}/simulate \
-H "Authorization: Bearer vrv_test_votre_cle"
Retournez dans votre boutique : la commande doit être passée en payée, et le stock décrémenté. Si c'est le cas, l'installation est terminée. Sinon, la suite est faite pour vous.
Passer en production
- Terminez la vérification d'identité et renseignez votre IBAN professionnel dans le tableau de bord.
- Créez une clé en mode Live, et collez-la dans le champ Clé API live de l'extension.
- Basculez le Mode de l'extension sur Live.
- Faites un vrai paiement d'un euro, depuis votre propre compte. C'est la seule vérification qui prouve quelque chose.
Une clé vrv_test_ laissée dans un réglage passé en Live
n'encaisse rien du tout. Le mode de l'extension et le mode de
la clé doivent correspondre. Depuis la version 0.6.0,
l'extension refuse une clé dont le préfixe contredit son champ, et
masque le moyen de paiement plutôt que de laisser un client s'y
engager pour rien.
Quand ça ne marche pas
Le client a payé, la commande reste en attente
Dans l'immense majorité des cas, c'est le webhook. Trois causes, dans cet ordre :
- L'URL n'a pas été enregistrée dans le tableau de bord, ou une faute de frappe s'y est glissée.
- Votre boutique n'est pas joignable depuis Internet : environnement local, site en maintenance, ou accès filtré par mot de passe. Un pare-feu ou un service anti-robots peut aussi bloquer nos appels ; il faut alors autoriser l'adresse du webhook.
- Le secret ne correspond pas. Si vous l'avez renouvelé dans le tableau de bord sans le recopier dans l'extension, chaque notification est rejetée. Le journal des envois, dans Développeurs, vous montre le refus.
« Signature invalide » dans le journal
Le secret n'est pas le bon, ou l'horloge de votre serveur dérive. La signature n'est acceptée que dans une fenêtre de cinq minutes, ce qui empêche qu'un appel capté soit rejoué plus tard. Vérifiez que votre serveur est synchronisé.
Une commande abandonnée, refusée ou expirée
Elle se ferme toute seule, et le stock réservé est libéré. Un paiement refusé par la banque du client passe la commande en « échoué », ce qui lui laisse la possibilité de réessayer. Une demande annulée ou expirée la passe en « annulé ».
Une commande déjà payée n'est jamais annulée par une de ces notifications, même si elle arrive en retard : c'est le cas qui compte le plus, et il est gardé explicitement.
Ce comportement arrive avec WooCommerce 0.7.0, PrestaShop 0.5.0 et Magento 0.4.0. En dessous, seul l'encaissement était traité et ces commandes restaient en attente : demandez-nous la mise à jour.
Un remboursement fait depuis Virevo
Sur WooCommerce, il crée la ligne de remboursement correspondante dans la commande. Un remboursement lancé depuis votre administration n'est pas compté deux fois.
Sur PrestaShop et Magento, il est tracé sur la commande sans créer d'avoir. C'est délibéré : sur PrestaShop, un avoir créé automatiquement renverrait un second remboursement à Virevo, en boucle. L'écriture comptable reste votre décision.
« Virement instantané » n'apparaît pas au checkout
C'est voulu : l'extension masque le moyen de paiement tant qu'il ne peut pas aboutir, plutôt que de le proposer et d'échouer après le clic. Trois cas le déclenchent.
- La clé du mode actif est vide. Mode Test sans clé de test, ou Mode Live sans clé live.
- La clé ne correspond pas au mode. Une clé
vrv_test_alors que le Mode est sur Live, ou l'inverse. - La boutique n'est pas en euros. Le virement instantané est un instrument de la zone euro.
Un bandeau dans l'administration vous dit lequel des trois s'applique. Il ne se ferme pas : il disparaît quand la situation est corrigée.
Un client ne peut pas payer
- Il est hors de la zone euro. Le virement instantané est européen : un client américain ou britannique ne peut pas régler ainsi.
- Le montant dépasse son plafond bancaire, souvent entre 5 000 € et 15 000 € par jour. Il le relève depuis son application bancaire, mais prévenez-le au-delà de quelques milliers d'euros.
Rien de tout cela
Écrivez à contact@virevo.fr avec le numéro de commande et l'heure approximative. Le journal des envois de webhook, côté tableau de bord, garde la trace de chaque tentative et de la réponse de votre serveur : on trouve vite.