IntegrationsSDKs

SDK PHP

Utiliser le SDK officiel Novasend dans vos projets PHP.

Le SDK officiel Novasend pour PHP offre une interface robuste et typée pour intégrer les paiements Mobile Money dans vos projets PHP (Symfony, Laravel, ou PHP natif).

Prérequis

  • PHP >= 8.1
  • Extensions : curl, json

Installation

Installez le package via Composer :

composer require novasend/novasend-php

Configuration

Utilisez des variables d'environnement (putenv ou un fichier .env) pour stocker vos clés en toute sécurité.

NOVASEND_API_KEY=votre_clé_publique
NOVASEND_SECRET_KEY=votre_clé_secrète
NOVASEND_BASE_URL=https://business.novasend.app

Utilisation

Initialisation du Client

use Novasend\NovasendClient;

$client = new NovasendClient(
    apiKey:    getenv('NOVASEND_API_KEY'),
    secretKey: getenv('NOVASEND_SECRET_KEY'),
    baseUrl:   getenv('NOVASEND_BASE_URL'),
    language:  'fr', // 'fr' ou 'en'
);

Créer un Paiement (Wallet)

$response = $client->createWalletPayment([
    'reference'    => 'cmd_98765',
    'amount'       => 5000,
    'msisdn'       => '+2250101010101',
    'customerName' => 'Alice Koffi',
    'country'      => 'CI',
    'action' => [
        'successUrl' => 'https://votre-site.com/merci',
        'failureUrl' => 'https://votre-site.com/erreur',
    ],
]);

header('Location: ' . $response['paymentUrl']);
exit;

Vérifier le Statut

$status = $client->getPaymentStatus('cmd_98765');
echo "Statut actuel : " . $status['status'];

Fonctionnalités Avancées

Webhooks (Confirmation Automatique)

Utilisez la classe NovasendWebhooks pour valider les notifications de paiement envoyées par Novasend.

use Novasend\NovasendWebhooks;

$webhooks = new NovasendWebhooks(getenv('NOVASEND_WEBHOOK_SECRET'));

$payload   = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_SIGNATURE_VALUE'] ?? '';

try {
    $event = $webhooks->verifySignature($payload, $signature);
    // Traitez l'événement (ex: mettre à jour la commande en DB)
    http_response_code(200);
    echo 'OK';
} catch (\Exception $e) {
    // Signature invalide ou payload corrompu
    http_response_code(401);
    echo 'Unauthorized';
}

Validation Automatique

Le SDK lève une exception avant même l'appel réseau si :

  • Le montant est hors limites (Payin: 100 - 2M FCFA, Payout: 200 - 1.5M FCFA).
  • Le format du numéro de téléphone est invalide pour le pays choisi.
  • L'OTP est manquant pour un paiement direct Orange Money.

Le SDK gère automatiquement l'en-tête X-Idempotency-Key avec un UUID v4 unique pour chaque requête, garantissant qu'une opération ne soit jamais exécutée deux fois.