Labyrinthe

Introdution

Ce package fournit un ensemble de classes et fonctions prêtes à l'utilisation, qui permettent d'intégrer rapidement les API des différents agrégateurs de paiement. Cette partie couvre spécifiquement l'intégration des APIs de LabyrinthePay dont l'utilisation présente des nombreux avantages.

Qu'est-ce que LabyrinthePay ?
LabyrinthePay est un service comme tant d'autres couverts par Labyrinthe-RDC (une entreprise numérique). Le service offre une collection évolutive et complète d'APIs proposée par Labyrinthe-RDC. Elle prend en charge un large éventail de méthodes de paiement que nous sommes les seuls à proposer. Des méthodes de paiement mobile, aux services bancaires et bientôt les crypto-monnaies, intégrez des solutions de paiement en toute simplicité.

Labyrinthe mobile service

Dans la section mobile, nous allons étudier tous les endpoints liés au paiement mobile. En d'autres termes, il s'agira d'effectuer un paiement et de vérifier les résultats de ces différents paiements. Nous proposerons également un sandbox (gratuits) pour vos différents tests de paiement avant de passer en production.

SandBox

Le sandbox est l'API la plus facile à intégrer car elle exige moins de paramètres que le reste. Son but est de tester le paiement dans votre application avant de la passer en production. Les paramètres à passer sont :

Params Descritption Exemple Required
token C'est la clé fournie par Labyrinthe pour vous permettre d'effectuer les transactions et les vérifications. Comment l'obtenir ? xxxxxxxxxx YES
reference C'est la référence de la transaction. C'est l'une des informations qui vous permettrons de retracer vos différentes transactions. xxxxxxxxxx YES
phone Le numéro de téléphone qui devra valider la transaction. 0891234567 YES
gateway C'est l'URL de l'API de LabyrinthePay qui permet d'effectuer les transactions test. Disponible ici. https://abc.com YES
Ranger ces informations dans un tableau :

Ces paramètres ne sont pas envoyés séparément mais plutôt sous forme d'un tableau pour des raisons de lisibilité et de concision. Cela permet aussi de filtrer et sécuriser le système d'une certaine manière.
Exemple :

PHP
    $array = [
        "token" => "$2y$12$ngaXsXGwkrxpTAA.ubLXietv/Pdadfbx3OziwIH88inGU4sGi6ivm",
        "reference" => "First_TX",
        "phone" => "0896699032",
        "gateway" => "https://payment.labyrinthe-rdc.com/api/beta/mobile",
    ];

Comment utiliser la méthode SandBox ?

Le package intéragit avec des systèmes extérieurs grâce à des méthodes statiques, ce qui facilite l'intégration et la compréhension du code.
Exemple :

PHP
    $labyrinthe = LabyrintheServiceProvider::sandbox($array);

  • LabyrintheServiceProvider :

    C'est la classe qui porte l'ensemble des méthodes de paiement et de vérification de LabyrinthePAY.

  • sandbox :

    C'est la méthode statique du sandbox de paiement de LabyrinthePAY.

  • $labyrinthe :

    C'est la variable (attribut) dans laquelle nous affectons les informations que retourne la fonction sandbox. Ces informations seront ensuite traitées selon les besoins.

Exemple du résultat :

JSON
    {
        "success": true,
        "errors": [],
        "array": 
            [
                {
                "success": true,
                "message": "Transaction envoyée avec succès. Veuillez valider le push message",
                "data": {
                    "code": "0",
                    "message": "Transaction envoyée avec succès. Veuillez valider le push message",
                    "orderNumber": "OgLxDSO53TEw243896699032"
                },
                "errors": []
                }
            ]
    }

JSON ou Tableau ?

Si vous observez la reponse contenu dans $labyrinthe, vous vous rendrez rapidement compte que c'est en JSON. Certaines personens apprécient la manipulation du JSON (jugée plus facile), d'autres préfèrent celle des tableaux.

Notre package offre la possibilité aux utilisateurs de choisir le format de réponse qui leur est convenable. Dans l'exemple d'avant, nous n'avons rien spécifié mais la réponse a été renvoyée en JSON, c'est normal parce que c'est le format par défaut. Voici comment passer d'un format à un autre :

PHP
    $array = [
        "token" => "$2y$12$ngaXsXGwkrxpTAA.ubLXietv/Pdadfbx3OziwIH88inGU4sGi6ivm",
        "reference" => "First_TX",
        "phone" => "0896699032",
        "gateway" => "https://payment.labyrinthe-rdc.com/api/beta/mobile",
    ];
    # Si vous voulez une réponse en format de tableau, mettez false.
    $options = [
        "JSON" => false
    ];
    # Passez ensuite $options comme deuxième paramètre.
    $labyrinthe = LabyrintheServiceProvider::sandbox($array, $options);


Manipuler les deux formats :

