function registrar($d) { $error = ""; include_once "class.cerkeypem.php"; if (!isset($d['certificados_nuevo_iId'])) { $archivo_cer = $this->ruta . "inc/subidos/" . $d['certificados_nuevo_sRFC'] . ".cer"; $archivo_key = $this->ruta . "inc/subidos/" . $d['certificados_nuevo_sRFC'] . ".key"; if (file_exists($archivo_cer)) { try { $certificado = new Desencriptador_Cer($archivo_cer); if ($certificado->Certificado() == '') { $error = "No se pudo desencriptar el certificado, favor de verificarlo"; } else { $certificado_numero = $certificado->Certificado(); $certificado_b64 = $certificado->CertificadoB64(); $certificado_inicio = $certificado->ObtenerVigenciaInicial(); $certificado_final = $certificado->ObtenerVigenciaFinal(); } } catch (Exception $e) { $error = $e->getMessage(); } } else { $error = "No se pudo encontrar el archivo cer, contactar al administrador"; } if (file_exists($archivo_key)) { try { $llave = new Desencriptador_Key($archivo_key, $d['certificados_nuevo_sClave']); if ($llave->LlaveB64() == '') { $error = "No se pudo desencriptar la llave, verifique que la contraseña sea correcta"; } else { $llave_b64 = $llave->LlaveB64(); } } catch (Exception $e) { $error = $e->getMessage(); } } else { $error = "No se pudo encontrar el archivo key, contactar al administrador"; } } if ($error == "") { if (isset($d['certificados_nuevo_iId'])) { $id_certificado = $d['certificados_nuevo_iId']; $query = "UPDATE cat_rfc SET "; foreach ($d as $campo => $valor) { $campo_mysql = str_replace('certificados_nuevo_', "", $campo); $query .= "{$campo_mysql} = '{$valor}', "; } $query .= "iTipo = 1 WHERE iId = {$id_certificado}"; } else { $d['sCertificado'] = $certificado_numero; $d['bCertificado'] = $certificado_b64; $d['dCertificado_FechaInicial'] = $certificado_inicio; $d['dCertificado_FechaFinal'] = $certificado_final; $d['bLlave'] = $llave_b64; $d['iEstado'] = 1; $fecha = date('Y-m-d h:i:s'); $query = "INSERT INTO cat_rfc ("; foreach ($d as $campo => $valor) { $campo_mysql = str_replace('certificados_nuevo_', "", $campo); $query .= $campo_mysql . ", "; } $query .= "iTipo, dFecha_Modificacion) VALUES ("; foreach ($d as $campo => $valor) { $query .= "'" . $valor . "', "; } $query .= "1, '{$fecha}')"; $rfc = $d['certificados_nuevo_sRFC']; $clave_llave = base64_encode($d['certificados_nuevo_sClave']); $contenido_cer = file_get_contents($archivo_cer); $contenido_key = file_get_contents($archivo_key); $contenido_cer = base64_encode($contenido_cer); $contenido_key = base64_encode($contenido_key); $pac = new PAC_MasNegocio(); $registropac = $pac->RegistrarEmisor($rfc, $contenido_cer, $contenido_key, $clave_llave); if ($registropac->response->estatus != "EXITO") { return $registropac->response->estatus . ": " . $registropac->response->descripcion; exit; } } $this->conexion->setQuery($query); $resultado = $this->conexion->execute(); if (isset($d['certificados_nuevo_iId'])) { echo "El registro fue actualizado"; exit; } if ($resultado > 0) { return 1; } else { return $resultado; } } if ($error != '') { return $error; } }