VibeFox Cashfree for OpenCart — Aide
Prérequis
OpenCart : 3.0.x (testé avec 3.0.5.0) ou 4.0.2 et ultérieur (testé avec 4.1.0.3).
PHP : 8.0 ou ultérieur.
HTTPS : Cashfree n'envoie les webhooks qu'à des adresses https://. Sans HTTPS, les paiements sont tout de même confirmés lorsque le client revient dans la boutique, mais activez HTTPS avant la mise en production.
Compte Cashfree : vous avez besoin de l'App ID et de la Secret Key de votre compte Cashfree, séparément pour l'environnement de test (sandbox) et pour l'environnement de production, ainsi que d'un webhook dans le Merchant Dashboard de Cashfree (voir Configuration). La Secret Key sert aussi à vérifier les webhooks ; il n'existe donc pas de clé secrète distincte pour les webhooks. La devise de la commande doit être activée pour votre compte Cashfree.
Clé de licence VibeFox : achetée sur vibefox.net. Une clé fonctionne sur un seul domaine.
Installation
Le téléchargement est un unique fichier zip contenant les paquets pour les deux versions d'OpenCart. Décompressez-le sur votre ordinateur. Il contient README.txt, le paquet OpenCart 3 wcp_cashfree_payment-oc3-(version).ocmod.zip et le paquet OpenCart 4 wcp_cashfree_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_cashfree_payment-oc3-(version).ocmod.zip. L'extension ne comporte 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 Cashfree Payments 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 des 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 le Sandbox App ID et la Sandbox Secret Key, ajoutez le webhook dans le Merchant Dashboard de Cashfree (voir Configuration), activez Enable/Disable, cliquez sur Save et testez un paiement.
5. Lorsque tout est prêt, saisissez l'App ID et la Secret Key de production, désactivez Sandbox Mode et cliquez sur Save.
OpenCart 4
1. Dans l'administration, allez dans Extensions > Installer, cliquez sur Upload et choisissez le fichier wcp_cashfree_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 celui-ci.
3. Allez dans Extensions > Extensions et choisissez le type Payments. Repérez VibeFox Cashfree Payments, cliquez sur Install (le bouton vert +), puis sur Edit (le bouton crayon).
4. Saisissez la clé de licence, les clés Cashfree et le webhook comme aux étapes 3 à 5 pour OpenCart 3. La page de réglages et ses champs sont les mêmes dans les deux versions. Seule l'URL du webhook diffère (voir Webhook).
Une nouvelle installation démarre avec le mode de paiement désactivé et le mode sandbox activé.
Configuration
Tous les réglages se trouvent sur la page de l'extension : Extensions > Extensions > Payments > VibeFox Cashfree Payments > Edit. Les sections sont listées à gauche ; le bouton Save situé sous la liste enregistre la page entière. Au-dessus des réglages, la page explique que la commande ne reçoit un statut qu'une fois Cashfree ayant confirmé le paiement. Lorsque le mode de paiement est activé, la page vous avertit si les clés API du mode sélectionné sont absentes (le mode de paiement est alors masqué lors du paiement) et affiche Sandbox mode is on: customers see a test checkout and no real money is charged. tant que le mode sandbox est activé. Sans le droit de modifier l'extension, la page affiche les réglages mais ne peut pas les enregistrer.
À l'enregistrement, Title ne doit pas être vide (128 caractères au maximum), API Version doit être l'une des versions listées, Sort Order doit être un nombre entier, Total doit être un nombre égal ou supérieur à 0, et la zone géographique ainsi que les statuts de commande doivent exister ; sinon, rien n'est enregistré. Lorsque vous enregistrez un mode de paiement activé sans les clés du mode sélectionné, les réglages sont enregistrés avec un avertissement indiquant qu'il reste masqué lors du paiement tant qu'elles ne sont pas saisies.
Cashfree Payments
Enable/Disable : Enable Cashfree Payments active ou désactive le mode de paiement. Par défaut : désactivé.
Title : le nom du mode de paiement que les clients voient lors du paiement. C'est aussi le nom du mode de paiement enregistré dans la commande. Par défaut : Cashfree Payments. Obligatoire.
Description : le texte affiché au client à l'étape Confirm Order, au-dessus du bouton de confirmation. Par défaut : Pay securely via Card, UPI, Net Banking, Wallet via Cashfree.
Sort Order : la position de Cashfree parmi les modes de paiement lors du paiement. Laissez le champ vide ou saisissez un nombre entier.
Geo Zone : proposer Cashfree uniquement pour les adresses de paiement situées dans 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 montant du panier, dans la devise par défaut de la boutique, qu'une commande doit atteindre pour que Cashfree soit proposé. Laissez le champ vide pour proposer Cashfree quel que soit le montant. Les montants inférieurs au minimum Cashfree de la devise (1 unité ; 0,01 ou 0,1 pour les devises à trois décimales) ne sont jamais proposés.
Mode et clés API
Récupérez votre App ID et votre Secret Key dans le Merchant Dashboard de Cashfree, sous Developers > API Keys (la page contient des liens vers cette section). Les clés de test et de production sont différentes.
Sandbox Mode : utilise le sandbox de Cashfree pour les tests. Aucun argent réel n'est débité, et l'étape Confirm Order ainsi que la page de paiement affichent SANDBOX MODE - no real payments will be processed. Par défaut : activé. Désactivez-le pour les paiements réels.
Sandbox App ID : l'App ID de votre environnement de test Cashfree.
Sandbox Secret Key : la Secret Key de votre environnement de test Cashfree.
App ID : l'App ID de votre environnement de production Cashfree.
Secret Key : la Secret Key de votre environnement de production Cashfree.
Les Secret Keys enregistrées ne sont plus jamais affichées. Le champ reste vide et indique Enregistrée — laisser vide pour la conserver. Ne saisissez une nouvelle valeur que pour la modifier. Pour supprimer une clé enregistrée, cochez Clear the saved value on save sous le champ et cliquez sur Save.
Les paiements conservent l'environnement dans lequel ils ont été créés. Leurs webhooks sont vérifiés, leur statut est contrôlé et leurs remboursements sont envoyés avec les clés de cet environnement ; gardez donc les clés sandbox renseignées tant que les paiements sandbox ne sont pas réglés après le passage en production.
Webhook
Le webhook indique à votre boutique qu'un paiement a été effectué, a échoué ou a été remboursé. Dans le Merchant Dashboard de Cashfree, allez dans Developers > Webhooks et ajoutez l'URL affichée dans Webhook URL dans cette section, avec les événements Payment et Refund. Sur OpenCart 3, elle ressemble à https://your-store/index.php?route=extension/payment/wcp_cashfree_payment/webhook, et sur OpenCart 4 à https://your-store/index.php?route=extension/wcp_cashfree_payment/payment/wcp_cashfree_payment.webhook. Elle est construite à partir de l'adresse de la vitrine de votre installation OpenCart. Copiez l'URL exactement telle qu'affichée dans les réglages. Sur une boutique en HTTPS, l'extension transmet aussi cette URL à Cashfree avec chaque paiement. Si votre boutique n'utilise pas HTTPS, cette section affiche un avertissement.
L'extension gère ces événements (ils sont aussi listés dans cette section) :
Cashfree signe chaque webhook avec votre Secret Key. Les webhooks sans signature valide sont rejetés. Un webhook doit être signé avec la Secret Key de l'environnement dans lequel le paiement a été effectué : une clé sandbox ne confirme donc jamais un paiement réel. Les webhooks signés concernant des paiements non lancés par cette boutique (par exemple une autre boutique sur le même compte Cashfree) sont acquittés et ignorés. Sans webhook, une commande n'est confirmée que lorsque le client revient dans la boutique après avoir payé. Si le client ferme son navigateur après avoir payé, seul le webhook (ou la nouvelle tentative de paiement du même panier) peut confirmer la commande.
Commandes
OpenCart crée la commande à l'étape Confirm Order sans statut (une commande manquante). La commande ne reçoit un statut qu'une fois Cashfree ayant confirmé le paiement. Un paiement échoué ou abandonné laisse la commande sans statut, et le panier est conservé. Chaque champ ci-dessous liste vos statuts de commande OpenCart.
Order Status After Payment : le statut attribué une fois le paiement confirmé et le montant et la devise concordants. Par défaut : En traitement.
On Hold (Review) Status : Cashfree a signalé un montant ou une devise payés différents du total de la commande. Une note indique le montant attendu et le montant reçu. Par défaut : En attente, car OpenCart n'a pas de statut En suspens. Vous pouvez créer votre propre statut dans System > Localisation > Order Statuses et le sélectionner ici.
Refunded Status : attribué une fois le paiement entièrement remboursé depuis la page de la commande. Par défaut : Remboursé.
Avancé
API Version : la version de l'API Cashfree à utiliser.
Order ID prefix : les identifiants de commande Cashfree sont construits à partir de préfixe + identifiant de la commande OpenCart ; une nouvelle tentative pour la même commande reçoit un numéro à la fin (par exemple 123-2). Laissez le champ vide pour utiliser le préfixe automatique de cette boutique, indiqué dans la description du champ (OC, quatre lettres dérivées de l'adresse de la boutique, suivies d'un tiret). Utilisez un préfixe différent pour chaque boutique connectée au même compte Cashfree. Lettres, chiffres, « _ » et « - » uniquement, jusqu'à 20 caractères. Les autres caractères sont supprimés à l'enregistrement, avec un avertissement.
Debug log : les erreurs sont toujours enregistrées. Lorsqu'il est activé, les appels à l'API Cashfree et les webhooks sont aussi écrits dans cashfree_p_debug.log.php, dans le dossier des journaux d'OpenCart (storage/logs). Le fichier ne peut pas être ouvert depuis le web, et à partir de 5 Mo il est archivé et remplacé par un nouveau fichier. Les clés et les données clients ne sont jamais enregistrées. 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 : lorsqu'elle est activée, la désinstallation de l'extension supprime les réglages Cashfree et le journal de l'extension. Les commandes ainsi que leurs transactions et remboursements Cashfree sont toujours conservés. Par défaut : désactivé.
Import / Export
Export : Download JSON enregistre les réglages dans un fichier JSON. Les Secret Keys ne sont pas exportées.
Import : collez un JSON exporté précédemment et cliquez sur Import pour restaurer les réglages. Les Secret Keys enregistrées sont conservées.
Paiement
À l'étape Payment Method, le client choisit le mode de paiement (par défaut Cashfree Payments). À l'étape Confirm Order, le client voit votre description et la mention Vous serez redirigé vers la page de paiement sécurisée de Cashfree (cartes, UPI, banque en ligne, portefeuilles). OpenCart crée la commande à cette étape, toujours sans statut. Lorsque le client clique sur Confirm Order, l'extension crée une commande Cashfree pour le total de la commande dans la devise de la commande et ouvre une page Cashfree payment qui affiche Redirection vers Cashfree pour le paiement... et charge la page de paiement Cashfree. Si elle ne s'ouvre pas d'elle-même, le client peut cliquer sur Pay Now. Sur la page Cashfree, le client paie avec n'importe quel mode activé dans votre compte Cashfree, par exemple carte, UPI, banque en ligne ou portefeuille. L'e-mail et le numéro de téléphone du client sont transmis à Cashfree. Sur OpenCart 4, le client choisit le mode de paiement avec le bouton Choose du bloc des modes de paiement, dans la fenêtre Payment method options, puis clique sur Confirm Order en bas de la page de paiement. OpenCart 4 ne demande pas de numéro de téléphone par défaut : si la commande n'en a pas, le bloc de confirmation affiche un champ Phone facultatif (Facultatif : le numéro de téléphone du payeur pour Cashfree (UPI, OTP).). Un format incorrect affiche Veuillez saisir un numéro de téléphone valide (10 chiffres, ou + et l'indicatif du pays) ou laisser le champ vide. Le numéro est mémorisé pour la tentative suivante.
Après le paiement, le client revient dans votre boutique. La commande n'est marquée comme payée que lorsque Cashfree la confirme : par le webhook signé ou par une requête serveur à Cashfree lorsque le client revient. 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 succès de la commande OpenCart. Le retour fonctionne aussi dans un autre navigateur, par exemple lorsque le client revient d'une application UPI. Si la banque n'a pas encore confirmé le paiement, une page Payment confirmation affiche Your payment is being processed by the bank. We will update the order as soon as Cashfree confirms it — please do not pay again. et un bouton Check again ; le webhook attribue le statut de la commande dès que la banque confirme le paiement. Sur OpenCart 4, le navigateur n'envoie pas la session de la boutique lorsque Cashfree renvoie le client ; l'extension affiche donc d'abord une courte page qui rouvre la même adresse de retour depuis votre boutique : le client conserve son panier et sa connexion.
Si le paiement échoue ou si le client quitte la page Cashfree sans payer, le client revient au paiement avec Le paiement Cashfree n'a pas abouti. Veuillez réessayer ou choisir un autre mode de paiement. Sur OpenCart 4, les messages du paiement s'affichent au-dessus de la page de paiement. La commande reste sans statut et le panier est conservé. OpenCart 3 crée une nouvelle commande à chaque affichage de l'étape Confirm Order ; OpenCart 4 conserve une seule commande pour le paiement et la met à jour, de sorte que le client paie à nouveau la même commande. Un paiement Cashfree encore ouvert pour la même commande est réutilisé lorsque le montant n'a pas changé et qu'il reste plus de cinq minutes ; sinon, l'ancienne commande Cashfree est fermée et une nouvelle est créée. Les paiements Cashfree encore ouverts des commandes précédentes du même panier sont aussi fermés, afin que le panier ne puisse pas être payé deux fois. Si le panier avait déjà été payé chez Cashfree sans être enregistré, la tentative suivante confirme ce paiement au lieu de débiter à nouveau. Un panier déjà payé par une autre commande n'est pas débité à nouveau : le client est dirigé vers la page de succès. Si le même panier est tout de même payé deux fois (par exemple dans deux onglets du navigateur en même temps), la seconde commande reste sans statut et la commande payée reçoit une note indiquant que le client a peut-être été débité deux fois, afin que vous puissiez la rembourser dans le tableau de bord Cashfree.
Sur OpenCart 4, la commande reste dans le paiement jusqu'à l'affichage de la page de succès. Si cette commande a été fermée entre-temps (par exemple annulée) et que Cashfree n'a encaissé aucun montant pour elle, le client est renvoyé au paiement avec Le paiement Cashfree n'a pas abouti. Veuillez réessayer ou choisir un autre mode de paiement., et le Confirm Order suivant paie une nouvelle commande du panier. Si la commande a déjà un statut et que le panier a changé depuis (autres produits ou quantités), le client est renvoyé au paiement avec Votre commande précédente a déjà été passée. Veuillez confirmer à nouveau la commande : le panier actuel sera payé par une nouvelle commande.
Si Cashfree ne peut pas lancer le paiement, le client reste à l'étape Confirm Order avec Nous n'avons pas pu lancer le paiement Cashfree. Veuillez réessayer ou choisir un autre mode de paiement. au-dessus du bouton. La raison technique est écrite dans le journal. Un total de commande inférieur au minimum Cashfree (1 unité de la devise ; 0,01 pour les devises à trois décimales comme le KWD, et 0,1 pour le TND) ne peut pas être payé avec Cashfree, et le mode de paiement n'est pas affiché pour cette commande.
Le webhook fonctionne aussi lorsque la boutique est en mode maintenance : OpenCart 3 laisse passer les requêtes des extensions de paiement, et sur OpenCart 4 l'extension ajoute une action de démarrage qui laisse passer le webhook et le retour du client.
L'extension accepte uniquement les paiements uniques sur la page de paiement Cashfree. Elle ne gère ni cartes enregistrées, ni abonnements ou paiements récurrents, ni autorisation et capture séparées, ni widget d'offres Cashfree, ni paiement à la livraison via Cashfree ou liens de paiement, et ne fait aucune conversion de devise : la commande est débitée dans la devise de la commande.
Commandes et remboursements
Statuts de commande
Aucun statut (commande manquante) : le client a été envoyé vers Cashfree et n'a pas payé, le paiement a échoué, ou le paiement est encore en attente auprès de la banque. Dans Sales > Orders, ces commandes ne sont affichées qu'avec le filtre Order Status réglé sur Missing Orders.
Order Status After Payment (par défaut En traitement) : le paiement a été confirmé. Une note indique l'identifiant de transaction Cashfree et le groupe du mode de paiement (par exemple upi ou credit_card).
On Hold (Review) Status (par défaut En attente) : Cashfree a signalé un montant ou une devise payés différents du total de la commande. La note indique le montant attendu et le montant reçu, ainsi que l'identifiant de transaction. Vérifiez le paiement dans le tableau de bord Cashfree, puis honorez la commande ou remboursez le paiement.
Refunded Status (par défaut Remboursé) : le paiement a été entièrement remboursé via l'extension.
Un paiement qui arrive après que vous avez manuellement donné un statut à la commande en attente (par exemple Annulée) est tout de même enregistré, et la commande devient payée, car l'argent a été prélevé ; OpenCart informe le client de ce changement. Une commande payée n'est jamais remise en arrière par un paiement échoué ultérieur, et un second paiement pour une commande déjà payée ne la modifie pas.
Les notes sont des entrées de l'History de la commande que le client ne voit pas.
Onglet VibeFox Cashfree Payments
Dans Sales > Orders, ouvrez une commande payée avec Cashfree. En bas de la page de la commande, à côté de History et Additional, l'onglet VibeFox Cashfree Payments affiche le Transaction ID avec une étiquette Sandbox pour les paiements sandbox, la Cashfree order, le Status du paiement, les montants Paid / refunded, le formulaire de remboursement, l'historique des remboursements avec le statut de chaque remboursement, et les Cashfree 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), éventuellement un Reason (optional), puis cliquez sur Refund via Cashfree. Confirmez la question Refund this amount through Cashfree? 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 Cashfree : après un écart de montant, vous pouvez donc rembourser jusqu'au montant réellement payé par le client, et non jusqu'au total de la commande. Le remboursement est envoyé à la commande Cashfree payée, dans l'environnement (sandbox ou production) où elle a été payée ; les clés de cet environnement doivent donc être renseignées. Si Cashfree n'accepte pas le remboursement, ou le signale comme annulé ou rejeté, l'onglet affiche l'erreur et aucun remboursement n'est enregistré. Un remboursement lancé est ajouté à l'historique des remboursements et aux notes avec son ID, son montant et son statut. Un remboursement total place la commande au Refunded Status sans prévenir le client et sans remettre les produits en stock, comme un changement de statut manuel. Un remboursement partiel ne modifie pas le statut. Les remboursements sont disponibles une fois que Cashfree a confirmé le paiement.
Le statut final du remboursement arrive par le webhook de remboursement et est ajouté aux notes. Les retours de produits dans Sales > Returns ne renvoient pas d'argent via Cashfree.
Clé de licence
L'extension fonctionne avec une clé de licence VibeFox obtenue sur vibefox.net. Le bloc de licence License — VibeFox Cashfree Payments est le premier bloc de Extensions > Extensions > Payments > VibeFox Cashfree Payments > 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), ainsi que 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-cashfree et le lien Manage licenses and domains in your account, qui ouvre votre compte vibefox.net. Seuls les utilisateurs administrateurs disposant du droit Modify pour 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 Clé introuvable, Cette clé appartient à un autre produit, Limite de domaines atteinte ou Licence expirée le 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 l'emplacement dans votre compte vibefox.net.
Sans clé active, Cashfree n'est pas affiché aux clients lors du paiement. Si un paiement est tout de même lancé, le client voit Ce mode de paiement n'est pas disponible. Veuillez en choisir un autre. Un utilisateur administrateur connecté à l'administration dans le même navigateur voit encore le mode de paiement dans la boutique, marqué (non licencié — visible uniquement pour les administrateurs), 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 affecté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é 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
Cashfree n'apparaît pas lors du paiement : vérifiez que la licence est active, que Enable/Disable est activé et que le mode actuel dispose de ses clés : Sandbox App ID et Sandbox Secret Key en mode sandbox, App ID et Secret Key en mode réel. La page des réglages affiche un avertissement lorsque des clés manquent. Le mode de paiement est aussi masqué lorsque le total de la commande est inférieur au minimum Cashfree. Vérifiez également 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. Vérifiez que votre boutique utilise HTTPS, que l'URL dans Developers > Webhooks est exactement celle affichée dans Webhook URL et que les événements de paiement sont sélectionnés. Vérifiez que la Secret Key des réglages appartient à l'environnement dans lequel le paiement a été effectué. Le tableau de bord Cashfree affiche la réponse de votre boutique pour chaque webhook. La commande reçoit aussi son statut lorsque le client revient dans la boutique après avoir payé, et lors de la prochaine tentative de paiement du même panier.
Le webhook répond Missing signature ou Invalid signature : l'appel ne portait pas de signature Cashfree valide, ou la Secret Key des réglages ne correspond pas à l'environnement dans lequel le paiement a été effectué. Vérifiez que les clés sandbox et de production ne sont pas inversées.
Le webhook répond Ignored : le webhook est correctement signé, mais il concerne un paiement non lancé par cette boutique, par exemple une autre boutique sur le même compte Cashfree. Attribuez à chaque boutique son propre Order ID prefix.
Le webhook répond Busy, retry later : la commande était en cours de confirmation par une autre requête au même moment, ou le statut de la commande n'a pas pu être attribué. Cashfree réessaie le webhook. Activez le Debug log pour voir la raison.
Le client voit « La page de paiement Cashfree n'a pas pu être chargée. Veuillez réessayer. » : le script Cashfree n'a pas pu être chargé dans le navigateur, par exemple à cause d'un bloqueur. Le client peut cliquer à nouveau sur Pay Now ou choisir Choose another payment method.
Le client voit « Nous n'avons pas pu lancer le paiement Cashfree » : consultez le champ Log de la page de l'extension. Les causes typiques sont des clés erronées pour le mode sélectionné, ou une devise non activée pour votre compte Cashfree.
Le client voit « Ce mode de paiement n'est pas disponible. » après Confirm Order : 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 « Session de paiement introuvable. Veuillez réessayer. » : le lien de la page de paiement n'appartient pas à un paiement de cette boutique, ou la session Cashfree a expiré. Le client confirme à nouveau la commande.
Le client voit « Nous n'avons pas pu vérifier le paiement » : le lien de retour ne correspondait pas au paiement. Si de l'argent a été débité, le webhook confirme tout de même la commande. Vérifiez le paiement dans le tableau de bord Cashfree avant que le client ne paie à nouveau.
La commande est en statut de vérification après le paiement : lisez les notes dans l'onglet VibeFox Cashfree Payments (voir Statuts de commande), puis honorez la commande ou remboursez le paiement.
Aucun formulaire de remboursement dans l'onglet : l'onglet indique la raison : le paiement n'est pas encore confirmé, il est entièrement remboursé, votre groupe d'utilisateurs n'a pas le droit de modifier l'extension, ou les clés API de l'environnement du paiement ne sont pas renseignées.
Le remboursement échoue avec un message relatif au mode sandbox ou réel : le paiement a été effectué dans cet environnement, et ses clés API ne sont pas renseignées. Saisissez-les et réessayez.
Désinstallation
Allez dans Extensions > Extensions, choisissez le type Payments et cliquez sur Uninstall (le bouton rouge −) à côté de VibeFox Cashfree Payments. 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. Sur OpenCart 4, les événements de l'extension et son action de démarrage, qui laisse passer le webhook en mode maintenance, sont aussi supprimés. Si Delete Data on Uninstall est activé, les autres réglages Cashfree (titre, description, mode, clés, version de l'API, préfixe de l'identifiant de commande, journalisation) et le journal sont supprimés. S'il est désactivé, ils sont conservés pour une réinstallation ultérieure. Les transactions et remboursements Cashfree 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 Cashfree Payments dans la liste des extensions installées, puis sur Delete (le bouton corbeille rouge) pour supprimer le paquet envoyé.
Cashfree est une marque déposée de son propriétaire. Cette extension n'est ni affiliée à Cashfree, ni approuvée par Cashfree.
