Avant de chercher un CMI WooCommerce plugin sur le répertoire officiel de WordPress, une précision qui vous fera gagner une soirée : il n'y en a pas. Une recherche sur le dépôt d'extensions ne renvoie aucun module officiel du Centre Monétique Interbancaire. Le branchement se fait avec le kit d'intégration que le CMI vous remet après affiliation, via un module fourni par votre intégrateur ou développé à partir de ce kit. Ce guide décrit l'enchaînement complet : ce que vous recevez, comment le configurer, ce qui fait échouer les mises en production, et comment vérifier qu'une commande payée est bien réconciliée dans WooCommerce.
Ce que le CMI vous fournit réellement
Le CMI décrit son processus d'affiliation dans son livret e-commerce : le site marchand reçoit d'abord un kit d'intégration avec accès à un environnement de test, c'est-à-dire une documentation technique détaillée et des codes de scripts décrivant la procédure d'interfaçage avec la plateforme de paiement. Une fois la phase de test validée, le site passe en production.
Concrètement, vous repartez avec :
- un identifiant de point de vente, qui désigne votre boutique auprès de la plateforme ;
- une clé secrète, utilisée pour signer chaque échange ;
- l'adresse de l'environnement de test et celle de la production ;
- la documentation des paramètres attendus et des réponses renvoyées.
La page de paiement elle-même est hébergée par le CMI : votre client quitte votre site, saisit sa carte sur une page sécurisée — personnalisable à votre charte et disponible en arabe, français et anglais — puis revient chez vous. Vous ne manipulez jamais les numéros de carte, ce qui vous décharge de l'essentiel des contraintes de conformité.
Ce que le CMI ne fournit pas : le module WordPress. C'est votre part du travail, et c'est pour cela que ce guide existe. Si WooCommerce n'est pas encore arrêté de votre côté, notre comparatif YouCan, Shopify et WooCommerce explique pourquoi c'est celle des trois qui se branche le plus directement sur un contrat bancaire marocain.
Les prérequis, dans l'ordre
Un contrat actif. Sans affiliation validée, vous n'avez ni identifiant ni clé, et l'environnement de test ne vous sera pas ouvert. Si vous n'en êtes pas là, commencez par notre guide du dossier d'affiliation CMI ; et si vous hésitez encore entre le circuit bancaire et un autre encaisseur, comparez-les dans notre panorama des passerelles de paiement au Maroc.
Un certificat valide sur tout le site. Pas seulement sur la page de commande : toutes les pages, y compris l'administration, doivent répondre en HTTPS, avec un certificat non expiré et une chaîne complète. Un certificat valide dans le navigateur mais incomplet côté serveur provoque des échecs de rappel invisibles à l'œil nu.
La boutique en dirhams. WooCommerce doit être réglé sur le dirham marocain, dont le code international est MAD, code numérique 504. Le CMI rappelle dans sa foire aux questions que les transactions se font en dirham marocain : vous pouvez afficher d'autres devises sur votre catalogue, mais le montant transmis doit être en dirhams.
Une adresse de boutique stable. Décidez avant l'intégration si votre site vit sur le domaine avec ou sans le préfixe www. Changer d'avis après coup casse les adresses de retour déclarées.
Configurer le module, paramètre par paramètre
Une fois le module installé et activé, vous retrouvez ses réglages dans les paramètres de paiement de WooCommerce. Quatre blocs comptent vraiment.
Les identifiants. Collez l'identifiant de point de vente et la clé secrète. Vérifiez qu'aucune espace ne s'est glissée avant ou après : c'est la première cause d'erreur de signature, et elle est indétectable à l'œil.
L'environnement. Le module doit pointer vers l'adresse de test tant que vous testez, vers celle de production ensuite. Une mise en ligne avec l'adresse de test laisse des commandes qui semblent payées sans qu'aucun argent ne circule.
Les adresses de retour. Trois adresses sont à déclarer : celle du retour après paiement réussi, celle du retour après échec ou annulation, et celle du rappel serveur qui notifie votre site. Elles doivent être absolues, en HTTPS, sur le domaine public du site. Ni adresse locale, ni adresse d'environnement de préproduction, ni redirection intermédiaire.
La devise et la langue. Transmettez le code du dirham et la langue de la page de paiement. Si votre clientèle est majoritairement arabophone, la page existe en arabe : utilisez-la, le taux d'abandon sur l'écran de paiement en dépend.
Les cinq erreurs qui bloquent une mise en production
La signature qui ne correspond pas. Le CMI signe chaque échange avec un algorithme de hachage et une clé de sécurité. Si le calcul diffère d'un caractère, la transaction est rejetée. Causes fréquentes : une clé recopiée avec un espace, une régénération de clé côté CMI non répercutée, ou un encodage de caractères différent entre votre serveur et la documentation.
Le rappel serveur inaccessible. Un pare-feu applicatif, une protection anti-robots, un cache trop agressif ou un site en mode maintenance peuvent bloquer la notification envoyée par la plateforme. Résultat classique : le client voit « paiement accepté », et la commande reste en attente chez vous. Autorisez explicitement l'adresse de rappel dans votre pare-feu et excluez-la du cache.
Des adresses de retour approximatives. Une adresse déclarée en http alors que le site répond en https, un domaine déclaré sans www alors que le site force le www, une adresse de préproduction restée dans la configuration : à chaque fois, le client revient sur une page d'erreur après avoir payé.
Une devise mal transmise. Montant envoyé dans une devise différente de celle du contrat, ou format numérique incorrect — séparateur de milliers, virgule au lieu du point. La transaction part, mais elle est refusée ou, pire, passe pour un montant erroné.
L'échec d'authentification côté client. La foire aux questions du CMI liste les messages que voient vos clients : authentification 3D Secure échouée, carte périmée, carte interdite ou en opposition, transaction non aboutie. Ce ne sont pas des bugs de votre site : ce sont des refus de la banque émettrice. Affichez-les en clair, en proposant une autre carte ou un autre mode de règlement, plutôt qu'une page d'erreur générique.
Tester sérieusement avant de basculer
L'environnement de test n'est pas une formalité. Déroulez ces cas, un par un, et notez le résultat.
| Cas à tester | Ce que vous devez constater |
|---|---|
| Paiement accepté | Retour sur la page de confirmation, commande passée en « en cours » ou « terminée », e-mail client envoyé |
| Paiement refusé | Retour sur la page d'échec, commande en « échouée », panier conservé pour réessayer |
| Abandon sur la page de paiement | Aucune commande validée, panier intact |
| Fermeture du navigateur après paiement | La commande se met à jour quand même, via le rappel serveur |
| Double clic sur le bouton de paiement | Une seule commande, un seul débit |
| Remboursement | Opération réalisée depuis le back-office CMI, statut ajusté dans WooCommerce |
Le cinquième cas mérite une attention particulière : c'est celui qui génère les doubles commandes et les appels clients. Le quatrième est le meilleur test de votre rappel serveur, puisqu'il coupe volontairement le retour navigateur.
Vérifier que l'argent et les commandes concordent
La plateforme CMI met à votre disposition un back-office où vous pouvez consulter le détail des transactions, télécharger les rapports détaillés et gérer les opérations de confirmation, d'annulation et de remboursement, ainsi que la pré-autorisation.
Prenez l'habitude, au moins la première semaine puis une fois par semaine, de faire le rapprochement suivant : exportez les transactions acceptées de la veille depuis le back-office, exportez les commandes payées de WooCommerce sur la même période, et comparez le nombre de lignes et le total.
Trois écarts typiques, et ce qu'ils signifient.
Une transaction acceptée sans commande correspondante : le rappel serveur n'est pas passé. Le client a payé, vous ne l'avez pas vu. C'est le cas le plus grave commercialement — corrigez le blocage avant tout le reste.
Une commande payée sans transaction : un statut a été modifié à la main dans WooCommerce, ou un autre moyen de paiement est en jeu.
Un montant qui diffère : frais de livraison ajoutés après le calcul du montant transmis, ou remise appliquée au mauvais moment dans le tunnel.
Enfin, rappelez-vous que votre boutique manipule désormais des paiements : les mises à jour de WordPress, des extensions et du thème deviennent une obligation, pas une option. Nos bonnes pratiques de sécurité pour un site au Maroc s'appliquent à la lettre dès qu'un tunnel de paiement est en production.
Si vous préférez ne pas passer vos soirées sur des erreurs de signature, nous intégrons le paiement carte sur WooCommerce pour des commerçants d'Agadir et d'ailleurs au Maroc, tests et mise en production compris. Décrivez-nous votre site et le stade de votre dossier d'affiliation : vous recevez un devis gratuit sous 24 h depuis la page d'accueil de Samed Agency.
Questions fréquentes
Existe-t-il un plugin CMI officiel pour WooCommerce ?
Non, aucune extension officielle du CMI ne figure sur le répertoire WordPress. Le CMI fournit un kit d'intégration — documentation et scripts — et l'accès à un environnement de test. Le module WordPress vient donc de votre intégrateur ou d'un développement basé sur ce kit. Méfiez-vous des modules trouvés au hasard : une extension de paiement non maintenue est une porte d'entrée sur votre boutique.
Pourquoi mes commandes restent-elles « en attente » après un paiement accepté ?
Dans la quasi-totalité des cas, le rappel serveur envoyé par la plateforme n'atteint pas votre site : pare-feu applicatif, protection anti-robots, cache ou mode maintenance. Vérifiez les journaux du serveur sur l'adresse de rappel, autorisez-la explicitement et excluez-la de tout cache.
Puis-je rembourser un client directement depuis WooCommerce ?
Le remboursement, total ou partiel, s'exécute depuis la plateforme du CMI, tout comme l'annulation d'une transaction. Selon le module utilisé, l'opération peut être déclenchée depuis WooCommerce, mais vérifiez toujours dans le back-office que l'opération a bien été enregistrée, puis ajustez le statut de la commande.
Faut-il un certificat SSL particulier ?
Un certificat valide et correctement installé sur l'ensemble du domaine suffit. Le point de vigilance n'est pas le type de certificat mais la chaîne de certification complète côté serveur : un certificat accepté par le navigateur mais incomplet provoque des échecs de communication entre la plateforme et votre site. Vérifiez-le avec un outil de diagnostic SSL plutôt qu'en vous fiant au cadenas affiché dans votre navigateur.
