Envío de SMS en PHP: Revisión de bibliotecas API para integración

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Envío de SMS en PHP: Revisión de bibliotecas API y ejemplos de integración

El envío de mensajes SMS sigue siendo una función demandada para aplicaciones web: autenticación de dos factores, notificaciones de pedidos, campañas de marketing. En PHP, esta tarea se resuelve a través de la API de servicios de terceros. En este artículo, analizaremos bibliotecas populares, formas de conectarlas y proporcionaremos ejemplos de código funcionales.



1. Servicios populares y sus bibliotecas PHP

La elección del proveedor depende de la región, el precio y los requisitos de entrega. Consideremos tres opciones:

  • Twilio — líder internacional, proporciona un SDK para PHP (twilio/sdk). Adecuado para proyectos globales.
  • SMS Aero — servicio ruso con una API REST simple y una biblioteca PHP oficial.
  • smsc.ru — otro servicio nacional popular con tarifas bajas y scripts listos para usar.


2. Instalación mediante Composer

La mayoría de las bibliotecas modernas se instalan a través de Composer. Ejemplo para Twilio:

composer require twilio/sdk

Para SMS Aero use:

composer require smsaero/smsaero-php

Si usa smsc.ru, puede prescindir de Composer — simplemente copie su clase PHP desde GitHub.



3. Ejemplo de envío de SMS a través de Twilio

La biblioteca Twilio requiere Account SID y Auth Token, que obtiene en su panel de control.

<?phprequire_once 'vendor/autoload.php';

use Twilio\\Rest\\Client;

// Sus datos$sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";$token = "your_auth_token";$twilio = new Client($sid, $token);

// Envío de SMS$message = $twilio->messages ->create( "+71234567890", // número del destinatario [ "from" => "+15017122661", // número del remitente (comprado en Twilio) "body" => "¡Hola! Este es un SMS de prueba de Twilio." ] );

echo "¡Mensaje enviado! SID: " . $message->sid;?>


4. Envío de SMS a través de SMS Aero (API REST)

SMS Aero utiliza una clave API y un inicio de sesión. La biblioteca proporciona una interfaz conveniente:

<?phprequire_once 'vendor/autoload.php';

use Smsaero\\Smsaero;

$client = new Smsaero('your_email@example.com', 'your_api_key');

// Envío de mensaje$response = $client->send('71234567890', 'Mensaje de prueba de SMS Aero');

if ($response->success) { echo "SMS enviado. ID: " . $response->id;} else { echo "Error: " . $response->error;}?>


5. Trabajar con smsc.ru (sin Composer)

Para smsc.ru puede usar solicitudes HTTP directas o su clase ya preparada. Ejemplo simple mediante cURL:

<?php$login = "your_login";$password = "your_password";$phones = "71234567890";$message = "¡Saludos desde smsc.ru!";

$url = "https://smsc.ru/sys/send.php?login=" . urlencode($login) . "&psw=" . urlencode($password) . "&phones=" . urlencode($phones) . "&mes=" . urlencode($message) . "&fmt=3"; // fmt=3 — respuesta en JSON

$ch = curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$response = curl_exec($ch);curl_close($ch);

$data = json_decode($response, true);if ($data['error'] ?? false) { echo "Error: " . $data['error'];} else { echo "SMS enviado. ID: " . $data['id'];}?>


6. Manejo de errores y registro

Al enviar SMS es importante manejar correctamente los errores. Problemas típicos:

  • Credenciales incorrectas (401 Unauthorized).
  • Saldo insuficiente.
  • Número en lista negra.
  • Exceder los límites de envío.

Ejemplo de manejo de excepciones para Twilio:

<?phptry {    $message = $twilio->messages->create(...);    // registro de éxito    error_log("SMS enviado: " . $message-&g                    

Recommendations