Pourquoi Wave est incontournable pour le e-commerce au Sénégal
Wave est devenu le portefeuille mobile numéro 1 au Sénégal. Avec des frais de transfert à 1% (plafonnés à 5 000 FCFA), une adoption massive, et une interface simple, c’est le moyen de paiement que vos clients utilisent déjà au quotidien. Ne pas proposer Wave sur votre boutique, c’est perdre 40 à 60% de vos ventes potentielles.
Ce guide couvre toutes les méthodes d’intégration de Wave sur votre site WooCommerce : du simple lien de paiement au checkout automatisé via l’API Wave Business.
Les différentes façons d’accepter Wave
| Méthode | Complexité | Automatisation | Coût | Idéal pour |
|---|---|---|---|---|
| Virement manuel | Très simple | Aucune | 0 FCFA | Débutants, -10 commandes/semaine |
| QR Code fixe | Simple | Aucune | 0 FCFA | Boutiques avec peu de produits |
| Lien de paiement Wave | Moyen | Semi-auto | 1% par transaction | PME, 10-50 commandes/semaine |
| API Wave Business | Avancé | Complète | 1% par transaction | Boutiques à volume, +50 commandes/semaine |
| Via PayDunya/CinetPay | Moyen | Complète | 2-3.5% par transaction | Besoin de plusieurs moyens de paiement |
Méthode 1 : Virement Wave manuel (gratuit)
La méthode la plus simple pour commencer. Aucune intégration technique nécessaire.
Configuration dans WooCommerce
Allez dans WooCommerce > Réglages > Paiements > Virement bancaire et configurez-le comme passerelle Wave :
- Titre : Paiement par Wave
- Description : Envoyez le montant exact à notre numéro Wave. Votre commande sera traitée dès réception du paiement.
- Instructions : Envoyez [montant] FCFA au 77 XXX XX XX via Wave. Indiquez votre numéro de commande en référence. Envoyez une capture d’écran à notre WhatsApp : 77 XXX XX XX
Processus de vérification manuelle
- Le client passe commande et choisit « Paiement par Wave »
- Il reçoit les instructions avec votre numéro Wave
- Il effectue le transfert et envoie la capture d’écran sur WhatsApp
- Vous vérifiez dans votre app Wave et passez la commande en « En cours »
Avantage : zéro frais technique. Inconvénient : vérification manuelle, risque d’erreur, ne scale pas.
Méthode 2 : QR Code Wave sur la page de paiement
Générez un QR Code Wave avec votre numéro marchand et affichez-le sur la page de confirmation :
// Ajouter le QR Code Wave sur la page de remerciement
add_action('woocommerce_thankyou', 'afficher_qr_wave');
function afficher_qr_wave($order_id) {
$order = wc_get_order($order_id);
if ($order->get_payment_method() !== 'bacs') return;
if ($order->get_status() !== 'on-hold') return;
$montant = $order->get_total();
$numero_wave = '77XXXXXXX'; // Votre numéro Wave
echo '<div style="text-align:center;padding:20px;background:#f0f7ff;border-radius:10px;margin:20px 0;">';
echo '<h3>Payez par Wave</h3>';
echo '<p>Scannez ce QR Code avec votre app Wave ou envoyez <strong>' . number_format($montant, 0, ',', ' ') . ' FCFA</strong> au <strong>' . $numero_wave . '</strong></p>';
echo '<img src="https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=wave://pay?phone=' . $numero_wave . '%26amount=' . $montant . '" alt="QR Code Wave" />';
echo '<p style="margin-top:15px;">Après paiement, envoyez la capture à notre <a href="https://wa.me/221' . $numero_wave . '">WhatsApp</a></p>';
echo '</div>';
}
Méthode 3 : Intégration via PayDunya (recommandé)
PayDunya est une passerelle de paiement sénégalaise qui intègre Wave, Orange Money, et carte bancaire. C’est la solution la plus équilibrée entre simplicité et automatisation.
Étape 1 : Créer un compte PayDunya Business
- Inscrivez-vous sur paydunya.com avec votre compte Business
- Soumettez les documents : NINEA, pièce d’identité, RIB bancaire
- Attendez la validation (2-5 jours ouvrables)
- Récupérez vos clés API dans le tableau de bord (Master Key, Private Key, Token, Public Key)
Étape 2 : Installer le plugin WooCommerce PayDunya
- Téléchargez le plugin WooCommerce PayDunya depuis le site PayDunya
- Allez dans Extensions > Ajouter > Téléverser et installez le fichier .zip
- Activez le plugin
- Allez dans WooCommerce > Réglages > Paiements > PayDunya
Étape 3 : Configuration du plugin
Titre : Payer avec Wave, Orange Money ou Carte
Description : Paiement sécurisé via Wave, Orange Money ou carte bancaire
Mode : Production (après tests en Sandbox)
Master Key : pk_live_XXXXXXXXXXXXX
Private Key : prv_live_XXXXXXXXXXXXX
Token : tk_live_XXXXXXXXXXXXX
URL de callback : https://votresite.sn/wc-api/wc_paydunya/
Frais PayDunya : 3.5% par transaction Wave, 3.5% par transaction Orange Money. Le paiement est automatisé : dès que le client paye, la commande passe automatiquement en « En cours de traitement ».
Méthode 4 : API Wave Business (intégration directe)
Pour les boutiques à volume qui veulent minimiser les frais (1% vs 3.5% via PayDunya). Nécessite un compte Wave Business et des compétences techniques.
Prérequis
- Compte Wave Business actif
- Clé API Wave (demandée via le support Wave Business)
- Serveur avec HTTPS (certificat SSL obligatoire)
- URL de callback accessible publiquement
Créer un checkout Wave via l’API
// Plugin custom WooCommerce pour Wave API
// Fichier : wp-content/plugins/wave-payment/wave-payment.php
add_action('plugins_loaded', 'init_wave_gateway');
function init_wave_gateway() {
class WC_Gateway_Wave extends WC_Payment_Gateway {
public function __construct() {
$this->id = 'wave_payment';
$this->method_title = 'Wave';
$this->method_description = 'Paiement direct via Wave Mobile Money';
$this->has_fields = false;
$this->init_form_fields();
$this->init_settings();
$this->title = $this->get_option('title');
$this->api_key = $this->get_option('api_key');
add_action('woocommerce_update_options_payment_gateways_' . $this->id, array($this, 'process_admin_options'));
}
public function init_form_fields() {
$this->form_fields = array(
'enabled' => array('title' => 'Activer', 'type' => 'checkbox', 'default' => 'yes'),
'title' => array('title' => 'Titre', 'type' => 'text', 'default' => 'Payer avec Wave'),
'api_key' => array('title' => 'Clé API Wave', 'type' => 'password')
);
}
public function process_payment($order_id) {
$order = wc_get_order($order_id);
$response = wp_remote_post('https://api.wave.com/v1/checkout/sessions', array(
'headers' => array(
'Authorization' => 'Bearer ' . $this->api_key,
'Content-Type' => 'application/json'
),
'body' => json_encode(array(
'amount' => $order->get_total(),
'currency' => 'XOF',
'error_url' => $order->get_cancel_order_url(),
'success_url' => $this->get_return_url($order),
'client_reference' => 'CMD-' . $order_id
))
));
$body = json_decode(wp_remote_retrieve_body($response));
if (isset($body->wave_launch_url)) {
$order->update_status('pending', 'En attente du paiement Wave');
return array('result' => 'success', 'redirect' => $body->wave_launch_url);
}
wc_add_notice('Erreur Wave : veuillez réessayer.', 'error');
return;
}
}
}
add_filter('woocommerce_payment_gateways', function($gateways) {
$gateways[] = 'WC_Gateway_Wave';
return $gateways;
});
Gérer le callback (webhook)
// Webhook pour confirmer le paiement Wave
add_action('woocommerce_api_wave_callback', 'traiter_callback_wave');
function traiter_callback_wave() {
$payload = json_decode(file_get_contents('php://input'), true);
if (!$payload || !isset($payload['client_reference'])) {
wp_die('Requête invalide', 400);
}
// Extraire l'ID de commande
$order_id = str_replace('CMD-', '', $payload['client_reference']);
$order = wc_get_order($order_id);
if (!$order) wp_die('Commande introuvable', 404);
if ($payload['payment_status'] === 'succeeded') {
$order->payment_complete($payload['transaction_id']);
$order->add_order_note('Paiement Wave reçu. Transaction : ' . $payload['transaction_id']);
} elseif ($payload['payment_status'] === 'failed') {
$order->update_status('failed', 'Paiement Wave échoué');
}
wp_die('OK', 200);
}
Bonnes pratiques paiement Wave
- Affichez le logo Wave sur votre checkout, page d’accueil et footer. Les clients cherchent visuellement les moyens de paiement qu’ils connaissent
- Montrez les frais clairement : « Paiement Wave : 0 FCFA de frais pour vous » (les frais sont pour le marchand)
- Testez en sandbox d’abord : utilisez le mode test de PayDunya ou Wave avant de passer en production
- Prévoyez un fallback : si Wave est en panne (rare mais possible), proposez Orange Money ou COD
- Envoyez la confirmation instantanément : un message WhatsApp automatique à la réception du paiement rassure le client
- Rapprochez vos comptes quotidiennement : vérifiez que chaque paiement Wave correspond à une commande WooCommerce
Comparatif des coûts selon le volume
| Volume mensuel | Wave manuel | PayDunya (3.5%) | Wave API (1%) |
|---|---|---|---|
| 500 000 FCFA | 0 FCFA | 17 500 FCFA | 5 000 FCFA |
| 2 000 000 FCFA | 0 FCFA | 70 000 FCFA | 20 000 FCFA |
| 5 000 000 FCFA | 0 FCFA | 175 000 FCFA | 50 000 FCFA |
| 10 000 000 FCFA | 0 FCFA | 350 000 FCFA | 100 000 FCFA |
Au-delà de 2 millions FCFA/mois, l’intégration API directe se rentabilise en 1 mois par rapport à PayDunya. En dessous, PayDunya reste le meilleur choix car l’automatisation vous fait gagner du temps.