예제 #1
0
 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;
     }
 }