Intégrer CMI sur WooCommerce en 2026 : guide pas-à-pas pour e-commerce marocains
CMI + WooCommerce : l'association incontournable au Maroc
Si vous lancez un e-commerce au Maroc et voulez accepter les cartes bancaires marocaines (CMI, Visa, Mastercard domestiques), la passerelle CMI (Centre Monétique Interbancaire) est incontournable. Ce guide couvre l'intégration technique à WooCommerce de bout en bout.
Étape 1 : obtenir un compte marchand CMI
- Être immatriculé au RC (registre de commerce) avec une société marocaine.
- Ouvrir un compte bancaire professionnel dans une banque partenaire CMI (Attijariwafa, BMCE, BP, Crédit Agricole, CIH, SGMB...).
- Remplir le dossier marchand CMI fourni par votre banque : extrait RC, identité dirigeant, K-bis, URL site, description produits.
- Délai typique : 2 à 4 semaines selon la banque.
- À la validation, CMI fournit : ClientID, Store Name, Store Password, URL de test + production.
Étape 2 : choisir un plugin WooCommerce CMI
Plusieurs options existent :
- Plugins payants spécialisés (~500-1500 MAD one-shot) : maintenance assurée, support.
- Plugin sur mesure : je développe des intégrations CMI dédiées avec gestion des statuts, webhooks, réconciliation.
- Plugins gratuits : attention à la maintenance, souvent obsolètes.
Je recommande un développement sur mesure si votre boutique dépasse 100 commandes/mois — la fiabilité devient critique.
Étape 3 : flux technique CMI en détail
- Client valide son panier et clique "Payer avec CMI".
- WooCommerce génère un formulaire signé (SHA-512 HMAC) avec montant, devise (MAD), OID (order ID), clientId, hash.
- Redirect POST vers la page sécurisée CMI (3DSecure obligatoire).
- Client saisit sa carte, reçoit OTP SMS, valide.
- CMI redirige vers votre URL OkUrl (succès) ou FailUrl (échec) en POST.
- Vérification du hash de retour côté serveur obligatoire (évite la manipulation URL).
- Mise à jour du statut commande WooCommerce + envoi mail client.
Étape 4 : tests en sandbox CMI
CMI fournit un environnement de test avec URL dédiée et cartes fictives. Testez impérativement :
- Paiement réussi
- Paiement refusé (carte bloquée, solde insuffisant)
- Abandon après redirect (client ferme la fenêtre)
- Erreur hash (cas malveillant)
- Double soumission (idempotence)
Étape 5 : passage en production
- Remplacer URL test par URL production CMI.
- Configurer certificat SSL valide (obligatoire pour 3DSecure).
- Logger toutes les transactions (succès + échec) pour audit bancaire.
- Activer le mode live côté dashboard CMI après validation banque.
Erreurs fréquentes à éviter
- Hash non vérifié côté retour — faille majeure, un attaquant peut simuler un succès.
- Montant en MAD non converti en centimes (100 MAD = 10000 en paramètre).
- Pas de gestion du timeout (client ferme navigateur, commande reste en "pending").
- OID non unique — CMI rejette un OID déjà utilisé.
- Devise autre que MAD — CMI n'accepte que MAD (978).
Combiner CMI + Stripe + COD
Pour une boutique MA internationale, proposez 3 méthodes :
- CMI pour cartes marocaines
- Stripe (via société UE/US, voir guide Stripe Maroc) pour cartes internationales
- Paiement à la livraison pour les clients MA méfiants du paiement en ligne (encore ~40% du marché)
Besoin d'une intégration CMI fiable ?
J'intègre CMI sur WooCommerce depuis 2016 (et sur Magento, PrestaShop, Laravel custom). [email protected] pour un devis sous 24h.
