Retour

VibeFox Flutterwave for OpenCart — Aide

Prérequis

OpenCart : 3.0.x (testé sur la version 3.0.5.0) ou 4.0.2 et ultérieur (testé sur 4.1.0.3).

PHP : 8.0 ou ultérieur.

Compte Flutterwave : vous avez besoin des clés secrètes de votre compte Flutterwave, dans le tableau de bord Flutterwave sous Settings, API keys : FLWSECK_TEST-… pour le mode test et FLWSECK-… pour le mode réel. Seules les clés secrètes sont utilisées. Les clés publiques et de chiffrement ne sont pas nécessaires. Vous configurez aussi un webhook avec un hachage secret de votre choix (voir Configuration).

Devises : la commande est toujours débitée dans la devise de la commande. L'extension ne limite pas elle-même les pays ni les devises ; Flutterwave affiche une erreur si votre compte ne prend pas en charge la devise. Vous pouvez limiter les endroits où Flutterwave est proposé avec Geo Zone et Total.

Clé de licence VibeFox : achetée sur vibefox.net. Une clé fonctionne sur un seul domaine.

Installation

Le téléchargement est un fichier zip unique contenant les paquets pour les deux versions d'OpenCart. Décompressez-le sur votre ordinateur. Il contient README.txt, le paquet OpenCart 3 wcp_flutterwave_payment-oc3-(version).ocmod.zip et le paquet OpenCart 4 wcp_flutterwave_payment.ocmod.zip. Installez uniquement le paquet correspondant à votre version d'OpenCart. La clé de licence est la même pour les deux versions.

OpenCart 3

1. Dans l'administration, allez dans Extensions > Installer, cliquez sur Upload et choisissez le fichier wcp_flutterwave_payment-oc3-(version).ocmod.zip. L'extension ne contient aucune modification OCMOD, donc Extensions > Modifications n'a pas besoin d'être actualisé. Au lieu de l'installateur, vous pouvez aussi copier le contenu du dossier upload de ce paquet dans le dossier racine de votre boutique.

2. Allez dans Extensions > Extensions et choisissez le type Payments. Repérez VibeFox Flutterwave Payment et cliquez sur Install (le bouton vert +). Votre utilisateur administrateur doit avoir le droit de modifier la liste des extensions de paiement.

3. Cliquez sur Edit (le bouton crayon) pour ouvrir la page de réglages. Collez votre clé de licence VibeFox dans License key, dans le bloc de licence en haut de la page, puis cliquez sur Activate (voir Clé de licence).

4. Saisissez vos clés secrètes, configurez le webhook dans le tableau de bord Flutterwave et saisissez le même hachage secret dans l'extension (voir Configuration).

5. Activez Enable/Disable et cliquez sur Save. Testez un paiement en mode test, puis activez Live mode.

OpenCart 4

1. Dans l'administration, allez dans Extensions > Installer, cliquez sur Upload et choisissez le fichier wcp_flutterwave_payment.ocmod.zip. Ne renommez pas le fichier : OpenCart 4 tire le code de l'extension du nom du fichier, et un paquet renommé ne fonctionne pas.

2. Le paquet apparaît dans la liste des extensions installées, sur la même page. Cliquez sur Install (le bouton vert +) à côté de lui.

3. Allez dans Extensions > Extensions et choisissez le type Payments. Repérez VibeFox Flutterwave Payment, cliquez sur Install (le bouton vert +), puis sur Edit (le bouton crayon).

4. Saisissez la clé de licence, les clés secrètes et le webhook comme aux étapes 3 à 5 pour OpenCart 3. La page des réglages et ses champs sont identiques dans les deux versions. Seule l'URL du webhook est différente (voir Webhook).

Une nouvelle installation démarre avec le mode de paiement désactivé et en mode test.

Configuration

