WikiStart: ConsumoDeServiciosMurachi.html

File ConsumoDeServiciosMurachi.html, 5.9 KB (added by pbuitrago, 11 months ago)

Código para consumir los recursos del sistema Murachí

Line 
1<html>
2<head>
3<script type="text/javascript" src="jquery.min.js"></script>
4<script type="text/javascript" src="gitversion.js"></script>
5<script type="text/javascript" src="hwcrypto-legacy.js"></script>
6<script type="text/javascript" src="hwcrypto.js"></script>
7<script type="text/javascript" src="hex2base.js"></script>
8<script type="text/javascript" src="jquery.min.js"></script>
9<script type="text/javascript">
10       
11function version_Murachi() {
12       
13    $.ajax({
14        url: "https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/version",
15        type: "GET",
16        contentType: 'application/json',
17        xhrFields: {withCredentials: true},
18        headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
19        }).done(function(response) {
20                        var responseString = JSON.stringify(response);
21                        document.getElementById("respuesta").innerHTML = responseString;
22        });
23}
24
25function verifySing() {
26        var formData = new FormData();
27    formData.append("upload", $("#file-check-sign")[0].files[0]);
28    $.ajax({
29                url: "https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/firmados",
30                xhrFields: {withCredentials: true},
31        headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
32        type: "post",
33        dataType: "json",
34        data: formData,
35        cache: false,
36        contentType: false,
37        processData: false,                             
38        success: function(response) {
39                        var responseString = JSON.stringify(response);
40            document.getElementById("respuestaVerificacion").innerHTML = responseString;
41            }, error: function(response) {
42               $("#respuestaVerificacion").html('Error...!!!');
43               }
44       });
45       
46        }
47
48function SignFilePDF() {
49       
50        var fileInput = document.getElementById("file-sign");
51    var list = fileInput.files;
52    var form = $('firmar')[0];
53    var data = new FormData();
54    data.append('upload', $("#file-sign")[0].files[0]);
55   
56    $.ajax({             
57        url: "https://murachi.cenditel.gob.ve/Murachi/0.1/archivos",
58        type: "post",
59        dataType: "json",
60        data: data,
61        cache: false,
62        contentType: false,
63        processData: false,
64        xhrFields: {withCredentials: true}, 
65        headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
66        success: function(response) {
67                        var responseString = JSON.stringify(response);                                     
68            document.getElementById("seccion1").innerHTML = responseString;
69            var fileId = response.fileId.toString();
70            var cert;
71       
72                window.hwcrypto.getCertificate({lang: "en"}).then(function(response) { 
73                                var cert = response; 
74                                var parameters = JSON.stringify({
75                                        "fileId":fileId,
76                                        "certificate":cert.hex,
77                                        "reason":"Certificado",
78                                        "location":"CENDITEL",
79                                        "contact":"582746574336",
80                                        "signatureVisible":"true"
81                                });
82                        $.ajax({
83                                type: 'POST',
84                                contentType: 'application/json',                               
85                                url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs",
86                                dataType: "json",
87                                data: parameters,
88                                xhrFields: {withCredentials: true},             
89                                headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
90                                success: function(data, textStatus, jqXHR) {
91                                        var responseString = JSON.stringify(data);
92                                        document.getElementById("seccion2").innerHTML = responseString;
93                                       
94                                        var json_x = data;
95                                        var hash = json_x['hash'];
96                                        alert("hash recibido del servidor "+hash); 
97                                        var hashtype = "SHA-256";
98                                        var lang = "eng";
99               
100                                        window.hwcrypto.sign(cert, {type: hashtype, hex: hash}, {lang: lang}).then(function(signature) {
101                                       
102                                                $.ajax({
103                                                        type: 'POST',
104                                                        contentType: 'application/json',
105                                                        url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs/resenas",
106                                                        dataType: 'json',
107                                                        data: JSON.stringify({"signature":signature.hex}),
108                                                        xhrFields: {withCredentials: true},
109                                                        headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
110                                                        success: function(data, textStatus, jqXHR){ 
111                                                                console.log(data);
112                                                                var responseString = JSON.stringify(data);
113                                                                document.getElementById("seccion3").innerHTML = responseString;
114                                                                alert('Archivo firmado correctamente: ' + data['signedFileId']);
115                                                                document.getElementById("seccion4").innerHTML = "Descargar archivo firmado: https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/descargas/" + data['signedFileId'];           
116                                                                } // repuesta del ajax 3
117                                                 }) //ajax 3
118                                        }) //windowhwcrypto.sign()
119                                } // respuesta ajax 2
120                        }) //ajax 2
121                  }) //windowhwcrypto.getCertificate()
122                } // respuesta ajax 1
123        }) //ajax 1
124}
125
126
127</script>
128</head>
129<body>
130<form enctype="multipart/form-data" action="javaScript:version_Murachi()" method="post" id="version" name="Version">
131        <h2>Version de Murach&iacute;</h2>             
132        <br>
133    <button type="submit" class="btn btn-primary">Enviar</button>
134        <br>
135    <div id="respuesta"> </div>
136</form>
137<br>
138<form enctype="multipart/form-data" action="javaScript:SignFilePDF()" method="post" id="firmar" name="SignFormat">
139        <h2>Firmar electr&oacute;nica (PDF)</h2>
140        <h3>Seleccione el archivo que va a firmar electr&oacute;nicamente</h2>         
141        <br>
142    <input id="file-sign" class="file" type="file" data-min-file-count="1" name="upload" accept=".pdf" >
143        <br>
144        <button type="submit" class="btn btn-primary">Enviar</button>
145        <button type="reset" id="reset"  class="btn btn-default">Limpiar</button>
146        <br>
147    <br>
148    <div id="seccion1"> </div>
149    <br>
150    <div id="seccion2"> </div>
151    <br>
152    <div id="seccion3"> </div>
153    <br>
154    <div id="seccion4"> </div>
155</form>
156<br>
157<h2>Verificar la firma electr&oacute;nica</h2>
158<form enctype="multipart/form-data" action="javaScript:verifySing()" method="post" id="verificar"> 
159        <br>
160    <input id="file-check-sign" class="file" type="file" data-min-file-count="1" name="upload" accept=".pdf">
161        <br>
162        <button type="submit" class="btn btn-primary">Enviar</button>
163        <button type="reset" id="resetVerificacion" class="btn btn-default">Limpiar</button>
164        <br>
165    <br>
166    <div id="respuestaVerificacion"> </div>
167</form>
168
169</body>
170</html>
171