'.$guid.' '; */ $control_doc = $docs->DOCUMENTO; $xml =' '.$guid.' '; file_put_contents('request_download_doc.xml', $xml); /////////////////////////CERTIFICADO DEL XML/////////////////////////////// shell_exec( 'xmlsec1 --sign --output signed.xml --pkcs12 ./certificado/certificado.p12 --pwd logalty request_download_doc.xml'); //se elimina primera línea del XML que contiene shell_exec( 'sed \'1d\' signed.xml > signed_send.xml'); shell_exec( 'rm signed.xml'); //se añade cabeceras SOAP shell_exec( 'echo \' \' > SOAP.xml '); shell_exec( 'cat SOAP.xml signed_send.xml > signed_SOAP.xml'); shell_exec( 'rm signed_send.xml'); shell_exec( 'rm SOAP.xml'); shell_exec( 'sed -e \'$a \' signed_SOAP.xml > signed_SOAP_send.xml'); shell_exec( 'rm signed_SOAP.xml'); //se obtiene el XML firmado $input_data = file_get_contents("signed_SOAP_send.xml"); //HAGO EL POST DE LA FIRMA================================================= $request = 'POST'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL ,$host); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_HTTPHEADER,array('User-Agent: curl/7.15.5','Accept: */*','Content-Type: text/xml; charset=UTF-8','Content-Length: '.strlen($input_data))); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT,5); curl_setopt($curl, CURLOPT_TIMEOUT,30); curl_setopt($curl, CURLOPT_CUSTOMREQUEST,$request); curl_setopt($curl, CURLOPT_POSTFIELDS, $input_data); $xml_documento = curl_exec($curl); //print_r($result); //INTERPRETO LA RESPUESTA======================================================= $doc_firmado = new DOMDocument(); libxml_use_internal_errors(true); $doc_firmado->loadHTML($xml_documento); libxml_clear_errors(); $xml_documento = $doc_firmado->saveXML($doc_firmado->documentElement); $xml_documento = simplexml_load_string($xml_documento); //HAGO EL UPLOAD DEL DOCUMENTO================================================== if ( isset($xml_documento->body->envelope->body->signed_binary_response->main) AND $xml_documento->body->envelope->body->signed_binary_response->main == "0000" ) { $main = (string)$xml_documento->body->envelope->body->signed_binary_response->main; $guid = (string)$xml_documento->body->envelope->body->signed_binary_response->signedbinarys->signedbinary[0]["guid"]; $binary_b64 = (string)$xml_documento->body->envelope->body->signed_binary_response->signedbinarys->signedbinary[0]["signedbinary"]; $binario = base64_decode($binary_b64); //print_r($main); //UPLOAD DEL DOC A LA BBDD=================================================== //CONSULO SI EL DOCUMETO POSEE O NO EL VERSIONADO ACTIVO--------------------- $user = $_SERVER["HTTP_CLIENT_ID"]; $ordenador = "api_ext"; $origen = "AWA"; $tipo = "D"; $doc_datos = datosDocumento($bd_conn, $guid, $control_doc); $clave_doc = $doc_datos["CLAVE"]; $version_actual = "0"; $padre = $doc_datos["PADRE"]; $nombre_doc_firm = $doc_datos["NOMBRE"]; $sufijo = $doc_datos["SUFIJO"]; $acceso_doc = $doc_datos["ACCESO"]; $permiso = $doc_datos["ACCESO"]; $ubicacion = $doc_datos["UBICACION"]; $archivo = $doc_datos["ARCHIVO"]; //ACTUALIZO EL CAMPO Y ACTIVO EL VERSIONADO DEL DOCUMENTO------------------- UpdateVersionadoDocumento($bd_conn, $clave_doc); //OBTENER LA VERSION BASE DEL DOCUMENTO-------------------------------------- $datos_version_base = versionBaseDocumento($bd_conn, $clave_doc, $sufijo, $version_actual); //VARIABLES------------------------------------------------------------------ //PARTE $parte = $datos_version_base["PARTE"]; //VERSION $version = "1.00"; //FICHERO $fichero = mysqli_real_escape_string($bd_conn, $datos_version_base["FICHERO"]); //TAMANO $tamano = $datos_version_base["TAMANO"]; //ENTRADA $entrada = $datos_version_base["ENTRADA"]; //COMPRIMIDO $comprimido = $datos_version_base["COMPRIMIDO"]; //TAMANOREAL $tamano_real = $datos_version_base["TAMANOREAL"]; //ENCRIPTADO $encriptado = $datos_version_base["ENCRIPTADO"]; //CREO EL REGISTRO DEL VERSIONADO DEL DOCUMENTO EN LA DE FICHEROS------------ creaRegistroTablaFicheros($bd_conn, $clave_doc, $parte, $version, $fichero, $tamano, $entrada, $tamano_real, $sufijo); //=========================================================================== //CREO EL REGISTRO DE LA NUEVA VERSION--------------------------------------- //AUMENTO LA VERSION ACTUAL $nueva_version = $version + 0.01; //Tamaño //$tamano = (isset($_POST['doc_size_1'])) ? $_POST["doc_size_1"] : 0 ; //$tamano_real = (isset($_POST['doc_size_1'])) ? $_POST["doc_size_1"] : 0 ; $binario = mysqli_real_escape_string($bd_conn, $binario); //CREO EL REGISTRO DEL NUEVO DOCUMENTO EN LA TABLA DE LOS FICHEROS----------- creaRegistroTablaFicheros($bd_conn, $clave_doc, $parte, $nueva_version, $binario, $tamano, $entrada, $tamano_real, $sufijo); //ACTUALIZO LA VERSION EN LA TABLA DE ELEMENTOS------------------------------ UpdateNuevaVersionDocumento($bd_conn, $clave_doc, $nueva_version, $grapado); //=========================================================================== //HAGO EL UPDATE DEL FICHERO ACTUAL DEL DOC EN LA DE FICHERO----------------- UpdateDocumentoActual($bd_conn, $clave_doc, $binario, $tamano, $tamano_real, $sufijo); updateDescargaDoc($bd_conn, $guid ); }else{ $error = 1; } ?>