%PDF- %PDF-
| Direktori : /home/tjamichg/intranet.tjamich.gob.mx/intranet/ |
| Current File : /home/tjamichg/intranet.tjamich.gob.mx/intranet/modalCredenciales.php |
<?php
$sql1 = "SELECT e.nombre, e.apellido1, e.apellido2, e.correo, e.correo_alt
FROM tjam_empleados e
WHERE e.id = $id_usuario";
$data_usuario = $conf->consulta($sql1);
$correo = "";
if (isset($data_usuario["0"]["correo"]) && $data_usuario["0"]["correo"] != "") {
$correo = $data_usuario["0"]["correo"];
} else if (isset($data_usuario["0"]["correo_alt"]) && $data_usuario["0"]["correo_alt"] != "") {
$correo = $data_usuario["0"]["correo_alt"];
} else {
echo json_encode(array('success' => -1));
die();
}
?>
<div id="modal_credenciales" tabindex="-1" role="dialog" aria-labelledby="modal-stackable-label" aria-hidden="false"
class="modal fade">
<div class="modal-dialog modal-wide-width">
<div class="modal-content">
<div class="modal-body"><br>
<div class="panel panel-green">
<div class="panel-body">
<h5>
<dt>Por actualización en el Sistema Informático del Tribunal, reemplazaremos tu firma
electrónica certificada, por lo que a partir del día 22 de diciembre de 2025, deberás
descargar los nuevos archivos, .Cer y .Key de tu nueva firma electrónica, para que
puedas seguir gestionando tus juicios en línea ante este Tribunal en materia
Anticorrupción y Administrativa del Estado de Michoacán.<br><br>
Nota: Los nuevos archivos de tu firma electrónica estarán disponibles de manera
temporal, por lo que se recomienda descargarlos y resguardarlos oportunamente. En caso
de no hacerlo, deberás acudir físicamente a las instalaciones del Tribunal en el módulo
de Juicio en Línea para solicitar la emisión de nuevos certificados.<br><br>
Para cualquier duda o aclaración, comunícate al (443) 316 14 59 ext. 1113.</dt>
</h5>
<br>
<div class="row">
<div class="col-md-6">
<button type="button" id="btn_cer" class="btn btn-primary btn-block"
onclick="descargaCertificado(1);">
<i class="fa fa-download" aria-hidden="true"></i> Descarga certificado CER
</button>
</div>
<div class="col-md-6">
<button type="button" id="btn_key" class="btn btn-primary btn-block"
onclick="descargaCertificado(2);">
<i class="fa fa-download" aria-hidden="true"></i> Descarga certificado KEY
</button>
</div>
</div>
<br><br>
<div class="form-actions text-right pal">
<button type="button" data-dismiss="modal" class="btn btn-danger btn-block">Cerrar</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function descargaCertificado(tipo) {
// llamar a ajax para obtener el idFEA
// llamar a certificados mandando el idFEA para generar el certificado
$.ajax({
url: "https://jel.tjamich.gob.mx/ApiJel/UsuariosJEL/getIdFeaCorreo",
cache: false,
type: "POST",
dataType: "html",
contentType: "text/html; charset=utf-8",
data: "\"<?= $correo ?>\"",
}).done(function (idFEA) {
if (idFEA == -1 || idFEA == -2 || idFEA == 0) {
alert("Error al obtener el certificado. Por favor, comuníquese con el Departamento de Informática para recibir asistencia.");
return;
}
var tipoCertificado = "";
if (tipo == 1) {// cer
tipoCertificado = "getCertificadoCorreoCer";
} else { // key
tipoCertificado = "getCertificadoCorreoKey";
}
$.ajax({
url: "https://jel.tjamich.gob.mx/ApiJel/UsuariosJEL/" + tipoCertificado,
cache: false,
type: "POST",
dataType: "html",
contentType: "text/html; charset=utf-8",
data: idFEA,
}).done(function (cerT) {
if (cerT == '"error en la respuesta"' ) {
alert("No fue posible completar la descarga del archivo. Por favor, comuníquese con el Departamento de Informática para recibir asistencia.");
return;
}
// guarda el certificado
if (tipo == 1) { // cer
descargarCER(cerT);
} else { // key
descargarKEY(cerT);
}
}).fail(function (jqXHR, textStatus, errorThrown) {
alert("No fue posible completar la descarga del archivo. Por favor, comuníquese con el Departamento de Informática para recibir asistencia.");
console.error('AJAX error', {
status: jqXHR.status,
statusText: jqXHR.statusText,
textStatus: textStatus,
errorThrown: errorThrown
});
if (jqXHR.responseText) {
console.error('ResponseText:', jqXHR.responseText);
}
try {
var resp = jqXHR.responseJSON || (jqXHR.responseText && JSON.parse(jqXHR.responseText));
if (resp) console.error('Response JSON:', resp);
} catch (ex) {
console.error('Failed to parse responseText as JSON:', ex);
}
});
}).fail(function (jqXHR, textStatus, errorThrown) {
alert("Error al obtener el certificado. Por favor, comuníquese con el Departamento de Informática para recibir asistencia.");
console.error('AJAX error', {
status: jqXHR.status,
statusText: jqXHR.statusText,
textStatus: textStatus,
errorThrown: errorThrown
});
if (jqXHR.responseText) {
console.error('ResponseText:', jqXHR.responseText);
}
try {
var resp = jqXHR.responseJSON || (jqXHR.responseText && JSON.parse(jqXHR.responseText));
if (resp) console.error('Response JSON:', resp);
} catch (ex) {
console.error('Failed to parse responseText as JSON:', ex);
}
});
}
function descargarCER(base64) {
// 1. Eliminar posibles headers y comillas
/* base64 = base64
.replace(/^data:.*;base64,/, '')
.replace(/"/g, '')
.replace(/\s/g, '');
// 2. Validar base64
if (!/^[A-Za-z0-9+/=]+$/.test(base64)) {
console.error('Base64 inválido:', base64.substring(0, 100));
alert('El archivo recibido no es válido.');
return;
} */
base64 = base64.slice(1, -1);
const byteCharacters = atob(base64);
const byteNumbers = new Array(byteCharacters.length);
for (let i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
const byteArray = new Uint8Array(byteNumbers);
const blob = new Blob([byteArray], {
type: "application/x-x509-ca-cert"
});
const link = document.createElement("a");
link.href = window.URL.createObjectURL(blob);
link.download = "<?= $correo ?>.cer";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
function descargarKEY(base64) {
// 1. Eliminar posibles headers y comillas
/* base64 = base64
.replace(/^data:.*;base64,/, '')
.replace(/"/g, '')
.replace(/\s/g, '');
// 2. Validar base64
if (!/^[A-Za-z0-9+/=]+$/.test(base64)) {
console.error('Base64 inválido:', base64.substring(0, 100));
alert('El archivo recibido no es válido.');
return;
} */
base64 = base64.slice(1, -1);
const byteCharacters = atob(base64);
const byteNumbers = new Array(byteCharacters.length);
for (let i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
const byteArray = new Uint8Array(byteNumbers);
const blob = new Blob([byteArray], {
type: "application/octet-stream"
});
const link = document.createElement("a");
link.href = window.URL.createObjectURL(blob);
link.download = "<?= $correo ?>.key";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
</script>