Tous les réglages se trouvent sur la page de l'extension : Extensions > Extensions > Payments > VibeFox Flutterwave Payment > Edit. Les sections sont listées à gauche ; le bouton Save situé sous la liste enregistre toute la page. Au-dessus des réglages, la page affiche Live mode: real payments are accepted. ou Test mode: no real money is charged. Elle vous avertit lorsque la clé secrète du mode actuel est vide, lorsque le champ de la clé réelle contient une clé de test (FLWSECK_TEST-…) en mode réel, ou lorsque le champ de la clé de test contient une clé réelle (FLWSECK-…) en mode test ; le mode de paiement est alors masqué lors du paiement tant que le problème n'est pas corrigé. Elle vous avertit également lorsqu'aucun hachage secret de webhook n'est défini : les webhooks sont alors rejetés et les paiements ne sont confirmés que lorsque le client revient dans votre boutique. Sans le droit de modifier l'extension, la page affiche les réglages mais ne peut pas les enregistrer.

Lors de l'enregistrement, Title doit comporter de 1 à 128 caractères, Sort Order doit être vide ou être un nombre entier, Total doit être vide ou être un nombre égal ou supérieur à 0, et la zone géographique et les statuts de commande sélectionnés doivent exister. Sinon, rien n'est enregistré et la page indique ce qu'il faut corriger. Les problèmes de clés n'empêchent pas l'enregistrement.

Flutterwave

Enable/Disable : Enable Flutterwave Payment active ou désactive le mode de paiement. Par défaut : désactivé.

Title : le titre du mode de paiement que le client voit lors du paiement. C'est aussi le nom du mode de paiement enregistré dans la commande. Par défaut : Flutterwave. Obligatoire, jusqu'à 128 caractères.

Description : la description du mode de paiement affichée à l'étape Confirm Order, au-dessus du bouton de confirmation. Par défaut : Pay securely via Card, Bank Transfer, USSD, Mobile Money via Flutterwave.

Sort Order : la position de Flutterwave parmi les modes de paiement lors du paiement. Laissez vide ou saisissez un nombre entier.

Geo Zone : proposer Flutterwave uniquement pour les adresses de paiement de la zone géographique sélectionnée. Par défaut : All zones. Les zones géographiques se configurent dans System > Localisation > Geo Zones.

Total : le total du panier, dans la devise par défaut de la boutique, qu'une commande doit atteindre pour que Flutterwave soit proposé. Laissez vide pour proposer Flutterwave quel que soit le total.

Clés API

Copiez les clés secrètes depuis le tableau de bord Flutterwave, sous Settings, API keys (la section contient un lien). Le mode test et le mode réel ont des clés différentes.

Live mode : accepte de vrais paiements. Désactivez-le pour le mode test. Le mode test utilise la clé secrète de test et aucun argent réel n'est débité. Le mode réel utilise la clé secrète réelle. Par défaut : désactivé (mode test). Tant que le mode test est activé, les clients voient TEST MODE - no real payments will be processed. à l'étape Confirm Order.

Test Secret Key : votre clé secrète de test Flutterwave (FLWSECK_TEST-...).

Live Secret Key : votre clé secrète réelle Flutterwave (FLWSECK-...).

Les clés enregistrées et le hachage secret ne sont jamais réaffichés. Le champ reste vide et affiche Saved — leave empty to keep it. Saisissez une nouvelle valeur uniquement pour la modifier. Pour supprimer une valeur enregistrée, cochez Clear the saved value sous le champ et cliquez sur Save.

Webhook

Le webhook confirme les paiements même lorsque le client ne revient pas dans votre boutique. Dans le tableau de bord Flutterwave, sous Settings, Webhooks, saisissez l'URL affichée dans Webhook URL de cette section ainsi qu'un hachage secret de votre choix, en mode test comme en mode réel. Sur OpenCart 3, l'URL ressemble à https://your-store/index.php?route=extension/payment/wcp_flutterwave_payment/webhook, sur OpenCart 4 à https://your-store/index.php?route=extension/wcp_flutterwave_payment/payment/wcp_flutterwave_payment.webhook. Elle est construite à partir de l'adresse de votre boutique. Elle doit être accessible depuis Internet en HTTPS. Copiez l'URL exactement telle qu'elle est affichée dans les réglages. L'extension réagit à cet événement :

charge.completed : un débit a été effectué. L'extension relit la transaction auprès de Flutterwave avec la clé secrète du mode dans lequel le paiement a été effectué, et applique le résultat.

Les autres événements sont ignorés.

