Files
PayConnect-by-SallTech/readme.md
2025-08-23 21:16:45 +00:00

456 lines
14 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 💳 Plugin B-PAY Bankily pour WooCommerce - Version Complète
## 📋 Vue d'ensemble
Plugin WordPress/WooCommerce complet pour intégrer le système de paiement mobile B-PAY de Bankily en Mauritanie. Inclut une interface d'administration avancée pour la gestion des transactions en attente (TA) avec vérification automatique et re-vérification manuelle.
### ✨ Fonctionnalités principales
-**Paiements mobiles** via l'API B-PAY Bankily v1.0
-**Gestion complète des transactions TA** (en attente)
-**Vérification automatique** par tâches cron
-**Interface d'administration** intuitive et moderne
-**Re-vérification manuelle** individuelle et en lot
-**Monitoring en temps réel** et alertes
-**Export de données** et rapports automatiques
-**Mode test/production** avec données de test
-**Support multilingue** (FR, EN, AR)
---
## 📁 Structure complète des fichiers
```
wp-content/plugins/bankily-bpay/
├── 📄 bankily-bpay.php # Plugin principal
├── 📄 class-wc-bankily-bpay-gateway.php # Classe passerelle de paiement
├── 📄 class-bankily-admin.php # Interface d'administration
├── 📂 assets/
│ ├── 📄 bankily-bpay.js # JavaScript frontend (checkout)
│ ├── 📄 bankily-admin.js # JavaScript administration
│ └── 📄 bankily-admin.css # CSS interface admin
├── 📂 languages/
│ ├── 📄 bankily-bpay.pot # Template de traduction
│ ├── 📄 bankily-bpay-fr_FR.po # Traduction française
│ ├── 📄 bankily-bpay-fr_FR.mo # Fichier compilé français
│ ├── 📄 bankily-bpay-en_US.po # Traduction anglaise
│ ├── 📄 bankily-bpay-en_US.mo # Fichier compilé anglais
│ ├── 📄 compile-translations.sh # Script de compilation
│ └── 📄 README-LANGUAGES.md # Guide des traductions
└── 📄 README.md # Ce fichier
```
---
## 🚀 Installation
### 1. **Téléchargement des fichiers**
Créez la structure de dossiers :
```bash
# Aller dans le dossier plugins de WordPress
cd wp-content/plugins/
# Créer le dossier du plugin
mkdir bankily-bpay
cd bankily-bpay
# Créer le dossier assets
mkdir assets
mkdir languages
```
### 2. **Copier les fichiers**
Copiez chaque fichier créé dans les artefacts précédents :
| Artefact | Fichier de destination |
|----------|------------------------|
| `bankily_main_plugin` | `bankily-bpay.php` |
| `bankily_gateway_class` | `class-wc-bankily-bpay-gateway.php` |
| `bankily_admin_class` | `class-bankily-admin.php` |
| `bankily_frontend_js` | `assets/bankily-bpay.js` |
| `bankily_admin_js` | `assets/bankily-admin.js` |
| `bankily_admin_css` | `assets/bankily-admin.css` |
| `bankily_pot_template` | `languages/bankily-bpay.pot` |
| `bankily_french_po` | `languages/bankily-bpay-fr_FR.po` |
| `bankily_english_po` | `languages/bankily-bpay-en_US.po` |
| `bankily_languages_guide` | `languages/README-LANGUAGES.md` |
| `bankily_compile_script` | `languages/compile-translations.sh` |
### 3. **Compilation des traductions**
```bash
# Aller dans le dossier languages
cd wp-content/plugins/bankily-bpay/languages/
# Rendre le script exécutable
chmod +x compile-translations.sh
# Compiler les traductions
./compile-translations.sh
# Ou manuellement avec gettext
msgfmt bankily-bpay-fr_FR.po -o bankily-bpay-fr_FR.mo
msgfmt bankily-bpay-en_US.po -o bankily-bpay-en_US.mo
```
### 3. **Activation du plugin**
1. Aller dans **WordPress Admin** > **Extensions** > **Extensions installées**
2. Trouver "**B-PAY Bankily for WooCommerce**"
3. Cliquer sur "**Activer**"
4. Vérifier qu'aucune erreur ne s'affiche
### 4. **Vérification de l'installation**
Une fois activé, vous devriez voir :
- ✅ Nouveau menu "**B-PAY Transactions**" dans l'admin
- ✅ Table `wp_bankily_transactions` créée en base de données
- ✅ Méthode de paiement disponible dans WooCommerce
---
## ⚙️ Configuration
### 1. **Paramètres de base**
Aller dans **WooCommerce** > **Réglages** > **Paiements** > **B-PAY Bankily** :
```
✅ Activer : OUI
📝 Titre : "Paiement Mobile B-PAY"
📝 Description : "Payez avec votre mobile via B-PAY Bankily"
🧪 Mode Test : OUI (pour commencer)
👤 Nom d'utilisateur : [vos identifiants test]
🔐 Mot de passe : [votre mot de passe test]
🆔 Client ID : "e-bankily" (par défaut)
```
### 2. **Paramètres avancés**
Aller dans **B-PAY Transactions** > **Paramètres** :
```
⏰ Intervalle vérification auto : 15 minutes
🔄 Tentatives maximum : 5
❌ Marquage auto échecs : OUI
📧 Email notifications : [votre email]
```
### 3. **Test de fonctionnement**
#### Mode test - Données à utiliser :
```
📱 Numéro test : 22123456
🔐 Code PIN test : 1234
💰 Montant test : 100 MRU
```
#### Processus de test :
1. **Créer un produit** à 100 MRU
2. **Passer une commande** avec B-PAY
3. **Vérifier** dans l'interface admin que la transaction apparaît
4. **Tester la vérification** manuelle
5. **Contrôler les logs** WooCommerce
---
## 🎛️ Utilisation de l'interface d'administration
### 1. **Tableau de bord principal**
**Accès :** `Admin > B-PAY Transactions > Tableau de bord`
**Fonctionnalités :**
- 📊 **Statistiques** en temps réel (30 derniers jours)
-**Actions rapides** pour vérification massive
- 📋 **Transactions récentes** avec statuts
### 2. **Gestion des transactions en attente**
**Accès :** `Admin > B-PAY Transactions > En attente`
**Fonctionnalités :**
- 🔍 **Recherche avancée** par ID, téléphone, commande
-**Vérification individuelle** par bouton
- 📦 **Actions groupées** pour traitement en lot
- 📊 **Export CSV** des données
- 🔄 **Auto-refresh** toutes les 30 secondes
### 3. **Actions disponibles**
#### **Individuelles :**
- 🔍 **Vérifier** - Interroge l'API B-PAY pour le statut actuel
-**Marquer échec** - Force le statut à "échoué"
#### **Groupées :**
- 🔄 **Vérification en lot** - Traite plusieurs transactions (par batch de 5)
-**Marquage échec en lot** - Marque plusieurs comme échouées
- 📊 **Export sélection** - Exporte uniquement les sélectionnées
---
## 🔄 Système de vérification automatique
### 1. **Fonctionnement**
-**Planification** : Tâche cron toutes les 15 minutes (configurable)
- 🎯 **Cible** : Transactions avec statut `TA` et < 5 tentatives
- **Délai** : Dernière vérification > 5 minutes
- 📊 **Limite** : 20 transactions maximum par cycle
- 🕐 **Intervalle API** : 1 seconde entre chaque appel
### 2. **Logique de traitement**
```
1. Sélectionner transactions TA éligibles
2. Pour chaque transaction :
- Appeler l'API checkTransaction
- Si succès (TS) → Compléter la commande WooCommerce
- Si échec (TF) → Marquer comme échouée
- Si toujours en attente (TA) → Incrémenter compteur
- Si max tentatives atteint → Marquer échec (si activé)
3. Délai 1 seconde avant transaction suivante
4. Logs détaillés de chaque action
```
### 3. **Paramètres configurables**
| Paramètre | Valeur par défaut | Description |
|-----------|-------------------|-------------|
| Intervalle | 15 minutes | Fréquence des vérifications |
| Max tentatives | 5 | Nombre de vérifications avant abandon |
| Auto-échec | OUI | Marquer comme échoué après max tentatives |
| Batch size | 20 | Nombre max de transactions par cycle |
---
## 📊 Monitoring et alertes
### 1. **Indicateurs de santé**
L'interface surveille automatiquement :
- ⚠️ **Transactions urgentes** (> 2h en attente)
- 📈 **Taux de succès** des dernières 24h
-**Temps de résolution** moyen
- 📊 **Volume** de transactions par heure
### 2. **Système d'alertes**
#### **Admin Bar WordPress**
- 🔔 Notification si > 5 transactions urgentes
- ⚠️ Badge avec nombre de transactions nécessitant attention
#### **Widget Tableau de bord**
- 📊 Résumé 24h dans le dashboard WordPress
- 📈 Liens directs vers les actions
#### **Notifications Email**
- 📧 **Rapport quotidien** (8h du matin)
- 🚨 **Alertes critiques** (> 50 transactions en attente)
- ⚠️ **Taux d'erreur élevé** (> 20% sur 1h)
### 3. **Colonnes dans WooCommerce**
Ajout d'une colonne "**B-PAY**" dans la liste des commandes :
-**Statut visuel** (TS/TA/TF)
-**Âge** de la transaction si en attente
- 🔗 **Lien direct** vers les détails
---
## 🔧 Dépannage
### 1. **Problèmes courants**
#### ❌ **Erreur : "Table n'existe pas"**
```sql
-- Exécuter dans phpMyAdmin ou équivalent
CREATE TABLE wp_bankily_transactions (
id mediumint(9) NOT NULL AUTO_INCREMENT,
order_id bigint(20) NOT NULL,
operation_id varchar(100) NOT NULL,
transaction_id varchar(100) DEFAULT '',
client_phone varchar(20) NOT NULL,
amount decimal(10,2) NOT NULL,
status varchar(10) DEFAULT 'TA',
error_code varchar(10) DEFAULT '',
error_message text DEFAULT '',
created_at datetime DEFAULT CURRENT_TIMESTAMP,
last_checked datetime DEFAULT CURRENT_TIMESTAMP,
check_count int(11) DEFAULT 0,
PRIMARY KEY (id),
UNIQUE KEY operation_id (operation_id),
KEY order_id (order_id),
KEY status (status)
);
```
#### ❌ **Erreur : "JavaScript ne se charge pas"**
- Vérifier les permissions des fichiers dans `assets/`
- S'assurer que les fichiers JS/CSS sont accessibles via navigateur
- Vérifier les logs d'erreur JavaScript (F12)
#### ❌ **Erreur : "Tâches cron ne s'exécutent pas"**
```php
// Ajouter dans functions.php temporairement pour forcer
wp_schedule_single_event(time(), 'bankily_auto_check_transactions');
```
### 2. **Mode debug**
Activer les logs détaillés dans `wp-config.php` :
```php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('BANKILY_DEBUG', true); // Spécifique au plugin
```
Consulter les logs :
- **WordPress** : `/wp-content/debug.log`
- **WooCommerce** : `WooCommerce > Statut > Logs > bankily-bpay`
### 3. **Tests de connectivité**
```bash
# Tester l'API depuis le serveur
curl -X POST https://ebankily-tst.appspot.com/authentification \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=password&username=TEST&password=TEST&client_id=e-bankily"
```
---
## 📈 Performance et optimisation
### 1. **Optimisations incluses**
-**Cache des tokens** d'authentification (évite les appels répétés)
- 🗃️ **Indexes de base de données** sur les colonnes fréquemment utilisées
- 📦 **Traitement par lots** pour éviter la surcharge serveur
- ⏱️ **Délais intelligents** entre les appels API
- 🎯 **Requêtes optimisées** pour l'interface admin
### 2. **Recommandations serveur**
| Ressource | Minimum | Recommandé |
|-----------|---------|------------|
| PHP Memory | 128MB | 256MB+ |
| Max Execution Time | 30s | 60s+ |
| MySQL | 5.6+ | 8.0+ |
| WordPress | 5.0+ | 6.0+ |
| WooCommerce | 4.0+ | 7.0+ |
### 3. **Configuration production**
```php
// wp-config.php - Optimisations recommandées
define('WP_CACHE', true);
define('COMPRESS_CSS', true);
define('COMPRESS_SCRIPTS', true);
define('ENFORCE_GZIP', true);
// Plugin - Paramètres optimaux production
update_option('bankily_auto_check_interval', 10); // 10 min en prod
update_option('bankily_max_check_attempts', 8); // Plus de tentatives
```
---
## 🔒 Sécurité
### 1. **Mesures de protection**
- 🔐 **Chiffrement** des mots de passe en base
- 🎫 **Nonces WordPress** pour toutes les actions AJAX
- 👮 **Vérification des permissions** utilisateur
- 🛡️ **Sanitisation** de toutes les entrées
- 🔍 **Validation** stricte des données API
- 📝 **Audit trail** de toutes les actions admin
### 2. **Conformité RGPD**
- 📋 **Données minimales** collectées (téléphone, montants)
-**Purge automatique** des données anciennes (6 mois)
- 🔐 **Pas de stockage** des codes PIN
- 📊 **Anonymisation** possible des rapports
### 3. **Backup et récupération**
```bash
# Sauvegarde de la table des transactions
mysqldump -u user -p database_name wp_bankily_transactions > bankily_backup.sql
# Restauration
mysql -u user -p database_name < bankily_backup.sql
```
---
## 🌍 Support et maintenance
### 📞 **Obtenir de l'aide**
1. **Vérifier** ce README et la documentation
2. **Consulter** les logs d'erreur WordPress/WooCommerce
3. **Tester** en mode debug avec des données de test
4. **Contacter** l'équipe technique Bankily si nécessaire
### 🔄 **Maintenance préventive**
#### **Hebdomadaire :**
- 🗃️ Optimiser la table des transactions
- 📊 Vérifier les statistiques de performance
- 🧹 Nettoyer les logs anciens
#### **Mensuelle :**
- 📈 Analyser les tendances des transactions
- 🔧 Mettre à jour si nouvelles versions disponibles
- 💾 Sauvegarder les données de transactions
#### **Annuelle :**
- 🗂️ Archiver les transactions anciennes
- 📊 Rapport complet d'activité
- 🔐 Renouveler les identifiants API
---
## 📝 Changelog
### Version 1.0.0 - Version complète
-**Nouveauté** : Interface d'administration complète
-**Nouveauté** : Gestion avancée des transactions TA
-**Nouveauté** : Vérification automatique par cron
-**Nouveauté** : Actions groupées et exports
-**Nouveauté** : Monitoring en temps réel
-**Nouveauté** : Notifications et alertes
-**Nouveauté** : Mode debug avancé
-**Nouveauté** : Optimisations de performance
-**Intégration** : API B-PAY Bankily v1.0 complète
-**Support** : WordPress 5.0+ et WooCommerce 4.0+
-**Compatibilité** : PHP 7.4+ avec PHP 8+ testé
---
## 📄 Licence
Ce plugin est distribué sous licence **GPL v2 ou ultérieure**.
---
## 🎯 Résumé technique
| Caractéristique | Valeur |
|-----------------|--------|
| **Files PHP** | 3 fichiers (main, gateway, admin) |
| **Assets** | 3 fichiers (JS frontend, JS admin, CSS admin) |
| **Tables DB** | 1 table (`wp_bankily_transactions`) |
| **Hooks WP** | 15+ actions et filtres |
| **AJAX Endpoints** | 6 handlers pour l'administration |
| **Cron Jobs** | 2 tâches (vérification + rapport) |
| **API Calls** | 3 endpoints B-PAY (auth, payment, check) |
| **Lignes de code** | ~2500 lignes PHP + ~1000 lignes JS/CSS |
**Le plugin est maintenant prêt pour un déploiement professionnel ! 🚀**