Hola buenas noches, les comento, estoy en el proceso de generar procesos para la emision correcta facturacion electronica que en nuestro pais bolivia se llama facturacion en linea y para los procesos de compresion nos han dado a la tarea de trabajar con GZIP y para el cifrado usamos SHA 256 o creo que seria igual a HASH 256 para lo siguiente tengo que hacer 3 cosas para llega con exito a mi objetivo que se me cumple cerca del 01 de diciembre y como ya he probado de varias formas y no encuentra nada de documentacion en la web como ser un ejemplo como para poder enternder como funciona. Tengo que realizar esto:
https://siatinfo.impuestos.gob.bo/index.php/facturacion-en-linea/autorizacion-de-sistemas/pruebas-para-la-autorizacion-del-sistema-de-facturacion/fase-i-pruebas
1.- Comprimir el archivo XML en formato GZIP, con algunas consultas que hize me dice que va contra el contenido del XML que vendria a ser una factura, el mismo que debe ser enviado en la etiqueta <Archivo>?</Archivo>, esto es un WebService, lo que se muestra en esta imagen
Ahora yo en mis archivos que dispongo y buscando informacion en la web aparece una funcion GZIP dentro de una FLL foxcrypto y lo ejecuto asi en vfp
LPARAMETERS lcArcXML
tcBinary = FILETOSTR(lcArcXML)
tnDeflateLevel = 15 && este parametro no entiendo que es, cualquier valor que pongo no me modifica el contenido pero si no lo pongo me genera un error
lcGenerar_GZIP = Gzip(tcBinary, tnDeflateLevel)
y el resultado se ve en esta pantalla, en el cuadro de la izquierda esta el resultado de la compresion y en el cuadro de la derecha usando esta funcion me devuelve su contenido original
THIS.XML_Generado_GZIP.Value = lcGenerar_GZIP
THIS.GUNZIP_Cifrado.Value = Gunzip(lcGenerar_GZIP)

Mi consulta es la siguiente, segun mi entender creo no estar equivocado, yo creo que es inviable pasar como parametro en la etiqueta <Archivo>?</Archivo> del WebService toda esta cadena que se ve en el cuadro de la izquierda, porque es demasiada larga y contiene multilinea.
Alguien podria segun su conocimiento decirme como seria una cadena generada con GZIP, esta es la documentacion que nos pasan
junto con esta
en el punto
2.- Con el Hash256 es similar la interpretacion todo poniendo en contexto a lo que yo estoy haciendo. Yo usando una FLL vfpencryption.fll que contien una funcion sha256 hash256, pero recibiendo como parametro la cadena larga y de muchas lineas generadas con GZIP pero obtengo este resultado
El hash256 sha256 esta en el cuadro de la derecha, y la consulta igual a la anterior, yo creo que no se deberia pasar como parametro a un WebService algo asi, es hacer notar que debo pasar de la siguiente manera: en la etiqueta <HashArchivo>?</HashArchivo> Se refiere a la cadena obtenida a partir de la Aplicacion SHA 256 a la cadena <Archivo>?</Archivo>
y el ultimo punto
3.- realizar un proceso para empaquetar 500 facturas en XML y empaquetarlas en un contenedor TAR (paquete.tar)
Comprimir con GZIP al archivo del contenedor TAR (ejemplo Paquete.tar.gz), el mismo que debe ser enviado en la etiqueta <Archivo>?</Archivo>
Yo por ejemplo probando con los datos que le comente que creaba por ejemplo una cadena muy larga de GZIP y Hash256, la respuesta del WS fue este
Desde ya muchas gracias si pueden dejarme algun comentario que me ayude de generar una cadena correcta tanto de GZIP o SHA 256
--
Marcelo Barberis Gutierrez
Sistemas Informaticos
Villa Montes - Bolivia
Telef.:
+591-76830544