La librairie lepresk/momo-api est une surcouche au-dessus de l'API officielle de Momo (Mobile Money). Elle facilite l'interaction avec la plateforme Momo et fournit des fonctionnalités supplémentaires pour simplifier l'intégration et la gestion des transactions financières.
La librairie lepresk/momo-api vous permet de :
Produit | Support |
---|---|
Sandbox | - Créer un api user - Créer un api key - Récupérer les informations du compte |
Collection | - Récupérer le solde du compte - Faire un requestToPay - Vérifier le statut d'une transaction - Gérer le callback |
Disbursement | - En cours d'implémentation |
- PHP 7.4 ou supérieur.
- Avoir un compte sur Momo Developper et récupérer la
subscriptionKey
ou avoir les clés d'API fournit par MTN si vous êtes en production.
📢 En production la
subscriptionKey
, leapiUser
et leapiKey
vous sont directement fourni par MTN
Pour installer la librairie lepresk/momo-api, vous pouvez utiliser Composer :
composer require lepresk/momo-api
Voici un exemple simple d'utilisation de la librairie :
<?php
use Lepresk\MomoApi\MomoApi;
use Lepresk\MomoApi\Utilities;
require 'vendor/autoload.php';
// Récupérer la subscriptionKey dans son profile ou utiliser celui fournit par MTN si vous êtes en production
$subscriptionKey = 'SUBSCRIPTION KEY HERE';
// Récupérer le client Momo
$momo = MomoApi::create(MomoApi::ENVIRONMENT_SANDBOX);
📢 Assurez-vous de remplacer "SUBSCRIPTION KEY HERE" par votre clé d'abonnement réelle.
Les environnements possibles
Constante | Valeur | Default |
---|---|---|
MomoApi::ENVIRONMENT_MTN_CONGO |
mtncongo | |
MomoApi::ENVIRONMENT_MTN_UGANDA |
mtnuganda | |
MomoApi::ENVIRONMENT_MTN_GHANA |
mtnghana | |
MomoApi::ENVIRONMENT_IVORY_COAST |
mtnivorycoast | |
MomoApi::ENVIRONMENT_ZAMBIA |
mtnzambia | |
MomoApi::ENVIRONMENT_CAMEROON |
mtncameroon | |
MomoApi::ENVIRONMENT_BENIN |
mtnbenin | |
MomoApi::ENVIRONMENT_SWAZILAND |
mtnswaziland | |
MomoApi::ENVIRONMENT_GUINEACONAKRY |
mtnguineaconakry | |
MomoApi::ENVIRONMENT_SOUTHAFRICA |
mtnsouthafrica | |
MomoApi::ENVIRONMENT_LIBERIA |
mtnliberia | |
MomoApi::ENVIRONMENT_SANDBOX |
sandbox | OUI |
// Créer une api user
$uuid = Utilities::guidv4(); // Ou tout autre guuidv4 valide
$callbackHost = 'https://my-domain.com/callback';
$apiUser = $momo->sandbox($subscriptionKey)->createApiUser($uuid, $callbackHost);
echo "Api user created: $apiUser\n";
$data = $momo->sandbox($subscriptionKey)->getApiUser($apiUser);
print_r($data);
// [
// 'providerCallbackHost' => 'https://my-domain.com/callback',
// 'targetEnvironment' => 'sandbox',
// ]
$apiKey = $momo->sandbox($subscriptionKey)->createApiKey($apiUser);
echo "Api token created: $apiKey\n";
Avant d'utiliser l'API collection, vous devez définir la configuration.
// Créer un object Config
$config = new \Lepresk\MomoApi\Config::collection($subscriptionKey, $apiUser, $apiKey, $callbackHost);
// Définir la configuration sur l'instance de MomoApi
$momo->setupCollection($config);
$token = $momo->collection()->getAccessToken();
echo $token->getAccessToken(); // Token
echo $token->getExpiresIn(); // Date d'expiration du token
Pour faire une requête requestToPay ou vérifier le statut de la transaction, vous n'avez pas besoin de demander un token, il est automatiquement généré à chaque transaction
$balance = $momo->collection()->getAccountBalance();
echo $balance->getAvailableBalance(); // Solde du compte
echo $balance->getCurrency(); // Devise du compte
<?php
// Pour initier un paiement requestToPay
$request = new PaymentRequest(1000, 'EUR', 'ORDER-10', '46733123454', 'Payer message', 'Payer note');
$paymentId = $momo->collection()->requestToPay($request);
Pour obtenir les numéros de téléphones de test, veuillez vous référer à https://momodeveloper.mtn.com/api-documentation/testing/
$paymentId
est l'id du paiement qui vient d'être éffectuer, vous pouvez l'enregistrer dans votre base de données pour l'utiliser plus tard (vérifier le statut du paiement par exemple)
<?php
// Vérifier le statut du paiement
$transaction = $momo->collection()->checkRequestStatus($paymentId);
echo $transaction->getStatus(); // Pour obtenir le statut de la transaction
<?php
use Lepresk\MomoApi\Models\Transaction;
// Créer un objet transaction depuis le tableau GET
$transaction = Transaction::parse($_GET);
echo $transaction->getStatus(); // Pour obtenir le statut de la transaction
echo $transaction->getAmount(); // Pour récuperer le montant de la transaction
Pour plus d'informations sur l'utilisation de la librairie lepresk/momo-api et les fonctionnalités disponibles, veuillez consulter la documentation officielle dans le dossier "docs" du dépôt GitHub.
Les contributions sont les bienvenues ! Si vous souhaitez améliorer la librairie, signalez des problèmes ou soumettez des demandes de fonctionnalités, veuillez créer une issue sur le dépôt GitHub de la librairie : lepresk/momo-api.
Cette librairie est distribuée sous la licence MIT. Vous êtes libre de l'utiliser et de la modifier selon vos besoins.