Secret Hash : le hachage secret du webhook. Il doit correspondre à la valeur des réglages de webhook de votre tableau de bord Flutterwave. Flutterwave l'envoie avec chaque webhook, et la même valeur est utilisée pour le mode test et le mode réel. Les webhooks sans hachage secret valide sont rejetés. Sans webhook, un paiement n'est confirmé que lorsque le client revient dans votre boutique.

Paiement

Payment Options : modes de paiement séparés par des virgules à afficher sur la page Flutterwave, par exemple card, banktransfer, ussd, mobilemoney. Laissez vide pour afficher tous les modes activés sur votre compte. La liste est nettoyée à l'enregistrement (minuscules, sans doublons).

Autocomplete Orders : les commandes payées reçoivent le Complete Order Status au lieu du Paid Order Status. Par défaut : désactivé.

Commandes

OpenCart crée la commande à l'étape Confirm Order sans statut (une commande manquante). Elle ne reçoit un statut qu'après que Flutterwave a confirmé le paiement via l'API. Chaque champ ci-dessous énumère vos statuts de commande OpenCart.

Paid Order Status : le statut après un paiement confirmé. Par défaut : En cours de traitement.

Complete Order Status : le statut après un paiement confirmé lorsque Autocomplete Orders est activé. Par défaut : Terminée.

Awaiting Payment Status : le client est revenu alors que le paiement est encore en attente chez Flutterwave (virement bancaire, USSD, mobile money). La commande conserve ce statut jusqu'à ce que le webhook confirme le paiement. Par défaut : En attente.

On Hold (Review) Status : les paiements dont le montant ou la devise ne correspondent pas à la commande, ou qui arrivent après l'annulation de la commande, reçoivent ce statut et une note qui en explique la raison. Par défaut : En attente, car OpenCart n'a pas de statut On hold. Vous pouvez créer votre propre statut dans System > Localisation > Order Statuses et le sélectionner ici.

Failed Status : un paiement en attente d'une commande en attente a échoué chez Flutterwave. Par défaut : Échec.

Refunded Status : attribué après le remboursement intégral du paiement depuis la page de la commande. Par défaut : Remboursé.

Avancé

Debug log : consigne les événements de l'API Flutterwave à des fins de débogage dans flwv_debug.log.php, dans le dossier des journaux d'OpenCart (storage/logs). Le fichier ne peut pas être ouvert depuis le web et, à 5 Mo, il est déplacé vers flwv_debug.old.log.php. Les erreurs et les avertissements sont toujours journalisés. Les clés, le hachage secret et les données clients ne sont jamais journalisés. Par défaut : désactivé.

Log : affiche la taille et les dernières entrées du journal. Cliquez sur Clear log pour le vider.

Delete data on uninstall : supprime les réglages et les journaux de l'extension lors de sa désinstallation. Les données de paiement enregistrées sur les commandes sont toujours conservées. Par défaut : désactivé.

Import / Export

Export : Download JSON enregistre les réglages dans un fichier JSON. Les clés secrètes et le hachage secret ne sont pas exportés.

Import : collez un JSON exporté précédemment et cliquez sur Import pour restaurer les réglages. Les clés enregistrées et le hachage secret sont conservés.

Paiement

À l'étape Payment Method, le client choisit le mode de paiement (par défaut Flutterwave). À l'étape Confirm Order, le client voit votre description et la note You will be redirected to the Flutterwave checkout page. OpenCart crée la commande à cette étape, toujours sans statut. Sur OpenCart 4, le client choisit le mode de paiement avec le bouton Choose du bloc du mode de paiement, dans la fenêtre Payment method options, et clique sur Confirm Order en bas de la page de paiement. Lorsque le client clique sur Confirm Order, l'extension crée un paiement Flutterwave pour le total de la commande dans la devise de la commande, avec l'adresse e-mail du client, le téléphone et le nom de l'adresse de paiement, le nom et le logo de votre boutique, et Payment for order suivi du numéro de commande, puis envoie le client sur la page de paiement de Flutterwave. Une adresse e-mail valide est requise. Là, le client paie avec l'un des modes activés sur votre compte (ou ceux indiqués dans Payment Options).

