Retour

VibeFox IntaSend for PrestaShop — Aide

Prérequis

PrestaShop : 8.0 à 9.x.

PHP : 8.0 ou ultérieur avec l'extension cURL. Le module refuse de s'installer sur les anciennes versions de PHP ou sans cURL.

HTTPS : IntaSend exige HTTPS pour les paiements en production et les webhooks. La page de configuration vous avertit lorsque le mode production est activé et que la boutique n'utilise pas 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 la page de 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 pour un seul domaine.

Installation

1. Dans le back-office, allez dans Modules > Module Manager et cliquez sur Upload a module. Choisissez le fichier ZIP du module.

2. Une fois le téléchargement terminé, cliquez sur Configure, ou retrouvez VibeFox IntaSend Pay Gateway plus tard dans la liste des modules et cliquez sur Configure.

3. Saisissez votre clé de licence VibeFox dans License key, dans le bloc de licence en haut de la page Configure, et cliquez sur Activate (voir Clé de licence).

4. 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 le module (voir Configuration).

5. Activez Enable/Disable et cliquez sur Save. Testez un paiement avec Test mode activé, puis désactivez Test mode pour accepter de vrais paiements.

À l'installation, le module crée le statut de commande IntaSend payment on hold. PrestaShop propose un nouveau module de paiement pour toutes les devises, tous les pays et tous les groupes de clients. Vous pouvez les limiter dans Payment > Preferences.

Configuration

Tous les réglages se trouvent sur la page du module : Modules > Module Manager > VibeFox IntaSend Pay Gateway > Configure. Chaque section possède son propre bouton Save, qui enregistre la page entière. 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é à la commande), lorsque la devise par défaut 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. Les clés collées sont débarrassées des espaces superflus à l'enregistrement.

IntaSend

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 les clients voient lors du paiement. C'est aussi le nom du moyen de paiement enregistré dans la commande. Par défaut : IntaSend (M-Pesa, card). Obligatoire.

Description : le texte affiché sous le moyen de paiement lors 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 (la section contient des liens vers les deux). 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. Le module 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 : utilise le sandbox d'IntaSend, aucun argent réel n'est débité. Par défaut : activé. Désactivez-le pour accepter de vrais paiements avec les clés de production. Tant que le mode test est activé, la page de 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'une page de paiement.

Sandbox secret key : commence par ISSecretKey_test. Elle n'est utilisée que 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. Elle n'est utilisée que sur votre serveur pour confirmer les paiements.

Les clés secrètes enregistrées et la phrase de vérification du webhook ne sont plus jamais affichées. Le champ reste vide et affiche Saved — leave empty to keep it. Saisissez une nouvelle valeur uniquement si vous voulez la modifier.

Webhook

Le webhook informe 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 comme en production, ouvrez Webhooks et ajoutez l'URL affichée dans Webhook URL dans cette section. Avec les URL simplifiées, elle ressemble à https://your-shop/module/wcp_intasend_pay/webhook, éventuellement avec un code de langue comme /en/. Copiez l'URL exactement telle qu'elle est affichée dans les réglages. Saisissez-y une phrase de vérification, puis la même phrase dans le module. Utilisez une seule phrase de vérification pour le sandbox et 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 de vérification.

Effacer les secrets enregistrés : cochez Sandbox secret key, Live secret key ou Webhook challenge, puis cliquez sur Save pour le supprimer. Un champ vide conserve la valeur enregistrée.

Le module réagit aux statuts de paiement suivants signalés par IntaSend. À chaque fois, il interroge l'API de statut de paiement pour obtenir le statut réel avant de modifier quoi que ce soit :

COMPLETE : le paiement a été effectué. La commande est créée après le contrôle du montant et de la devise.
FAILED or CANCELED : le paiement a échoué. La dernière tentative de paiement du panier est marquée comme échouée, avec le motif communiqué par IntaSend. Aucune commande n'est créée et le panier est conservé.
PARTIAL : la facture a été partiellement payée. La commande est créée dans IntaSend payment on hold.
PENDING, PROCESSING or RETRY : le paiement est toujours en cours. Rien n'est modifié tant que le statut final n'est pas reçu.

Les notifications qui ne correspondent pas à des paiements de cette boutique, par exemple des liens de paiement ou des envois d'argent du même compte IntaSend, reçoivent la réponse Ignored, afin qu'IntaSend ne désactive pas le webhook.

Avancé

