Résultats des Tests de l'API MVola¶
Ce document présente les résultats de nos tests d'intégration avec l'API MVola et nos conclusions.
Résumé¶
Après plusieurs tests exhaustifs de l'API MVola, nous avons identifié les points suivants :
- Authentification fonctionnelle : L'API d'authentification (
/token) fonctionne parfaitement, permettant d'obtenir un token d'accès valide avec le scopeEXT_INT_MVOLA_SCOPE. - Problèmes avec l'API d'initiation de paiement : L'API d'initiation de paiement (
/mvola/mm/transactions/type/merchantpay/1.0.0/) présente des problèmes récurrents dans l'environnement sandbox, notamment l'erreur "Missing field" (code 4001). - Incohérences dans la documentation : Certains champs requis ne sont pas clairement indiqués comme obligatoires dans la documentation, notamment les champs
fcetamountFcdans les métadonnées.
Tests effectués¶
1. Test d'authentification¶
- Résultat : ✅ Succès
- Détails : L'authentification fonctionne correctement et nous avons pu obtenir un token d'accès valide.
- Exemple : Voir
examples/auth_example.py
2. Test d'initiation de paiement¶
- Résultat : ❌ Échec
- Erreur : "Missing field" (code 4001)
- Détails : Malgré l'inclusion de tous les champs mentionnés dans la documentation (y compris
fcetamountFc), l'API renvoie toujours une erreur indiquant qu'un champ obligatoire est manquant. - Tests effectués :
- Test suivant exactement la documentation (
test_doc_exact.py) - Test basé sur la commande cURL fournie dans la documentation (
test_curl_exact.py) - Test avec diverses variations et champs supplémentaires (
test_final_attempt.py) - Test avec notre bibliothèque mise à jour (
test_updated_implementation.py)
3. Test de vérification de statut et de détails de transaction¶
- Résultat : ❓ Non concluant
- Détails : Ces tests n'ont pas pu être complétés car nous n'avons pas réussi à créer une transaction via l'API d'initiation de paiement.
Solutions implémentées¶
Malgré les problèmes rencontrés, nous avons amélioré notre bibliothèque :
- Ajout des champs obligatoires par défaut : Les champs
fcetamountFcsont maintenant inclus par défaut dans toutes les requêtes d'initiation de paiement. - Documentation des limitations : Nous avons documenté clairement les limitations connues de l'API MVola dans le README et dans le code source.
- Amélioration de la gestion des erreurs : La bibliothèque peut maintenant reconnaître et traiter différents formats de messages d'erreur retournés par l'API.
- Exemple d'authentification fonctionnel : Nous avons créé un exemple qui démontre comment utiliser la partie authentification qui fonctionne correctement.
Recommandations¶
Basées sur nos tests, voici nos recommandations :
- Contacter le support MVola : Il est recommandé de contacter le support technique MVola pour obtenir des clarifications sur les champs requis pour l'initiation de paiement qui ne sont pas mentionnés dans la documentation.
- Tester en production : Si possible, effectuer des tests dans l'environnement de production (après autorisation) car les problèmes peuvent être spécifiques à l'environnement sandbox.
- Utiliser les numéros de test correctement : S'assurer d'utiliser les numéros de test fournis (0343500003 et 0343500004) pour les tests dans l'environnement sandbox.
- Vérifier les mises à jour de l'API : Consulter régulièrement la documentation MVola pour les mises à jour qui pourraient résoudre ces problèmes.
Conclusion¶
L'API MVola présente un potentiel intéressant pour l'intégration des paiements mobiles, mais l'environnement sandbox actuel comporte des limitations qui rendent les tests difficiles. Notre bibliothèque a été mise à jour pour gérer au mieux ces limitations et offre une base solide pour l'intégration une fois que les problèmes d'API seront résolus.
La partie authentification fonctionne parfaitement et peut être utilisée dès maintenant. Pour la partie initiation de paiement, des tests supplémentaires seront nécessaires lorsque les problèmes d'API seront résolus.
Annexes¶
Exemples de réponses d'erreur¶
{
"errorCategory": "validation",
"errorCode": "formatError",
"errorDescription": "Missing field",
"errorDateTime": "2025-07-01T13:19:17.406",
"errorParameters": [
{
"key": "mmErrorCode",
"value": "4001"
}
]
}
Configuration testée¶
- URLs API :
- Sandbox:
https://devapi.mvola.mg - Production:
https://api.mvola.mg - Numéros de test : 0343500003, 0343500004
- Scope d'authentification :
EXT_INT_MVOLA_SCOPE