229 lines
9.6 KiB
PHP
229 lines
9.6 KiB
PHP
<?php
|
|
include(__DIR__."/../rutasApi.php");
|
|
function generarCodigoCupon($longitud = 8) {
|
|
$caracteres = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
$codigo = '';
|
|
for ($i = 0; $i < $longitud; $i++) {
|
|
$codigo .= $caracteres[rand(0, strlen($caracteres) - 1)];
|
|
}
|
|
return $codigo;
|
|
}
|
|
|
|
function crearCupon($post) {
|
|
global $ruta,$api_key_definition,$api_key;
|
|
$datosCupon = array(
|
|
'codigo' => $post["codigo"],
|
|
'descuento' => $post["descuento"],
|
|
'curso_id' => $post["curso_id"],
|
|
'fecha_inicio' => $post["fecha_inicio"],
|
|
'fecha_fin' => $post["fecha_fin"],
|
|
'usos_maximos' => $post["usos_maximos"],
|
|
'activo' => "1",
|
|
);
|
|
|
|
$url = $ruta . "/ttl/registerCuopon";
|
|
$curl = curl_init();
|
|
|
|
curl_setopt_array($curl, array(
|
|
CURLOPT_URL => $url, //URL A LA QUE SE CONECTA
|
|
CURLOPT_RETURNTRANSFER => true, //DEVUELVE EL RESULTADO COMO UNA CADENA DEL TIPO CURL_EXEC
|
|
CURLOPT_FOLLOWLOCATION => true, //SIGUE EL ENCABEZADO QUE LE ENVÍE EL SERVIDOR
|
|
CURLOPT_ENCODING => "", // PERMITE DECODIFICAR LA RESPUESTA Y PUEDE SER"IDENTITY", "DEFLATE", Y "GZIP", SI ESTÁ VACÍO RECIBE TODOS LOS DISPONIBLES.
|
|
CURLOPT_MAXREDIRS => 10, // SI USAMOS CURLOPT_FOLLOWLOCATION LE DICE EL MÁXIMO DE ENCABEZADOS A SEGUIR
|
|
CURLOPT_TIMEOUT => 0, // TIEMPO MÁXIMO PARA EJECUTAR
|
|
CURLOPT_CONNECTTIMEOUT => 0, // TIEMPO MÁXIMO PARA CONECTAR
|
|
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, // USA LA VERSIÓN DECLARADA
|
|
CURLOPT_CUSTOMREQUEST => "POST", // EL TIPO DE PETICIÓN, PUEDE SER PUT, POST, GET O DELETE DEPENDIENDO DEL SERVICIO
|
|
CURLOPT_POSTFIELDS => $datosCupon, //DATOS A ENVIAR EN EL CUERPO DE LA PETICIÓN
|
|
CURLOPT_HTTPHEADER => array(
|
|
"$api_key_definition: $api_key"
|
|
), //CONFIGURA LAS CABECERAS ENVIADAS AL SERVICIO
|
|
));
|
|
|
|
|
|
return $result = curl_exec($curl);
|
|
}
|
|
|
|
|
|
function validarCupon($codigo, $curso_id = null) {
|
|
global $pdo;
|
|
|
|
$sql = "SELECT * FROM cupones WHERE codigo = ? AND activo = TRUE
|
|
AND fecha_inicio <= CURDATE() AND fecha_fin >= CURDATE()
|
|
AND (usos_actuales < usos_maximos OR usos_maximos = 0)";
|
|
|
|
if ($curso_id) {
|
|
$sql .= " AND (curso_id = ? OR curso_id IS NULL)";
|
|
}
|
|
|
|
$stmt = $pdo->prepare($sql);
|
|
$params = $curso_id ? [$codigo, $curso_id] : [$codigo];
|
|
$stmt->execute($params);
|
|
|
|
return $stmt->fetch(PDO::FETCH_ASSOC);
|
|
}
|
|
|
|
function registrarUsoCupon($cupon_id, $ip_cliente = null) {
|
|
global $pdo;
|
|
|
|
// Registrar el uso
|
|
$stmt = $pdo->prepare("INSERT INTO uso_cupones (cupon_id, ip_cliente) VALUES (?, ?)");
|
|
$stmt->execute([$cupon_id, $ip_cliente]);
|
|
|
|
// Incrementar el contador de usos
|
|
$stmt = $pdo->prepare("UPDATE cupones SET usos_actuales = usos_actuales + 1 WHERE id = ?");
|
|
$stmt->execute([$cupon_id]);
|
|
|
|
return true;
|
|
}
|
|
|
|
function obtenerCursos() {
|
|
global $ruta,$api_key_definition,$api_key;
|
|
$url = $ruta . "/ttl/getCourses";
|
|
$curl = curl_init();
|
|
|
|
curl_setopt_array($curl, array(
|
|
CURLOPT_URL => $url, //URL A LA QUE SE CONECTA
|
|
CURLOPT_RETURNTRANSFER => true, //DEVUELVE EL RESULTADO COMO UNA CADENA DEL TIPO CURL_EXEC
|
|
CURLOPT_FOLLOWLOCATION => true, //SIGUE EL ENCABEZADO QUE LE ENVÍE EL SERVIDOR
|
|
CURLOPT_ENCODING => "", // PERMITE DECODIFICAR LA RESPUESTA Y PUEDE SER"IDENTITY", "DEFLATE", Y "GZIP", SI ESTÁ VACÍO RECIBE TODOS LOS DISPONIBLES.
|
|
CURLOPT_MAXREDIRS => 10, // SI USAMOS CURLOPT_FOLLOWLOCATION LE DICE EL MÁXIMO DE ENCABEZADOS A SEGUIR
|
|
CURLOPT_TIMEOUT => 0, // TIEMPO MÁXIMO PARA EJECUTAR
|
|
CURLOPT_CONNECTTIMEOUT => 0, // TIEMPO MÁXIMO PARA CONECTAR
|
|
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, // USA LA VERSIÓN DECLARADA
|
|
CURLOPT_CUSTOMREQUEST => "GET", // EL TIPO DE PETICIÓN, PUEDE SER PUT, POST, GET O DELETE DEPENDIENDO DEL SERVICIO
|
|
CURLOPT_POSTFIELDS => array(), //DATOS A ENVIAR EN EL CUERPO DE LA PETICIÓN
|
|
CURLOPT_HTTPHEADER => array(
|
|
"$api_key_definition: $api_key"
|
|
), //CONFIGURA LAS CABECERAS ENVIADAS AL SERVICIO
|
|
));
|
|
|
|
|
|
$result = curl_exec($curl);
|
|
return json_decode($result,true);
|
|
}
|
|
|
|
function obtenerCupones() {
|
|
global $ruta,$api_key_definition,$api_key;
|
|
$url = $ruta . "/ttl/getCoupons";
|
|
$curl = curl_init();
|
|
|
|
curl_setopt_array($curl, array(
|
|
CURLOPT_URL => $url, //URL A LA QUE SE CONECTA
|
|
CURLOPT_RETURNTRANSFER => true, //DEVUELVE EL RESULTADO COMO UNA CADENA DEL TIPO CURL_EXEC
|
|
CURLOPT_FOLLOWLOCATION => true, //SIGUE EL ENCABEZADO QUE LE ENVÍE EL SERVIDOR
|
|
CURLOPT_ENCODING => "", // PERMITE DECODIFICAR LA RESPUESTA Y PUEDE SER"IDENTITY", "DEFLATE", Y "GZIP", SI ESTÁ VACÍO RECIBE TODOS LOS DISPONIBLES.
|
|
CURLOPT_MAXREDIRS => 10, // SI USAMOS CURLOPT_FOLLOWLOCATION LE DICE EL MÁXIMO DE ENCABEZADOS A SEGUIR
|
|
CURLOPT_TIMEOUT => 0, // TIEMPO MÁXIMO PARA EJECUTAR
|
|
CURLOPT_CONNECTTIMEOUT => 0, // TIEMPO MÁXIMO PARA CONECTAR
|
|
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, // USA LA VERSIÓN DECLARADA
|
|
CURLOPT_CUSTOMREQUEST => "GET", // EL TIPO DE PETICIÓN, PUEDE SER PUT, POST, GET O DELETE DEPENDIENDO DEL SERVICIO
|
|
CURLOPT_POSTFIELDS => array(), //DATOS A ENVIAR EN EL CUERPO DE LA PETICIÓN
|
|
CURLOPT_HTTPHEADER => array(
|
|
"$api_key_definition: $api_key"
|
|
), //CONFIGURA LAS CABECERAS ENVIADAS AL SERVICIO
|
|
));
|
|
|
|
|
|
$result = curl_exec($curl);
|
|
return json_decode($result,true);
|
|
}
|
|
|
|
function editarCupon($post)
|
|
{
|
|
global $ruta,$api_key_definition,$api_key;
|
|
$datosCupon = array(
|
|
'codigo' => $post["codigo"],
|
|
'descuento' => $post["descuento"],
|
|
'curso_id' => $post["curso_id"],
|
|
'fecha_inicio' => $post["fecha_inicio"],
|
|
'fecha_fin' => $post["fecha_fin"],
|
|
'usos_maximos' => $post["usos_maximos"],
|
|
'activo' => $post["activo"],
|
|
);
|
|
|
|
|
|
$url = $ruta . "/ttl/editCuopon";
|
|
$curl = curl_init();
|
|
|
|
curl_setopt_array($curl, array(
|
|
CURLOPT_URL => $url, //URL A LA QUE SE CONECTA
|
|
CURLOPT_RETURNTRANSFER => true, //DEVUELVE EL RESULTADO COMO UNA CADENA DEL TIPO CURL_EXEC
|
|
CURLOPT_FOLLOWLOCATION => true, //SIGUE EL ENCABEZADO QUE LE ENVÍE EL SERVIDOR
|
|
CURLOPT_ENCODING => "", // PERMITE DECODIFICAR LA RESPUESTA Y PUEDE SER"IDENTITY", "DEFLATE", Y "GZIP", SI ESTÁ VACÍO RECIBE TODOS LOS DISPONIBLES.
|
|
CURLOPT_MAXREDIRS => 10, // SI USAMOS CURLOPT_FOLLOWLOCATION LE DICE EL MÁXIMO DE ENCABEZADOS A SEGUIR
|
|
CURLOPT_TIMEOUT => 0, // TIEMPO MÁXIMO PARA EJECUTAR
|
|
CURLOPT_CONNECTTIMEOUT => 0, // TIEMPO MÁXIMO PARA CONECTAR
|
|
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, // USA LA VERSIÓN DECLARADA
|
|
CURLOPT_CUSTOMREQUEST => "POST", // EL TIPO DE PETICIÓN, PUEDE SER PUT, POST, GET O DELETE DEPENDIENDO DEL SERVICIO
|
|
CURLOPT_POSTFIELDS => $datosCupon, //DATOS A ENVIAR EN EL CUERPO DE LA PETICIÓN
|
|
CURLOPT_HTTPHEADER => array(
|
|
"$api_key_definition: $api_key"
|
|
), //CONFIGURA LAS CABECERAS ENVIADAS AL SERVICIO
|
|
));
|
|
|
|
|
|
return $result = curl_exec($curl);
|
|
}
|
|
|
|
|
|
function eliminarCupon($post)
|
|
{
|
|
global $ruta,$api_key_definition,$api_key;
|
|
$datosCupon = array(
|
|
'codigo' => $post["codigo"]
|
|
);
|
|
|
|
|
|
$url = $ruta . "/ttl/deleteCuopon";
|
|
$curl = curl_init();
|
|
|
|
curl_setopt_array($curl, array(
|
|
CURLOPT_URL => $url, //URL A LA QUE SE CONECTA
|
|
CURLOPT_RETURNTRANSFER => true, //DEVUELVE EL RESULTADO COMO UNA CADENA DEL TIPO CURL_EXEC
|
|
CURLOPT_FOLLOWLOCATION => true, //SIGUE EL ENCABEZADO QUE LE ENVÍE EL SERVIDOR
|
|
CURLOPT_ENCODING => "", // PERMITE DECODIFICAR LA RESPUESTA Y PUEDE SER"IDENTITY", "DEFLATE", Y "GZIP", SI ESTÁ VACÍO RECIBE TODOS LOS DISPONIBLES.
|
|
CURLOPT_MAXREDIRS => 10, // SI USAMOS CURLOPT_FOLLOWLOCATION LE DICE EL MÁXIMO DE ENCABEZADOS A SEGUIR
|
|
CURLOPT_TIMEOUT => 0, // TIEMPO MÁXIMO PARA EJECUTAR
|
|
CURLOPT_CONNECTTIMEOUT => 0, // TIEMPO MÁXIMO PARA CONECTAR
|
|
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, // USA LA VERSIÓN DECLARADA
|
|
CURLOPT_CUSTOMREQUEST => "POST", // EL TIPO DE PETICIÓN, PUEDE SER PUT, POST, GET O DELETE DEPENDIENDO DEL SERVICIO
|
|
CURLOPT_POSTFIELDS => $datosCupon, //DATOS A ENVIAR EN EL CUERPO DE LA PETICIÓN
|
|
CURLOPT_HTTPHEADER => array(
|
|
"$api_key_definition: $api_key"
|
|
), //CONFIGURA LAS CABECERAS ENVIADAS AL SERVICIO
|
|
));
|
|
|
|
|
|
return $result = curl_exec($curl);
|
|
}
|
|
|
|
|
|
if (isset($_GET['accion']) && $_GET['accion'] == 'obtener_codigo') {
|
|
// Llamar a la función para generar el código
|
|
$codigoGenerado = generarCodigoCupon();
|
|
|
|
// Retornar el código generado como respuesta
|
|
echo $codigoGenerado;
|
|
}
|
|
elseif(isset($_POST['accion']) && $_POST['accion'] == 'editar_codigo')
|
|
{
|
|
$codigoGenerado = editarCupon($_POST);
|
|
|
|
// Retornar el código generado como respuesta
|
|
echo $codigoGenerado;
|
|
}
|
|
elseif(isset($_POST['accion']) && $_POST['accion'] == 'elimnar_codigo')
|
|
{
|
|
$codigoGenerado = eliminarCupon($_POST);
|
|
|
|
// Retornar el código generado como respuesta
|
|
echo $codigoGenerado;
|
|
}
|
|
elseif(isset($_POST['accion']) && $_POST['accion'] == 'anadir_codigo')
|
|
{
|
|
$codigoGenerado = crearCupon($_POST);
|
|
|
|
// Retornar el código generado como respuesta
|
|
echo $codigoGenerado;
|
|
} |