55 lines
1.9 KiB
PHP
55 lines
1.9 KiB
PHP
<?php
|
|
require_once "db/config.php";
|
|
header("Content-Type: application/json");
|
|
|
|
$dni = $_GET["dni"] ?? "";
|
|
|
|
if (strlen($dni) === 8) {
|
|
$db = db();
|
|
|
|
// 1. Primero buscamos en nuestra propia base de datos (es gratis y rápido)
|
|
$stmt = $db->prepare("SELECT nombre_cliente FROM pedidos WHERE dni_cliente = ? ORDER BY id DESC LIMIT 1");
|
|
$stmt->execute([$dni]);
|
|
$result = $stmt->fetch(PDO::FETCH_ASSOC);
|
|
|
|
if ($result) {
|
|
echo json_encode(["success" => true, "nombre" => $result["nombre_cliente"], "source" => "database"]);
|
|
exit;
|
|
}
|
|
|
|
// 2. Si no está en la base de datos, consultamos a la API de APIs PERÚ
|
|
// Usamos un token de cortesía. Nota: Para producción se recomienda registrarse en apis.net.pe
|
|
$token = 'apis-token-1.aI07n-re05iau19nd08h123e123';
|
|
|
|
$curl = curl_init();
|
|
curl_setopt_array($curl, array(
|
|
CURLOPT_URL => 'https://api.apis.net.pe/v2/reniec/dni?numero=' . $dni,
|
|
CURLOPT_RETURNTRANSFER => true,
|
|
CURLOPT_SSL_VERIFYPEER => false,
|
|
CURLOPT_ENCODING => '',
|
|
CURLOPT_MAXREDIRS => 10,
|
|
CURLOPT_TIMEOUT => 0,
|
|
CURLOPT_FOLLOWLOCATION => true,
|
|
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
|
CURLOPT_CUSTOMREQUEST => 'GET',
|
|
CURLOPT_HTTPHEADER => array(
|
|
'Referer: https://apis.net.pe/consulta-dni-api',
|
|
'Authorization: Bearer ' . $token
|
|
),
|
|
));
|
|
|
|
$response = curl_exec($curl);
|
|
curl_close($curl);
|
|
|
|
$data = json_decode($response, true);
|
|
|
|
if (isset($data['nombres'])) {
|
|
$nombreCompleto = $data['nombres'] . ' ' . $data['apellidoPaterno'] . ' ' . $data['apellidoMaterno'];
|
|
echo json_encode(["success" => true, "nombre" => $nombreCompleto, "source" => "api"]);
|
|
} else {
|
|
echo json_encode(["success" => false, "error" => "No encontrado en RENIEC"]);
|
|
}
|
|
} else {
|
|
echo json_encode(["success" => false, "error" => "DNI debe tener 8 dígitos"]);
|
|
}
|