Expertise developer

PHP SMS API Maroc : Tutoriel Complet avec Code Source et Webhooks

Apprenez à intégrer l'API SMS d'EnvoiSMS.ma en PHP natif ou avec Guzzle. Code source complet, validation +212 et gestion des DLR.

PHP SMS API Maroc : Tutoriel Complet avec Code Source et Webhooks

1. Prérequis et Authentification API

Pour envoyer des SMS depuis votre application PHP au Maroc, créez un compte sur EnvoiSMS.ma et générez une clé API dans l'onglet Développeurs. Vos requêtes s'authentifient via l'en-tête HTTP Authorization: Bearer env_live_... vers notre endpoint sécurisé.

2. Script d'Envoi avec cURL PHP Natif

Voici un exemple minimaliste et robuste en PHP pur :

php
$ch = curl_init('https://api.envoisms.ma/v1/messages');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer env_live_VOTRE_CLE',
        'Content-Type: application/json'
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'recipient' => '+212612345678',
        'message' => 'Votre code de confirmation est 849201.',
        'sender_id' => 'VOTREMARQUE'
    ])
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);

3. Validation et Nettoyage des Numéros Marocains (+212)

Avant tout appel API, nettoyez les saisies utilisateurs. Au Maroc, les numéros commencent souvent par 06 ou 07. Une fonction de regex simple permet de convertir 0612345678 en +212612345678. EnvoiSMS valide également automatiquement les plages attribuées par l'ANRT.

4. Réception et Traitement des Webhooks DLR en PHP

Configurez un script webhook.php pour recevoir les accusés de réception. Récupérez le corps brut de la requête (file_get_contents('php://input')) et vérifiez la signature HMAC transmise dans $_SERVER['HTTP_X_ENVOISMS_SIGNATURE'] avant d'enregistrer le statut en base de données.

5. Bonnes Pratiques en Production (Files d'Attente et Logs)

Ne bloquez pas le thread principal de votre serveur web : déléguez les envois de SMS à un gestionnaire de files d'attente (Redis, RabbitMQ ou worker CLI). Journalisez les message_id pour faciliter le rapprochement comptable et technique.

💡 Pourquoi choisir EnvoiSMS pour votre entreprise ?

⚡

Délivrabilité Opérateurs

Routes locales vers IAM, Orange et Inwi, avec bascule automatique entre routes et statut de livraison transmis par webhook.

💰

Optimisation Budgétaire

WhatsApp Business API dès 0,65 MAD par message. Le meilleur retour sur investissement.

🛡️

Données Souveraines (CNDP)

Hébergement conforme aux réglementations de protection des données personnelles locales.

Q.Quelle version de PHP est requise ?
Notre API REST est compatible avec toutes les versions de PHP (de PHP 7.4 à PHP 8.3+) utilisant cURL ou Guzzle.
Q.Comment gérer les caractères arabes en PHP ?
Envoyez simplement vos chaînes en UTF-8 dans le JSON. EnvoiSMS détecte l'encodage Unicode et gère automatiquement le découpage en segments de 70 caractères.
Q.Comment tester sans consommer de solde ?
Utilisez une clé sandbox (`env_test_...`) ou le paramètre `is_sandbox: true` dans votre payload.

Articles suggérés

Inbound Webhooks : Connecter TikTok & Meta Lead Ads directement à WhatsApp pour convertir vos prospects
developer

Inbound Webhooks : Connecter TikTok & Meta Lead Ads directement à WhatsApp pour convertir vos prospects

WhatsApp Flows : Créer des formulaires natifs dans le chat pour sécuriser le COD au Maroc
developer

WhatsApp Flows : Créer des formulaires natifs dans le chat pour sécuriser le COD au Maroc

Laravel SMS Maroc : Notification Channel et Tutoriel
developer

Laravel SMS Maroc : Notification Channel et Tutoriel