SMS php. Mandar SMS con php

SMS masivo desde 2002
enviar sms con php

Enviar sms con php

Utiliza nuestra pasarela para enviar SMS con php fácilmente. Aprovecha los ejemplos de código que te proporcionamos más abajo para utilizar el servicio php sms gateway.

PHP SMS: Si programas habitualmente con PHP puedes enviar SMS desde tus desarrollos para confirmar a los clientes una compra, mandar una clave de activación, mandar alertas de funcionamiento o errores en el servicio, o para mandar un SMS a los usuarios registrados en la web con la última oferta.

Consulta las tarifas para comprar SMS y pídenos más información. Te enviaremos una cuenta de prueba gratuita para que puedas enviar SMS con php.

Consulta nuestra documentación técnica para mandar SMS (API SMS) y comprobarás por qué somos la mejor plataforma de SMS y el mejor socio que puedes encontrar para enviar SMS desde tus desarrollos en php.

El siguiente código actualizado es un ejemplo ilustrativo de cómo mandar SMS con PHP. Para una información más completa, consulta la especificación técnica.

// sDestination: lista de numeros de telefono separados por comas.
// Cada numero debe comenzar por el prefijo internacional de pais. Por 
// ejemplo: 34 para España.
// sMessage: hasta 160 caracteres
// sSenderId: remitente autorizado por Altiria al dar de alta el servicio. Disponible 
// sólo en ciertos países. Omitir el parametro si no se cuenta con ninguno.
// debug: Si es true muestra por pantalla la respuesta completa del servidor
// XX, YY y ZZ se corresponden con los valores de identificacion del
// usuario en el sistema. Proporcionados por Altiria al contratar el servicio o solicitar prueba
// Como ejemplo la peticion se envia a www.altiria.net/sustituirPOSTsms
// Se debe reemplazar la cadena '/sustituirPOSTsms' por la parte correspondiente
// de la URL suministrada por Altiria al dar de alta el servicio

function AltiriaSMS($sDestination, $sMessage, $sSenderId, $debug){
 $sData ='cmd=sendsms&';
 $sData .='domainId=XX&';
 $sData .='login=YY&';
 $sData .='passwd=ZZ&';
 // Omitir la linea del remitente (senderId) si no se cuenta con ninguno autorizado
 $sData .='senderId='.$sSenderId.'&';
 $sData .='dest='.str_replace(',','&dest=',$sDestination).'&';
 $sData .='msg='.urlencode(utf8_encode(substr($sMessage,0,160)));

 //Tiempo máximo de espera para conectar con el servidor = 5 seg
 $timeOut = 5; 
 $fp = fsockopen('www.altiria.net', 80, $errno, $errstr, $timeOut);
 if (!$fp) {
  //Error de conexion o tiempo maximo de conexion rebasado
  $output = "ERROR de conexion: $errno - $errstr\n";
  $output .= "Compruebe que ha configurado correctamente la direccion/url ";
  $output .= "suministrada por altiria";
  return $output;
 } else {
  // Reemplazar la cadena '/sustituirPOSTsms' por la parte correspondiente
  // de la URL suministrada por Altiria al dar de alta el servicio
  $buf = "POST /sustituirPOSTsms HTTP/1.0\r\n";
  $buf .= "Host: www.altiria.net\r\n";
  $buf .= "Content-type: application/x-www-form-urlencoded; charset=UTF-8\r\n";
  $buf .= "Content-length: ".strlen($sData)."\r\n";
  $buf .= "\r\n";
  $buf .= $sData;
  fputs($fp, $buf);
  $buf = "";

  //Tiempo máximo de espera de respuesta del servidor = 60 seg
  $responseTimeOut = 60;
  stream_set_timeout($fp,$responseTimeOut);
  stream_set_blocking ($fp, true);
  if (!feof($fp)){
   if (($buf=fgets($fp,128))===false){
    // TimeOut?
    $info = stream_get_meta_data($fp);
    if ($info['timed_out']){
     $output = 'ERROR Tiempo de respuesta agotado';
     return $output;
    } else {
     $output = 'ERROR de respuesta';
     return $output;
    }
   } else{
    while(!feof($fp)){
     $buf.=fgets($fp,128);
    }
   }
  } else {
   $output = 'ERROR de respuesta';
   return $output;
  }

  fclose($fp);
  
  //Si la llamada se hace con debug, se muestra la respuesta completa del servidor
  if ($debug){
   print "Respuesta del servidor: ".$buf."";
  }
  
  //Se comprueba que se ha conectado realmente con el servidor
  //y que se obtenga un codigo HTTP OK 200 
  if (strpos($buf,"HTTP/1.1 200 OK") === false){
   $output = "ERROR. Codigo error HTTP: ".substr($buf,9,3)."\n";
   $output .= "Compruebe que ha configurado correctamente la direccion/url ";
   $output .= "suministrada por Altiria";
   return $output;
  }
  //Se comprueba la respuesta de Altiria
  if (strstr($buf,"ERROR")){
   $output = $buf."\n";
   $output .= " Ha ocurrido algun error. Compruebe la especificacion";
   return $output;
  } else {
   $output = $buf."\n";
   $output .= " Exito";
   return $output; 
  }     
 }
}

Para llamar a la función anterior, enviando un SMS de prueba a dos teléfonos de España, por ejemplo 346xxxxxxxx y 346yyyyyyyy, se puede hacer en PHP de la siguiente forma:

$resp= AltiriaSMS("346xxxxxxxx,346yyyyyyyy", "Mensaje de prueba", "remitente", false);
echo $resp;

Características adicionales para mandar SMS con PHP

  • Remitente personalizado: Personalización en el envío de SMS por PHP del remitente de origen por una cadena de texto, por ejemplo, el nombre de su empresa. (*)
  • Confirmación de entrega: Conozca la fecha y hora en la que se ha recibido el SMS enviado o las causas por las que no se ha recibido. (*)
  • Sistema avanzado de control de crédito con aviso automático por email que impide quedarse sin crédito de envío de forma inesperada.
  • Informes automáticos de envío de SMS en PHP y confirmación de entrega, permiten mantener un control periódico de los envíos realizados.
  • Posiblidad de reenvío de SMS pendientes por falta de crédito. Si realizó un envío de SMS mediante PHP y no tenía crédito, los mensajes se quedan encolados en nuestros sistemas hasta que disponga de crédito, de forma que no necesita repetir el envío.

(*) La disponibilidad de la confirmación de entrega al usuario y del remitente personalizado depende de cada país, consúltenos para su país de interés.