Changeset 327fd70 in prototipo_portal_2018 for prototipo/static/js/functions/firmarDocumentoPdf.js


Ignore:
Timestamp:
Oct 26, 2017, 9:45:51 AM (7 years ago)
Author:
José Sulbarán <jsulbaran@…>
Branches:
master
Children:
ad582d7
Parents:
8d37379
Message:

Se agrego nuevas funciones de sing

File:
1 edited

Legend:

Unmodified
Added
Removed
  • prototipo/static/js/functions/firmarDocumentoPdf.js

    r8d37379 r327fd70  
    1 
    2 $("#form").on('submit', function() {
    3 
     1$("#Form-Format-Visible").on('submit', function() {
    42        //var formData = new FormData(document.getElementById("form"));
    53        var formData = new FormData();
    6    
    7    
    8     formData.append("upload", $("#file-to-upload2")[0].files[0] );
    9 
    10     console.log(formData);
    11     console.log($(this));
     4 
     5    formData.append("upload", $("#file-sign-ft_Vble")[0].files[0]);
    126
    137    $.ajax({
     
    2216                headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
    2317                success: function(response) {
    24                                 //alert(JSON.stringify(response));
    25                                 var html = manejoJsonPDF(JSON.stringify(response));
    26                                 //alert(html);
    27                                 //alert("ver respuesta")
    28                                 document.getElementById("respuesta").innerHTML = html;
     18                        //alert(JSON.stringify(response));
     19                        var html = manejoJsonPDF(JSON.stringify(response));
     20                        document.getElementById("respuesta").innerHTML = html;
     21                       
     22                        // identificador del archivo en el servidor
     23                        var fileId = response.fileId.toString();
     24                        var cert;
     25
     26                        window.hwcrypto.getCertificate({lang: "en"}).then(function(response) {
     27                                var cert = response;
    2928                               
    30                                 // identificador del archivo en el servidor
    31                                 var fileId = response.fileId.toString();
     29                                var parameters = JSON.stringify({
     30                                        "fileId":fileId,
     31                                        "certificate":cert.hex,
     32                                        "reason":"Certificado",
     33                                        "location":"CENDITEL",
     34                                        "contact":"582746574336",
     35                                        "signatureVisible":"true",
     36                                        "page": VALOR_PAGE,
     37                                        "coord_x": VALOR_X,
     38                                        "coord_y": VALOR_Y
     39                                        });
     40                               
     41                                // ahora llamar al ajax de obtener la resena del pdf
     42                                $.ajax({
     43                                        type: 'POST',
     44                                        contentType: 'application/json',                               
     45                                        //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/pdfs",
     46                                        url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs",
     47                                        dataType: "json",
     48                                        data: parameters,               
     49                                        headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
     50                                        success: function(data, textStatus, jqXHR){
     51                                                var json_x = data;
     52                                                var hash = json_x['hash'];
     53                                                //alert("hash recibido del servidor "+hash);
     54                                               
     55                                                var hashtype = "SHA-256";
     56                                                var lang = "eng";
     57                                               
     58                                                window.hwcrypto.sign(cert, {type: hashtype, hex: hash}, {lang: lang}).then(function(signature) {
     59                                                                                                       
     60                                                $.ajax({
     61                                                                type: 'POST',
     62                                                                contentType: 'application/json',
     63                                                                //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/pdfs/resenas",
     64                                                                url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs/resenas",
     65                                                                dataType: 'json',
     66                                                                data: JSON.stringify({"signature":signature.hex}),
     67                                                                headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
     68                                                                success: function(data, textStatus, jqXHR){
    3269
     70                                                                        alert('Archivo firmado correctamente: ' + data['signedFileId']);
     71                                                                       
     72                                                                        var linkToDownload = "<a href=\"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/descargas/" + data['signedFileId'] +"\">descargar archivo firmado</a>";
     73                                                                        //alert(linkToDownload);
     74                                                                        document.getElementById("respuesta").innerHTML = linkToDownload;                                                                                                               
     75                                                                       
     76                                                                },
     77                                                                error: function(jqXHR, textStatus, errorThrown){
     78                                                                        alert('error en pdfs/resenas: ' + textStatus);
     79                                                                        $("#respuesta").html("error en pdfs/resenas: " + textStatus);
     80                                                                }
     81                                                        });
     82                                                                                               
     83                                                }, function(err) {
     84                                                        log_text("sign() failed: " + err);
    3385
    34                                 var cert;
    35                                 window.hwcrypto.getCertificate({lang: "en"}).then(function(response) {
    36                                         var cert = response;
     86                                                                var error;
     87                                log_text("sign() failed: " + err);
     88                                if(err == "Error: user_cancel") {
     89                                    alert("sign() failed: El usuario cancelo la operación");
     90                                    error = "El usuario cancelo la operación";
     91                                 }     
     92                                 else if(err == "Error: no_certificates") {
     93                                     alert("sign() failed: No hay certificado disponible");
     94                                     error = "No hay certificado disponible";
     95                                 }
     96                                 else if(err == "Error: no_implementation") {
     97                                     alert("sign() failed: No hay soporte para el manejo del certificado");
     98                                     error = "No hay soporte para el manejo del certificado";
     99                                 }
    37100
     101                                                        //alert("sign() failed: " + err);
     102                                                        $("#respuesta").html("sign() failed: " + error);
     103                                        });
     104                                               
     105                                        },                                                             
     106                                        error: function(jqXHR, textStatus, errorThrown){
     107                                                //alert('error: ' + textStatus);
     108                                                //var responseText = jQuery.parseJSON(jqXHR.responseText);
     109                                                alert('ajax error function: ' + jqXHR.responseText);
     110                                                $("#respuesta").html("error function: " + jqXHR.responseText);
     111                                        }
     112                                       
     113                                });
     114                               
     115                        }, function(err) {
     116                                log_text("getCertificate() failed: " + err);
     117                    var error;
     118                    if(err == "Error: user_cancel") {
     119                        alert("getCertificate() failed: El usuario cancelo la operación"    );
     120                        error = "El usuario cancelo la operación";
     121                     }     
     122                     else if(err == "Error: no_certificates") {
     123                         alert("getCertificate() failed: No hay certificado disponible")    ;
     124                         error = "No hay certificado disponible";
     125                     }
     126                     else if(err == "Error: no_implementation") {
     127                         alert("getCertificate() failed: No hay soporte para el manejo del certificado");
     128                         error = "No hay soporte para el manejo del certificado";
     129                                        }
     130                                //alert("getCertificate() failed: " + err);
     131                                $("#respuesta").html("getCertificate() failed: " + error);
     132                        });
    38133
    39                                        
    40                                         var parameters = JSON.stringify({
    41                                                 "fileId":fileId,
    42                                                 "certificate":cert.hex,
    43                                                 "reason":"Certificado",
    44                                                 "location":"CENDITEL",
    45                                                 "contact":"582746574336",
    46                                                 "signatureVisible":"true"
    47                                                 // agregar aqui los parametros x,y,pagina
    48                                                 });
    49                                        
    50                                         // ahora llamar al ajax de obtener la resena del pdf
    51                                         $.ajax({
    52                                                 type: 'POST',
    53                                                 contentType: 'application/json',                               
    54                                                 //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/pdfs",
    55                                                 url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs",
    56                                                 dataType: "json",
    57                                                 data: parameters,               
    58                                                 headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
    59                                                 success: function(data, textStatus, jqXHR){
    60                                                         var json_x = data;
    61                                                         var hash = json_x['hash'];
    62                                                         //alert("hash recibido del servidor "+hash);
    63                                                        
    64                                                         var hashtype = "SHA-256";
    65                                                         var lang = "eng";
    66                                                        
    67                                                         window.hwcrypto.sign(cert, {type: hashtype, hex: hash}, {lang: lang}).then(function(signature) {
    68                                                                
    69 
    70 
    71                                                        
    72                                                         $.ajax({
    73                                                                         type: 'POST',
    74                                                                         contentType: 'application/json',
    75                                                                         //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/pdfs/resenas",
    76                                                                         url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs/resenas",
    77                                                                         dataType: 'json',
    78                                                                         data: JSON.stringify({"signature":signature.hex}),
    79                                                                         headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
    80                                                                         success: function(data, textStatus, jqXHR){
    81 
    82                                                                                 alert('Archivo firmado correctamente: ' + data['signedFileId']);
    83                                                                                
    84                                                                                
    85                                                                                 var linkToDownload = "<a href=\"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/descargas/" + data['signedFileId'] +"\">descargar archivo firmado</a>";
    86                                                                                 //alert(linkToDownload);
    87                                                                                 document.getElementById("respuesta").innerHTML = linkToDownload; 
    88                                                                                
    89 
    90                                                                                                                                                                                
    91                                                                                
    92                                                                         },
    93                                                                         error: function(jqXHR, textStatus, errorThrown){
    94                                                                                 alert('error en pdfs/resenas: ' + textStatus);
    95                                                                                 $("#respuesta").html("error en pdfs/resenas: " + textStatus);
    96                                                                         }
    97                                                                 });
    98                                                                                                        
    99                                                         }, function(err) {
    100                                                                 log_text("sign() failed: " + err);
    101 
    102                                                                         var error;
    103                                     log_text("sign() failed: " + err);
    104                                     if(err == "Error: user_cancel") {
    105                                         alert("sign() failed: El usuario cancelo la operación");
    106                                         error = "El usuario cancelo la operación";
    107                                      }     
    108                                      else if(err == "Error: no_certificates") {
    109                                          alert("sign() failed: No hay certificado disponible");
    110                                          error = "No hay certificado disponible";
    111                                      }
    112                                      else if(err == "Error: no_implementation") {
    113                                          alert("sign() failed: No hay soporte para el manejo del certificado");
    114                                          error = "No hay soporte para el manejo del certificado";
    115                                      }
    116 
    117                                                                 //alert("sign() failed: " + err);
    118                                                                 $("#respuesta").html("sign() failed: " + error);
    119                                                 });
    120                                                        
    121                                                 },                                                             
    122                                                 error: function(jqXHR, textStatus, errorThrown){
    123                                                         //alert('error: ' + textStatus);
    124                                                         //var responseText = jQuery.parseJSON(jqXHR.responseText);
    125                                                         alert('ajax error function: ' + jqXHR.responseText);
    126                                                         $("#respuesta").html("error function: " + jqXHR.responseText);
    127                                                 }
    128                                                
    129                                
    130                                         });
    131                                        
    132                                        
    133                                        
    134                                 }, function(err) {
    135                                         log_text("getCertificate() failed: " + err);
    136                         var error;
    137                         if(err == "Error: user_cancel") {
    138                             alert("getCertificate() failed: El usuario cancelo la operación"    );
    139                             error = "El usuario cancelo la operación";
    140                          }     
    141                          else if(err == "Error: no_certificates") {
    142                              alert("getCertificate() failed: No hay certificado disponible")    ;
    143                              error = "No hay certificado disponible";
    144                          }
    145                          else if(err == "Error: no_implementation") {
    146                              alert("getCertificate() failed: No hay soporte para el manejo del certificado");
    147                              error = "No hay soporte para el manejo del certificado";
    148                                                 }
    149                                         //alert("getCertificate() failed: " + err);
    150                                         $("#respuesta").html("getCertificate() failed: " + error);
    151                                 });
    152                                
    153                                
    154134            },
    155135                error: function(response) {
     
    159139                        }
    160140    });
    161        
    162 
    163 
    164 
    165 
    166141
    167142});
Note: See TracChangeset for help on using the changeset viewer.