Skip to content

A powerful and user-friendly wrapper for integrating the MoMo (Mobile Money) API into PHP applications.

License

Notifications You must be signed in to change notification settings

lepresk/momo-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Librairie Momo API

Static Badge GitHub

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.

Fonctionnalités

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

Configuration requise

  • 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, le apiUser et le apiKey vous sont directement fourni par MTN

Installation

Pour installer la librairie lepresk/momo-api, vous pouvez utiliser Composer :

composer require lepresk/momo-api

Utilisation

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

Intéragir avec la sandbox

Créer un api user

// 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";

Récupérer les informations d'un utilisateur

$data = $momo->sandbox($subscriptionKey)->getApiUser($apiUser);
print_r($data);
// [
//      'providerCallbackHost' => 'https://my-domain.com/callback',
//      'targetEnvironment' => 'sandbox',
// ]

Créer une api key

$apiKey = $momo->sandbox($subscriptionKey)->createApiKey($apiUser);
echo "Api token created: $apiKey\n";

Intéragir avec le produit collection

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);

Obtenir un token oauth

$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

Récupérer le solde du compte

$balance = $momo->collection()->getAccountBalance();

echo $balance->getAvailableBalance(); // Solde du compte
echo $balance->getCurrency(); // Devise du compte

Faire une requête requestToPay

<?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)

Vérifier le status d'une transaction

<?php
// Vérifier le statut du paiement
$transaction = $momo->collection()->checkRequestStatus($paymentId);

echo $transaction->getStatus(); // Pour obtenir le statut de la transaction

Gérer le hook du callback

<?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

Documentation supplémentaire

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.

Contribution

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.

Licence

Cette librairie est distribuée sous la licence MIT. Vous êtes libre de l'utiliser et de la modifier selon vos besoins.

About

A powerful and user-friendly wrapper for integrating the MoMo (Mobile Money) API into PHP applications.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages