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-phpConfiguration
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.appUtilisation
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.