La sécurité des paiements : un enjeu de confiance
Au Sénégal, la peur de l’arnaque en ligne est le premier frein à l’achat. Vos clients se demandent : « Est-ce que mon argent est en sécurité ? », « Est-ce que je vais vraiment recevoir mon produit ? ». Sécuriser vos paiements n’est pas seulement technique, c’est avant tout un signal de confiance envoyé à vos clients.
Les fondamentaux : certificat SSL
Le certificat SSL (le cadenas dans la barre d’adresse + https://) est obligatoire pour toute boutique en ligne :
- Chiffre les données entre le navigateur du client et votre serveur
- Google le prend en compte pour le référencement (SEO)
- WooCommerce l’exige pour activer les passerelles de paiement
- Let’s Encrypt est gratuit et inclus chez la plupart des hébergeurs (O2Switch, Hostinger)
Vérifiez dans WooCommerce > État du système que la ligne « Forcé SSL » est active. Si non, allez dans WooCommerce > Réglages > Avancé et cochez « Forcer le checkout sécurisé ».
Sécuriser WooCommerce
Mises à jour régulières
80% des piratages WordPress exploitent des failles connues dans des versions obsolètes :
- Mettez à jour WordPress, WooCommerce et tous les plugins chaque semaine
- Mettez à jour votre thème
- Supprimez les plugins et thèmes inactifs
- Faites un backup avant chaque mise à jour (plugin UpdraftPlus gratuit)
Plugin de sécurité : Wordfence
Installez Wordfence Security (gratuit) :
- Firewall : bloque les attaques avant qu’elles n’atteignent WordPress
- Scan malware : détecte les fichiers modifiés ou malveillants
- Protection brute force : limite les tentatives de connexion
- Authentification 2FA : double vérification pour la connexion admin
Sécuriser wp-config.php
// Ajouter dans wp-config.php
// Désactiver l'éditeur de fichiers dans l'admin
define('DISALLOW_FILE_EDIT', true);
// Forcer SSL pour l'admin
define('FORCE_SSL_ADMIN', true);
// Changer le préfixe de table (lors de l'installation)
// $table_prefix = 'wp_'; → $table_prefix = 'itsc_';
// Clés de sécurité uniques (générez-les sur api.wordpress.org/secret-key)
define('AUTH_KEY', 'votre_clé_unique');
define('SECURE_AUTH_KEY', 'votre_clé_unique');
// etc.
Sécurité des passerelles de paiement
Wave et Orange Money
Les paiements Wave et Orange Money sont intrinsèquement sécurisés car :
- Le client valide avec son code secret personnel sur son téléphone
- Vous ne voyez jamais les identifiants du client
- La transaction est confirmée par un callback serveur-à-serveur
- Pas de données de carte bancaire à stocker
Règles de sécurité pour les clés API :
- Stockez les clés API dans
wp-config.php, jamais dans le code du plugin - Utilisez le mode sandbox/test pour développer
- Vérifiez le montant dans chaque callback (un attaquant pourrait envoyer 100 FCFA au lieu de 10 000)
- Loguez toutes les transactions pour l’audit
Vérifier les callbacks de paiement
// Vérification sécurisée du callback de paiement
function verifier_callback_paiement($payload) {
// 1. Vérifier que le montant correspond
$order_id = intval($payload['order_id']);
$order = wc_get_order($order_id);
if (!$order) {
error_log('Callback: commande introuvable - ' . $order_id);
return false;
}
$montant_attendu = floatval($order->get_total());
$montant_recu = floatval($payload['amount']);
if (abs($montant_attendu - $montant_recu) > 1) {
error_log('Callback: montant incorrect - attendu: ' . $montant_attendu . ' reçu: ' . $montant_recu);
$order->add_order_note('ALERTE : montant callback incorrect');
return false;
}
// 2. Vérifier que la commande n'est pas déjà payée
if ($order->is_paid()) {
error_log('Callback: commande déjà payée - ' . $order_id);
return false;
}
// 3. Tout est OK, confirmer le paiement
$order->payment_complete($payload['transaction_id']);
return true;
}
Paiement par carte bancaire
Si vous acceptez les cartes bancaires via PayDunya, CinetPay ou Stripe :
- Ne stockez JAMAIS les données de carte sur votre serveur. Les passerelles gèrent cela pour vous (conformité PCI-DSS)
- Utilisez toujours la page de paiement hébergée par la passerelle (le client est redirigé vers PayDunya/CinetPay pour payer, puis revient sur votre site)
- Vérifiez que la passerelle est certifiée PCI-DSS
Protéger contre la fraude
Fraudes courantes au Sénégal
| Type de fraude | Comment ça marche | Comment s’en protéger |
|---|---|---|
| Faux paiement COD | Le client prétend avoir payé par Wave mais n’a rien envoyé | Toujours vérifier dans votre app Wave avant d’expédier |
| Capture d’écran falsifiée | Le client envoie un faux screenshot de transfert Wave | Vérifiez dans VOTRE app, pas sur le screenshot |
| Commande massive + refus | Grosse commande COD, le client ne répond plus | Confirmation téléphonique + acompte Wave pour les commandes > 50 000 FCFA |
| Chargeback carte | Le client conteste le paiement après réception | Gardez les preuves de livraison, photos, échanges WhatsApp |
Mesures anti-fraude WooCommerce
// Bloquer les commandes COD au-dessus d'un certain montant
add_filter('woocommerce_available_payment_gateways', 'limiter_cod');
function limiter_cod($gateways) {
if (is_admin()) return $gateways;
if (isset($gateways['cod']) && WC()->cart->get_total('') > 50000) {
unset($gateways['cod']);
}
return $gateways;
}
// Exiger la confirmation téléphonique pour les grosses commandes
add_action('woocommerce_checkout_process', 'verifier_telephone');
function verifier_telephone() {
if (empty($_POST['billing_phone'])) {
wc_add_notice('Le numéro de téléphone est obligatoire.', 'error');
}
}
Rassurer vos clients
La sécurité technique ne suffit pas. Vous devez aussi communiquer la sécurité :
- Badges de confiance au checkout : logos SSL, Wave, Orange Money, « Paiement sécurisé »
- Politique de retour visible : « Satisfait ou remboursé sous 7 jours »
- Coordonnées visibles : adresse, téléphone, WhatsApp. Un business qui se cache n’inspire pas confiance
- Avis clients : les témoignages d’autres acheteurs sont votre meilleure preuve de sécurité
- Mentions légales : NINEA, CGV, politique de confidentialité
Checklist sécurité paiement
- Certificat SSL actif (https:// + cadenas)
- WordPress, WooCommerce et plugins à jour
- Wordfence installé et configuré
- Authentification 2FA pour l’admin
- Clés API stockées dans wp-config.php
- Callbacks de paiement vérifiés (montant, statut commande)
- Backup quotidien automatisé (UpdraftPlus)
- Mot de passe admin fort (12+ caractères)
- COD limité à 50 000 FCFA max
- Badges de confiance visibles au checkout