Especialidad technical

Migración de un script PHP casero a una API SMS profesional: por qué y cómo

Migración de scripts php para el hogar API profesional: guía técnica con ejemplos de código para desarrolladores en Marruecos.

Migración de un script PHP casero a una API SMS profesional: por qué y cómo
En este artículo
  1. La historia es casi siempre la misma: al lanzar el proyecto (un sitio de comercio electrónico, un software de clínica), el desarrollador necesita enviar un par de SMS. Para ir rápido y minimizar los costos, el desarrollador realiza un script PHP 'cURL' básico que toca directamente en una pasarela oscura (a menudo un número "Simbox" ilegal o un proveedor gris).
  2. 4 señales de que tu guion "Casa" está rompiendo
  3. Cómo refactorizar: De síncrono a asíncrono
  4. Gestionar correctamente los retornos (El enfoque Webhook)

La historia es casi siempre la misma: al lanzar el proyecto (un sitio de comercio electrónico, un software de clínica), el desarrollador necesita enviar un par de SMS. Para ir rápido y minimizar los costos, el desarrollador realiza un script PHP 'cURL' básico que toca directamente en una pasarela oscura (a menudo un número "Simbox" ilegal o un proveedor gris).

Este script send_sms.php acaba convirtiéndose en el corazón neurálgico de la comunicación corporativa. Pero a medida que la PYME crece, este "bricolaje" se convierte en una trampa que cuesta dinero y clientes. Aquí está por qué y cómo refactorizar este código heredado a una API SMS B2B profesional.

4 señales de que tu guion "Casa" está rompiendo

Si usted se encuentra en alguna de estas situaciones, el refactoring es urgente:

  1. La ceguera de los mensajes de recepción (DLR): Tu script envía el mensaje (HTTP 200 OK) y se detiene allí.No tienes idea de si el cliente ha realmente recibido el SMS en su teléfono.Los Delivery Reports (DLR) no existen.
  2. El bloqueo sincronizado (Timeout): Su script PHP se ejecuta de forma sincronizada.Si hay 500 SMS a enviar durante un loop foreach, la página web del cliente (o del software) "se vuelve al vacío" durante 3 minutos hasta que el servidor muestra un error 504 Gateway Timeout.
  3. El desastre Unicode (Darija / árabe): Tan pronto como un usuario escriba un emojis o una letra acentuada, el SMS llega con puntos de interrogación (???) porque la gestión de la codificación GSM-7 vs UCS-2 no ha sido codificada correctamente.
  4. Riesgo legal (CNDP): El script no incluye ninguna lógica de desistimento. Si un cliente responde "STOP", no hay Webhook para escucharlo. Usted continúa spamándolo, exponiéndose a las sanciones de la CNDP(/fr/blog/sanctions-et-boendes-cndp-pour-sms-non-conformes-au-maroc-ce-qu/).

Cómo refactorizar: De síncrono a asíncrono

La migración a una plataforma profesional como EnvoiSMS no consiste sólo en cambiar la URL de la consulta de la API. Esta es la oportunidad de adoptar una arquitectura asíncrona.

El antiguo método (A prohibir):```php
foreach ($clients as $client) {
// Le script attend la réponse pour CHAQUE client. Catastrophe de performance.
file_get_contents("http://api-obscure.com/send?to=".$client['tel']."&msg=Promo");
}

bash

**El nuevo método (La API Profesional Asíncrona):** En lugar de enviar 500 solicitudes HTTP (que van a matar sus recursos de servidor), utilice el punto final de**[Enviar en Massa (Bulk)](/fr/blog/throttling-sms-en-maroc-a-qual-velocidad-puedes-en-verdad/)** de una API moderna. Usted construye una única Payload JSON que contiene los 500 números, y usted hace **Una sola solicitud HTTP**.```php
$payload = [
    "sender_id" => "MA_MARQUE",
    "message" => "Promo du jour : -20% sur tout le magasin !",
    "recipients" => ["+212600000001", "+212600000002", /* ... 498 autres numéros */]
];

$ch = curl_init('https://api.envoisms.ma/v1/sms/bulk');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer VOTRE_TOKEN_ICI'));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
$response = curl_exec($ch);
// La plateforme d'EnvoiSMS se charge de la file d'attente (Queuing) de son côté.

Gestionar correctamente los retornos (El enfoque Webhook)

Delega la complejidad. No le pida a su código PHP que verifique si ha llegado el SMS. Configure un router (Endpoint) en su servidor: https://votre-site.ma/api/sms-webhook. Proporcione esta URL a EnviarSMS.

Es la plataforma que va a "Push" (POST) la información a su servidor tan pronto como Maroc Telecom o inwi confirma la recepción.```php
// Fichier webhook.php
$data = json_decode(file_get_contents('php://input'), true);
if ($data['status'] === 'DELIVERED') {
// Mettre à jour la BDD : UPDATE sms_logs SET status = 'reçu' WHERE id = ?
}

bash

La migración de un script doméstico a una API profesional no supone un costo adicional: es la garantía de vida de la integridad de sus bases de datos y la experiencia de sus usuarios marroquíes.

¿Por qué elegir EnvoiSMS para su negocio?

Entrega a Operadores

Rutas locales hacia IAM, Orange e Inwi, con conmutación automática entre rutas y estado de entrega enviado por webhook.

Optimización de Costes

WhatsApp Business API desde 0,65 MAD por mensaje. El mejor retorno de inversión.

Conformidad CNDP

Alojamiento que cumple con las regulaciones de protección de datos personales locales.

¿Cómo seguir el enrutamiento en las redes IAM, Inwi y Orange?
Nuestras rutas locales hacia Maroc Telecom (IAM), Orange e inwi, con conmutación automática entre rutas, devuelven un estado de entrega del operador para cada mensaje, por webhook. El plazo de entrega depende del operador y de la red del destinatario.
¿Cómo gestiona la plataforma el formato de los números marroquíes?
EnvoiSMS normaliza automáticamente los números introducidos (06..., 07..., 00212...) al estándar E.164 (+212) para evitar cualquier fallo en la entrega.

Artículos sugeridos

Formateo de SMS en Marruecos: saltos de línea, codificación GSM-7 frente a UCS-2 y optimización de costes
technical

Formateo de SMS en Marruecos: saltos de línea, codificación GSM-7 frente a UCS-2 y optimización de costes

Formato empresarial de WhatsApp en Marruecos: texto enriquecido, emojis y botones interactivos
technical

Formato empresarial de WhatsApp en Marruecos: texto enriquecido, emojis y botones interactivos

Autenticación WhatsApp en 1-Clic y One-Tap Autofill OTP en Marruecos
technical

Autenticación WhatsApp en 1-Clic y One-Tap Autofill OTP en Marruecos