Página 1 de 2

cfdi 3.2 de xml a base64 para Timbre Fiscal...

Publicado: Vie Mar 16, 2012 1:55 pm
por danarzeta
Hola, tengo algunas preguntas para la version 3.2 de CFDI:
1. El xml completo se tiene que pasar a base64 con utf-8 y usando la llave privada?, de la misma forma que generamos el sello?
2.He visto que en los ejemplos que tienen del request el xml en base64, todos los archivos comienzan con: "PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLT....", es correcto, todos los archivos tienen que empezar con esa serie de caracteres.
3.En la nueva opción que pusieron "req:RefID", podemos poner nuestro folio interno de factura?

Mi desarrollo esta hecho en vb6 y para encriptar uso el componente Chilkat RSA.

Pongo el ejemplo de como estoy pasando el xml a base64:

crypt.Charset = "utf-8"
crypt.EncodingMode = "base64"
crypt.LittleEndian = 0
usePrivateKey = 1
archivo = crypt.EncryptStringENC(Factura.XML, usePrivateKey)

Agradezco su ayuda gracias.

Re: cfdi 3.2 de xml a base64 para Timbre Fiscal...

Publicado: Vie Mar 16, 2012 2:06 pm
por Dado
danarzeta escribió:Hola, tengo algunas preguntas para la version 3.2 de CFDI:
1. El xml completo se tiene que pasar a base64 con utf-8 y usando la llave privada?, de la misma forma que generamos el sello?
2.He visto que en los ejemplos que tienen del request el xml en base64, todos los archivos comienzan con: "PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLT....", es correcto, todos los archivos tienen que empezar con esa serie de caracteres.
3.En la nueva opción que pusieron "req:RefID", podemos poner nuestro folio interno de factura?

Mi desarrollo esta hecho en vb6 y para encriptar uso el componente Chilkat RSA.

Pongo el ejemplo de como estoy pasando el xml a base64:

crypt.Charset = "utf-8"
crypt.EncodingMode = "base64"
crypt.LittleEndian = 0
usePrivateKey = 1
archivo = crypt.EncryptStringENC(Factura.XML, usePrivateKey)

Agradezco su ayuda gracias.
1. Si, el CFDI lo tienes que convertir a base64 PERO NO DEBES ENCRIPTARLO, solo debes convertirlo a base64 SIN USAR LA LLAVE PRIVADA

3. Si, el refID puede ser cualquier cosa, y no es tan mala idea usar el folio del CFDI

Re: cfdi 3.2 de xml a base64 para Timbre Fiscal...

Publicado: Vie Abr 27, 2012 5:10 pm
por RickAlanis
danarzeta escribió:Hola, tengo algunas preguntas para la version 3.2 de CFDI:
1. El xml completo se tiene que pasar a base64 con utf-8 y usando la llave privada?, de la misma forma que generamos el sello?
2.He visto que en los ejemplos que tienen del request el xml en base64, todos los archivos comienzan con: "PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLT....", es correcto, todos los archivos tienen que empezar con esa serie de caracteres.
3.En la nueva opción que pusieron "req:RefID", podemos poner nuestro folio interno de factura?

Mi desarrollo esta hecho en vb6 y para encriptar uso el componente Chilkat RSA.

Pongo el ejemplo de como estoy pasando el xml a base64:

crypt.Charset = "utf-8"
crypt.EncodingMode = "base64"
crypt.LittleEndian = 0
usePrivateKey = 1
archivo = crypt.EncryptStringENC(Factura.XML, usePrivateKey)

Agradezco su ayuda gracias.
¡Hola!

1. Base64 es una forma de codificar cualquier archivo ASCII extendido con sólo 64 caracteres ("A" a la "Z", "a" a la "z", "0" a "9" además del "+" y el "/"). UTF-8 es un código ASCII extendido para albergar muchos caracteres que no tiene el ASCII normal. Tu archivo XML debe estar codificado en UTF-8 y, con alguna librería, lo cambias a Base64. Para esto no necesitas cifrar (encriptar) en ninguna forma, por lo que no necesitas llaves ni públicas ni privadas.

