lepresk/momo-api

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

v1.0.2 2024-04-22 19:06 UTC

This package is auto-updated.

Last update: 2024-11-22 20:26:57 UTC


README

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 :

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

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.