Tutorial: Recibir SMS desde la web

Cicklow

Admin
Verificado con videollamada
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
30 May 2011
Mensajes
279
Hola, hoy aprenderán como crear nuestro propio script para recibir SMS desde la web, esto nos permitirá tener nuestros propios números para verificar cuentas de Google, Facebook, y otras mas, o por ejemplo vender números en fiverr (armando bien nuestro sistema)!

Para este tutorial usaremos NEXMO (una empresa que ya hemos utilizado antes en nuestro tutorial de como enviar SMS), nos registraremos en la empresa y compraremos nuestro primer numero (pagaremos con paypal).

Paso 1 - Comprar y Configurar nuestro numero
Iremos a: https://dashboard.nexmo.com/private/numbers#add_number y colocaremos estas opciones (yo compre un numero de USA ustedes compren el que mas le guste)


Al darle al botón Search aparecerá un listado de números disponibles, le damos BUY al que mas nos guste XD.
Ahora configuraremos la url donde los SMS serán recibidos. En este caso nuestro callback.php



Paso 2 - Programar todo
Creamos un archivo llamado callback.php y colocamos este código:
PHP:
<?php
	$data = $_GET; //Obtenemos los datos del SMS
	if(!isset($data['text'], $data['to'])) die("0"); //si alguno de los necesarios esta vacio cerramos el PHP

	include('db.php'); //agregamos el archivo encargado de conectarse a la base de datos
	$mysqli->query("INSERT INTO sms_entrar VALUES('','".strip_tags($data['to'])."','".strip_tags($data['msisdn'])."','".time()."','".strip_tags($data['text'])."');"); //guardamos el SMS
	die("1"); //finalizamos el PHP
?>
Ayuda sobre recibir SMS: https://docs.nexmo.com/index.php/sms-api/handle-inbound-message

Ahora crearemos el archivo db.php, encargado de conectarse a nuestra base de datos
PHP:
<?
	

	$dbhost = "localhost";
	$dbuser = "USUARIO";
	$dbpass = "PASS";
	$db = "BASE_DATOS";
	$mysqli = new mysqli("$dbhost","$dbuser","$dbpass","$db");
	if ($mysqli->connect_errno) {
		die("Failed to establish a connection with the database");
	}
?>

