Download the PHP package ekolotech/mobilemoney-gateway without Composer
On this page you can find all versions of the php package ekolotech/mobilemoney-gateway. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download ekolotech/mobilemoney-gateway
More information about ekolotech/mobilemoney-gateway
Files in ekolotech/mobilemoney-gateway
Package mobilemoney-gateway
Short Description Provides a set of classes that can be used to call APIs and web interfaces for mobile money payments in Africa
License MIT
Homepage https://github.com/igorcyberdyne/MobileMoneyGateway
Informations about the package mobilemoney-gateway
ekolotech/mobilemoney-gateway
Auteur : @igorcyberdyne, @EKOLOTECH
ekolotech/mobilemoney-gateway est un composant qui fournit un ensemble de classes et méthodes permettant d'utiliser les API des opérations de paiement et de dépôts d'argent via le mobile money pour les opérateurs et les plateformes de paiement.
Opérateurs et plateforme pris en compte :
- MTN Mobile Money
Comment installer ?
Vous pouvez
Télécharger le composant sur
githubekolotech/mobilemoney-gateway
OU exécuter la commande ci-dessous dans la console
composer require ekolotech/mobilemoney-gateway
------------------------------------- CAS D'UTILISATION ------------------------------------
I - L'API MTN Mobile Money (MoMo API)
A ce niveau le composant implémente deux (2) produits de MoMo API; à savoir le produit Collections et le produit Disbursements.
Pour effectuer les opérations sur ces deux produits, deux objets ayant la signature des interfaces
CollectionGatewayInterface et DisbursementGatewayInterface vous permettent d'utiliser respectivement
les opérations encaissements ou collect d'argent et les opérations de décaissements ou dépôts d'argent.
1. CollectionGatewayInterface
Description des méthodes de l'interface CollectionGatewayInterface
collect(...)Permet de demander un paiement à un client. La demande de paiement est en attente jusqu'à ce que la transaction soit autorisée ou refusée par le client ou qu'elle soit interrompue par le système après un delais d'attente depassé. Il est indispensable de vérifier le statut de la demande de paiement avec la méthode suivante.collectReference(...)Permet d'obtenir le statut d'une demande de paiement.
2. DisbursementGatewayInterface
Description des méthodes de l'interface DisbursementGatewayInterface
disburse(...)Permet de transferer un montant de votre compte propre vers un compte bénéficiaire. Il est indispensable de vérifier le statut du transfert avec la méthode suivante.disburseReference(...)Permet d'obtenir le statut d'un transfert
Pour les deux interfaces :
isAccountIsActive(...)Permet de vérifier si un titulaire de compte est enregistré et actif dans le système.getAccountBasicInfo(...)Permet d'obtenir les informations personnelles du titulaire du compte, telque son nom et prénom.balance()Permet d'obtenir le solde du compte de Collection ou de Disbursements
3. Comment créer des instances des interfaces CollectionGatewayInterface et DisbursementGatewayInterface?
L'obtention de ces deux objets se fait à partir d'une factory ApiGatewayFactory du composant.
Les deux méthodes static de la factory attendent en paramètre une instance de l'interface MtnApiAccessAndEnvironmentConfigInterface.
Cette interface permet de renseigner les données de configuration pour communiquer avec le serveur de MoMo API en environnement sandbox ou en production.
getProviderCallbackUrl(...)Cette url est indispensable pour l'environnement de production, car le serveur MoMo API enverra à ce end-point les données contenant le statut de la transaction de paiement. La requête envoyé à ce end-point sera enPOST.
Description des paramètres du constructeur de la classe MtnAuthenticationProduct(...)
$subscriptionKeyOne'Primary key' à récupérer dans votre profile MoMo API de Collections ou de Disbursements.$subscriptionKeyTwo'Secondary key' à récupérer dans votre profile MoMo API de Collections ou de Disbursements.$apiUserSi c'est pas fournit, il sera créé par le composant, il est préférable d'implémenter la méthodeonApiUserCreated(string $apiUser): void;afin d'enregistrer cette valeur dans votre base de données.$apiKeySi c'est pas fournit, il sera créé par le composant, il est préférable d'implémenter la méthodeonApiKeyCreated(string $apiKey): void;afin d'enregistrer cette valeur dans votre base de données.
Description des paramètres du constructeur de la classe MtnAccessToken(...)
Cet objet vous permet d'effectuer certaines opérations. Vous devez fournir cet objet, si vous ne l'avez pas il sera généré. Implémentez la méthode onTokenCreated(MtnAccessToken $mtnAccessToken): void pour l'enregistrer dans votre base de données.
$accessTokenLe token d'accès qui vous permet d'effectuer des paiements et les dépôts MoMo$tokenTypeLe type du tokenaccess_token$expiresInLe temps d'expiration du tokenaccess_tokenexprimé en seconde. Ce temps est de3600 secondes, soit 1 heure$isExpiredVous devez calculer en se basant de la date de création et du temps d'expiration pour définir si ce tokenaccess_tokenest expiré ou pas.
N.B : Il est indispensable de bien traiter le paramètre $isExpired pour éviter que le composant le créé toutes les fois.
Exemple d'implémentation :
Application de démonstration
Pour voir un exemple beaucoup plus complet, consultez la démonstration dans le projet MobileMoneyGateway > DemoApp.
Vous pouvez également exécuter la démo directement depuis la racine du projet, avec la commande suivante.
php DemoApp\DemoApp.php
Remarque
L'exécution des tests ou de l'application démo peut échouer ou être bloqué pour cause de plusieurs requêtes simultannées. Généralement le test sur la récupération du solde de compte peut faire échouer les tests s'ils sont tous exécutés à la fois. Il serait préférable d'exécuter le test ou la méthode en question dans l'application démonstration de façon indépendante des autres.