API SMS Laravel & PHP

API SMS & Canal de Notification Laravel pour le Maroc

Une solution clé en main pour les développeurs Laravel et PHP au Maroc. Envoyez des SMS transactionnels, des alertes système et des codes OTP vers IAM, Orange et Inwi avec gestion native des files d'attente et webhooks DLR signés HMAC-SHA256.

App/Notifications/Channels/EnvoiSmsChannel.php
<?php namespace AppNotificationsChannels; use IlluminateNotificationsNotification; use IlluminateSupportFacadesHttp; use IlluminateSupportFacadesLog; class EnvoiSmsChannel { /** * Envoie la notification via l'API EnvoiSMS.ma */ public function send($notifiable, Notification $notification) { if (!method_exists($notification, 'toEnvoiSms')) { return; } $message = $notification->toEnvoiSms($notifiable); $to = $notifiable->routeNotificationFor('envoisms', $notification) ?? $notifiable->phone_number; if (!$to) return; $response = Http::withToken(config('services.envoisms.key')) ->timeout(10) ->post('https://api.envoisms.ma/v1/messages', [ 'to' => $to, 'message' => $message['body'] ?? $message, 'from' => $message['from'] ?? config('services.envoisms.sender', 'VOTREMARQUE'), ]); if ($response->failed()) { Log::error('Échec EnvoiSMS: ' . $response->body(), ['to' => $to]); throw new \Exception('Erreur envoi SMS: ' . $response->body()); } return $response->json(); } }
● Routes locales MarocIAM • Inwi • Orange
https://api.envoisms.ma/v1
Routage direct local
Maroc Telecom (IAM) • Inwi • Orange
Accusés réels DLR
Signatures HMAC-SHA256
Tarifs clairs en MAD
dès 0,48 MAD/SMS • 5 MAD offerts

Canal de notification personnalisé EnvoiSmsChannel pour Laravel

Intégrez l'envoi de SMS directement dans l'architecture de notification native de Laravel. En créant une classe EnvoiSmsChannel utilisant Http::withToken(), vos notifications (OrderShipped, OtpNotification, InvoiceCreated) s'expédient de manière standardisée avec Notification::send().

  • Syntaxe Laravel idiomatique avec méthode toEnvoiSms() sur vos classes Notification
  • Gestion centralisée de la configuration dans config/services.php et fichier .env
  • Prise en charge native du Sender ID de votre marque

Exécution asynchrone avec Laravel Queues & Horizon (ShouldQueue)

Pour ne pas bloquer les requêtes de vos utilisateurs finaux, implémentez l'interface ShouldQueue sur vos notifications. Les envois de SMS sont dispatchés en tâche de fond par vos workers Redis, Database ou Laravel Horizon avec reprise automatique sur incident.

  • Zéro latence ajoutée sur vos contrôleurs et actions Livewire / Inertia
  • Gestion des tentatives de relance (retries) et backoff exponentiel
  • Surveillance en temps réel des débits et des échecs dans Horizon

Contrôleur de Webhooks DLR avec vérification de signature HMAC-SHA256

Recevez les accusés de réception opérateur réels (delivered, undelivered, rejected) directement sur votre endpoint Laravel. Chaque requête de webhook contient un en-tête de signature HMAC-SHA256 pour garantir son authenticité avant la mise à jour de vos modèles Eloquent.

  • Vérification cryptographique simple avec hash_equals() et hash_hmac()
  • Enregistrement de l'identifiant message_id et de l'horodatage précis opérateur
  • Détection immédiate des numéros invalides ou indisponibles

Normalisation automatique des numéros marocains (+212 E.164)

L'API EnvoiSMS accepte aussi bien les formats locaux (0661000000 / 0770000000) que les formats internationaux (+2126... / 2127...). La passerelle nettoie les espaces, tirets et caractères superflus pour garantir une distribution sans rejet.

  • Routage intelligent vers les trois réseaux nationaux (IAM, Inwi, Orange)
  • Filtrage préventif des numéros fixes (+212 5) non compatibles SMS
  • Bascule automatique entre routes pour une continuité de service

Vérification OTP et sécurité à 2 facteurs (2FA) avec /v1/verify

Sécurisez l'authentification de vos applications Laravel sans gérer de base de données de codes temporaires. Notre endpoint /v1/verify gère la génération sécurisée, l'expiration à 3 minutes et la validation cryptographique du code à usage unique.

Mode Sandbox gratuit et journalisation complète

Développez et testez vos flux applicatifs sans dépenser de crédit grâce à la clé Sandbox (env_test_...). Tous les événements de simulation renvoient des identifiants et des structures JSON conformes à la production.

Tout savoir sur API SMS Laravel & PHP.

Comment configurer EnvoiSMS dans config/services.php ?
Ajoutez une clé 'envoisms' => ['key' => env('ENVOISMS_API_KEY'), 'sender' => env('ENVOISMS_SENDER_ID', 'VOTREMARQUE')] et renseignez votre token dans le fichier .env.
Comment envoyer des notifications avec ShouldQueue ?
Implémentez l'interface ShouldQueue sur votre classe Notification Laravel. Le framework sérialise la notification et l'expédie de manière asynchrone via vos workers de file d'attente habituels.
Comment vérifier la signature du webhook DLR dans Laravel ?
Récupérez l'en-tête X-EnvoiSMS-Signature et comparez-le avec hash_hmac('sha256', $request->getContent(), config('services.envoisms.webhook_secret')) à l'aide de hash_equals().
Quelle version de PHP et Laravel est requise ?
L'intégration est compatible avec PHP 8.0, 8.1, 8.2, 8.3 et toutes les versions de Laravel 9, 10 et 11.
Comment obtenir les factures pour la comptabilité d'entreprise ?
Chaque recharge en ligne ou par virement bancaire génère instantanément une facture officielle avec TVA en Dirhams marocains (MAD), téléchargeable en PDF depuis votre tableau de bord.

Prêt à intégrer API SMS Laravel & PHP ?

Créez votre compte en moins de 2 minutes. Bénéficiez immédiatement de 5 MAD de crédit gratuit pour tester l'API.