Si vous voulez du JSON, il y a deux possibilités. Soit vous faites comme dans notre premier exemple où nous avons appelé la méthode sandbox, c'est-à-dire ne pas passer $options comme paramètre de la méthode, soit vous passez à true la valeur de l'index JSON dans le tableau $options.

Si vous ne voulez pas du JSON, passez le paramètre $options dans la méthode sandbox, tout en s'assurant que la valeur de l'index JSON est false dans le tableau $options.

Pour montrer comment manipuler les valeurs en JSON avec du PHP, nous prendrons pour exemple la réponse en JSON de l'exemple précédent.

PHP
    # Afficher la valeur de success
    echo $labyrinthe->success;

    # Afficher le message de la reponse
    echo $labyrinthe->array->message;



Labyrinthe get transaction(s)

Dans cette section, nous verrons comment checker les informations liées à nos transactions. Ces informations peuvent être : le moyen de paiement, le montant, le statut, la monnaie, etc. Nous pourrons demander des informations pour une seule transaction ou en demander pour toutes nos transactions.

getTransaction

Cette fonction permettra de consulter les informations d'une seule transaction. Elle peut être importante pour la validation d'un achat, peut aider à faire l'inventairen, etc.

Params Descritption Exemple Required
token Qu'est-ce que le token ? Comment l'obtenir ? xxxxxxxxxx YES
orderNumber C'est une référence provenant de l'agrégateur. Elle permet de retracer les transactions. LTr4wiAI0a7j YES
gateway C'est l'URL de l'API de LabyrinthePAY qui permet de récupérer une transaction. Disponible ici. https://abc.com YES
Ranger ces informations dans un tableau :

Ces paramètres ne sont pas envoyés séparément mais plutôt sous forme d'un tableau pour des raisons de lisibilité et de concision. Cela permet aussi de filtrer et sécuriser le système d'une certaine manière.
Exemple :

PHP
    $array = [
        "token" => "$2y$12$ngaXsXGwkrxpTAA.ubLXietv/Pdadfbx3OziwIH88inGU4sGi6ivm",
        "orderNumber" => "LTr4wiAI0a7j243896699032",
        "gateway" => "https://payment.labyrinthe-rdc.com/api/beta/get-transaction",
    ];

Comment utiliser la méthode getTransaction ?

Le package intéragit avec des systèmes extérieurs grâce à des méthodes statiques, ce qui facilite l'intégration et la compréhension du code.
Exemple :

PHP
    $labyrinthe = LabyrintheServiceProvider::getTransaction($array);

  • LabyrintheServiceProvider :

    C'est la classe qui porte l'ensemble des méthodes de paiement et de vérification de LabyrinthePAY.

  • getTransaction :

    C'est la méthode statique qui permet la récuperation des détails d'un paiement spécifique effectué dans LabyrinthePAY.

  • $labyrinthe :

    C'est la variable (attribut) dans laquelle nous affectons les informations que retourne la fonction getTransaction. Ces informations seront ensuite traitées selon les besoins.

JSON
    {
        "data": {
            "success": true,
            "errors": [],
            "array": [
                [
                    {
                        "reference": "querty-1",
                        "orderNumber": "LTr4wiAI0a7j243896699032",
                        "type": 1,
                        ...
                        "provider_reference": "7cdsauzhzunnkyldo17yvfoedlyi3g6b",
                        "status": 1,
                    }
                ]
            ]
        }
    }


getTransactions

Cette fonction permettra de récupérer les informations de toutes les transaction à partir du token de l'utilisateur.

Params Descritption Exemple Required
token Qu'est-ce que le token ? Comment l'obtenir ? xxxxxxxxxx YES
gateway C'est l'URL de l'API de LabyrinthePAY qui permet de récupérer une transaction. Disponible ici. https://abc.xyz YES
Ranger ces informations un tableau :

Ces paramètres ne sont pas envoyés séparément mais plutôt sous forme d'un tableau pour de lisibilité et de concision. Cela permet aussi de filtrer et sécuriser le système d'une certaine manière.
Exemple :

PHP
    $array = [
        "token" => "$2y$12$ngaXsXGwkrxpTAA.ubLXietv/Pdadfbx3OziwIH88inGU4sGi6ivm",
        "gateway" => "https://payment.labyrinthe-rdc.com/api/beta/get-transactions",
    ];

Comment utiliser la méthode getTransactions ?

Le package intéragit avec des systèmes extérieurs grâce à des méthodes statiques, ce qui facilite l'intégration et la compréhension du code.
Exemple :

PHP
    $labyrinthe = LabyrintheServiceProvider::getTransactions($array);

  • LabyrintheServiceProvider :

    C'est la classe qui porte l'ensemble des méthodes de paiement et de vérification de LabyrinthePAY.

  • getTransactions :

    C'est la méthode statique qui permet la récuperation des détails des transactions spécifiques effectuées dans LabyrinthePAY.

  • $labyrinthe :

    C'est la variable (attribut) dans laquelle nous affectons les informations que retourne la fonction getTransactions. Ces informations seront ensuite traitées selon les besoins.