Après le paiement, le client revient dans votre boutique. La commande n'est marquée comme payée qu'une fois Flutterwave l'a confirmée : par le webhook ou par une vérification côté serveur lors du retour du client. La commande reçoit alors son statut de la façon habituelle d'OpenCart, avec les e-mails de commande habituels et la mise à jour du stock, et le client voit la page de confirmation de commande d'OpenCart. Si le paiement est encore en attente, par exemple un paiement par virement bancaire, USSD ou mobile money, la commande reçoit Awaiting Payment Status et la page affiche aussi Your payment is being confirmed by Flutterwave. You will receive an e-mail as soon as it is confirmed. Lorsque Flutterwave confirme le paiement, la commande passe au statut payé et le client est informé par e-mail. Si la commande a été mise en attente de vérification, par exemple parce que le montant payé ne correspond pas à la commande, la page affiche Your payment was received and your order is being reviewed. We will contact you if anything is needed. Si un paiement en attente échoue plus tard et que le client revient sur la commande, la page affiche Your Flutterwave payment was not completed. Please contact us about this order.

Si Flutterwave est injoignable lorsque le client revient, une page Payment confirmation indique Your payment is being confirmed by Flutterwave. Your order will be confirmed as soon as Flutterwave confirms it — please do not pay again. avec les boutons Check again et Back to checkout. Le webhook définit le statut de la commande dès son arrivée.

Si le paiement est refusé, le client revient au paiement avec le message Your payment was declined. You can try again or choose another payment method. Si le client annule sur la page Flutterwave, le message est Payment was cancelled. You can try again or choose another payment method. Si le paiement n'a pas abouti, le message est The payment was not completed. You can try again or choose another payment method. Si le paiement n'a pas pu être vérifié, le message est Payment verification failed. Please contact support. La commande reste sans statut et le panier est conservé, de sorte que le client peut payer à nouveau. Sur OpenCart 4, ces messages s'affichent au-dessus de la page de paiement.

OpenCart 3 crée une nouvelle commande chaque fois que l'étape Confirm Order s'affiche ; OpenCart 4 met à jour la commande du paiement, de sorte qu'une nouvelle tentative règle la même commande. Chaque tentative reçoit sa propre référence. Avant un nouveau paiement, les paiements ouverts et en attente de cette commande et des autres commandes du même panier des dernières 24 heures sont vérifiés auprès de Flutterwave. Si l'un d'eux est payé, il confirme sa commande et le client est dirigé vers la page de succès au lieu de payer à nouveau. Si une autre commande du même panier a déjà été payée avec Flutterwave, aucun nouveau paiement n'est lancé non plus. Un ancien lien de paiement qui est payé plus tard reste accepté. Si le même panier est payé deux fois, par exemple dans deux onglets du navigateur, seul le premier paiement attribue un statut à sa commande : l'autre commande reste sans statut, et la commande payée reçoit une note vous demandant de rembourser le second paiement dans le tableau de bord Flutterwave.

