F

Projets

Moov Money SDK

Moov Money SDK

Moov Money PHP SDK est une bibliothèque qui permet aux développeurs d’intégrer facilement l’API de Moov Money dans leurs applications PHP sans avoir à manipuler directement les requêtes SOAP. Cette documentation fournit une vue d’ensemble des configurations et des fonctionnalités principales du SDK, accompagnée d’exemples de code.

Table des Matières

  1. Installation
  2. Configuration
  3. Fonctionnalités
  4. Gestion des réponses
  5. Gestion des erreurs
  6. Exceptions
  7. Les Todos
  8. Contribution
  9. Développeur

Installation

Installez le SDK via Composer en exécutant la commande suivante :

composer require v1p3r75/moov-money-api-sdk

Configuration

Avant d’utiliser le SDK, configurez les identifiants de connexion, le timeout pour les requêtes, clé de chiffrements, l’environnement (sandbox ou production), etc. Le SDK inclut une classe MoovMoneyAPIConfig pour simplifier cette configuration.

<?php
 
use MoovMoney\MoovMoneyAPI;
use MoovMoney\MoovMoneyAPIConfig;
 
$config = new MoovMoneyAPIConfig();
$config->setUsername('your_username')
       ->setPassword('your_password')
       ->setRequestTimeout(30) // en secondes
       ->useSandbox(true); // Active le mode sandbox (désactivez pour production)
 
$moovApi = new MoovMoneyAPI($config);
 

Détails des Options de Configuration

OptionTypeDescription
usernamestringNom d'utilisateur fourni par Moov Money.
passwordstringMot de passe pour l'authentification de l'API Moov Money.
baseUrlstringURL de l'API Moov Money. Par défaut, l'URL du mode sandbox est utilisée. En mode production, l'URL de prod est automatiquement définie lors de l'appel à useSandbox(false).
encryptionKeystringClé de chiffrement pour générer les tokens d'authentification (32 caractères pour AES-256). Le SDK utilise la clé fournie par Moov : tlc12345tlc12345tlc12345tlc12345. Vous ne devez pas modifier cette clé, sauf si Moov en fournit une nouvelle.
requestTimeoutfloatDurée maximale (en secondes) pour les requêtes HTTP (60 par défaut).
useSandboxboolDéfinit l'environnement (true pour sandbox, false pour production). Par défaut, le mode sandbox est activé.

Gestion des Environnements (Sandbox et Production)

Le SDK prend en charge deux environnements : sandbox (test) et production.

Par défaut, l'environnement est configuré en mode sandbox pour garantir que les appels initiaux n'affectent pas les transactions réelles. Vous pouvez basculer entre les environnements en utilisant la méthode useSandbox.

Exemple :
<?php
 
$config = new MoovMoneyAPIConfig();
 
// Activer le mode production
$config->useSandbox(false);
 
// Vérifier l'environnement actif
if ($config->isSandbox()) {
    echo "Environnement actif : Sandbox";
} else {
    echo "Environnement actif : Production";
}