Nuestra tabla mysql sera:
HTML:
CREATE TABLE IF NOT EXISTS `sms_entrar` (
  `id` double NOT NULL AUTO_INCREMENT,
  `smsto` varchar(35) NOT NULL,
  `smsfrom` varchar(35) NOT NULL,
  `time` int(11) NOT NULL,
  `msg` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;
Para esto accedemos al phpmyadmin, creamos una base de datos (si es que no tenemos alguna) luego vamos a la pestaña SQL y colocamos el código anterior!

Creamos index.php, el encargado de mostrar nuestros SMS.
PHP:
<!DOCTYPE html>
<html lang="es">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Recibir SMS</title>

    <!-- Bootstrap -->
    <link rel="stylesheet" href="http://getbootstrap.com/dist/css/bootstrap.min.css" />

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
      <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
<div class="container">
	<h1>SMS Recibidos!</h1>
	<table class="table table-striped">
		<thead>
			<tr><td>ID</td><td>Desde</td><td>Para</td><td>Fecha</td><td>Mensaje</td></tr>
		</thead>
		<tbody>

		<?php
			include('db.php'); //cargamos nuestro archivo encargado de conectar la bd
			//Vemos si mostramos los SMS de un numero en concreto o todos
			if($_GET['para']!="") $para = 'smsto=\''.strip_tags($_GET['para']).'\''; else $para = "1";
			//Obtenemos los SMS
			$sms = $mysqli->query("SELECT * FROM sms_entrar WHERE ".$para." ORDER BY id DESC LIMIT 0,100");
			//Recorremos la variable $sms y mostramos los SMS
			while ($ROW = $sms->fetch_assoc()) {
				echo '<tr><td>'.$ROW['id'].'</td><td>'.$ROW['smsfrom'].'</td><td>'.$ROW['smsto'].'</td><td>'.calculart($ROW['time']).'</td><td style="word-wrap: break-word;">'.wordwrap($ROW['msg'], 100, "<br />\n", true).'</td></tr>';
			}
		?>
		</tbody>
	</table>
</div>
  </body>
</html>
<?php
	//funcion encargada de calcular el tiempo de cada sms
	function calculart($ptime) {
		$etime = time() - $ptime;

		if ($etime < 1) {
			return '0 seconds';
		}
    
		$a = array( 12 * 30 * 24 * 60 * 60  =>  'a&ntilde;o',
                	30 * 24 * 60 * 60       =>  'mes',
                	24 * 60 * 60            =>  'dia',
                	60 * 60                 =>  'hora',
                	60                      =>  'minuto',
                	1                       =>  'segundo'
		);
    
		foreach ($a as $secs => $str) {
			$d = $etime / $secs;
			if ($d >= 1) {
				$r = round($d);
				return 'hace '.$r . ' ' . $str . ($r > 1 ? 's' : '');
			}
		}
	}
?>
Y quedaría de esta forma:


Paso 3 - TIPS
- Para ver los SMS de un numero en cuestion solo accedemos a nuestro index.php colocando la variable para. ejemplo:
Insertar CODE, HTML o PHP:
http://test.cicklow.me/ForoBeta/recibir/?para=19853180522
- Si van a vender números en fiverr tienen dos opciones, crear una carpeta para cada usuario o pasarle la url con el numero que compraron (tip anterior) (tendran que editar el index.php para que no muestre los SMS de todos, sino solo el del numero seleccionado)
- Pueden usar este script para uso propio para verificar cuentas de youtube, google, etc o lo que mas le guste
- Si deciden armar un sitio sobre esto, pues abra que hacerles mas modificaciones, yo solo les doy el punto de partida.
- Los números en NEXMO son cobrados cada 30 dias (ejemplo el de usa sale 0,67EUROS, eso se cobra cuando se compra y cada 30 días de uso, estos números se pueden cancelar, ejemplo en fiverr pueden vender los números por 30 días)
- NEXMO no cobra por SMS recibido, otras empresas si! (a razón de 0,0045USD por SMS recibido)


Descarga:
Insertar CODE, HTML o PHP:
http://test.cicklow.me/ForoBeta/recibir/recibir.rar
Demo:
Insertar CODE, HTML o PHP:
http://test.cicklow.me/ForoBeta/recibir/
Demo con un numero:
Insertar CODE, HTML o PHP:
http://test.cicklow.me/ForoBeta/recibir/?para=19853180522
Saludos!

PD: Si van a usar varios numeros, usen este codigo en index.php
cambian:
PHP:
<div class="container">
    <h1>SMS Recibidos!</h1>
    <table class="table table-striped">
        <thead>
            <tr><td>ID</td><td>Desde</td><td>Para</td><td>Fecha</td><td>Mensaje</td></tr>
        </thead>
        <tbody>

        <?php
            include('db.php'); //cargamos nuestro archivo encargado de conectar la bd
            //Vemos si mostramos los SMS de un numero en concreto o todos
            if($_GET['para']!="") $para = 'smsto=\''.strip_tags($_GET['para']).'\''; else $para = "1";
            //Obtenemos los SMS
            $sms = $mysqli->query("SELECT * FROM sms_entrar WHERE ".$para." ORDER BY id DESC LIMIT 0,100");
            //Recorremos la variable $sms y mostramos los SMS
            while ($ROW = $sms->fetch_assoc()) {
                echo '<tr><td>'.$ROW['id'].'</td><td>'.$ROW['smsfrom'].'</td><td>'.$ROW['smsto'].'</td><td>'.calculart($ROW['time']).'</td><td style="word-wrap: break-word;">'.wordwrap($ROW['msg'], 100, "<br />\n", true).'</td></tr>';
            }
        ?>
        </tbody>
    </table>
</div>

por

PHP:
<?php if($_GET[para]==""){ ?>
<div class="container">
    <h1>Numeros!</h1>
    <table class="table table-striped">
        <thead>
            <tr><td>Numero</td><td>Accion</td></tr>
        </thead>
        <tbody>
        <?php
		include('db.php'); //cargamos nuestro archivo encargado de conectar la bd
		$sms = $mysqli->query("SELECT DISTINCT smsto FROM sms_entrar WHERE 1 ORDER BY smsto");
		//Recorremos la variable $sms y mostramos los SMS
            	while ($ROW = $sms->fetch_assoc()) {
                	echo '<tr><td>'.$ROW['smsto'].'</td><td><a href="?para='.$ROW['smsto'].'">Ver SMS</a></td></tr>';
            	}
        ?>
        </tbody>
    </table>
</div>
<?php }else{ ?>
<div class="container">
    <h1>SMS Recibidos!</h1>
    <table class="table table-striped">
        <thead>
            <tr><td>ID</td><td>Desde</td><td>Para</td><td>Fecha</td><td>Mensaje</td></tr>
        </thead>
        <tbody>

        <?php
            include('db.php'); //cargamos nuestro archivo encargado de conectar la bd
            //Vemos si mostramos los SMS de un numero en concreto o todos
            if($_GET['para']!="") $para = 'smsto=\''.strip_tags($_GET['para']).'\''; else $para = "1";
            //Obtenemos los SMS
            $sms = $mysqli->query("SELECT * FROM sms_entrar WHERE ".$para." ORDER BY id DESC LIMIT 0,100");
            //Recorremos la variable $sms y mostramos los SMS
            while ($ROW = $sms->fetch_assoc()) {
                echo '<tr><td>'.$ROW['id'].'</td><td>'.$ROW['smsfrom'].'</td><td>'.$ROW['smsto'].'</td><td>'.calculart($ROW['time']).'</td><td style="word-wrap: break-word;">'.wordwrap($ROW['msg'], 100, "<br />\n", true).'</td></tr>';
            }
        ?>
        </tbody>
    </table>
</div>
<?php } ?>

PD: NEXMO ha cambiado sus politicas y no permite este tipo de script masivos (colocarlo para otros)... por ahi para uso personal funciona bien, hay numeros que no funcionan con facebook, y otras redes sociales... Tengan en cuenta eso...
Otro sitio para usar es: https://www.tropo.com/ para comprar numeros...
 
Última edición:

Emerdavid98

Épsilon
Programador
Verificación en dos pasos desactivada
Desde
28 Dic 2013
Mensajes
782
Muy bueno...lo leere mas despacio...jjejee

:encouragement:

Saludos,,,
 

emski

Pi
Verificación en dos pasos desactivada
Desde
27 Jul 2012
Mensajes
5.203
Te amo Cicklow :rolleyes:, pero por tus aportes :topsy_turvy:

Ahora ya no meteré mi numero en esas páginas ;)
 