Debug log : consigne les événements de paiement, de retour et de webhook dans logs/intasend_p_debug.log.php, dans le dossier du module. Ce fichier ne peut pas être ouvert depuis le web. Les erreurs et avertissements sont toujours consignés. Les clés API et les données clients ne sont jamais consigné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'il est activé, la désinstallation du module supprime les réglages de la passerelle et le journal. Les références IntaSend enregistrées pour les commandes constituent l'historique des paiements et sont toujours conservées. Par défaut : désactivé.

Paiement

À l'étape du paiement, le client choisit le moyen de paiement (par défaut IntaSend (M-Pesa, card)) et confirme. Le module crée une page de paiement IntaSend pour le montant total du panier, dans la devise du panier, et envoie le client sur la page de paiement hébergée par IntaSend. Il y paie avec M-Pesa, une carte ou une autre méthode activée sur votre compte IntaSend. L'adresse e-mail du client, ainsi que le nom, l'adresse, le téléphone et le pays de l'adresse de facturation, sont transmis à IntaSend lorsqu'ils respectent les règles de champs d'IntaSend. Les champs vides ou non conformes sont omis. À ce stade, aucune commande n'existe encore.

Après le paiement, le client revient sur votre boutique. La commande n'est marquée comme payée que lorsqu'IntaSend la confirme : le module interroge l'API de statut de paiement lorsque le client revient et lorsque le webhook arrive. La commande est alors créée et le client voit la page standard de confirmation de commande. Si la commande a été mise en attente, la page affiche Your payment was received and your order is being reviewed. We will contact you if anything is needed. Si le paiement n'est pas encore confirmé, ou si IntaSend est injoignable à ce moment-là, une page Payment confirmation 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. avec les boutons Check again et Back to checkout. Le webhook crée la commande dès qu'IntaSend confirme le paiement.

