Tu portal de
formación online
United States

Infórmate
Inicio » Artículos » Programación » PHP » Trucos Programación - Enviar SMS baratos con PHP

Suscríbete al boletín

Recibirás información detallada de nuestras ofertas, noticias, etc.

Suscríbete al boletín

Enviar a un amigo

Si crees que este Artículo le puede interesar a un amigo puedes enviarselo desde aquí.

Enviar a un amigo

Descargar archivo Adjunto Trucos Programación - Enviar SMS baratos con PHP

23-12-2008 Daniel Ibáñez
 Hoy en día no cabe duda que el SMS es la herramienta de comunicación indirecta más veloz y usada en el mundo.

Un SMS llega al destinatario en el mismo momento en que se realiza el envío y, a diferencia del e-mail, la lectura del mismo es, por lo general, inmediata.

Por eso, y debido al gran aumento de móviles per cápita en la población, cada día existen más aplicaciones que realizan las notificaciones a los usuarios mediante SMS en lugar de utilizar e-mails.

Pero, pese a que el precio de estos mensajes es relativamente bajo, existen proveedores de servicios que se enriquecen increiblemente con los precios abusivos de los mismos.
Así, muchos proveedores ofrecen envíos de SMS por 0.12€ cuando, siguiendo el siguiente tutorial, podremos realizar envíos de SMS por no más de 0.06€


Desde la rama de proveedores de soluciones Voip VoipBuster, podemos encontrar un conjunto de partners con diversas tarifas para SMS.

Entre ellos se encuentran:
http://www.smsdiscount.com/
http://www.voipstunt.com/
http://www.voipwise.com/
http://www.voipbuster.com/
http://www.12voip.com/
http://www.poivy.com/
http://www.voipcheap.com/
http://www.voipzoom.com/
...

Vamos a utilizar el servicio de envío de SMS que estos proveedores ponen a nuestra disposición para poder realizar los envíos de notificación desde nuestra web.
Para ello, utilizaremos y explicaremos una clase escrita en PHP y de uso sencillo y versátil.

En nuestra librería definiremos un grupo de constantes, detalladas a continuación:

constantes.php



Nuestra clase class.smsApi.php se definirá con la siguiente estructura:

class.smsApi.php

(Los detalles de las funciones, podrás encontrarlos en el archivo adjunto al artículo)

La configuración de la llamada a la clase, dependerá de si en nuestro servidor tenemos habilitado el uso de CURL ó el método file() de lectura remota de ficheros.

Los parámetros que recibe cada función son los siguientes:

function smsApi:
#Constructor de la clase, puede utilizarse símplemente para definir nuestro objeto o incluso para realizar un envío (según parámetros recibidos)
    $usr - login del usuario de la página que nos proveerá el servicio
    $pass - contraseña del usuario
        $module - Opcional: Módulo que realizará el envío. Se puede utilizar una de las constantes definidas en nuestro script de constantes
        $mobilephone - Opcional: En caso de querer hacer un envío con una única llamada a una función, estrableceremos este parámetro. El valor a recibir será el número destino, sin el prefijo internacional del país.
        $country - Opcional: Prefijo internacional del país. Por ejemplo: España - '+34' ó '0034'
        $message - Opcional: Cadena con el mensaje a enviar
        $engine - Método a utilizar. Este valor puede ser 'curl' ó 'file'. También se puede utilizar una de las constantes definidas en nuestro script de constantes.

function setModule:
#Esta función es llamada internamente desde la clase, y no es necesario hacer uso de ella para el envío de mensajes

function addRecipient:
#Esta función sirve para añadir más de un destinatario en un envío
    $mobilephone - Número destino a añadir a la lista de destinatarios. El valor a recibir será el número destino, sin el prefijo internacional del país.
        $country - Opcional: Prefijo internacional del país. Por ejemplo: España - '+34' ó '0034'

function setMessage:
#Establece el mensaje a ser enviado
    $message - Cadena con el mensaje a enviar
function setEngine:
#Establece el método a utilizar para realizar el envío
    $message - Cadena con el mensaje a enviar

function send:
#Realiza el envío a los destinatarios establecidos anteriormente

function send_CURL
function send_FILE
#funciones internas, que son llamadas por la función send() dependiendo del modo de envío establecido anteriormente


Así, las llamadas a este script se realizarían de la siguiente forma:
A partir de ahora, el coste de realizar envíos para notificación, se verá reducido increíblemente.

Los proveedores mencionados anteriormente, ofrecen unos pocos envíos de prueba por cada usuario.
Modificando los parámetros del archivo example.php podremos realizar pruebas para verificar el funcionamiento.






Daniel05-05-2010

Hola Diego,

Creo que los proveedores han cambiado el modo de funcionar, que no permiten el envío por URL.

No se si actualmente, el envío con $engine = ENGINE_CURL

Diego27-04-2010

A mi no me ha funcionado. Me da un error al enviar. Voy a probar con la información que he encontrado en http://www.pasarelasms.es/enviar-sms/enviar-sms-desde-php/

Si la información de este artículo está desactualizada, por favor, diganme qué puede haber cambiado para que no me funcione.

Daniel30-10-2009

Hola Rafael,

En principio este sería el único código necesario. Simplemente avisarte de que estos proveedores limitan los envíos a 100 por cuenta y por día.

A título personal, desde el 16-10 no me funciona el envío, no se si habrán baneado mi cuenta o si habrán eliminado la funcionalidad del envío por URL.

rafael29-10-2009

pregunto, no se necesita mas que este codigo para enlazar el servidor web con mi cuenta de smsdiscount y enviar notificaciones a mis clientes con la informacion que recojo de mi propia web?

* Los comentarios son propiedad de quien los envió, adrformación no se hace responsable de su contenido.