Get Transaction(s)

Pour checker les états de vos différentes transactions, LabyrinthePay met à votre disposition des APIs de vérification. Très simples et pratiques à intégrer. Dans cette section nous vous montrerons comment recupérer les détails d'une seule transaction et/ou de l'ensemble de vos transactions.

N.B:

  • La connexion internet est requise pour toutes ces opérations. Beaucoup oublient d'activer la connexion internet lorsqu'ils travaillent en local alors que toutes ces APIs sont dans un serveur distant. Ne vous inquiétez pas, les APIs ne consomment pas beaucoup.

Get-transaction
Routes

La route est la passerelle comprise entre votre demande, l'action et la réponse de votre requête. En d'autres termes, c'est l'URL dans laquelle vous envoyez votre requête.

API
    https://payment.labyrinthe-rdc.com/api/beta/get-transaction

Les caractéristiques principales de la requête :

URL Méthode Return value ?
https://payment.labyrinthe-rdc.com/api/beta/get-transaction POST YES

Les paramètres de la requête :

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
orderNumber C'est une référence de la transaction envoyé par le provider. C'est l'une des informations qui vous permettrons de retracer vos différentes transactions. xxxxxxxxxx YES
  • method : Nous gardons la méthode POST
  • token : Le token est votre jeton de paiement personnalisé et confidentiel. Il représente vos informations confidentielles et peut être considéré comme votre empreinte numérique. L'exemple ci-dessous montre à quoi ressemble un token mais n'est pas valide.
    Exemple : $2y$12$ngaXsXGwkrxpTAA.ubLXietv/Pdadfbx3OziwIH88inGU4sGi6ivm
    Comment obtenir son token ? Cliquer sur ce lien pour plus d'informations.
  • orderNumber : Le orderNumber est la référence fournie par l'agrégateur et représente l'ID de votre transaction dans son système. Elle vous permet de retracer une à une toutes vos transactions. Et aussi permet d'effectuer bien d'autres actions mais vous les verrez beaucoup plus loin.
Response

La réponse est le résultat (ce que retourne) de la requête.

Exemple d'une réponse :

JSON
    {
        "success": true,
        "errors": [],
        "array": [
            [
                {
                    "reference": "querty-1",
                    "orderNumber": "xxxxxxxxxxxx",
                    "type": 1,
                    "amount": 100,
                    "amountCustomer": 103,
                    "currency": "CDF",
                    "provider_reference": "7cdsauzhzunnkyldo17yvfoedlyi3g6b",
                    "status": 1,
                    "created_at": "2024-05-16T14:39:19.000000Z",
                    "updated_at": "2024-05-16T14:39:36.000000Z"
                }
            ]
        ]
    }

L'interprétation des résultats peut s'avérer capitale pour la suite du traitement des informations (pour ceux qui voudront bien les traiter).

  • success : C'est celui qui détermine si l'opération a réussi ou pas. La valeur est true si tout s'est bien passé et false dans le cas contraire.
  • error : Cette collection renvoie l'ensemble d'erreurs collectées lors du traitement de la requête. La collection est vide quand il n'y a pas d'erreurs. Et quand elle a des données, ce qu'il y a une erreur et l'objet success est false.
  • array : Dans array, nous avons l'ensemble de données pertinentes de la requête. Celles que nous pouvons traiter ou stocker.
  • reference : C'est votre référence de la transaction, vous pourrez l'utiliser pour retracer votre transaction dans votre application.
  • orderNumber : C'est la référence que vous renvoie l'agrégateur, c'est la donnée que vous utiliserez pour retracer votre transaction auprès de ce dernier. Il faut la garder bien au chaud.
  • type : Il indique le type de transaction utilisé lors de la transaction.
  • amount : Il indique le montant initiale de la transaction.
  • amountCustomer : Il indique le montant final que le client a payé lors de la transaction.
  • currency : C'est la monnaie utilisée dans la transaction.
  • status : C'est l'état de votre transaction, il indique si la transaction a réussie ou pas. Le code est 1 si la transaction a été un succès et 0 pour le cas contraire.
Integration

Il existe plusieurs moyens d'intégrer nos APIs dans vos applications. Le moyen le plus facile est notre package Layrinthe/Payment car avec une seule ligne, vous vous épargnez une dizaine de lignes de codes en plus de l'implémentation de la sécurité. Mais nous vous montrerons les autres méthodes au cas où vous vous sentez moins à l'aise avec le package.

Labyrinthe Package:
La simplicité du package permet une intégration rapide en une seule ligne. Cliquez sur Layrinthe/Payment pour voir comment intégrer le sandbox chez vous.

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