OpenCart 4 conserve la commande dans le paiement jusqu'à l'affichage de la page de succès. Si cette commande a été fermée sans paiement entre-temps (par exemple parce que son paiement en attente a échoué ou que vous l'avez annulée), le client est renvoyé au paiement avec le message concernant le paiement refusé, et le Confirm Order suivant règle une nouvelle commande du panier. Si vous avez fermé la commande après son paiement, le message est This order can no longer be paid (it was closed by the store). Please confirm your order again. Si cette commande est déjà payée mais que le panier a changé depuis, y compris une nouvelle quantité, le message est Your previous order is already paid. Please confirm the order again: the cart will be paid with a new order. Une commande payée n'est jamais affichée comme payée pour un panier différent.

Si Flutterwave ne peut pas lancer le paiement, le client reste à l'étape Confirm Order avec un bref message, par exemple Flutterwave is temporarily unavailable. Please try again in a moment or choose another payment method. La raison technique est écrite dans le journal.

Le webhook et l'URL de retour fonctionnent aussi lorsque la boutique est en mode maintenance, car OpenCart 3 laisse passer les requêtes des extensions de paiement et l'extension ajoute pour elles une action de démarrage sur OpenCart 4.

L'extension ne gère que les paiements uniques. Elle n'a pas de paiement intégré ou en fenêtre modale sur votre site, ni cartes enregistrées, abonnements, paiements fractionnés ou plans de paiement. Les liens de paiement hébergés ne peuvent pas être annulés via l'API Flutterwave ; un ancien lien peut donc encore être payé.

Commandes et remboursements

Statuts de commande

Sans statut (missing order) : le client a été envoyé vers Flutterwave et n'a pas payé, le paiement a été refusé ou annulé, ou Flutterwave n'a pas encore confirmé le paiement. Dans Sales > Orders, ces commandes ne s'affichent qu'avec le filtre Order Status réglé sur Missing Orders.

Paid Order Status (par défaut En cours de traitement) ou Complete Order Status (par défaut Terminée) : le paiement a été confirmé. Complete Order Status est utilisé lorsque Autocomplete Orders est activé. Une note affiche le montant, le mode de paiement, la référence Flutterwave, la transaction et le mode.

Awaiting Payment Status (par défaut En attente) : le client est revenu alors que le paiement était encore en attente chez Flutterwave. La commande passe au statut payé lorsque Flutterwave confirme le paiement.

On Hold (Review) Status (par défaut En attente) : le montant ou la devise vérifié ne correspondait pas à la commande, ou le paiement est arrivé après que la commande a reçu un statut sans paiement, par exemple Annulée. Le montant et la devise réellement payés sont enregistrés, et la note l'explique. Traitez la commande ou remboursez le paiement. Si la commande avait déjà un autre statut de traitement, seule une note est ajoutée.

Failed Status (par défaut Échec) : Flutterwave a signalé que la dernière tentative de paiement d'une commande en attente a échoué ou été annulée. La note indique la raison. Les tentatives plus anciennes et les commandes payées ne sont pas modifiées.

Refunded Status (par défaut Remboursé) : le paiement a été intégralement remboursé par l'intermédiaire de l'extension.

Si un second paiement est reçu pour une commande déjà payée, la commande n'est pas modifiée. Une note vous demande de rembourser le doublon dans le tableau de bord Flutterwave.

Les notes sont des entrées de l'History de la commande que le client ne voit pas.

Onglet VibeFox Flutterwave Payment

Dans Sales > Orders, ouvrez une commande payée avec Flutterwave. En bas de la page de la commande, à côté de History et de Additional, l'onglet VibeFox Flutterwave Payment affiche la Transaction reference, le Mode (Test ou Live), le Status du paiement, la Transaction ID, la Flutterwave reference, le Payment type, les montants Paid / refunded, le formulaire de remboursement, l'historique des remboursements et les Flutterwave notes de la commande. L'onglet est affiché aux utilisateurs qui ont accès à l'extension.

Remboursements

Dans l'onglet, saisissez le Amount (le montant non encore remboursé est prérempli), facultativement un Reason (optional), puis cliquez sur Refund via Flutterwave. Confirmez la question Refund this amount through Flutterwave? This cannot be undone. Les remboursements totaux et partiels sont pris en charge. Vous devez avoir le droit de modifier l'extension (réglé dans System > Users > User Groups). Les remboursements sont effectués dans le montant et la devise débités par Flutterwave ; après un écart de montant ou de devise, vous pouvez donc rembourser jusqu'à ce que le client a réellement payé, et non le total de la commande. Le remboursement est envoyé avec la clé secrète du mode dans lequel le paiement a été effectué (test ou réel), cette clé doit donc être renseignée. Si Flutterwave refuse le remboursement, l'onglet affiche l'erreur et aucun remboursement n'est enregistré. Un remboursement réussi est ajouté à l'historique des remboursements et aux notes, avec l'ID du remboursement et son statut (terminé, ou lancé avec le statut indiqué par Flutterwave). Un remboursement total attribue à la commande le Refunded Status sans notifier le client et sans remettre les produits en stock, comme pour un changement de statut manuel. Un remboursement partiel ne modifie pas le statut. Les remboursements sont disponibles dès que Flutterwave a confirmé le paiement.

Les retours de produits dans Sales > Returns ne renvoient pas d'argent via Flutterwave. Les remboursements effectués dans le tableau de bord Flutterwave ne sont pas resynchronisés avec OpenCart. Mettez à jour le statut de la commande manuellement si nécessaire.

Clé de licence

L'extension fonctionne avec une clé de licence VibeFox obtenue sur vibefox.net. Le bloc de licence License — VibeFox Flutterwave Payment est le premier bloc de Extensions > Extensions > Payments > VibeFox Flutterwave Payment > Edit, au-dessus des réglages. Collez la clé dans License key et cliquez sur Activate. Ensuite, le bloc affiche la clé masquée, le statut (par exemple la date jusqu'à laquelle la licence est active et votre domaine) et les boutons Check now pour vérifier à nouveau le statut, Change key pour saisir une autre clé et Remove key pour retirer la clé de cette boutique. En dessous figurent la ligne Product: opencart-payment-flutterwave et le lien Manage licenses and domains in your account, qui ouvre votre compte vibefox.net. Seuls les utilisateurs administrateurs disposant du droit Modify sur l'extension peuvent modifier la clé. Les textes du bloc suivent la langue de l'administration (l'anglais et le russe sont inclus).

Si la clé n'est pas acceptée, le bloc indique la raison, par exemple Key not found, This key belongs to another product, Domain limit reached ou License expired on suivi d'une date. Après un changement d'adresse de la boutique, ou après avoir libéré un emplacement de domaine dans votre compte, cliquez sur Check now. Si le serveur de licences est injoignable, l'extension continue de fonctionner avec le dernier statut connu.

Une clé fonctionne sur un seul domaine : l'adresse de la boutique issue de la configuration d'OpenCart. Retirer la clé de la boutique ne libère pas son emplacement de domaine. Libérez-le dans votre compte vibefox.net.

Sans clé active, Flutterwave n'est pas affiché aux clients lors du paiement. Si un paiement est tout de même lancé, le client voit This payment method is not available. Please choose another one. Un utilisateur administrateur connecté à l'administration dans le même navigateur voit toujours le mode de paiement dans la boutique, marqué (unlicensed — visible to admins only), afin que vous puissiez configurer et tester l'extension avant d'acheter une clé. Sur OpenCart 4, cet aperçu n'est pas disponible : la boutique ne voit pas la connexion à l'administration, si bien que sans clé active le mode de paiement est masqué pour tout le monde. Après avoir ouvert une fois la page Edit, un rappel apparaît sur le Dashboard de l'administration. Fermez-le avec × pour le masquer pendant 7 jours. Les commandes existantes ne sont pas touchées : les paiements déjà lancés sont toujours confirmés, et les remboursements fonctionnent.

Lorsqu'une licence expire, l'extension continue de fonctionner, mais les mises à jour et le support nécessitent un renouvellement. Le statut est vérifié à nouveau automatiquement lorsque vous ouvrez le Dashboard de l'administration ou la page Edit : une fois par jour pendant les 14 premiers jours après la saisie de la clé, puis une fois par semaine. Aucune tâche cron n'est nécessaire. La désinstallation de l'extension supprime toujours la clé de licence et le statut de licence.

Dépannage

Flutterwave n'apparaît pas lors du paiement : vérifiez que la licence est active, que Enable/Disable est activé et que la clé secrète du mode actuel est renseignée et correspond au mode : une clé de test (FLWSECK_TEST-…) en mode test, une clé réelle (FLWSECK-…) en mode réel. La page des réglages affiche un avertissement dans le cas contraire. Vérifiez aussi que l'adresse de paiement se trouve dans la Geo Zone sélectionnée et que la commande atteint le Total défini dans les réglages.

Le paiement a abouti, mais la commande reste sans statut : le webhook ne fonctionne pas. Dans le tableau de bord Flutterwave, vérifiez que l'URL du webhook est exactement celle affichée dans Webhook URL, dans le mode que vous utilisez (test ou réel), et que son hachage secret est identique à Secret Hash dans l'extension. Les virements bancaires, paiements USSD et mobile money en attente restent en attente jusqu'à ce que Flutterwave les confirme. La commande reçoit aussi son statut lorsque le client revient dans la boutique après le paiement. Activez Debug log et consultez le champ Log sur la page de l'extension.

Le webhook répond Invalid hash ou Secret hash not configured : le hachage secret du tableau de bord Flutterwave diffère de celui de l'extension, ou l'extension n'en a aucun. Saisissez la même valeur aux deux endroits.

Le webhook répond Verification failed, Busy, retry later ou Order could not be updated, retry later : Flutterwave n'a pas pu être contacté pour vérifier le paiement, la transaction n'est pas encore visible, la commande était en cours de traitement par une autre requête, ou son statut n'a pas pu être défini. Flutterwave renouvelle le webhook. Le journal indique la raison.

L'URL du webhook affiche Empty body dans le navigateur : c'est normal. L'URL n'accepte que les webhooks de Flutterwave.

Le client voit Payment gateway is not properly configured : la clé secrète du mode actuel est absente ou appartient à l'autre mode.

Le client voit This payment method is not available : la session de paiement ne correspond plus à la commande, ou le mode de paiement a été désactivé entre-temps. Le client recharge la page de paiement.

Le client voit We could not match this payment to an order : le lien de retour n'appartient pas à un paiement de cette commande. Si le client a été débité, retrouvez le paiement dans le tableau de bord Flutterwave.

Flutterwave affiche une erreur sur sa page, ou le client voit Flutterwave could not start the payment : votre compte Flutterwave ne prend peut-être pas en charge la devise de la commande ou les options de paiement sélectionnées.

La commande est en statut en attente de vérification après le paiement : lisez les notes dans l'onglet VibeFox Flutterwave Payment (voir Statuts de commande), puis traitez la commande ou remboursez le paiement.

Pas de formulaire de remboursement dans l'onglet : l'onglet indique la raison : le paiement n'est pas encore confirmé, il est intégralement remboursé, votre groupe d'utilisateurs n'a pas le droit de modifier l'extension, ou la clé secrète du mode du paiement n'est pas configurée.

Le remboursement échoue avec un message concernant le mode : le paiement a été effectué en mode test ou réel, et la clé secrète de ce mode n'est pas configurée. Saisissez-la et réessayez.

Le remboursement répond Another operation on this payment is running : un autre remboursement de la même commande était en cours d'envoi à ce moment-là. Patientez un instant, vérifiez l'historique des remboursements et réessayez si nécessaire.

Pour les développeurs, l'extension déclenche les événements OpenCart flwv_payment_request (données envoyées à Flutterwave) et flwv_currency_decimals (précision de la devise).

Désinstallation

Allez dans Extensions > Extensions, choisissez le type Payments et cliquez sur Uninstall (le bouton rouge −) à côté de VibeFox Flutterwave Payment. La clé de licence et le statut de licence de cette extension sont toujours supprimés. OpenCart supprime toujours ses propres réglages de l'extension : Enable/Disable, Sort Order, Geo Zone, Total et les statuts de commande de la section Orders, qui reviennent à leurs valeurs par défaut lors d'une réinstallation. L'événement OpenCart de l'extension est également supprimé (sur OpenCart 4, ses événements et son action de démarrage, qui laisse passer le webhook et l'URL de retour en mode maintenance). Si Delete data on uninstall est activé, les autres réglages (titre, description, mode, clés, hachage secret, options de paiement, autocomplétion, interrupteur du journal de débogage) et le journal sont supprimés. S'il est désactivé, ils sont conservés pour une réinstallation ultérieure. Les enregistrements de paiements et de remboursements Flutterwave sont toujours conservés, de sorte que les commandes payées auparavant peuvent encore être remboursées après une réinstallation. Les commandes existantes conservent leurs notes de paiement.

Sur OpenCart 4, pour supprimer aussi les fichiers de l'extension, allez dans Extensions > Installer après la désinstallation et cliquez sur Uninstall (le bouton orange −) à côté de VibeFox Flutterwave Payment dans la liste des extensions installées, puis sur Delete (le bouton corbeille rouge) pour supprimer le paquet téléversé.

Flutterwave est une marque de son propriétaire respectif. Cette extension n'est ni affiliée à Flutterwave ni approuvée par Flutterwave.