EN

Enviar SMS con PHP - Ejemplos y Guía Completa

Ejemplos de código en PHP para la API SMS de LabsMobile

A continuación se presentan los ejemplos de código de programación en lenguaje PHP para enviar mensajes SMS a través de la API de la plataforma LabsMobile.

Esta documentación está diseñada para que puedas conectar tus aplicaciones con la plataforma LabsMobile y automatizar el envío de mensajes SMS. El principal objetivo de la integración de estas aplicaciones es el envío de mensajes SMS y comunicaciones relacionadas.

Consejo Recomendamos utilizar nuestra API SMS http/POST en formato JSON para cualquier integración con la plataforma LabsMobile. Pero tenemos otras versiones API que puedes utilizar según tu entorno y requisitos.

Con estos ejemplos podrás realizar la integración de las siguientes funcionalidades:

  • Enviar mensajes SMS de forma individual o masiva.
  • Consultar el saldo de tu cuenta.
  • Recibir las notificaciones de confirmaciones de entrega y/o error que corresponden a los mensajes enviados.
  • Obtener notificación y datos de los mensajes recibidos en los números virtuales contratados.

La API SMS de LabsMobile utiliza una URL base común para todas las peticiones: https://api.labsmobile.com.

Es altamente recomendable emplear una URL que incluya el protocolo HTTPS en cualquier versión de la API.

La autenticación se realiza con el nombre de usuario y un token API, myUsername:myToken. Debes crear el token API desde la sección Configuración API de tu cuenta.


Librería PHP para el Envío de SMS

Nuestra recomendación es integrar el envío de SMS en tu aplicación PHP Librería PHP de LabsMobile por su simplicidad, facilidad y rapidez en la integración.

Los requisitos previos a instalar la librería PHP de LabsMobile son tener instalada una versión PHP 5.4 o superior y las librerías necesarias (cURL y JSON). Puedes instalar la librería via Composer labsmobile/sms-php o de forma manual.

Envío SMS básico con la Librería PHP
<?php 
require __DIR__ . '/../vendor/autoload.php';

use Labsmobile\SmsPhp\LabsMobileClient;
use Labsmobile\SmsPhp\LabsMobileModelTextMessage;
use Labsmobile\SmsPhp\Exception\RestException;

class LabsMobileSendSms
{
 public $username = 'myUsername';
 public $token = 'myToken';

 public function sendSms()
 {
   try {
     $message = 'Your verification code is 123';
     $phone = ['12015550123'];
     $labsMobileClient = new LabsMobileClient($this->username, $this->token);
     $bodySms = new LabsMobileModelTextMessage($phone,$message);
     $bodySms->setScheduled("2024-12-02 09:00:00");
     $bodySms->setLong(1);
     $labsMobileClient = $labsMobileClient->sendSms($bodySms);
     $body = $labsMobileClient->getBody();
     $json = json_decode($body);
     echo 'Status ', $json->code . " " . $json->message;
   } catch (RestException $exception) {
     echo 'Error ', $exception->getStatus() ." ". $exception->getMessage();
   }
 }
}

$smsSender = new LabsMobileSendSms();
$smsSender->sendSms();
              

Más información sobre los requisitos, instalación, parámetros y funcionalidades:


Enviar SMS con http/POST

Aquí tienes un ejemplo de código en lenguaje PHP para enviar mensajes SMS utilizando la API SMS http/POST que utiliza el formato JSON para las variables de intercambio de información.

Como puedes observar, necesitas crear una estructura en formato JSON que contenga todos los parámetros necesarios para el envío y realizar una llamada HTTP/POST con estos datos en el cuerpo de la solicitud.

Envío simple a un único destinatario con http/POST (PHP)
<?php 
  $auth_basic = base64_encode("myUsername:myToken");
  $curl = curl_init();
  curl_setopt_array($curl, array(
   CURLOPT_URL => "https://api.labsmobile.com/json/send",
   CURLOPT_RETURNTRANSFER => true,
   CURLOPT_ENCODING => "",
   CURLOPT_MAXREDIRS => 10,
   CURLOPT_TIMEOUT => 30,
   CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
   CURLOPT_CUSTOMREQUEST => "POST",
   CURLOPT_POSTFIELDS => '{
     "message":"Your verification code is 123",
     "tpoa":"Sender",
     "recipient":
       [
         {
           "msisdn":"12015550123"
         }
       ]
   }',
   CURLOPT_HTTPHEADER => array(
     "Authorization: Basic ".$auth_basic,
     "Cache-Control: no-cache",
     "Content-Type: application/json"
   ),
  ));

  $response = curl_exec($curl);
  $err = curl_error($curl);

  curl_close($curl);

  if ($err) {
   echo "cURL Error #:" . $err;
  } else {
   echo $response;
  }
              