PHP Native:
Ce code vous permet de faire l'appel des APIs comme avec le package Labyrinthe/Payment mais présente moins d'avantages que le package. Notamment la gestion de la sécurité, le filtre des paramètres (required, type, length), la concision du code, etc.

PHP
    $data = array(
        # Remplacez par vos propres informations
        "token" => 'xxxxxxxxxxxxxxxxxxxxxxxxx',
        "orderNumber" => "_orderNumber",
    );
    $gateway = "https://payment.labyrinthe-rdc.com/api/beta/get-transaction";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $gateway);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 300);
    $response = curl_exec($ch);
    if(curl_errno($ch)) {
        # Erreur !
    }else {
        curl_close($ch);
        $jsonRes = json_decode($response);
        $jsonRes->success;
        if ($jsonRes->success) {
            # La requête retourne la bonne valeur 
        }else{
            # La requête a rencontré des problèmes 
        }
        echo "<pre>";
        print_r($jsonRes);
        echo "<pre>";
    }
Get-transactions
Routes

La route est la passerelle comprise entre votre demande, l'action et la réponse de votre requête. En d'autres termes, c'est l'URL dans laquelle vous envoyez votre requête.

API
    https://payment.labyrinthe-rdc.com/api/beta/get-transactions

Les caractéristiques principales de la requête :

URL Méthode Return value ?
https://payment.labyrinthe-rdc.com/api/beta/get-transactions POST YES

Les paramètres de la requête :

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
  • method : Nous gardons la méthode POST
  • token : Le token est votre jeton de paiement personnalisé et confidentiel. Il représente vos informations confidentielles et peut être considéré comme votre empreinte numérique. L'exemple ci-dessous montre à quoi ressemble un token mais n'est pas valide.
    Exemple : $2y$12$ngaXsXGwkrxpTAA.ubLXietv/Pdadfbx3OziwIH88inGU4sGi6ivm
    Comment obtenir son token ? Cliquer sur ce lien pour plus d'informations.
Response

La réponse est le résultat (ce que retourne) de la requête.

Exemple d'une réponse :

JSON
    {
        "success": true,
        "errors": [],
        "array": [
            [
                {
                    "reference": "azertyya",
                    "orderNumber": "sTz6myAoyBJ5243896699032",
                    "type": 1,
                    "amount": 100,
                    "amountCustomer": 103,
                    "currency": "CDF",
                    "provider_reference": "m-pesa",
                    "status": 1,
                    "created_at": "2024-05-07T09:47:45.000000Z",
                    "updated_at": "2024-05-16T14:20:13.000000Z"
                },
                ...
                {
                    "reference": "azertyya",
                    "orderNumber": "OgLxDSO53TEw243896699032",
                    "type": 1,
                    "amount": 100,
                    "amountCustomer": null,
                    "currency": "CDF",
                    "provider_reference": null,
                    "status": 0,
                    "created_at": "2024-05-16T11:15:07.000000Z",
                    "updated_at": "2024-05-16T11:15:07.000000Z"
                }
            ]
        ]
    }

Integration

Il existe plusieurs moyens d'intégrer nos APIs dans vos applications. Le moyen le plus facile est notre package Layrinthe/Payment car avec une seule ligne, vous vous épargnez une dizaine de lignes de codes en plus de l'implémentation de la sécurité. Mais nous vous montrerons les autres méthodes au cas où vous vous sentez moins à l'aise avec le package.

Labyrinthe Package:
La simplicité du package permet une intégration rapide en une seule ligne. Cliquez sur Layrinthe/Payment pour voir comment intégrer le sandbox chez vous.

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

PHP Native:
Ce code vous permet de faire l'appel des APIs comme avec le package Labyrinthe/Payment mais présente moins d'avantages que le package. Notamment la gestion de la sécurité, le filtre des paramètres (required, type, length), la concision du code, etc.

PHP
    $data = array(
        # Remplacez par vos propres informations
        "token" => 'xxxxxxxxxxxxxxxxxxxxxxxxx',
    );
    $gateway = "https://payment.labyrinthe-rdc.com/api/beta/get-transactions";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $gateway);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 300);
    $response = curl_exec($ch);
    if(curl_errno($ch)) {
        # Erreur !
    }else {
        curl_close($ch);
        $jsonRes = json_decode($response);
        $jsonRes->success;
        if ($jsonRes->success) {
            # La requête retourne la bonne valeur 
        }else{
            # La requête a rencontré des problèmes 
        }
        echo "<pre>";
        print_r($jsonRes);
        echo "<pre>";
    }