VibeFox IntaSend for WooCommerce — Aide
Prérequis
WordPress : 6.2 ou ultérieur.
WooCommerce : 8.0 ou ultérieur, installé et activé. L'extension refuse de s'activer sans lui.
PHP : 8.0 ou ultérieur.
HTTPS : IntaSend exige HTTPS pour les paiements et les webhooks en production. La page des réglages vous avertit lorsque le mode production est activé et que l'adresse de la boutique n'est pas en HTTPS.
Compte IntaSend : vous avez besoin de la clé publique (ISPubKey_...) et de la clé secrète (ISSecretKey_...) de votre compte IntaSend, pour le sandbox, pour la production ou pour les deux, ainsi que d'un webhook avec une phrase de vérification dans le tableau de bord IntaSend (voir Configuration). La clé publique crée le paiement. La clé secrète n'est utilisée que sur votre serveur, pour demander à IntaSend le statut du paiement.
Devise de la boutique : KES, USD, EUR, GBP, UGX, TZS, NGN, GHS, XAF ou XOF. Pour les autres devises, le moyen de paiement est masqué.
Clé de licence VibeFox : achetée sur vibefox.net. Une clé fonctionne sur un seul domaine.
Installation
1. Dans WordPress, allez dans Plugins > Add New > Upload Plugin, choisissez le fichier ZIP de l'extension et cliquez sur Install Now. Vous pouvez aussi envoyer le dossier wcp_intasend_pay dans /wp-content/plugins/ par FTP.
2. Cliquez sur Activate.
3. Ouvrez les réglages : WooCommerce > Settings > Payments > IntaSend > Manage, ou cliquez sur Settings sous le nom de l'extension sur la page Plugins.
4. Saisissez votre clé de licence VibeFox dans le bloc de licence en haut de la page et cliquez sur Activate.
5. Collez vos clés IntaSend sandbox et/ou production, ajoutez le webhook dans le tableau de bord IntaSend et saisissez la même phrase de vérification dans l'extension (voir Configuration).
6. Activez Enable/Disable. Testez un paiement avec Test mode activé, puis décochez Test mode pour accepter de vrais paiements.
Configuration
Tous les réglages se trouvent sur une seule page : WooCommerce > Settings > Payments > IntaSend. Au-dessus des champs, un encadré d'état affiche Test mode: IntaSend sandbox, no real money is charged. ou Live mode: real payments are accepted. Il vous avertit aussi lorsque les clés du mode actuel sont absentes ou incorrectes (le moyen de paiement est alors masqué au paiement), lorsque la devise de la boutique n'est pas prise en charge, lorsqu'aucune phrase de vérification du webhook n'est définie et lorsque le mode production est utilisé sans HTTPS. Dans la liste des moyens de paiement, IntaSend est signalé comme « à configurer » tant que les clés du mode actuel ne sont pas correctes. Les clés collées sont débarrassées des espaces superflus à l'enregistrement.
Général
Enable/Disable : Enable IntaSend active ou désactive le moyen de paiement. Par défaut : désactivé.
Title : le nom du moyen de paiement que voient les clients au paiement. Par défaut : IntaSend (M-Pesa, card).
Description : le texte affiché sous le moyen de paiement au moment du paiement. Par défaut : You will be redirected to IntaSend to pay securely with M-Pesa, card or another available method.
Clés API
Récupérez les clés dans le tableau de bord IntaSend, sous Settings > API Keys, séparément dans le tableau de bord sandbox et dans celui de production. Le mode test utilise les clés sandbox et l'API sandbox, le mode production utilise les clés de production et l'API de production. L'extension vérifie que la clé publique commence par ISPubKey_, que la clé secrète commence par ISSecretKey_ et que les clés appartiennent au mode actuel : les clés sandbox contiennent _test, les clés de production contiennent _live. Sinon, le moyen de paiement est masqué et l'encadré d'état explique pourquoi.
Test mode : Use the IntaSend sandbox (no real money is charged). Par défaut : activé. Décochez-la pour accepter de vrais paiements avec les clés de production. Tant que le mode test est activé, le paiement affiche TEST MODE - IntaSend sandbox, no real money is charged. sous le moyen de paiement.
Sandbox publishable key : commence par ISPubKey_test. Elle identifie votre entreprise lors de la création d'un paiement.
Sandbox secret key : commence par ISSecretKey_test. Utilisée uniquement sur votre serveur, pour confirmer les paiements avec l'API de statut de paiement.
Live publishable key : commence par ISPubKey_live.
Live secret key : commence par ISSecretKey_live. Utilisée uniquement sur votre serveur pour confirmer les paiements.
Webhook
Le webhook indique à votre boutique qu'un paiement a été effectué, même lorsque le client ne revient pas sur la boutique (navigateur fermé, M-Pesa confirmé plus tard). Dans le tableau de bord IntaSend, en sandbox et en production, ouvrez Webhooks et ajoutez l'URL affichée dans cette section des réglages. Elle ressemble à https://your-site/wc-api/intasend_pay/. Saisissez-y une phrase de vérification, puis la même dans l'extension. Utilisez une seule phrase pour le sandbox et pour la production.
Webhook challenge : la même phrase de vérification que dans le tableau de bord IntaSend. Les webhooks avec une autre phrase sont rejetés. Tant que ce champ est vide, les webhooks ne sont pas traités et les paiements ne sont confirmés que lorsque le client revient sur la boutique. Ces webhooks reçoivent la réponse Ignored, et non une erreur, afin qu'IntaSend ne désactive pas le webhook avant que vous ayez saisi la phrase.
L'extension réagit aux états de paiement suivants signalés par IntaSend. À chaque fois, elle interroge l'API de statut de paiement pour connaître l'état réel avant de modifier la commande :
Les notifications qui ne sont pas des paiements de commande de cette boutique, par exemple des liens de paiement ou des événements d'envoi d'argent du même compte IntaSend, reçoivent la réponse OK et sont ignorées, afin qu'IntaSend ne désactive pas le webhook.
Avancé
Debug log : Log checkout, return and webhook events dans WooCommerce > Status > Logs, source wcp_intasend_pay. Les erreurs sont toujours consignées. Les clés API et les données clients ne sont jamais consignées. Par défaut : désactivé.
Delete data on uninstall : Delete the gateway settings and logs when the plugin is deleted. Les références IntaSend enregistrées sur les commandes constituent l'historique des paiements et sont toujours conservées. Désactiver l'extension ne supprime jamais rien. Par défaut : désactivé.
Paiement
Le client choisit le moyen de paiement (par défaut IntaSend (M-Pesa, card)) et passe commande. L'extension crée un paiement IntaSend pour le total de la commande, dans la devise de la commande, et envoie le client sur la page de paiement hébergée par IntaSend. Là, il paie avec M-Pesa, une carte ou une autre méthode activée sur votre compte IntaSend. L'e-mail, le nom, l'adresse, le téléphone et le pays de facturation sont transmis à IntaSend lorsqu'ils respectent ses règles de champs. Les champs vides ou non conformes sont omis.
Après le paiement, le client revient sur votre boutique. La commande n'est marquée payée qu'après confirmation d'IntaSend : l'extension interroge l'API de statut de paiement lorsque le client revient et lorsque le webhook arrive. Si le paiement n'est pas encore confirmé, la page de commande reçue affiche Your payment is being confirmed by IntaSend (M-Pesa confirmations can take a minute). You will receive an e-mail as soon as it is confirmed. Si la commande a été mise en attente, elle affiche Your payment was received and your order is being reviewed. We will contact you if anything is needed.
Si le paiement a échoué ou si le client est revenu sans payer, il retourne au paiement (ou à la page Pay for order) avec le message The payment was not successful. Please try again or choose another payment method. (avec le motif donné par IntaSend, le cas échéant) ou The payment was not completed. Please try again or choose another payment method. Le client peut payer à nouveau la commande. Chaque tentative reçoit sa propre référence IntaSend.
Si IntaSend ne peut pas démarrer le paiement, le client voit IntaSend could not start the payment: avec le motif fourni par IntaSend, ou IntaSend is temporarily unavailable. Please try again in a moment or choose another payment method. Les détails sont écrits dans le journal.
Le moyen de paiement fonctionne sur le paiement classique, sur le bloc Paiement et sur la page Pay for order. Il est compatible avec WooCommerce High-Performance Order Storage (HPOS).
L'extension ne prend en charge que les paiements uniques. Les remboursements ne sont pas envoyés à IntaSend depuis WooCommerce, et elle ne gère ni cartes enregistrées, ni abonnements, ni formulaire de paiement intégré (pop-up). Les anciens liens de paiement de la même commande ne peuvent pas être annulés chez IntaSend.
Commandes
Statuts de commande
Pending payment : le client a été envoyé vers IntaSend et n'a pas encore payé, ou IntaSend n'a pas encore confirmé le paiement.
Processing or Completed : le paiement a été confirmé. WooCommerce applique le statut habituel d'une commande payée. La note de commande indique la facture IntaSend, le moyen de paiement chez IntaSend, le montant, le mode (sandbox ou production) et la manière dont le paiement a été confirmé (webhook ou retour du client). L'ID de transaction est l'ID de la facture IntaSend.
On hold : IntaSend a signalé un montant ou une devise différents du total de la commande, un paiement partiel, ou un paiement arrivé après l'annulation de la commande. La note de commande l'explique. Vérifiez le paiement dans le tableau de bord IntaSend, puis traitez la commande ou remboursez le paiement.
Failed : la dernière tentative de paiement a échoué. La note indique le motif donné par IntaSend. Le client peut réessayer.
Si un second paiement arrive pour une commande déjà payée, la commande n'est pas modifiée à nouveau. Une note vous invite à le rembourser dans le tableau de bord IntaSend s'il s'agit d'un doublon. Un paiement pour une commande remboursée ajoute une note et ne rouvre pas la commande.
Remboursements
Les remboursements ne sont pas envoyés à IntaSend depuis WooCommerce. Remboursez le paiement dans le tableau de bord IntaSend, puis enregistrez le remboursement manuellement dans WooCommerce.
Clé de licence
L'extension fonctionne avec une clé de licence VibeFox obtenue sur vibefox.net. Le bloc de licence se trouve en haut de WooCommerce > Settings > Payments > IntaSend. Collez la clé dans License key et cliquez sur Activate. Le bloc affiche l'état, par exemple la date jusqu'à laquelle la licence est active, ainsi que votre domaine. Utilisez Check now pour vérifier à nouveau l'état, Change key pour saisir une autre clé et Remove key pour la retirer de ce site. Le lien Manage licenses and domains in your account ouvre votre compte vibefox.net.
Une clé fonctionne sur un seul domaine. Retirer la clé d'un site ne libère pas l'emplacement de domaine. Libérez-le dans votre compte vibefox.net.
Sans clé active, IntaSend n'est pas affiché aux clients au paiement. Si un paiement est tout de même lancé, le client voit This payment method is not available. Please choose another one. Les gestionnaires de la boutique connectés voient toujours le moyen de paiement, marqué (unlicensed — visible to admins only), afin que vous puissiez configurer et tester l'extension avant d'acheter une clé. Un rappel apparaît sur la page Plugins et sur les pages WooCommerce. Les commandes existantes ne sont pas affectées : les paiements déjà lancés sont toujours confirmés.
Lorsqu'une licence expire, l'extension continue de fonctionner, mais les mises à jour et le support nécessitent un renouvellement. L'état est vérifié à nouveau automatiquement en arrière-plan.
Dépannage
IntaSend n'apparaît pas au paiement : vérifiez que la licence est active, que Enable/Disable est activé et que les clés du mode actuel sont renseignées et appartiennent à ce mode : clés sandbox (avec _test) en mode test, clés de production (avec _live) en mode production. La devise de la boutique doit être prise en charge. L'encadré d'état en haut de la page des réglages indique ce qui ne va pas.
Le paiement est passé, mais la commande reste en Pending payment : les confirmations M-Pesa peuvent prendre un moment. Le webhook confirme la commande lorsqu'IntaSend signale l'état final. Vérifiez que l'URL du webhook dans le tableau de bord IntaSend (sandbox ou production, le mode que vous utilisez) est exactement celle affichée dans les réglages et que la phrase de vérification y est identique à Webhook challenge.
Le webhook répond Ignored: webhook challenge not configured : Webhook challenge est vide. Saisissez la phrase de vérification du tableau de bord IntaSend.
Le webhook répond Invalid challenge : la phrase de vérification dans IntaSend et dans l'extension ne correspond pas.
Le webhook répond Verification unavailable, retry later ou Busy, retry later : IntaSend n'a pas pu être joint à ce moment-là, ou la commande était en cours de confirmation par une autre requête. IntaSend renouvelle le webhook.
Le webhook répond Invoice not verified ou Invoice does not match the reference : IntaSend n'a pas confirmé que cette facture appartient à la commande. La commande n'est pas modifiée.
La commande est On hold : lisez la note de commande. Le montant ou la devise payés différaient de la commande, le paiement était partiel, ou il est arrivé après l'annulation de la commande. Vérifiez le paiement dans le tableau de bord IntaSend.
Le client voit une erreur lors de la passation de la commande : activez le Debug log et consultez WooCommerce > Status > Logs, source wcp_intasend_pay. Le total de la commande doit être supérieur à zéro. Si le journal indique que l'URL de retour contient des caractères qu'IntaSend n'accepte pas, la cause est l'adresse de la boutique ou un paramètre de langue dans cette adresse.
Le bloc de licence affiche une erreur : suivez le message affiché dans le bloc. Par exemple, si la clé est déjà utilisée sur un autre domaine, libérez un emplacement dans votre compte vibefox.net, puis cliquez sur Check now. Si l'adresse du site a changé, cliquez sur Check now pour activer la clé pour le nouveau domaine. Si le serveur de licences est injoignable, l'extension continue de fonctionner avec le dernier état connu.
Désinstallation
La désactivation de l'extension conserve toutes les données. Pour la supprimer, désactivez-la puis supprimez-la sur la page Plugins. La clé de licence et l'état de licence de cette extension sont toujours supprimés. Les réglages de la passerelle et les journaux ne sont supprimés que si Delete data on uninstall était activé. Sinon, ils sont conservés pour une réinstallation ultérieure. Les commandes existantes conservent leurs notes de paiement et leurs ID de transaction.
IntaSend est une marque de son propriétaire. Cette extension n'est ni affiliée à IntaSend ni approuvée par elle.