Lorsque vous passez en mode production avec useSandbox(false), l'URL de base (https://testapimarchand2.moov-africa.bj:2010/com.tlc.merchant.api/UssdPush?wsdl) est automatiquement mise à jour vers l'URL de production (https://apimarchand.moov-africa.bj/com.tlc.merchant.api/UssdPush?wsdl).

NB : Si vous constatez que les URL utilisées par le SDK ne correspondent pas à celles fournies par Moov Money, n'hésitez pas à utiliser la méthode setBaseUrl pour les définir directement.

Fonctionnalités

Le SDK propose quelques fonctionnalités :

1. Envoyer une Transaction Push

La méthode pushTransaction envoie une demande de paiement au client via une transaction push.

<?php
 
$response = $moovApi->pushTransaction(
    telephone: '22995901234',
    amount: 5000,
    message: 'Paiement de 5000 FCFA',
    data1: 'Order_1234', // facultatif
    data2: 'Additional info', // facultatif
    fee: 0 // frais facultatif
);
 

Paramètres :

2. Envoyer une Transaction Push avec Statut en Attente

La méthode pushWithPendingTransaction envoie une demande de transaction push qui reste en attente jusqu’à confirmation du client. Ce dernier peut confirmer la transaction après grâce à un code USSD.

<?php
$response = $moovApi->pushWithPendingTransaction(
    telephone: '22995181010',
    amount: 5000,
    message: 'Paiement de 5000 FCFA',
    data1: 'Order_1234',
    data2: 'Additional info',
    fee: 0
);

3. Vérifier le Statut d'une Transaction

La méthode getTransactionStatus permet de vérifier le statut d'une transaction existante en fournissant son identifiant de référence.

<?php
 
$statusResponse = $moovApi->getTransactionStatus('72024103000000009');
 

Paramètres :

4. Transfert Flooz vers un Compte Autorisé

La méthode transferFlooz permet de transférer des fonds depuis le compte du marchand vers un compte de destination autorisé par les configurations.

<?php
$response = $moovApi->transferFlooz(
    destination: '22995181010',
    amount: 10000,
    referenceId: 'Ref_12345',
    walletId: '0', // ID du portefeuille, par défaut "0"
    data: 'Transfert vers partenaire' // facultatif
);

Paramètres :

5. Vérification du Solde d'un Abonné

La méthode getBalance permet de vérifier le solde actuel d'un compte abonné, en interrogeant le portefeuille principal par défaut (ID du portefeuille : 0).

$response = $moovApi->getBalance('22995181010');

Paramètres :

6. Récupération du Statut Mobile et des Informations KYC (getMobileStatus)

La méthode getMobileStatus permet d’obtenir le statut d'un abonné et des informations KYC (par exemple, type de compte, nom, date de naissance, etc.).

<?php
 
$response = $moovApi->getMobileStatus('22995181010');
 

Paramètres :

7. Effectuer des transactions de dépôt d'argent (cash-in) vers un abonné

La méthode cashIn permet d'éffectuer les transactions de dépôt d'argent (cash-in) vers un abonné.

<?php
 
$response = $moovApi->cashIn(
    "98239988",
    2000,
    "10000000",
    "other_data"
);
 

Paramètres :

8. Effectuer des transactions de rechargement de crédit téléphonique pour un abonné

La méthode airTime permet d'éffectuer les transactions de rechargement (airtime) de crédit téléphonique pour un abonné.

<?php
 
$response = $moovApi->airTime(
    "98239988",
    2000,
    "10000000",
    "other_data"
);
 

Paramètres :

Gestion des réponses

La classe MoovMoneyApiResponse dans le SDK Moov Money encapsule les réponses de l'API pour fournir une interface simple et cohérente aux développeurs. Cette classe permet d'accéder aux données de la réponse sous forme d'objet, offrant des méthodes pour extraire les informations les plus importantes sur la transaction.

Description des Méthodes

Voici un aperçu des méthodes principales de MoovMoneyApiResponse :

Réponse pour Transfert Flooz (TransferFloozResponse)

Lorsque vous effectuez un transfert de fonds avec la méthode transferFlooz, les réponses spécifiques à cette méthode sont encapsulées dans un objet TransferFloozResponse au sein de MoovMoneyApiResponse, accessible via la propriété TransferFlooz. Cet objet offre un accès simplifié aux informations du transfert, telles que l’identifiant de la transaction, le solde avant/après, le coût et le bonus appliqué.

Méthodes principales de TransferFloozResponse :

Réponse pour la Vérification de Solde (GetBalanceResponse)

Lorsque vous effectuez une vérification de solde avec la méthode getBalance, les réponses spécifiques à cette méthode sont encapsulées dans un objet GetBalanceResponse au sein de MoovMoneyApiResponse, accessible via la propriété GetBalance.

Méthodes principales de GetBalanceResponse :

Réponse pour la Récupération du Statut Mobile et des Informations KYC (getMobileStatus)

Lorsque vous effectuez une récupération de statut avec la méthode getMobileStatus, les réponses spécifiques à cette méthode sont encapsulées dans un objet GetMobileStatusResponse au sein de MoovMoneyApiResponse, accessible via la propriété GetMobileStatus.

Méthodes principales de GetMobileStatusResponse :

Gestion des erreurs

Les erreurs envoyées par l'API Moov Money sont levées sous forme d'exceptions, comportant le message d'erreur associé, via la classe ServerErrorException::class. (Plus d'informations)

Exceptions

Le SDK Moov Money gère les erreurs en lançant des exceptions spécifiques pour faciliter le débogage et la gestion des erreurs. Voici les principales exceptions que vous pourriez rencontrer :

Ces exceptions permettent aux développeurs de réagir de manière appropriée aux différents types d'erreurs rencontrées lors des interactions avec l'API, en facilitant la gestion des cas d'erreur et en améliorant la robustesse des applications qui utilisent ce SDK.

Les tâches à réaliser (Todos)

Contribution

Les contributions sont les bienvenues ! Pour signaler un bug ou proposer des fonctionnalités, veuillez soumettre une issue ou une pull request. Plus sur comment contributer.

License

Ce projet est sous licence MIT, une licence open-source permissive qui permet une utilisation, modification et distribution libres du code. Pour plus de détails sur les conditions et les droits accordés par cette licence, consultez le fichier LICENSE inclus dans le projet.

Développeurs