He configurado un sitio donde efectua pagos en linea
ese sitio me envia los datos de la transaccion en unas variables.
estas son las variables que recibo de la plataforma de pagos
Código PHP:
$fecha = date("d.m.Y-H:i:s");
$refVenta = $_REQUEST['ref_venta'];
$refPol = $_REQUEST['ref_pol'];
$estadoPol = $_REQUEST['estado_pol'];
$formaPago = $_REQUEST['tipo_medio_pago'];
$banco = $_REQUEST['medio_pago'];
$codigo = $_REQUEST['codigo_respuesta_pol'];
$mensaje = $_REQUEST['mensaje'];
$valor = $_REQUEST['valor'];
yo debo actuzalizar una tabla que la he llamado pedidos_confir
para esto hago un sql, previamnete ya me he conectado sin problemas
Código PHP:
$sql = "REPLACE INTO pedidos_confir VALUES ('".$fecha."', '".$refVenta."',
'".$refPol."', '".$estadoPol."', '".$formaPago."', '".$banco."', '".$codigo."', '".$mensaje."',
'".$valor."')";
para esto hice un switch($estadoPol) usando case, para manejar los 4 casos del estado del pedido.
yo comparo los valores y actuzlizo mi tabla de esta forma.
Código PHP:
switch($estadoPol)
{
case 4: $result_a = mysql_query("UPDATE order SET state ='pay' WHERE id=".$refVenta ,$conexion);
break;
case 5: $result_c = mysql_query("UPDATE order SET state ='unpay' WHERE id=".$refVenta ,$conexion);
break;
case 6: $result_r = mysql_query("UPDATE order SET state ='rejected' WHERE id=".$refVenta ,$conexion);
break;
case 12:$result_p = mysql_query("UPDATE order SET state ='pending' WHERE id=".$refVenta ,$conexion);
break;
}
Aca tengo el archivo completo
Si es necesario verlo.
Código PHP:
<?php
$llave="xxxxxxxxx";
$usuarioId = $_REQUEST['xxxxx'];
$fecha = date("d.m.Y-H:i:s");
$refVenta = $_REQUEST['ref_venta'];
$refPol = $_REQUEST['ref_pol'];
$estadoPol = $_REQUEST['estado_pol'];
$formaPago = $_REQUEST['tipo_medio_pago'];
$banco = $_REQUEST['medio_pago'];
$codigo = $_REQUEST['codigo_respuesta_pol'];
$mensaje = $_REQUEST['mensaje'];
$valor = $_REQUEST['valor'];
//Escriba su Host, por lo general es 'localhost'
$host = 'localhost';
//Escriba el nombre de usuario de la base de datos
$login = 'db_login';
//Escriba la contraseña del usuario de la base de datos
$password = 'xxxxxx';
//Escriba el nombre de la base de datos a utilizar
$basedatos = 'db_name';
//conexion a mysql
$conexion = mysql_connect($host, $login, $password);
if(!$conexion){
$mensajeLog .= "[".date("Y-m-d H:i:s")."] Error al conectar la base de datos -
".mysql_error()."\n";
}
if(!mysql_select_db($basedatos, $conexion)){
$mensajeLog .= "[".date("Y-m-d H:i:s")."] Error al seleccionar la base de datos -
".mysql_error()."\n";
}
// consulta a la bd remplazo el estado actual de la tabla pedidos_confir en el campo estado_pol
$sql = "REPLACE INTO pedidos_confir VALUES ('".$fecha."', '".$refVenta."',
'".$refPol."', '".$estadoPol."', '".$formaPago."', '".$banco."', '".$codigo."', '".$mensaje."',
'".$valor."')";
// select para actualizar la bd "pedidos_confir" y "order 'unpay','pay'.'rejected','pending'"
switch($estadoPol)
{
case 4: $result_a = mysql_query("UPDATE order SET state ='pay' WHERE id=".$refVenta ,$conexion);
break;
case 5: $result_c = mysql_query("UPDATE order SET state ='unpay' WHERE id=".$refVenta ,$conexion);
break;
case 6: $result_r = mysql_query("UPDATE order SET state ='rejected' WHERE id=".$refVenta ,$conexion);
break;
case 12:$result_p = mysql_query("UPDATE order SET state ='pending' WHERE id=".$refVenta ,$conexion);
break;
}
$result = mysql_query($sql);
if (!$result) {
$mensajeLog .= "[".date("Y-m-d H:i:s")."] Error al ejecutar el query (".$sql.") la
base de datos - ".mysql_error()."\n";
}
if(strlen($mensajeLog)>0){
$filename = $_SERVER["DOCUMENT_ROOT"]."/confirmacion.txt";
$fp = fopen($filename, "a");
if($fp) { fwrite($fp, $mensajeLog, strlen($mensajeLog));
fclose($fp);
}
}
?>