Foros del Web » Programando para Internet » PHP »

Ayuda con Aplicación de Micropagos

Estas en el tema de Ayuda con Aplicación de Micropagos en el foro de PHP en Foros del Web. Buenas, he contratado un sistema de micropagos con SoyDigital. Me enviaron el siguiente email: Cita: Buenas tardes, ya está modificado el evento EVENTO en el ...
  #1 (permalink)  
Antiguo 16/07/2007, 06:09
Avatar de elfran222  
Fecha de Ingreso: junio-2006
Mensajes: 550
Antigüedad: 17 años, 10 meses
Puntos: 7
Pregunta Ayuda con Aplicación de Micropagos

Buenas, he contratado un sistema de micropagos con SoyDigital. Me enviaron el siguiente email:
Cita:
Buenas tardes, ya está modificado el evento EVENTO en el 7505.
Adjunto ficheros de la demo de Micropagos.
Ruta del script: http://www.DOMINIO.COM/micropagos/procesa.php
Las variables que recibe son: evento, movil, texto, fecha, operadora, clave.

- conf.inc.php : fichero de configuración, debes poner el acceso a la base de datos y es donde puedes modificar los mensajes de respuesta al usuario y el tiempo de validez
- contenido.html : contiene el código a poner en la página a proteger
- procesa.php : script que procesa las variables, contiene la function que genera la clave
- SD_micro_auth.php : fichero de autentificación
- SD_micro_sms.sql : estructura de la tabla que debes crear en la base de datos

1.- Crea la tabla en la base de datos
2.- Pon los datos correctos en el fichero conf.inc.php
3.- Sube todos los ficheros, excepto SD_micro_sms.sql, a http://www.DOMINIO.COM/micropagos/
4.- Comprueba que el acceso realmente está restringido intentando acceder a http://www.DOMINIO.COM/micropagos/contenido.html
5.- Pon el código de contenido.html en la página que quieras proteger, el código que está entre <?php y ?>, ambos incluidos. Lo más seguro es que debas modificar la ruta del fichero que va a buscar dependiendo del directorio donde esté la página restringida; si está en la raiz del sitio, sería: require_once ("micropagos/SD_micro_auth.php");
6.- Una vez compruebes que está todo correcto, puedes eliminar del server contenido.html
--
Me quede por el paso 5, por que no entiendo donde poner eso de "("micropagos/SD_micro_auth.php")"


Y tambien, quiero saber como hacer que le responda con un SMS al instante dandole un codigo. Ese codigo estará en un TXT y en ese TXT habrá un monton de codigos que lo que tiene que hacer es decir uno de entre todos esos codigos aleatorios y a su vez que el digo que envio, sea borrado del TXT para que no se pueda volver a repetir (Digo TXT, pero el formato no tengo ningun problema por que cambie).

A continuación, os posteo el codigo de los archivos que me pasaron:
Cita:
Iniciado por conf.inc.php
<?
/***
@file conf.inc.php
@author SoyDigital
@creation date Agosto 2004
@modification date Julio 2007 (códigos de cada operadora, variables de tiempo y mensajes)
@version Micropagos 2.1
@email [email protected]
***/

/***
En este fichero se almacenan los valores de la variables a utilizar
***/

/***
Definicion de variables de la base de datos
***/
$AUTHDB_SERVER = "localhost"; //servidor
$AUTHDB_USER = "USUARIO_BDD"; //usuario
$AUTHDB_PASSWD = "CONTRASEÑA_USER_BDD"; //password
$AUTHDB_NAME = "NOMBRE_BDD"; //nombre de la base de datos

/***
Definicion de variables de autenticación de usuario
***/
$AUTHUSER_TABLE = "SD_micro_sms";
$AUTHUSER_LOGIN = "movil";
$AUTHUSER_PASSW = "clave";
$AUTHUSER_DATA_INI = "fecha_inicio";
$AUTHUSER_DATA_FI = "fecha_fin";
$AUTHUSER_DATA_INSERT = "fecha_insert";

/***
Definicion de variables de la tabla
***/
$TB = "SD_micro_sms";
$TB_ID = "id";
$TB_MOVIL = "movil";
$TB_CLAVE = "clave";
$TB_FECHA_INICIO = "fecha_inicio";
$TB_FECHA_FIN = "fecha_fin";
$TB_FECHA = "fecha_insert";
$TB_OPERADORA = "operadora";
$TB_EVENTO = "evento";