Envío masivo a múltiples destinatarios con http/POST (PHP)
<?php 
  $auth_basic = base64_encode("myUsername:myToken");
  $curl = curl_init();
  curl_setopt_array($curl, array(
   CURLOPT_URL => "https://api.labsmobile.com/json/send",
   CURLOPT_RETURNTRANSFER => true,
   CURLOPT_ENCODING => "",
   CURLOPT_MAXREDIRS => 10,
   CURLOPT_TIMEOUT => 30,
   CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
   CURLOPT_CUSTOMREQUEST => "POST",
   CURLOPT_POSTFIELDS => '{
     "message":"Do not miss our Sale! Use code XXXX123 for 20% off.",
     "tpoa":"Sender",
     "recipient":
       [
         {
           "msisdn":"12015550123"
         },
         {
           "msisdn":"12015550124"
         },
         {
           "msisdn":"12015550125"
         }
       ]
   }',
   CURLOPT_HTTPHEADER => array(
     "Authorization: Basic ".$auth_basic,
     "Cache-Control: no-cache",
     "Content-Type: application/json"
   ),
  ));
  $response = curl_exec($curl);
  $err = curl_error($curl);

  curl_close($curl);

  if ($err) {
   echo "cURL Error #:" . $err;
  } else {
   echo $response;
  }
                
Resultado positivo
{
  "subid": "65f33a88ceb3d",
  "code": "0",
  "message": "Message has been successfully sent."
}
  
Resultado erróneo
{
  "subid": "65f7f7041385d",
  "code": "35",
  "message": "The account has no enough credit for this sending"
}
  

Es posible consultar todos los códigos de error en Documentación API, códigos de error.

Para obtener más detalles sobre los parámetros disponibles y las opciones de configuración, consulta la documentación oficial en:


Enviar SMS con http/GET

Este es un ejemplo de código en lenguaje PHP para enviar mensajes SMS utilizando la API SMS http/GET.

Como podrás observar, debes pasar una serie de variables GET en la misma URL y realizar una llamada HTTP. Es importante codificar todos los valores como URL utilizando la función urlencode().

Importante La API SMS http/GET transmite las credenciales (username y token API) sin cifrar y de forma no segura. Recomendamos utilizar esta API GET sólo cuando sea totalmente imprescindible y utilizar en su lugar la API SMS http/POST.

