function SerealizeMyJsonBDOCf(data){ for (var i = 0; i < data.signatures.length; i++) { data.signatures[i].isValid = True_False(data.signatures[i].isValid); data.signatures[i].signerCertificateIsValid = True_False(data.signatures[i].signerCertificateIsValid); } return data; } //Obtenemos la informacion de documento function InfoSignDocumentDataTableBDOC(signedFileId){ $.ajax({ url: "https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/"+signedFileId, type: "get", dataType: "json", headers: {"Authorization":"Basic YWRtaW46YWRtaW4="}, success: function(response) { INFO_SIGN_BDOC = SerealizeMyJsonBDOCf(response); CONT_SIGN_BDOC += 1; if (CONT_SIGN_BDOC == 1){ INFO_DATATABLE_SIGN_BDOC = DataTableSignBDOC(response); } if (CONT_SIGN_BDOC > 1){ INFO_DATATABLE_SIGN_BDOC.destroy(); INFO_DATATABLE_SIGN_BDOC = DataTableSignBDOC(response); } }, error: function(jqXHR, textStatus, errorThrown){ alert(textStatus+", "+ errorThrown+" el documento BDOC para mostrar la info de la sign"); } }); } function FinalizarFirmaBDOC(signature, fileId){ $.ajax({ type: 'POST', contentType: 'application/json', //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/bdocs/resenas", //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/bdocs/firmas/post", url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/firmas/post", dataType: 'json', data: JSON.stringify({"signature":signature.hex, "containerId":fileId}), headers: {"Authorization":"Basic YWRtaW46YWRtaW4="}, success: function(data, textStatus, jqXHR){ /* var json_x = data; var msg = json_x['message']; alert('Archivo firmado en el servidor: ' + msg); */ //var linkToDownload = "descargar archivo firmado"; //var linkToDownload = "descargar archivo firmado"; var linkToDownload = "descargar archivo firmado"; document.getElementById("respuesta").innerHTML = ''; document.getElementById("respuesta").innerHTML = '

Archivo firmado correctamente:


'+linkToDownload+'
'; InfoSignDocumentDataTableBDOC(data['signedFileId']); }, error: function(jqXHR, textStatus, errorThrown){ alert('error en /bdocs/resenas: ' + textStatus); $("#respuesta").html("error en /bdocs/resenas: " + textStatus); } }); } // ahora llamar al ajax de obtener la resena del bdoc function ObtenerHashPDFServerBDOC(parameters, cert, fileId){ $.ajax({ type: 'POST', contentType: 'application/json', //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/bdocs", //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/bdocs/firmas/pre", url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/firmas/pre", dataType: "json", data: parameters, headers: {"Authorization":"Basic YWRtaW46YWRtaW4="}, success: function(data, textStatus, jqXHR){ var json_x = data; var hash = json_x['hash']; var hashtype = "SHA-256"; var lang = "eng"; window.hwcrypto.sign(cert, {type: hashtype, hex: hash}, {lang: lang}).then( function(signature) { FinalizarFirmaBDOC(signature, fileId); }, function(err) { log_text("sign() failed: " + err); var error; if(err == "Error: user_cancel") { alert("sign() failed: El usuario cancelo la operación"); error = "El usuario cancelo la operación"; } else if(err == "Error: no_certificates") { alert("sign() failed: No hay certificado disponible"); error = "No hay certificado disponible"; } else if(err == "Error: no_implementation") { alert("sign() failed: No hay soporte para el manejo del certificado"); error = "No hay soporte para el manejo del certificado"; } $("#respuesta").html("sign() failed: " + error); }); }, error: function(jqXHR, textStatus, errorThrown){ //alert('error: ' + textStatus); //var responseText = jQuery.parseJSON(jqXHR.responseText); alert('ajax error function: ' + jqXHR.responseText); $("#respuesta").html("error function: " + jqXHR.responseText); } }); } // Obtenemos el certificado Bdoc function ObtenerCertificadoFirmanteBDOC(response){ // identificador del archivo en el servidor var fileId = response.containerId.toString(); // seleccionar certificado del firmante var cert; window.hwcrypto.getCertificate({lang: "en"}).then( function(response) { var cert = response; var parameters = JSON.stringify({ "fileId":fileId, "certificate":cert.hex, "city":"Merida", "state":"Merida", "postalCode":"5101", "country":"Venezuela", "role":"Analista", "addSignature":false }); // ahora llamar al ajax de obtener la resena del pdf ObtenerHashPDFServerBDOC(parameters, cert, fileId); }, function(err) { log_text("getCertificate() failed: " + err); var error; if(err == "Error: user_cancel") { alert("getCertificate() failed: El usuario cancelo la operación"); error = "El usuario cancelo la operación"; } else if(err == "Error: no_certificates") { alert("getCertificate() failed: No hay certificado disponible"); error = "No hay certificado disponible"; } else if(err == "Error: no_implementation") { alert("getCertificate() failed: No hay soporte para el manejo del certificado"); error = "No hay soporte para el manejo del certificado"; } $("#respuesta").html("getCertificate() failed: " + error); }); } // Primer paso subimos documentos al servidor function SubirDocumentServerBdoc(formData){ $.ajax({ //url: "https://192.168.12.125:8443/Murachi/0.1/archivos/bdocs/cargas", url: "https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/cargas", type: "post", dataType: "json", data: formData, cache: false, contentType: false, processData: false, headers: {"Authorization":"Basic YWRtaW46YWRtaW4="}, success: function(response) { ObtenerCertificadoFirmanteBDOC(response); }, error: function(xhr, status, error) { //Que se ejecuta cuando finalice la petición de con error $("#respuesta").html('Error...!!!'); alert(xhr.responseText); alert(error); alert("ocurrio un error en cargas"); } }); } $("#Form-sign-bdoc").on('submit', function(even) { even.preventDefault(); var formData = new FormData(); for (var i=0; i<$("#file-sign-bdoc")[0].files.length; i++){ formData.append("upload", $("#file-sign-bdoc")[0].files[i]); } SubirDocumentServerBdoc(formData); }); $("#button_SignBDOC").on('click', function() { $("#file-sign-bdoc").trigger('click'); }); $("#file-sign-bdoc").on('change', function() { $("#sign_bdoc").show(); });