/***
Pasamos a texto el código de cada operadora y pasamos variable
***/
$oper = $_POST['operadora'];
switch ($oper) {
case 1:
$oper = "Movistar";
break;
case 2:
$oper = "Vodafone";
break;
case 3:
$oper = "Orange";
break;
case 9:
$oper = "Euskaltel";
break;
case 10:
$oper = "Yoigo";
}

/***
Tiempo en minutos de validez de usuario/clave para acceder
***/
$MIN = "30";

/***
Mensajes (los sms recibidos por el usuario no deben superar los 160 caracteres)
***/
$AUTHDB_ERROR_MSG = "ERROR: Password incorrecto!"; //error al autenticar
$OK_MSG = "Gracias por utlizar nuestros servicios. Tus datos son:"; //mensaje que se envía al usuario con sus datos de acceso
$ERROR_MSG = "Ha ocurrido un error, contacte con el administrador."; //mensaje de error que se envía al usuario
$VAR_EMPTY_MSG = "Las variables están vacías. Contacte con el administrador."; //en caso de llegar las variables vacías
Cita:
Iniciado por contenido.html
<?php
//libreria de autenticación
require_once ("SD_micro_auth.php");
$a = new AuthUser ($PHP_AUTH_USER, $PHP_AUTH_PW);
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Sistema Micropagos</title>
</head>

<body>
Correcto!!
</body>
</html>
Cita:
Iniciado por procesa.php
<?
/***
@file procesa.php
@author SoyDigital
@creation date Agosto 2004
@modification date Julio 2007 (variable de tiempo y mensajes)
@version Micropagos 2.1
@email [email protected]
***/

/***
Guarda los nuevos datos llegados por POST en la base de datos
***/

/***
Se requiere el fichero de configuracion
***/
require_once "conf.inc.php";

/***
Comprobar si hay variables
***/
if (isset($_POST['movil'])){

//variables recibidas
$var_movil = $_POST['movil'];
$var_clave = $_POST['clave'];
$var_fecha = $_POST['fecha'];
$var_operadora = $_POST['operadora'];
$var_evento = $_POST['evento'];

$tact = time();
$var_fecha_inicio = date("Y-m-d H:i:s",$tact);
$var_fecha_fin = date("Y-m-d H:i:s",mktime(date ("H",$tact),(date ("i",$tact)+$MIN),date ("s",$tact),date ("m",$tact),date ("d",$tact),date ("Y",$tact)));

//conexion a la base de datos
$conn = mysql_connect($AUTHDB_SERVER,$AUTHDB_USER,$AUTHDB_ PASSWD) or die ("Connect DB Failed");
$DB = mysql_select_db($AUTHDB_NAME, $conn) or die ("Select DB failed");

//consulta de inserción
$sql = "Insert Into $TB ($TB_MOVIL,$TB_CLAVE,$TB_FECHA_INICIO,$TB_FECHA_FI N,$TB_FECHA,$TB_OPERADORA,$TB_EVENTO) Values('$var_movil','$var_clave','$var_fecha_inici o','$var_fecha_fin','$var_fecha','$var_operadora', '$var_evento')";

//la consulta de inserción se ejecuta o da error
$res = mysql_query($sql) or die("Fallo consulta de insercion: ". mysql_error());

//consulta última inserción
$sql2 = "Select Max($TB_ID) AS id From $TB";

//la consulta de selección de última se ejecuta o da error
$res2 = mysql_query($sql2) or die("Fallo consulta de seleccionar ultima: ". mysql_error());

//obtenemos el id
$row2 = mysql_fetch_array($res2);
$var_id = $row2[id];

//consulta de selección
$sql3 = "Select * From $TB Where $TB_ID=$var_id";

//la consulta de seleccion se ejecuta o da error
$res3 = mysql_query($sql3) or die("Fallo consulta de seleccion: ". mysql_error());

//se guardan los datos en un array y se imprime si es TRUE, error si es FALSE
$row3 = mysql_fetch_array($res3);
if ($row3 != NULL) {
$respuesta = $OK_MSG." user: ".$row3[$TB_MOVIL]." y pass: ".$row3[$TB_CLAVE];
echo $respuesta;
}else {
$respuesta = $ERROR_MSG;
echo $respuesta;
}

//cierra la conexión a la base de datos
mysql_close($conn);

/***
Las variables están vacías
***/
}else{
$respuesta = $VAR_EMPTY_MSG;
echo $respuesta;
}
?>