Envío simple a un único destinatario con http/GET (PHP)
<?php 
  $curl = curl_init();
  $username = "myUsername";
  $token = "myToken";
  $msisdn = array(12015550123);
  $message = "Don't miss our Sale! Use code XXXX123 for 20% off.";

  $url = 'https://api.labsmobile.com/get/send.php?';
             $url .= 'username='.  urlencode($username) .'&';
             $url .= 'password='.  urlencode($token) .'&';
             $url .= 'msisdn=' .  urlencode(json_encode($msisdn)) .'&';
             $url .= 'message=' .  urlencode($message);
  curl_setopt_array($curl, array(
   CURLOPT_URL => $url,
   CURLOPT_RETURNTRANSFER => true,
   CURLOPT_ENCODING => '',
   CURLOPT_MAXREDIRS => 10,
   CURLOPT_TIMEOUT => 0,
   CURLOPT_FOLLOWLOCATION => true,
   CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
   CURLOPT_CUSTOMREQUEST => 'GET',
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
                
Envío masivo a múltiples destinatarios con http/GET (PHP)
<?php 
  $curl = curl_init();
  $username = "myUsername";
  $token = "myToken";
  $msisdn = array(12015550123,12015550124,12015550125);
  $message = "Don't miss our Sale! Use code XXXX123 for 20% off.";

  $url = 'https://api.labsmobile.com/get/send.php?';
             $url .= 'username='.  urlencode($username) .'&';
             $url .= 'password='.  urlencode($token) .'&';
             $url .= 'msisdn=' .  urlencode(json_encode($msisdn)) .'&';
             $url .= 'message=' .  urlencode($message);
  curl_setopt_array($curl, array(
   CURLOPT_URL => $url,
   CURLOPT_RETURNTRANSFER => true,
   CURLOPT_ENCODING => '',
   CURLOPT_MAXREDIRS => 10,
   CURLOPT_TIMEOUT => 0,
   CURLOPT_FOLLOWLOCATION => true,
   CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
   CURLOPT_CUSTOMREQUEST => 'GET',
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
                
Resultado positivo
{
  "subid": "65f33a88ceb3d",
  "code": "0",
  "message": "Message has been successfully sent."
}
  
Resultado erróneo
{
  "subid": "65f7f7041385d",
  "code": "35",
  "message": "The account has no enough credit for this sending"
}
  

Es posible consultar todos los códigos de error en Documentación API, códigos de error.

Para obtener más detalles sobre los parámetros disponibles y las opciones de configuración, consulta la documentación oficial en:


Consulta de saldo de una cuenta

Con este ejemplo de código en PHP se puede consultar el saldo de la cuenta utilizando la API SMS de LabsMobile

Mediante una llamada a este endpoint, puedes obtener información sobre la cantidad de créditos disponibles en tu cuenta de LabsMobile. La conexión se establece a través de una solicitud HTTP/GET con autenticación en el encabezado de la conexión HTTP.

Consulta de saldo de una cuenta (PHP)
<?php 
  $auth_basic = base64_encode("myUsername:myToken");
  $curl = curl_init();

  curl_setopt_array($curl, array(
   CURLOPT_URL => "https://api.labsmobile.com/json/balance",
   CURLOPT_RETURNTRANSFER => true,
   CURLOPT_ENCODING => "",
   CURLOPT_MAXREDIRS => 10,
   CURLOPT_TIMEOUT => 30,
   CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
   CURLOPT_CUSTOMREQUEST => "GET",
   CURLOPT_HTTPHEADER => array(
     "Authorization: Basic ".$auth_basic,
     "Cache-Control: no-cache",
   ),
  ));

  $response = curl_exec($curl);
  $err = curl_error($curl);

  curl_close($curl);

  if ($err) {
   echo "cURL Error #:" . $err;
  } else {
   echo $response;
  }
                
Resultado
{"code":0,"credits":"10"}

  

Consulta la documentación completa en:


Recibir estado de mensajes enviados

Este script de ejemplo recibe una llamada por parte de la plataforma LabsMobile cuando un mensaje SMS enviado cambia de estado. Para implementar esta solución, es esencial configurar los parámetros adecuados, la URL de confirmación en el parámetro ackurl en la petición o la URL por defecto en la Configuración API de tu cuenta.

Por tanto, es necesario publicar un script como este en tu sistema para que nuestra plataforma llame a la URL cuando ocurra un cambio de estado en cualquiera de los mensajes enviados.

El código de ejemplo obtiene los parámetros de la URL utilizando la variable global $_GET y luego asigna estos parámetros a variables locales.

Script de recepción de estados de mensajes enviados (PHP)
<?php 
  $app = function () {
  $queryParams = $_GET;
  $acklevel = $queryParams['acklevel'] ?? null;
  $credits = $queryParams['credits'] ?? null;
  $msisdn = $queryParams['msisdn'] ?? null;
  $status = $queryParams['status'] ?? null;
  $subid = $queryParams['subid'] ?? null;
  $timestamp = $queryParams['timestamp'] ?? null;

  echo "Variable acklevel: $acklevel\n";
  echo "Variable credits: $credits\n";
  echo "Variable msisdn: $msisdn\n";
  echo "Variable status: $status\n";
  echo "Variable subid: $subid\n";
  echo "Variable timestamp: $timestamp\n";
  };
  $app();
                

Consulta la documentación completa en:


Recepción de mensajes SMS con PHP

Una vez contratado un número virtual, podrás recibir mensajes vía API en una URL específica mediante una llamada HTTP/GET a un script de tu sistema. Cada mensaje recibido invocará la URL, transmitiendo todos sus datos en variables en formato JSON

Para activar esta funcionalidad se debe informar la URL de recepción de mensajes en la Configuración de tu cuenta.

Es necesario configurar un endpoint en tu sistema para que la plataforma LabsMobile llame a este script cuando se reciba un SMS en cualquiera de los números virtuales contratados.

El código de ejemplo obtiene los parámetros de la URL utilizando la variable global $_GET y luego asigna estos parámetros a variables locales

Script de recepción de mensajes recibidos (PHP)
<?php 
$app = function () {
$queryParams = $_GET;
$inbound_number = $queryParams['inbound_number'] ?? null;
$service_number = $queryParams['service_number'] ?? null;
$msisdn = $queryParams['msisdn'] ?? null;
$message = $queryParams['message'] ?? null;
$timestamp = $queryParams['timestamp'] ?? null;

echo "Variable inbound_number: $inbound_number\n";
echo "Variable service_number: $service_number\n";
echo "Variable msisdn: $msisdn\n";
echo "Variable message: $message\n";
echo "Variable timestamp: $timestamp\n";
};

$app();
                

Consulta la documentación completa en:


Empieza Ahora a Enviar SMS con PHP

Enviar SMS desde tu aplicación PHP es fácil y rápido. Sigue estos pasos sencillos para crear tu cuenta, preparar el entorno y comenzar a enviar mensajes a tus clientes mediante la API de LabsMobile.

Paso 1: Crea tu Cuenta en LabsMobile

Regístrate. Visita la página oficial de LabsMobile: Crear cuenta. Confirma tu cuenta a través del correo de verificación que recibirás.

Accede a tu Panel de Control. Inicia sesión con tu usuario y contraseña. Dirígete a la sección “Configuración API” para obtener tu token API, necesarios para integrar tu aplicación PHP.

Paso 2: Elige un método de integración

Selecciona entre:

Consulta y adapta el código de ejemplo que puedes encontrar en esta página.

Paso 3: Envía tu Primer SMS

Añade las credenciales. Personaliza el código PHP con el username y token API de tu cuenta.

Crea y Personaliza tu Mensaje. Define el número de destino, el remitente y el contenido del mensaje. Opcionalmente activa el modo simulado para no consumir créditos con tus primeros envíos. Consulta todas las opciones y parámetros de envío en la página de documentación del método de integración elegido.

Envía y Verifica. Envía el mensaje y revisa el estado en el panel de control (en el apartado de Histórico) para confirmar su correcta entrega.


Beneficios de Usar PHP para Enviar SMS

Integrar el envío de SMS en aplicaciones desarrolladas en PHP ofrece múltiples ventajas para empresas y proyectos de diversos sectores. PHP, como lenguaje de programación ampliamente utilizado, permite crear sistemas de mensajería efectivos con facilidad. A continuación, exploramos los principales beneficios de utilizar PHP para enviar SMS, organizados en subapartados clave:

  1. Integración Sencilla y Rápida. PHP permite una integración directa con servicios de envío de SMS mediante APIs y librerías especializadas. Esto simplifica el desarrollo y evita configuraciones complejas. Las aplicaciones pueden empezar a enviar mensajes en pocos pasos, reduciendo tiempos de implementación.
  2. Comunicación Instantánea. La integración de SMS con PHP permite notificaciones en tiempo real, sin depender de una conexión a Internet por parte del usuario final. Esto garantiza que los mensajes como alertas, recordatorios de citas y confirmaciones de pedidos lleguen al instante.
  3. Automatización de Procesos. PHP facilita la automatización del envío de SMS mediante programación basada en eventos. Por ejemplo, se pueden generar mensajes automáticos cuando se realiza una compra, se solicita una recuperación de contraseña o se agenda una cita. Esto reduce la carga operativa y asegura una gestión más eficiente.
  4. Personalización de Mensajes. Las aplicaciones PHP pueden generar mensajes personalizados utilizando datos almacenados en bases de datos. Esto permite enviar comunicaciones adaptadas a cada usuario, mejorando la experiencia del cliente y aumentando la efectividad de campañas promocionales y notificaciones de servicios.
  5. Escalabilidad y Flexibilidad. Desde el envío de mensajes individuales hasta campañas masivas, PHP permite una gestión flexible de envíos de SMS. Esto lo hace adecuado tanto para pequeñas empresas como para grandes organizaciones que necesitan administrar un alto volumen de mensajes.
  6. Seguridad y Protección de Datos. Es posible implementar conexiones seguras utilizando protocolos HTTPS, lo que garantiza que la transmisión de datos sea segura. Además, es posible usar SMS para autenticación de dos factores (2FA), mejorando la seguridad de cuentas y transacciones.
  7. Costo Efectivo. El uso de SMS como canal de comunicación es rentable y ofrece un excelente retorno de inversión. PHP permite centralizar la gestión de mensajes, reduciendo costos operativos al automatizar procesos y minimizar la necesidad de recursos humanos.
  8. Soporte Técnico y Comunidad Activa. Este lenguaje cuenta con una comunidad de desarrolladores global que ofrece soporte continuo. Esto incluye documentación detallada, foros activos y bibliotecas de código abierto que ayudan a implementar servicios de SMS de manera rápida y eficiente.

Aprovecha todos estos beneficios integrando el envío de SMS en tus aplicaciones PHP. Mejora la comunicación con tus usuarios y automatiza tus procesos con una solución segura, flexible y rentable.