Si le paiement a échoué, le client revient à la page de paiement avec le message The payment was not successful. Please try again or choose another payment method. (avec le motif communiqué par IntaSend, s'il y en a un). Si le client est revenu sans payer, le message est The payment was not completed. Please try again or choose another payment method. Le panier est conservé et le client peut payer à nouveau. Chaque tentative reçoit sa propre référence IntaSend.

Si IntaSend ne peut pas démarrer le paiement, le client reste sur la page de paiement avec IntaSend could not start the payment: et le motif communiqué par IntaSend, ou avec IntaSend is temporarily unavailable. Please try again in a moment or choose another payment method. Les détails sont écrits dans le journal. Un panier d'un montant nul ne peut pas être payé avec IntaSend.

Le webhook fonctionne même lorsque la boutique est en mode maintenance, et il n'est pas bloqué par la restriction géographique de votre boutique. Lorsque les URL simplifiées sont désactivées, le client revient par la page d'accueil de la boutique, car IntaSend n'accepte pas certains caractères dans l'adresse de retour.

Le module ne prend en charge que les paiements uniques. Les remboursements ne sont pas envoyés à IntaSend depuis la boutique, et le module ne gère ni cartes enregistrées, ni abonnements, ni formulaire de paiement intégré (pop-up). Les anciens liens de paiement du même panier ne peuvent pas être annulés chez IntaSend.

Commandes

Statuts de commande

No order yet : le client a été envoyé vers IntaSend et n'a pas encore payé, ou IntaSend n'a pas encore confirmé le paiement. Seul le panier existe.

Payment accepted : le paiement a été confirmé. Le paiement est enregistré avec l'ID de la facture IntaSend comme ID de transaction, et une note indique la facture, le moyen de paiement chez IntaSend, le montant, le mode (sandbox ou production) et la manière dont il a été confirmé (webhook ou retour du client).

IntaSend payment on hold : IntaSend a signalé un montant ou une devise différents du total du panier, un paiement partiel, ou un paiement arrivé après l'annulation de la commande. La note l'explique, et le montant prélevé par IntaSend est enregistré comme paiement lorsqu'il est dans la devise de la commande. Vérifiez le paiement dans le tableau de bord IntaSend, puis traitez la commande ou remboursez le paiement. Si le bon paiement arrive plus tard, la commande passe à Payment accepted.

Si un second paiement arrive pour une commande déjà payée, la commande n'est pas modifiée. Une note vous demande de 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.

Bloc de paiement IntaSend

La page de la commande affiche un bloc IntaSend payment avec chaque tentative de paiement du panier de la commande (date, référence, page de paiement IntaSend, environnement, montant, facture et résultat, avec le motif de l'échec) et les Invoices processed (facture, statut IntaSend, montant et résultat). Le bloc est en lecture seule.

Remboursements

Les remboursements ne sont pas envoyés à IntaSend depuis la boutique. Remboursez le paiement dans le tableau de bord IntaSend, puis enregistrez le remboursement manuellement dans PrestaShop.

Clé de licence

Le module fonctionne avec une clé de licence VibeFox obtenue sur vibefox.net. Le bloc de licence License — VibeFox IntaSend Pay Gateway est le premier bloc de Modules > Module Manager > VibeFox IntaSend Pay Gateway > Configure, au-dessus des réglages. Saisissez 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: presta-payment-intasend et le lien Manage licenses and domains in your account, qui ouvre votre compte vibefox.net. Seuls les employés disposant de l'autorisation Configure pour le module peuvent modifier la clé. Les textes du bloc suivent la langue du back-office (l'anglais et le russe sont inclus).

Si la clé n'est pas acceptée, le bloc indique le motif, 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, le module continue de fonctionner avec le dernier statut connu.

Une clé fonctionne pour un seul domaine : celui de la boutique principale, y compris dans une configuration multiboutique. 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, IntaSend 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. La boutique PrestaShop ne sait pas que vous êtes connecté au back-office : le moyen de paiement est donc masqué pour vous aussi. Vous pouvez configurer le module avant d'acheter une clé, mais pas le tester lors du paiement. Un rappel apparaît dans Modules > Module Manager, sur l'onglet Alerts. Les commandes existantes ne sont pas affectées : les paiements déjà lancés sont toujours confirmés.

Lorsqu'une licence expire, le module continue de fonctionner, mais les mises à jour et le support nécessitent un renouvellement. Le statut est vérifié automatiquement pendant votre travail dans le back-office : 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. Désinstaller ou réinitialiser le module supprime toujours la clé de licence et le statut de la licence.

Dépannage

IntaSend n'apparaît pas lors du 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 du panier doit être prise en charge. L'encadré d'état en haut de la page des réglages indique ce qui ne va pas. Dans Payment > Preferences, vérifiez que le module est autorisé pour la devise du panier, le pays du client et le groupe du client.

Le paiement a été effectué, mais aucune commande n'a été créée : les confirmations M-Pesa peuvent prendre un moment. Le webhook crée la commande lorsqu'IntaSend signale le statut final. Vérifiez que l'URL du webhook dans le tableau de bord IntaSend (sandbox ou production, selon le mode que vous utilisez) est exactement celle affichée dans Webhook URL et que la phrase de vérification qui s'y trouve est identique à Webhook challenge. La commande est aussi créée lorsque le client revient sur la boutique ou clique sur Check again.

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 le module ne correspond pas, ou le webhook n'a pas de phrase de vérification.

Le webhook répond Verification unavailable, retry later ou Busy, retry later : IntaSend était injoignable à ce moment-là, le panier était en cours de confirmation par une autre requête, ou la commande n'a pas pu être créée (par exemple parce que le module est désactivé). IntaSend réessaie le webhook. Le motif figure dans le journal.

Le webhook répond Invoice not verified ou Invoice does not match the reference : IntaSend n'a pas confirmé que cette facture appartient au panier. Rien n'est modifié.

L'URL du webhook affiche Method not allowed dans le navigateur : c'est normal. L'URL n'accepte que les requêtes provenant d'IntaSend.

La commande est IntaSend payment on hold : lisez les notes de la commande. Le montant ou la devise payés étaient différents du panier, 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 en choisissant IntaSend : consultez le champ Log de la page du module (activez Debug log pour plus de détails). Si les clés du mode actuel sont incorrectes, le client voit IntaSend is not available at the moment. Please choose another payment method or contact the store. 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.

Le client voit We could not match this payment to an order : le lien de retour a été modifié ou appartient à un autre panier. Si le client a payé, le webhook crée tout de même la commande.

Désinstallation

Allez dans Modules > Module Manager, ouvrez le menu à côté de VibeFox IntaSend Pay Gateway et choisissez Uninstall. La clé de licence et le statut de licence de ce module sont toujours supprimés. Si Delete data on uninstall est activé, les réglages de la passerelle et le journal sont supprimés. S'il est désactivé, tous les réglages sont conservés pour une réinstallation ultérieure. Les tentatives de paiement et les factures IntaSend des commandes, ainsi que le statut de commande IntaSend payment on hold, sont toujours conservés. Les commandes existantes conservent leurs notes de paiement et leurs ID de transaction.

IntaSend est une marque de son propriétaire respectif. Ce module n'est ni affilié à IntaSend, ni approuvé par IntaSend.