Última edición por elfran222; 16/07/2007 a las 06:14
  #2 (permalink)  
Antiguo 16/07/2007, 06:09
Avatar de elfran222  
Fecha de Ingreso: junio-2006
Mensajes: 550
Antigüedad: 17 años, 10 meses
Puntos: 7
Pregunta Ayuda con Aplicación de Micropagos [2]

Cita:
Iniciado por SD_micro_auth.php
<?php
/***
@file SD_micro_auth.php
@author SoyDigital
@creation date Agosto 2004
@version Micropagos 2.1
@email [email protected]
***/

/***
Se requiere el fichero de configuracion
***/
require_once "conf.inc.php";

/***
Clase de autenticación del usuario
***/
class AuthUser{

var $missatge;
var $user;
var $pw;
var $conn_auth;
var $DB;

//función constructor
function AuthUser( $user, $password, $missatge = "AUTH SMS" ){

global $AUTHDB_USER;
global $AUTHDB_PASSWD;
global $AUTHDB_SERVER;
global $AUTHDB_NAME;
global $AUTHDB_ERROR_MSG;

$this->conn_auth = mysql_connect($AUTHDB_SERVER,$AUTHDB_USER,$AUTHDB_ PASSWD);
$this->DB = mysql_select_db($AUTHDB_NAME, $this->conn_auth);

if ( isset( $missatge )) $this->missatge = $missatge;
$this->user = $user;
$this->pw = $password;

$this->valid_user( $user, $password);
}

//función que envia los caracteres http para autentificación via web
function Authenticate() {

global $AUTHDB_ERROR_MSG;

Header( "X-Powered-By: Dis-Auth-Module" );
Header( "WWW-authenticate: Basic realm=\"".$this->missatge."\"" );
Header( "HTTP/1.0 401 Unauthorized" );

echo "$AUTHDB_ERROR_MSG<br>\n";
exit;
}

//función para validar usuario/password. Retorna TRUE si OK, FALSE si KO
function is_valid_password( $user, $passwd ){

global $AUTHUSER_LOGIN;
global $AUTHUSER_PASSW;
global $AUTHUSER_TABLE;
global $AUTHUSER_DATA_INI;
global $AUTHUSER_DATA_FI;

$dact = date("Y-m-d H:i:s",time());

$sql = "select * from $AUTHUSER_TABLE where " .
"$AUTHUSER_LOGIN=\"$user\" and $AUTHUSER_PASSW=\"$passwd\" and $AUTHUSER_DATA_INI <= \"$dact\" AND $AUTHUSER_DATA_FI >= \"$dact\"";

$res = mysql_query( $sql,$this->conn_auth );

if ( mysql_num_rows( $res ) == 0 ) return FALSE;
else return TRUE;
}

//función que valida si el usuario está activo, si el password es correcto y si tiene permisos para entrar como usuario o bien como un grupo
function valid_user( $user, $password){

// Mira si el usuario está activo o no
if ( !isset( $user )){
$this->Authenticate(); //si no está el usuario demandado
}

if ( !$this->is_valid_password( $user, $password ) ){
$this->Authenticate();
}

}

//función para cambiar de usuario
function logout( ){

$this->Authenticate(); //si no está el usuario demandado
}

}
?>
Cita:
Iniciado por SD_micro_sms.sql
CREATE TABLE `SD_micro_sms` (
`id` int(11) NOT NULL auto_increment,
`movil` varchar(25) NOT NULL default '',
`clave` varchar(8) NOT NULL default '',
`fecha_inicio` datetime NOT NULL default '0000-00-00 00:00:00',
`fecha_fin` datetime NOT NULL default '0000-00-00 00:00:00',
`fecha_insert` timestamp(14) NOT NULL,
`operadora` varchar(50) NOT NULL default '',
`evento` varchar(8) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
Espero que no sea muy complicado lo que quiero, creo que no lo es, solamente es coger y que responda con un SMS diciendo su codigo es tal y le diga un codigo cogido aleatoriamente de un archivo y luego ese codigo sea eliminado de ese archivo.

POSDATA: los datos que estan en verde son datos que puse de forma "demo".

Última edición por elfran222; 16/07/2007 a las 06:16
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:14.