La mise en place de notifications en temps réel pour votre entreprise — qu'il s'agisse d'envoyer des confirmations de rendez-vous pour une clinique ou des mises à jour de commandes pour un atelier de réparation — nécessite un moyen fiable de suivre l'état de livraison. Une fois votre URL de rappel configurée, savoir exactement comment tester les SMS après la configuration du webhook est l'étape suivante cruciale pour garantir que votre système traite les rapports de livraison et les messages entrants sans faille.
Étape 1 : Configurer un écouteur de Webhook local
Avant de pouvoir tester la manière dont votre système gère les rapports de livraison SMS, vous avez besoin d'une URL publique capable de recevoir des requêtes HTTP POST de votre passerelle SMS. Si vous développez localement, votre serveur fonctionnant sur localhost:3000 n'est pas accessible sur l'internet public. Pour combler cette lacune, vous pouvez utiliser des outils de tunnel local comme ngrok, LocalTunnel, ou des outils de test de webhook en ligne comme Webhook.site.
Pour un test rapide sans configuration, Webhook.site est fortement recommandé. Il génère une URL publique temporaire unique où vous pouvez observer les payloads entrants en temps réel. Si vous préférez tester directement contre votre application locale, lancez ngrok pour exposer votre port local :
ngrok http 3000Cette commande générera une URL de redirection HTTPS publique (par exemple, https://votre-sous-domaine.ngrok-free.app). Vous ajouterez votre route de webhook à cette URL — par exemple, https://votre-sous-domaine.ngrok-free.app/webhooks/sms — et l'utiliserez comme point de terminaison de votre webhook.
Écrire un récepteur de Webhook simple avec Express.js
Si vous souhaitez enregistrer et inspecter le payload sur votre propre backend, voici un extrait simple en Node.js et Express pour mettre en place un point de terminaison rapide :
const express = require('express');
const app = express();
app.use(express.json());
app.post('/webhooks/sms', (req, res) => {
console.log('Payload Webhook reçu :', JSON.stringify(req.body, null, 2));
// Toujours renvoyer un statut 200 OK rapidement pour accuser réception
res.status(200).send({ status: 'success' });
});
app.listen(3000, () => console.log('Récepteur de webhook à l’écoute sur le port 3000'));
Étape 2 : Configurer l'URL du Webhook dans votre passerelle SMS
Une fois que vous avez votre URL de webhook publique, vous devez l'enregistrer dans le tableau de bord de votre passerelle SMS. Contrairement aux fournisseurs historiques comme Twilio ou Vonage, qui exigent un enregistrement A2P 10DLC complexe, une vérification de profil d'entreprise et des approbations de campagne avant même de pouvoir envoyer un message de test, MySMSGate vous permet de connecter votre propre téléphone Android via un simple code QR et de commencer les tests instantanément.
Pour configurer votre webhook dans MySMSGate :
- Connectez-vous à votre tableau de bord sur MySMSGate.
- Accédez à vos paramètres API ou au panneau d'intégration développeur.
- Collez votre URL de webhook (par exemple, votre URL Webhook.site ou votre URL de redirection ngrok) dans le champ "Webhook URL".
- Sélectionnez les événements auxquels vous souhaitez vous abonner (ex :
sms.sent,sms.delivered,sms.failed, ousms.received). - Enregistrez vos paramètres.
Cette configuration fait le pont entre vos cartes SIM Android physiques et votre application backend, garantissant que tout changement de statut SMS ou tout message texte entrant est instantanément transmis à votre serveur.
Étape 3 : Déclencher un SMS de test pour vérifier la livraison du Webhook
Le moyen le plus fiable de tester votre webhook est de déclencher un message SMS réel. Avec MySMSGate, vous n'avez pas besoin d'acheter de numéros virtuels ou de configurer un environnement sandbox. Puisque la plateforme transforme votre téléphone Android en passerelle SMS, vous envoyez de vrais messages via votre propre carte SIM vers votre propre numéro de mobile pour les tests.
Vous pouvez déclencher un SMS de test directement depuis le tableau de bord web via l'interface Web Conversations, ou par programmation via notre API REST simple. Voici un exemple curl pour déclencher un message de test :
curl -X POST https://mysmsgate.net/api/v1/send \
-H "Authorization: Bearer VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{
"to": "+1234567890",
"message": "Message de test Webhook depuis MySMSGate",
"sim_slot": 1
}'Après avoir exécuté cette requête, votre téléphone Android connecté enverra immédiatement le message via sa carte SIM. À mesure que le message passe de "en attente" à "envoyé" puis enfin "livré", MySMSGate enverra des requêtes HTTP POST à l'URL de votre webhook configuré.
Étape 4 : Inspecter le Payload du statut de livraison
Une fois le SMS de test déclenché, vérifiez votre écouteur de webhook (tel que Webhook.site ou votre terminal local exécutant ngrok). Vous devriez voir une requête HTTP POST entrante. L'inspection de ce payload est une partie essentielle de l'apprentissage de comment tester les SMS une fois le webhook configuré.
Un payload de webhook de statut de livraison typique de MySMSGate ressemble à ceci :
{
"event": "sms.status_changed",
"message_id": "msg_8f7d6e5c4b3a",
"to": "+1234567890",
"status": "delivered",
"sim_slot": 1,
"device_id": "dev_android_01",
"timestamp": "2026-08-05T14:32:01.000Z",
"error_code": null
}Lors de l'analyse de ce payload, vérifiez les champs suivants :
- message_id : Doit correspondre à l'ID renvoyé par l'appel API initial.
- status : Confirme si le message a été expédié ou livré avec succès.
- sim_slot : Identifie quelle carte SIM a été utilisée (particulièrement utile pour les téléphones Android double SIM).
- error_code : Si le statut est "failed", ce champ contiendra la raison (ex : pas de signal opérateur, crédit épuisé).
Étape 5 : Tester les cas limites et les tentatives (Retries)
Une application de production robuste doit gérer plus que les livraisons réussies. Vous devez vérifier comment votre système se comporte en cas de problème. Lors du test de votre intégration webhook, assurez-vous de simuler et de gérer ces trois cas limites :
- Simuler un échec de livraison : Envoyez un SMS à un numéro de téléphone invalide ou déconnecté. Observez le payload du webhook. Le
statusdevrait passer àfailed, et unerror_codedevrait être renseigné. Sur MySMSGate, tout SMS échoué est automatiquement remboursé sur votre solde, ce que vous pouvez vérifier dans votre tableau de bord. - Simuler une panne de serveur : Arrêtez temporairement votre serveur récepteur de webhook local et déclenchez un SMS. Une bonne passerelle SMS mettra en file d'attente les rapports de livraison et réessaiera de les envoyer si votre serveur renvoie une erreur 5xx ou expire. Vérifiez que la passerelle réessaie la livraison du webhook une fois votre serveur remis en ligne.
- Gérer les webhooks en double : Dans de rares scénarios réseau, votre serveur pourrait recevoir le même événement de webhook deux fois. Assurez-vous que votre code backend est idempotent — ce qui signifie qu'il vérifie si le statut du
message_ida déjà été mis à jour dans votre base de données avant d'exécuter toute logique métier (comme l'envoi d'un e-mail de suivi).
Comparaison des environnements de test de Webhook des passerelles SMS
Le test des webhooks peut varier considérablement selon le fournisseur d'API SMS que vous choisissez. Les plateformes de communication cloud historiques introduisent souvent des frictions via des règles de conformité complexes et des bacs à sable (sandboxes), tandis que les passerelles SMS modernes basées sur Android simplifient l'expérience développeur.
Voici une comparaison du test des webhooks et de la gestion de la livraison des SMS sur différentes plateformes :
| Fonctionnalité / Paramètre | MySMSGate | Twilio / Plivo | Passerelles SMS historiques |
|---|---|---|---|
| Temps de configuration | < 5 minutes (scan QR code) | Jours à semaines (approbations A2P 10DLC) | Heures (clés API complexes) |
| Environnement de test | Appareil Android réel & carte SIM | Sandbox restreinte ou numéros virtuels payants | Sandbox simulée uniquement |
| Structure de prix | Forfait 0,02 $/SMS (pas de frais mensuels) | Facturation par segment + frais opérateur + loyer numéro | Abonnement mensuel (ex : 9,99 $/mois) |
| Politique SMS échoués | Remboursement automatique du solde | Facturé au prix fort même en cas d'échec | Varie (souvent facturé quand même) |
| Intégrations No-Code | Zapier, Make.com, n8n, Tableau de bord Web | Nécessite du code personnalisé ou middleware | Intégrations limitées |
En utilisant votre propre téléphone Android comme passerelle SMS, vous évitez d'avoir à acheter des codes courts dédiés coûteux ou des numéros virtuels juste pour tester vos webhooks. Cela fait de MySMSGate l'API SMS la moins chère pour les petites entreprises qui souhaitent des notifications simples et fiables sans les frais généraux des contrats d'entreprise.
Foire Aux Questions
Vous trouverez ci-dessous quelques-unes des questions les plus courantes que les développeurs et les propriétaires d'entreprise posent lors de la configuration et du test des webhooks SMS.
Comment vérifier si mon point de terminaison de webhook reçoit les statuts de livraison SMS ?
Vous pouvez le vérifier en examinant les journaux de votre serveur ou en utilisant un outil comme Webhook.site. Lorsqu'un SMS est envoyé, la passerelle envoie une requête HTTP POST à votre URL. Si les journaux de votre serveur affichent une requête POST entrante avec un code de réponse 200 OK, votre point de terminaison reçoit avec succès les statuts de livraison.
Quels outils dois-je utiliser pour tester les webhooks localement ?
Les meilleurs outils pour le test de webhook local sont ngrok (pour exposer votre serveur local à internet via un tunnel sécurisé) et Webhook.site (pour inspecter rapidement les payloads JSON bruts sans écrire de code). Les deux outils sont gratuits et largement utilisés par les développeurs.
Pourquoi mon webhook SMS renvoie-t-il une erreur 500 pendant les tests ?
Une erreur 500 Internal Server Error signifie que le code de votre récepteur de webhook a planté ou a rencontré une erreur lors du traitement du payload entrant. Vérifiez les journaux de votre serveur backend pour trouver la trace de la pile (stack trace). Assurez-vous que votre code analyse correctement le corps JSON et renvoie rapidement une réponse 200 OK, avant d'effectuer toute opération de base de données de longue durée.
Comment MySMSGate gère-t-il les tentatives de webhook si mon serveur est hors ligne ?
Si votre serveur est hors ligne ou renvoie un statut d'erreur (comme 500 ou 503), le système de livraison de webhook de MySMSGate mettra automatiquement la notification en file d'attente et réessaiera de l'envoyer à des intervalles croissants. Cela garantit que vous ne perdez jamais de rapports de livraison critiques ou de réponses clients entrantes lors de brèves mises à jour du serveur.
Comments (0)
Be the first to comment!