Imagen

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.


CARTA PORTE V3.1

ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03


.

Character INVISIBLE en el archivo de la cadena original

La factura esta basada en XML, independiente del lenguaje de programacion todos debemos saber acerca de esta tecnologia
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
Cerrado
Halcon Divino
Mensajes: 164
Registrado: Vie Nov 25, 2011 3:12 pm

Character INVISIBLE en el archivo de la cadena original

Mensaje por Halcon Divino »

Para validar el sello digital primero hay que generar la cadena original a partir del XML .... con estas instrucciones se genera el archivo de la cadena original en formato UFT-8 ..

string ArchXSLT = @"C:\BORRAME\Validador\cadenaoriginal_2_0.xslt";
string ArchXML = @"C:\BORRAME\Validador\Ejemplos\Ejemplo.xml";
string ArchCadena = @"C:\BORRAME\Validador\CadenaOriginal.txt";

XslCompiledTransform transformador = new XslCompiledTransform();
transformador.Load(ArchXSLT);
transformador.Transform(ArchXML, ArchCadena);

El problema es que cuando se genera el archivo de la cadena original el 1er. caracter de este archivo es invisible-
Por este caracter INVISIBLE me marca que el sello digital es invalido.
Tengo que usar un editor HEXADECIMAL para poder ubicarlo y eliminarlo. de esta manera si puedo validar correctamente el sello digital usando los comandos de OpenSSL.


AYUDA:
¿¿¿ Como quito este caracter invisible del archivo o como evito que se genere el archivo con este caracter ???



Saludos
Halcón Divino.
Saludos
Halcón Divino

Monterrey
Nuevo León
México
Halcon Divino
Mensajes: 164
Registrado: Vie Nov 25, 2011 3:12 pm

Re: Character INVISIBLE en el archivo de la cadena original

Mensaje por Halcon Divino »

Ya encontre la solución se las comparto....

Al generar el archivo de la cadena original los primeros 3 bytes ((ojo no los primeros 3 characters)) hay que eliminarlos
Para esto leo el archivo en bytes y lo escribo en bytes claro que los primeros 3 byts no los escribo el objetivo es eliminarlos
Con este truco ya me marca OpenSSL Verified OK
El programa que me genera la cadena original quedo de esta manera

#region Generar Cadena Original
string ArchXSLT = @"C:\BORRAME\Validador\cadenaoriginal_3_0.xslt";
string ArchXML = @"C:\BORRAME\Validador\XNA0101167H0_A_0269_Timbradov30.XML";
string ArchCadena = @"C:\BORRAME\Validador\xnacadena.txt";
string ArchCadena2 = @"C:\BORRAME\Validador\xnacadena2.txt";

XslCompiledTransform transformador = new XslCompiledTransform();
transformador.Load(ArchXSLT);
transformador.Transform(ArchXML, ArchCadena);
#endregion

#region se lee el archivo ArchCadena de byt en byte y se carga en un biffer
byte[] buffer;
FileStream fileStream = new FileStream(ArchCadena, FileMode.Open, System.IO.FileAccess.Read);
int length = (int)fileStream.Length; // get file length
buffer = new byte[length]; // create buffer
int count; // actual number of bytes read
int sum = 0; // total number of bytes read

// read until Read method returns 0 (end of the stream has been reached)
while ((count = fileStream.Read(buffer, sum, length - sum)) > 0)
sum += count; // sum is a buffer offset for next reading
#endregion

#region escribe el buffer a un archivo ArchCadena2 a partir del 3er byte
// Open file for reading .
FileStream fs = new System.IO.FileStream(ArchCadena2, System.IO.FileMode.Create, System.IO.FileAccess.Write);
// Writes a block of bytes to this stream using data from a byte array. .
fs.Write(buffer, 3, buffer.Length - 3);
// close file stream .
fs.Close();
#endregion


Espero les sirba
Saludos
Halcón Divino.
Saludos
Halcón Divino

Monterrey
Nuevo León
México
naringas
Mensajes: 22
Registrado: Mié Ago 10, 2011 9:58 am

Re: Character INVISIBLE en el archivo de la cadena original

Mensaje por naringas »

OJO estoy adivinando pero creo que estos primeros tres bytes son el UTF BOM..
más información el la wikipedia en español http://es.wikipedia.org/wiki/Marca_de_o ... ytes_(BOM)
Cerrado