{"id":400942,"date":"2026-11-10T03:38:01","date_gmt":"2026-11-10T03:38:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/walleopay-for-woocommerce\/"},"modified":"2026-11-10T03:37:47","modified_gmt":"2026-11-10T03:37:47","slug":"walleopay-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/walleopay-for-woocommerce\/","author":23598990,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"6.6.11","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"WalleoPay pour WooCommerce","header_author":"WalleoPay","header_description":"Accept MTN Mobile Money, Orange Money and card payments on your WooCommerce store through WalleoPay.","last_updated":"2026-11-10 03:37:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/walleopay.com\/integrations\/woocommerce","header_author_uri":"https:\/\/walleopay.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":107,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"vsptech","date":"2026-11-10 03:37:47","revision":3793575}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3793575,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3793575,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3793575,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3793575,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[141805,187426,174359,26134,286],"plugin_category":[45],"plugin_contributors":[290745],"plugin_business_model":[],"class_list":["post-400942","plugin","type-plugin","status-publish","hentry","plugin_tags-mobile-money","plugin_tags-mtn-momo","plugin_tags-orange-money","plugin_tags-paiement","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-vsptech","plugin_committers-vsptech"],"banners":{"banner":"https:\/\/ps.w.org\/walleopay-for-woocommerce\/assets\/banner-772x250.png?rev=3793575","banner_2x":"https:\/\/ps.w.org\/walleopay-for-woocommerce\/assets\/banner-1544x500.png?rev=3793575","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/walleopay-for-woocommerce\/assets\/icon-128x128.png?rev=3793575","icon_2x":"https:\/\/ps.w.org\/walleopay-for-woocommerce\/assets\/icon-256x256.png?rev=3793575","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>WalleoPay est un agr\u00e9gateur de paiement camerounais. Cette extension ajoute un moyen de paiement \u00e0 votre page de commande WooCommerce : le client est redirig\u00e9 vers une page de paiement s\u00e9curis\u00e9e WalleoPay, choisit son op\u00e9rateur (MTN Mobile Money, Orange Money) ou sa carte bancaire, puis revient sur votre boutique.<\/p>\n\n<p>Points cl\u00e9s :<\/p>\n\n<ul>\n<li>Redirection vers la page de paiement h\u00e9berg\u00e9e par WalleoPay : aucune donn\u00e9e sensible ne transite par votre serveur.<\/li>\n<li>Notifications (webhooks) sign\u00e9es en HMAC SHA-256, v\u00e9rifi\u00e9es en temps constant et fen\u00eatre de tol\u00e9rance de 300 secondes.<\/li>\n<li><strong>Aucune commande n\u2019est marqu\u00e9e pay\u00e9e sur la seule foi d\u2019un webhook ou d\u2019un retour navigateur.<\/strong> L\u2019extension r\u00e9-interroge syst\u00e9matiquement l\u2019API WalleoPay et contr\u00f4le que le montant et la devise correspondent \u00e0 la commande avant validation.<\/li>\n<li>Gestion du statut \u00ab en attente de confirmation \u00bb (paiement au code marchand) : la commande passe en attente avec une note explicative, puis est valid\u00e9e automatiquement une fois le rapprochement termin\u00e9.<\/li>\n<li>Bouton \u00ab Rafra\u00eechir le statut WalleoPay \u00bb sur l\u2019\u00e9cran de commande, et action \u00e9quivalente dans la liste d\u00e9roulante des actions de commande.<\/li>\n<li>Compatible avec le stockage haute performance des commandes (HPOS).<\/li>\n<li>Journalisation via WooCommerce \u2192 \u00c9tat \u2192 Journaux (source \u00ab walleopay \u00bb), sans jamais \u00e9crire les cl\u00e9s secr\u00e8tes.<\/li>\n<li>Aucune d\u00e9pendance : uniquement l\u2019API HTTP de WordPress.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Copiez le dossier de l\u2019extension dans <code>wp-content\/plugins\/walleopay-for-woocommerce<\/code>, ou t\u00e9l\u00e9versez l\u2019archive ZIP depuis Extensions \u2192 Ajouter.<\/li>\n<li>Activez \u00ab WalleoPay pour WooCommerce \u00bb.<\/li>\n<li>Rendez-vous dans WooCommerce \u2192 R\u00e9glages \u2192 Paiements \u2192 WalleoPay.<\/li>\n<li>Choisissez le mode (Test ou Production) et collez la cl\u00e9 secr\u00e8te correspondante (<code>sk_test_\u2026<\/code> ou <code>sk_live_\u2026<\/code>), disponible dans votre tableau de bord WalleoPay.<\/li>\n<li>Dans le tableau de bord WalleoPay, rubrique Applications \u2192 Notifications, copiez le secret de signature (<code>whsec_\u2026<\/code>, un seul par compte, le m\u00eame en test et en production) et collez-le dans le champ \u00ab Secret de webhook \u00bb. L\u2019adresse de notification (de la forme <code>https:\/\/votre-boutique.tld\/wc-api\/walleopay<\/code>) n\u2019a pas \u00e0 \u00eatre d\u00e9clar\u00e9e : l\u2019extension l\u2019envoie avec chaque paiement, et WalleoPay la pr\u00e9f\u00e8re \u00e0 l\u2019URL par d\u00e9faut du compte.<\/li>\n<li>Cochez \u00ab Activer le paiement WalleoPay \u00bb et enregistrez.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"dans%20quelle%20devise%20dois-je%20configurer%20ma%20boutique%20%3F\"><h3>Dans quelle devise dois-je configurer ma boutique ?<\/h3><\/dt>\n<dd><p>En francs CFA (XAF). WalleoPay encaisse des montants entiers en francs, entre 100 et 1 000 000 FCFA. Un avertissement s\u2019affiche dans les r\u00e9glages si la devise de la boutique n\u2019est pas XAF.<\/p><\/dd>\n<dt id=\"pourquoi%20une%20commande%20reste-t-elle%20%C2%AB%20en%20attente%20%C2%BB%20%3F\"><h3>Pourquoi une commande reste-t-elle \u00ab en attente \u00bb ?<\/h3><\/dt>\n<dd><p>Le statut <code>awaiting_confirmation<\/code> signifie que le client a pay\u00e9 au code marchand et que le rapprochement est effectu\u00e9 manuellement par WalleoPay ; cela peut prendre plusieurs heures. La commande est plac\u00e9e en attente avec une note, puis valid\u00e9e automatiquement d\u00e8s r\u00e9ception de la confirmation. Vous pouvez aussi cliquer sur \u00ab Rafra\u00eechir le statut WalleoPay \u00bb dans l\u2019encart de la commande.<\/p><\/dd>\n<dt id=\"l%E2%80%99url%20de%20notification%20n%E2%80%99est%20pas%20accessible%20depuis%20internet%2C%20est-ce%20grave%20%3F\"><h3>L\u2019URL de notification n\u2019est pas accessible depuis Internet, est-ce grave ?<\/h3><\/dt>\n<dd><p>Oui : sans webhook, les commandes ne seront valid\u00e9es qu\u2019au retour du client sur la boutique. Si le client ferme son navigateur avant de revenir, il faudra rafra\u00eechir le statut manuellement. Sur un site en d\u00e9veloppement ou derri\u00e8re une authentification HTTP, exposez l\u2019URL ou utilisez un tunnel.<\/p><\/dd>\n<dt id=\"le%20webhook%20est-il%20suffisant%20pour%20valider%20une%20commande%20%3F\"><h3>Le webhook est-il suffisant pour valider une commande ?<\/h3><\/dt>\n<dd><p>Non, et l\u2019extension ne s\u2019y fie jamais. Apr\u00e8s v\u00e9rification de la signature et de l\u2019horodatage, elle r\u00e9-interroge <code>GET \/payments\/{id}<\/code> et n\u2019accepte la commande que si l\u2019API r\u00e9pond <code>succeeded<\/code> avec un montant (commission du client mise \u00e0 part) et une devise identiques \u00e0 ceux de la commande. En cas d\u2019\u00e9cart, la commande est plac\u00e9e en attente avec une note, jamais valid\u00e9e.<\/p><\/dd>\n<dt id=\"le%20mode%20test%20utilise-t-il%20de%20l%E2%80%99argent%20r%C3%A9el%20%3F\"><h3>Le mode Test utilise-t-il de l\u2019argent r\u00e9el ?<\/h3><\/dt>\n<dd><p>Oui. Le mode Test n\u2019est pas une simulation : il passe par un vrai canal de paiement, d\u00e9bite r\u00e9ellement le client et cr\u00e9dite votre solde WalleoPay, commission comprise. Seuls les cl\u00e9s, l\u2019historique et les statistiques restent s\u00e9par\u00e9s de la production. Choisissez le mode Test, utilisez votre cl\u00e9 <code>sk_test_\u2026<\/code> et faites vos essais avec de petits montants. Le mode effectivement appliqu\u00e9 d\u00e9coule toujours de la cl\u00e9 utilis\u00e9e, jamais d\u2019un param\u00e8tre de requ\u00eate.<\/p><\/dd>\n<dt id=\"mon%20client%20peut-il%20r%C3%A9essayer%20apr%C3%A8s%20un%20paiement%20%C3%A9chou%C3%A9%20ou%20expir%C3%A9%20%3F\"><h3>Mon client peut-il r\u00e9essayer apr\u00e8s un paiement \u00e9chou\u00e9 ou expir\u00e9 ?<\/h3><\/dt>\n<dd><p>Oui. La commande reste payable, et \u00ab Payer la commande \u00bb ouvre une nouvelle tentative sous sa propre r\u00e9f\u00e9rence (num\u00e9ro de commande, puis <code>-2<\/code>, <code>-3<\/code>\u2026) et sa propre cl\u00e9 d\u2019idempotence. Une nouvelle tentative ne s\u2019ouvre qu\u2019une fois la pr\u00e9c\u00e9dente close : il n\u2019y a jamais deux paiements payables \u00e0 la fois pour une m\u00eame commande, et un paiement r\u00e9ussi ou en cours de rapprochement bloque toute nouvelle demande.<\/p><\/dd>\n<dt id=\"mon%20client%20paie%20la%20commission%20%3A%20la%20commande%20est-elle%20valid%C3%A9e%20%3F\"><h3>Mon client paie la commission : la commande est-elle valid\u00e9e ?<\/h3><\/dt>\n<dd><p>Oui. Quand la commission est \u00e0 la charge du client, WalleoPay l\u2019ajoute au montant demand\u00e9 : le paiement porte sur le total de la commande plus la commission. L\u2019extension met la commission de c\u00f4t\u00e9 avant de comparer, valide la commande et ajoute une note indiquant la commission pay\u00e9e. Tout autre \u00e9cart laisse la commande en attente.<\/p><\/dd>\n<dt id=\"o%C3%B9%20consulter%20les%20%C3%A9changes%20avec%20l%E2%80%99api%20%3F\"><h3>O\u00f9 consulter les \u00e9changes avec l\u2019API ?<\/h3><\/dt>\n<dd><p>Activez \u00ab Journalisation \u00bb dans les r\u00e9glages, puis ouvrez WooCommerce \u2192 \u00c9tat \u2192 Journaux et s\u00e9lectionnez la source \u00ab walleopay \u00bb. Les cl\u00e9s secr\u00e8tes et secrets de webhook y sont syst\u00e9matiquement masqu\u00e9s.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Premi\u00e8re version publique.<\/li>\n<li>Cr\u00e9ation de paiement avec cl\u00e9 d\u2019idempotence d\u00e9terministe et redirection vers la page de paiement WalleoPay.<\/li>\n<li>Tentatives de paiement : apr\u00e8s un \u00e9chec, une annulation ou une expiration, \u00ab Payer la commande \u00bb ouvre une nouvelle tentative (r\u00e9f\u00e9rence suffix\u00e9e <code>-2<\/code>, <code>-3<\/code>\u2026, cl\u00e9 propre), jamais deux paiements payables \u00e0 la fois ; la notification d\u2019une tentative remplac\u00e9e ne touche plus la commande ; un second paiement r\u00e9ussi est signal\u00e9 par une note.<\/li>\n<li>Webhook sign\u00e9 (HMAC SHA-256, <code>hash_equals<\/code>, tol\u00e9rance de 300 s) avec re-v\u00e9rification obligatoire aupr\u00e8s de l\u2019API.<\/li>\n<li>Contr\u00f4le du montant et de la devise avant toute validation de commande.<\/li>\n<li>Page de retour client re-v\u00e9rifi\u00e9e c\u00f4t\u00e9 serveur.<\/li>\n<li>Encart d\u2019administration et action de commande \u00ab Rafra\u00eechir le statut WalleoPay \u00bb.<\/li>\n<li>Compatibilit\u00e9 HPOS d\u00e9clar\u00e9e.<\/li>\n<\/ul>","raw_excerpt":"Encaissez par MTN Mobile Money, Orange Money ou carte bancaire sur votre boutique WooCommerce gr\u00e2ce \u00e0 WalleoPay.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/400942","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=400942"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vsptech"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=400942"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=400942"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=400942"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=400942"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=400942"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=400942"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}