SDK PHP

Le Digitalpaye SDK PHP est un SDK Laravel qui permet aux développeurs d'interagir avec l'API Digitalpaye de manière transparente depuis des applications PHP. Ce SDK simplifie le processus d'intégration et fournit des méthodes pour effectuer diverses opérations telles que :

  • La vérification des soldes

  • La création de demandes de collecte

  • L'initiation de transferts

Installation

Vous pouvez installer le Digitalpaye SDK PHP via Composer en exécutant la commande suivante :

composer require digitalpaye/digitalpaye-sdk-php

Alternativement, vous pouvez télécharger le SDK directement depuis GitHub : Digitalpaye SDK PHP.

Démarrage

Obtenir le solde

<?php
require_once __DIR__ . '/../vendor/autoload.php';
use DigitalpayeSdkPhp\Services\Digitalpaye;

$apikey = "live_digitalpaye129923061";
$apisecret = "d511e1f4-d932-32fcd-a804-371539700d60c";

$config = new Digitalpaye($apikey, $apisecret);
$balance = $config->getBalance();
echo $balance["data"]["amount"];
?>

Créer une transaction Orange Money

<?php
require_once __DIR__ . '/../vendor/autoload.php';
use DigitalpayeSdkPhp\Services\Digitalpaye;

$apikey = "live_digitalpaye129923061";
$apisecret = "d511e1f4-d932-32fcd-a804-371539700d60c";

$config = new Digitalpaye($apikey, $apisecret);

$dataCreateCollecteOrangeMoney = [
    "transactionId" => "DIGITAL-303311901120870",
    "customer" => [
        "lastName" => "GUEI",
        "firstName" => "HELIE",
        "phone" => "0777101308",
        "email" => "[email protected]",
        "address" => [
            "countryCode" => "CI",
            "city" => "Abidjan",
            "streetAddress" => "Plateau Cocody"
        ]
    ],
    "payer" => "0777101308",
    "otpCode" => "4008",
    "amount" => "2000",
    "currency" => "XOF",
    "operator" => "ORANGE_MONEY_CI"
];

$collecteOrangeMoney = $config->createPayment($dataCreateCollecteOrangeMoney);

if ($collecteOrangeMoney['data']["status"] == "PENDING") {
    echo "La transaction est en cours de confirmation";
} elseif ($collecteOrangeMoney['data']["status"] == "SUCCESSFUL") {
    echo "La transaction a été traitée avec succès.";
} else {
    echo $collecteOrangeMoney["message"];
}
?>

Créer une transaction Wave

<?php
require_once __DIR__ . '/../vendor/autoload.php';
use DigitalpayeSdkPhp\Services\Digitalpaye;

$apikey = "live_digitalpaye129923061";
$apisecret = "d511e1f4-d932-32fcd-a804-371539700d60c";

$config = new Digitalpaye($apikey, $apisecret);

$dataCreateCollecteWave = [
    "transactionId" => "DIGITAL-303311901120870",
    "customer" => [
        "lastName" => "GUEI",
        "firstName" => "HELIE",
        "phone" => "0777101308",
        "email" => "[email protected]",
        "address" => [
            "countryCode" => "CI",
            "city" => "Abidjan",
            "streetAddress" => "Plateau Cocody"
        ]
    ],
    "payer" => "0546573332",
    "amount" => "2000",
    "urlSuccess" => "https://digitalpaye.com",
    "urlError" => "https://digitalpaye.com",
    "currency" => "XOF",
    "operator" => "WAVE_MONEY_CI"
];

$collecteWave = $config->createPayment($dataCreateCollecteWave);

if ($collecteWave['data']["status"] == "PENDING") {
    header("Location: " . $collecteWave["data"]["waveLaunchUrl"]);
} else {
    echo $collecteWave["message"];
}
?>

Obtenir le statut d'une transaction

<?php
require_once __DIR__ . '/../vendor/autoload.php';
use DigitalpayeSdkPhp\Services\Digitalpaye;

$apikey = "live_digitalpaye129923061";
$apisecret = "d511e1f4-d932-32fcd-a804-371539700d60c";

$transactionId = "f511e4f4-d932-4fcd-a804-51539700d60c";
$config = new Digitalpaye($apikey, $apisecret);

$getStatusTransaction = $config->getStatus($transactionId);

if ($getStatusTransaction["data"]["status"] == "PENDING") {
    echo "La transaction est en cours de validation";
} elseif ($getStatusTransaction["data"]["status"] == "SUCCESSFUL") {
    echo "La transaction a été validée";
} else {
    echo $getStatusTransaction["message"];
}
?>

Faire un transfert d'argent

<?php
require_once __DIR__ . '/../vendor/autoload.php';
use DigitalpayeSdkPhp\Services\Digitalpaye;

$apikey = "live_digitalpaye129923061";
$apisecret = "d511e1f4-d932-32fcd-a804-371539700d60c";

$config = new Digitalpaye($apikey, $apisecret);

$dataCreateTransfer = [
    "transactionId" => "DIGITAL-0139601181902",
    "customer" => [
        "lastName" => "GUEI",
        "firstName" => "HELIE",
        "phone" => "0777101308",
        "address" => [
            "countryCode" => "CI",
            "city" => "Abidjan",
            "streetAddress" => "Yopougon, Carrefour Canal"
        ]
    ],
    "recipient" => "0777101308",
    "amount" => "100",
    "currency" => "XOF",
    "operator" => "WAVE_MONEY_CI"
];

$transfer = $config->createTransfert($dataCreateTransfer);

if ($transfer['data']["status"] == "SUCCESSFUL") {
    echo "Le transfert a été validé";
} elseif ($transfer['data']["status"] == "PENDING") {
    echo "Le transfert est en cours";
} else {
    echo "Le transfert a échoué";
}
?>

Gestions des erreurs

Code status
Message
Description

400

FIELD_MISSING

Indique qu'un champ requis est manquant dans la requête.

401

TOKEN_EXPIRED

Signifie que le jeton d'authentification a expiré et doit être renouvelé.

403

ERROR

Erreur générale indiquant un problème d'accès ou d'autorisation.

406

DEVELOPER_NO_FOUND

Indique que le développeur spécifié n'a pas été trouvé.

407

COMPANY_NO_FOUND

Signale qu'aucune entreprise correspondante n'a été trouvée.

409

TRANSACTION_DUPLICATED

Indique qu'une transaction en double a été détectée.

410

OPERATOR_NO_SUPPORTED

Signifie que l'opérateur spécifié n'est pas pris en charge.

412

AMOUNT_INSUFFISANT

Indique que le montant de la transaction est insuffisant.

504

PAYMENT_FAILED_TRY_AGAINST

Indique que le paiement a échoué et qu'il faut réessayer.

506

COMPANY_NO_VERIFY

Signifie que l'entreprise n'a pas été vérifiée.

507

ACCOUNT_COMPANY_DISABLED

Indique que le compte de l'entreprise est désactivé.

200

SUCESSFUL

Succès de la requête.

201

CREATED

La ressource a été créée avec succès.

202

PAYMENT_IS_PENDING

Indique que le paiement est en attente.

500

ERROR_INTERNE_TRY_AGAIN

Erreur interne du serveur. Réessayez ultérieurement.

Dernière mise à jour

Cet article vous a-t-il été utile ?