Última edición:

Marco Grados

1
Pi
Verificado con videollamada
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
20 Abr 2013
Mensajes
6.092
Buenísimo :encouragement:
 

RaikND

Zeta
Social Media
Verificación en dos pasos desactivada
Desde
10 Sep 2013
Mensajes
1.627
Es gratis los envios de SMS a moviles?
 

Cicklow

Admin
Verificado con videollamada
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
30 May 2011
Mensajes
279

RaikND

Zeta
Social Media
Verificación en dos pasos desactivada
Desde
10 Sep 2013
Mensajes
1.627
El otro tutorial? no... son pagos! en este tutorial, los SMS recibidos son gratis!

Si si, perdona, ya me he fijado... pero igual salen muy baratos... sirve para todo el mundo? porque si es así, puede ser muy bueno esto!
 

Cicklow

Admin
Verificado con videollamada
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
30 May 2011
Mensajes
279
Si si, perdona, ya me he fijado... pero igual salen muy baratos... sirve para todo el mundo? porque si es así, puede ser muy bueno esto!
Si para el listado de paises que ahi se encuentra.

Una duda, esos números los han tenido más personas? :encouragement:
Si, no son únicos, tené en cuenta que un numero único sale unos 200E a 500E al mes.
 

deskpro123

VIP
Zeta
Social Media
CPA
Verificación en dos pasos desactivada
Verificado por Whatsapp
Desde
5 Jun 2012
Mensajes
1.919
[MENTION=9679]cicklow[/MENTION] , amigo, como puedo cobrar a los que envian mensajes???
 

