Orange Money : le deuxième pilier du paiement mobile au Sénégal
Si Wave domine en volume, Orange Money reste incontournable avec sa base massive d’utilisateurs Orange. Beaucoup de clients, surtout en région et chez les plus de 40 ans, utilisent exclusivement Orange Money. Ne pas le proposer, c’est ignorer une partie significative de votre marché.
Ce guide vous montre comment intégrer Orange Money sur votre boutique WooCommerce, de la méthode manuelle à l’intégration automatisée via l’API Orange Money ou une passerelle intermédiaire.
Comprendre l’écosystème Orange Money
| Caractéristique | Détail |
|---|---|
| Frais marchand | 2-4% selon le volume et le contrat |
| Frais client | Généralement 0 (payés par le marchand) |
| Plafond transaction | Jusqu’à 2 000 000 FCFA selon le niveau de compte |
| Délai crédit | Instantané sur compte OM, J+1 à J+3 sur compte bancaire |
| USSD | #144# (fonctionne sans internet) |
| Couverture | Tout le Sénégal + 15 pays d’Afrique |
Méthode 1 : Paiement USSD manuel
La méthode la plus basique, qui fonctionne même quand le client n’a pas internet :
Configuration WooCommerce
Utilisez la passerelle « Virement bancaire » détournée pour Orange Money :
- Titre : Paiement par Orange Money
- Description : Envoyez le montant via Orange Money. Instructions détaillées après validation de commande.
- Instructions :
Pour payer par Orange Money :
1. Composez #144# sur votre téléphone Orange
2. Choisissez "Transfert d'argent"
3. Entrez le numéro : 77 XXX XX XX
4. Entrez le montant exact : [MONTANT] FCFA
5. Confirmez avec votre code secret
6. Envoyez la confirmation SMS à notre WhatsApp : 77 XXX XX XX
Votre commande sera traitée dès réception du paiement.
Avantage clé : fonctionne pour les clients en zone rurale avec un simple téléphone basique, sans smartphone ni internet.
Méthode 2 : Via CinetPay (recommandé)
CinetPay est une passerelle de paiement panafricaine qui intègre Orange Money dans 10+ pays d’Afrique de l’Ouest. C’est la solution la plus simple pour une intégration automatisée.
Étape 1 : Créer un compte CinetPay
- Inscrivez-vous sur cinetpay.com
- Complétez le KYC : pièce d’identité, NINEA, registre de commerce
- Validez votre compte (3-7 jours ouvrables)
- Récupérez votre API Key et Site ID dans le tableau de bord
Étape 2 : Installer le plugin WooCommerce CinetPay
- Dans WordPress : Extensions > Ajouter
- Recherchez « CinetPay » ou téléchargez depuis le site CinetPay
- Installez et activez
- Allez dans WooCommerce > Réglages > Paiements > CinetPay
Étape 3 : Configuration
Activer : Oui
Titre : Payer par Orange Money / Wave / Carte
Description : Paiement sécurisé par mobile money ou carte bancaire
Mode : Live (après tests en Sandbox)
API Key : votre_api_key_cinetpay
Site ID : votre_site_id
URL de notification : https://votresite.sn/?wc-api=wc_cinetpay
Frais CinetPay : 2% pour Orange Money Sénégal (négociable selon volume), 3.5% pour cartes bancaires.
Méthode 3 : API Orange Money directe
Pour les entreprises avec un volume important et qui veulent réduire les frais d’intermédiaire.
Prérequis
- Contrat marchand Orange Money (contactez Orange Business via votre agence ou le 800 800 800)
- Compte Orange Money Business actif
- Clés d’accès API (Consumer Key, Consumer Secret, Merchant Key)
- Serveur HTTPS avec certificat SSL valide
Flux de paiement Orange Money API
- Votre site envoie une requête de paiement à l’API Orange Money
- Orange Money retourne une URL de paiement ou un code de paiement
- Le client entre son code secret Orange Money pour valider
- Orange Money envoie une notification (callback) à votre serveur
- Votre site confirme la commande automatiquement
// Initier un paiement Orange Money
function initier_paiement_om($order_id) {
$order = wc_get_order($order_id);
// 1. Obtenir le token d'accès
$token_response = wp_remote_post('https://api.orange.com/oauth/v3/token', array(
'headers' => array(
'Authorization' => 'Basic ' . base64_encode(CONSUMER_KEY . ':' . CONSUMER_SECRET),
'Content-Type' => 'application/x-www-form-urlencoded'
),
'body' => 'grant_type=client_credentials'
));
$token = json_decode(wp_remote_retrieve_body($token_response))->access_token;
// 2. Créer la demande de paiement
$payment_response = wp_remote_post('https://api.orange.com/orange-money-webpay/dev/v1/webpayment', array(
'headers' => array(
'Authorization' => 'Bearer ' . $token,
'Content-Type' => 'application/json'
),
'body' => json_encode(array(
'merchant_key' => MERCHANT_KEY,
'currency' => 'OUV',
'order_id' => 'CMD-' . $order_id,
'amount' => intval($order->get_total()),
'return_url' => $order->get_checkout_order_received_url(),
'cancel_url' => $order->get_cancel_order_url(),
'notif_url' => home_url('/wc-api/om_callback/'),
'lang' => 'fr'
))
));
$body = json_decode(wp_remote_retrieve_body($payment_response));
if (isset($body->payment_url)) {
return array('result' => 'success', 'redirect' => $body->payment_url);
}
return new WP_Error('om_error', 'Erreur Orange Money. Veuillez réessayer.');
}
Via PayDunya : Wave + Orange Money en une seule intégration
Si vous avez déjà intégré PayDunya pour Wave (voir notre guide Wave), Orange Money est automatiquement inclus. Le client choisit son moyen de paiement préféré sur la page PayDunya.
C’est la solution la plus pragmatique : une seule intégration = Wave + Orange Money + Carte bancaire. Les frais sont de 3.5% par transaction, mais vous économisez le temps de développement et de maintenance de deux intégrations séparées.
Gérer les cas particuliers
Paiement échoué / timeout
Orange Money peut mettre 30 secondes à 1 minute pour traiter un paiement. Prévoyez :
- Un message d’attente clair : « Validation en cours, ne fermez pas cette page… »
- Un timer de 90 secondes avant d’afficher « Réessayer »
- Un recours : « Si le problème persiste, payez par Wave ou contactez-nous sur WhatsApp »
Remboursement Orange Money
Les remboursements Orange Money ne sont pas automatisés. Processus :
- Identifiez le paiement dans votre tableau de bord Orange Money / CinetPay
- Effectuez un transfert retour manuellement depuis votre compte OM
- Documentez la transaction avec numéro de référence
- Mettez à jour le statut WooCommerce en « Remboursé »
Client sans smartphone
Environ 25% des utilisateurs Orange Money au Sénégal utilisent un téléphone basique. Pour eux :
- Proposez le USSD (#144#) comme option principale
- Envoyez les instructions par SMS (pas WhatsApp) après la commande
- Acceptez les commandes par appel téléphonique avec paiement USSD
Sécurité des paiements Orange Money
- Ne stockez jamais les clés API dans le code source : utilisez wp-config.php ou des variables d’environnement
- Vérifiez toujours les montants dans le callback : comparez le montant reçu avec le montant de la commande WooCommerce
- Utilisez HTTPS : obligatoire pour les API de paiement
- Loguez toutes les transactions : en cas de litige, vous avez besoin de preuves
- Vérifiez la provenance des callbacks : vérifiez l’IP source ou utilisez un token de sécurité
// Stocker les clés API de manière sécurisée dans wp-config.php
define('OM_CONSUMER_KEY', 'votre_consumer_key');
define('OM_CONSUMER_SECRET', 'votre_consumer_secret');
define('OM_MERCHANT_KEY', 'votre_merchant_key');
// Puis dans votre plugin :
$consumer_key = defined('OM_CONSUMER_KEY') ? OM_CONSUMER_KEY : '';
Checklist intégration Orange Money
- Compte Orange Money Business ou passerelle (CinetPay/PayDunya) actif
- Plugin configuré et testé en mode sandbox
- Callback/webhook fonctionnel (testez avec un vrai paiement de 100 FCFA)
- Logo Orange Money visible sur la page checkout et le footer
- Instructions USSD claires pour les clients sans smartphone
- Fallback en place (Wave, COD) si Orange Money est indisponible
- Clés API stockées dans wp-config.php, pas dans le code
- Processus de remboursement documenté
- Rapprochement comptable quotidien entre OM et WooCommerce