Skip to main content

PHP SDK

Le SDK PHP officiel pour intégrer SahelPay dans vos applications PHP 8.1+ et Laravel.

Installation

Le paquet sahelpay/sahelpay-php n’est pas encore publié sur Packagist. Installez-le depuis le dépôt via un path repository Composer :

Configuration

La base URL est https://api.sahelpay.ml en sandbox comme en production ; le mode dépend de la clé.

Laravel

Le service provider lit config/sahelpay.php (SAHELPAY_SECRET_KEY, SAHELPAY_WEBHOOK_SECRET) et enregistre SahelPay\SahelPay en singleton : injectez-le dans vos contrôleurs.

Créer un paiement

X-Idempotency-Key est obligatoire côté API. Sans idempotency_key, le SDK génère une clé aléatoire à chaque appel : la requête passe, mais un retry créerait un second paiement. Fournissez une clé stable liée à votre commande.

Créer un lien de paiement

title, price (ou amount) et redirect_url restent acceptés. Sans montant, le lien est à montant libre (OPEN).

Livraisons webhook et paiement sécurisé

Voir Livraisons et relances et Paiement sécurisé.

Tester sans appel opérateur

L’option mock active le simulateur SahelPay (statut piloté par le montant : 4000 réussi, 4001 échoué, 4002 en attente, 4003 erreur opérateur). sandbox appelle l’environnement de test de l’opérateur. Les deux sont refusées avec une clé live.

Vérifier le statut

Vérifier un webhook

webhooks->constructEvent() vérifie la signature avec le webhook_secret configuré et lève WebhookSignatureException si elle est invalide.

Laravel

Fonctions à éviter pour l’instant

Les plans, abonnements et clients passent par /v1/billing/*.

Billing 1.3.0

Clients sans téléphone via customer_external_ref/customer_email/customer_id, essais (trial_end), périodes (current_period_start/end), lecture par ID et import. Les trois SDK exposent aussi les factures et la pagination. ACTIVE ≠ paid : lire la facture et l’abonnement canoniques avant d’accorder des droits payés. Voir le guide Billing français/anglais pour les signatures, les garanties de rejeu et le parcours TEST sans numéro inventé.