Cicklow

Admin
Verificado con videollamada
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
30 May 2011
Mensajes
279
[MENTION=9679]cicklow[/MENTION] , amigo, como puedo cobrar a los que envian mensajes???

Este tutorial es para recibir SMS, no para enviar, para enviar esta el otro tutorial... y para cobrar pues puedes usar paypal o bitcoins, yo usaba estos 2!
 

Mr. Nitro

1
Ro
Social Media
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
26 Mar 2012
Mensajes
7.440
excelente para los que creamos canales diariamente, buen tutorial cicklow, gracias
 

emanueletrix

Baneado
Préstamo
Eta
Social Media
Verificación en dos pasos desactivada
Desde
20 Dic 2009
Mensajes
1.354
orale excelente tutorial amigo [MENTION=9679]cicklow[/MENTION] me va servir de mucho este para verificar unas cosillas pendientes que tengo por ahi :encouragement:

ahi te mande un sms a tu numero de la pagina y llego al instante por lo que vi si llega al momento hace tiempo probe uno y tardaba años en llegar el mensaje pero con este no

sale :encouragement:

---------- Post agregado el 11-jun-2014 hora: 22:41 ----------



Enviado desde mi XT1032 mediante Tapatalk
 

Cicklow

Admin
Verificado con videollamada
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
30 May 2011
Mensajes
279
orale excelente tutorial amigo [MENTION=9679]cicklow[/MENTION] me va servir de mucho este para verificar unas cosillas pendientes que tengo por ahi :encouragement:

ahi te mande un sms a tu numero de la pagina y llego al instante por lo que vi si llega al momento hace tiempo probe uno y tardaba años en llegar el mensaje pero con este no

sale :encouragement:

:) necesitas que edite tu numero móvil?
 

emanueletrix

Baneado
Préstamo
Eta
Social Media
Verificación en dos pasos desactivada
Desde
20 Dic 2009
Mensajes
1.354
:) necesitas que edite tu numero móvil?

aaa cierto no note que se ve claro el numero del lado izquierdo jaja :ambivalence:

si porfa no quiero recibir acoso jeje pero si porfa :encouragement:
 

Cicklow

Admin
Verificado con videollamada
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
30 May 2011
Mensajes
279
aaa cierto no note que se ve claro el numero del lado izquierdo jaja :ambivalence:

si porfa no quiero recibir acoso jeje pero si porfa :encouragement:

Listo ahora pueden hacer test, ya que no muestra mas el numero completo desde el cual recibe el SMS :)
 

zeritodeivid

Eta
Verificación en dos pasos desactivada
Verificado por Whatsapp
Desde
10 Ene 2014
Mensajes
1.260
Te saltaste la barda con este tutorial, excelente
 

emanueletrix

Baneado
Préstamo
Eta
Social Media
Verificación en dos pasos desactivada
Desde
20 Dic 2009
Mensajes
1.354
Listo ahora pueden hacer test, ya que no muestra mas el numero completo desde el cual recibe el SMS :)

amigo te acabo de mandar otro mensaje de prueba pero ahora no aparecio checa que paso
 

Cicklow

Admin
Verificado con videollamada
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
30 May 2011
Mensajes
279
amigo te acabo de mandar otro mensaje de prueba pero ahora no aparecio checa que paso

Desde el mismo numero? que raro... ahi veo... el script no sufrió cambio alguno, solo la parte de mostrar el SMS...
 

Crea una cuenta o accede para comentar

Debes ser un miembro para poder comentar

Crear cuenta

Crea una cuenta en nuestra comunidad

Acceder

¿Ya tienes una cuenta? Accede aquí


Arriba