2. Dado que todos los archivos en XML inician con el encabezado "<?xml version="1.0" encoding="UTF-8"?>", al pasar a Base64 siempre iniciará con la misma secuencia de caracteres.

3. Es una buena idea lo del req:RefID. Definitivamente puedes usar tu folio interno de factura. A mi se me ocurrió que, gracias a que el lenguaje en el que programo me proporciona UUIDs, le asigno uno a cada CFDi que genero, para pasarlo en el RefID, pero eso es por mi gusto.

Saludos

Re: cfdi 3.2 de xml a base64 para Timbre Fiscal...

Publicado: Vie Abr 27, 2012 11:31 pm
por danarzeta
Muchisimas gracias por sus respuestas, la verdad muy explícitas...
De hecho ya pude generar todo, si alguien tiene alguna duda estoy a sus ordenes.

Re: cfdi 3.2 de xml a base64 para Timbre Fiscal...

Publicado: Mié Jun 27, 2012 2:14 pm
por Sofia (Mexico)
Hola estoy intentando migrar a CFDI 32 mi duda es con que hiciste la conversión de XML a base 64,

mi correo es: sofia@sistemas-inteligentes.com

gracias, saludos!!

Re: cfdi 3.2 de xml a base64 para Timbre Fiscal...

Publicado: Mié Jun 27, 2012 2:50 pm
por Dado
Sofia (Mexico) escribió:Hola estoy intentando migrar a CFDI 32 mi duda es con que hiciste la conversión de XML a base 64,

mi correo es: sofia@sistemas-inteligentes.com

gracias, saludos!!
Con una rutina escrita por mi en Delphi, me base en un ejemplo que vi por ahi en internet

Tambien uso otra libreria de Indy para Delphi para convertir archivos en base64

Re: cfdi 3.2 de xml a base64 para Timbre Fiscal...

Publicado: Mié Jun 27, 2012 7:57 pm
por RickAlanis
En casi todas las plataformas de desarrollo existe forma de codificar en Base64, hasta OpenSSL tiene una instrucción.

Lo que debes tener cuidado es que las rutinas que he visto te ponen cada "n" caracteres (60, 64, 72 caracteres) un LineFeed, como comento arroba. Lo que sucede es que Base64 se inventó para "brincarse" el problema de que los sistemas de correo electrónico funcionan con ASCII de 7 bits (o sea, caracteres del 1 al 127), mientras que muchas cosas que no eran texto (como fotos, música, programas, etc.) utilizan los 8, ya que no es texto y no querían enviar textos grandes y los acortaban a 60, 64, 72 o etc. caracteres.

Tienes que quitar esos LineFeeds que están de más.

Saludos!

Re: cfdi 3.2 de xml a base64 para Timbre Fiscal...

Publicado: Mié Jun 27, 2012 9:09 pm
por danarzeta
Hola, yo tengo mi aplicación hecha en Visual Basic 6, si tu desarrollo también esta en el mismo lenguaje con gusto te ayudo.

Re: cfdi 3.2 de xml a base64 para Timbre Fiscal...

Publicado: Lun Ago 06, 2012 3:38 pm
por HugoRGG
Sofia (Mexico) escribió:Hola estoy intentando migrar a CFDI 32 mi duda es con que hiciste la conversión de XML a base 64,

mi correo es: sofia@sistemas-inteligentes.com

gracias, saludos!!
Hola, EStoy tratando de convertir archivos xml y pdf a base 64, ya encontré la forma de convertit texto a base64 pero no se como convertir el archivo cuando ya lo tengo generado, alguien me podrá ayudar.

Saludos.

Re: cfdi 3.2 de xml a base64 para Timbre Fiscal...

Publicado: Lun Ago 06, 2012 3:46 pm
por RickAlanis
Muchos lenguajes de programación tienen convertidores a y de base64.
Hacerlo a amano es una locura.
¿Usas para algo el OpenSSL, por ejemplo? Tiene un convertidor rápido.
¿Qué usas para generar el sello del CFD?