
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
.
Pregunta: ¿Como se agrega el sello digital al archivo XML?
-
- Mensajes: 2
- Registrado: Jue Ago 26, 2010 6:56 pm
Pregunta: ¿Como se agrega el sello digital al archivo XML?
Hola que tal,
Estoy apenas iniciando en esto de la facturación electrónica. Ya he revisado en el SAT lo referente a las llaves públicas y privadas (.cer y .key) y como solicitarla. Lo que no entiendo es el proceso de cómo agregar el sello digital al archivo XML que se debe generar con los datos de la factura. Lo único que he podido hacer es instalar algunos archivos .cer que ofrecen de ejemplo en el SAT dentro de windows (no me solicitó ningun archivo .key, ni ninguna contraseña) pero ya de ahi no sé como tener acceso al sello ni como agregarlo al XML. ¿Podrian echarme la mano por favor?
Muchas gracias.
Estoy apenas iniciando en esto de la facturación electrónica. Ya he revisado en el SAT lo referente a las llaves públicas y privadas (.cer y .key) y como solicitarla. Lo que no entiendo es el proceso de cómo agregar el sello digital al archivo XML que se debe generar con los datos de la factura. Lo único que he podido hacer es instalar algunos archivos .cer que ofrecen de ejemplo en el SAT dentro de windows (no me solicitó ningun archivo .key, ni ninguna contraseña) pero ya de ahi no sé como tener acceso al sello ni como agregarlo al XML. ¿Podrian echarme la mano por favor?
Muchas gracias.
- Dado
- Mensajes: 15981
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Pregunta: ¿Como se agrega el sello digital al archivo XM
mczz :
Para generar el sello requieres de un programa que use alguna libreria ya disponible, las que conozco son :
Bouncy Castle. Es gratuito, sirve para programacion en lenguaje C
Chilkat. Cuestan como $300 dolares. Lenguaje C y tambien tienen un "port" a Delphi
OpenSSL. Gratuito, son DLL que pueden ser invocadas desde cualquier lenguaje.
Ahora, si programas en Delphi, estas de suerte, tengo unas rutinas que te ayudan a crear el XML y generar el SELLO. Cuestan $200.00 pesos y si te interesa puedes mandarme un mail a la direccion que aparece en mi firma
Las rutinas que vendo ya estan 100% probadas y aqui en el foro "Delphi" discutimos acerca de las dudas que van surgiendo.
Para generar el sello requieres de un programa que use alguna libreria ya disponible, las que conozco son :
Bouncy Castle. Es gratuito, sirve para programacion en lenguaje C
Chilkat. Cuestan como $300 dolares. Lenguaje C y tambien tienen un "port" a Delphi
OpenSSL. Gratuito, son DLL que pueden ser invocadas desde cualquier lenguaje.
Ahora, si programas en Delphi, estas de suerte, tengo unas rutinas que te ayudan a crear el XML y generar el SELLO. Cuestan $200.00 pesos y si te interesa puedes mandarme un mail a la direccion que aparece en mi firma
Las rutinas que vendo ya estan 100% probadas y aqui en el foro "Delphi" discutimos acerca de las dudas que van surgiendo.
Última edición por Dado el Mié Sep 01, 2010 10:11 pm, editado 1 vez en total.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 2
- Registrado: Jue Ago 26, 2010 6:56 pm
Re: Pregunta: ¿Como se agrega el sello digital al archivo XM
Hola Dado
Gracias por tu información. En mi caso, yo manejo un programa de inventarios y facturación que elaboré con PHP, javascripts y Acceso a base de datos con MYSQL . Ahora necesito incorporar la facturación electrónica. Voy a probar con OpenSSL entonces para ver como funciona. Si tienes rutinas para este tipo de aplicación te lo agradecería muchisimo.
Gracias por tu información. En mi caso, yo manejo un programa de inventarios y facturación que elaboré con PHP, javascripts y Acceso a base de datos con MYSQL . Ahora necesito incorporar la facturación electrónica. Voy a probar con OpenSSL entonces para ver como funciona. Si tienes rutinas para este tipo de aplicación te lo agradecería muchisimo.
- Dado
- Mensajes: 15981
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Pregunta: ¿Como se agrega el sello digital al archivo XM
Para PHP puedes checar esta liga, es de un cuate llamado Fernando Ortiz que trabaja para La Fabrica de Jabones la Corona.
Ya si vas teniendo dudas especificas puedes publicarla aqui y trato de ayudarte.
Ya si vas teniendo dudas especificas puedes publicarla aqui y trato de ayudarte.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 1
- Registrado: Jue Sep 23, 2010 9:22 am
Re: Pregunta: ¿Como se agrega el sello digital al archivo XM
Me inicio en esto de la facturacion electronica, tengo este codigo en PHP, pero me envia error al validar el comprobante alguien sabe donde esta el error
/* Introducimos el nombre del key provisto por hacienda y su respectivo password, al igual que el nombre del archivo de salida PEM */
shell_exec('C:\sellodigital\openssl.exe pkcs8 -inform DER -in aaa010101aaa_CSD_02.key -passin pass:a0123456789 -out aaa010101aaa_CSD_02.key.pem');
/* Definimos donde esta el key en formato PEM */
$key='aaa010101aaa_CSD_02.key.pem';
/* Introducimos la cadena original provista por el SAT */
$cadenaoriginal="||A|1|2005-09-02T16:30:00|1|ISP900909Q88|Industrias del Sur Poniente, S.A. de C.V.|Alvaro Obregón|37|3|Col. Roma Norte|México|Cuauhtémoc|Distrito Federal|México|06700|Pino Suarez|23|Centro|Monterrey|Monterrey|Nuevo Léon|México|95460|CAUR390312S87|Rosa María Calderón Uriegas|Topochico|52|Jardines del Valle|Monterrey|Monterrey|Nuevo León|México|95465|10|Caja|Vasos decorados|20|200|1|pieza|Charola metálica|150|150|IVA|52.5||";
/* Transformamos la cadena a UTF8 */
$cadena = utf8_encode($cadenaoriginal) ;
/* Hacemos un echo para ver la cadena en UTF8 (no es necesario pero es para ir paso por paso) */
echo '<h5>UTF8</h5>'.$cadena;
/* Hacemos un echo para ver la cadena en MD5, aquí obtenemos el mismo resultado que el SAT */
$cadena= md5($cadena);echo '<h5>MD5</h2>'.$cadena;
/* Aquí lo que hacemos es escribir un txt (md5.txt) con la digestión MD5 para usarlo en el sellado */
$fp = fopen ("md5.txt", "w+");
fwrite($fp, $cadena);fclose($fp);
/* Aquí sellamos con el MD5 con el key para obtener el sello y guardarlo en sello.txt */
exec("C:\sellodigital\openssl.exe dgst -sign $key md5.txt | C:\sellodigital\openssl.exe enc -base64 -A > sello.txt");
Cadena obtenida
al validar esta cadena me dice que el sello no es valido
cLBps3/cBUFelW/uxxNmKGvxThUva3AjvppfCxioTBlgqttkrV0yjPvRmA2592l7WQfwN1iXCQT4eyRtblXQre37a+EV4+vGuJD5Oah6ED1U/sVP2ak53nH31RhnQQeQN8NV2TtpjKQ=
/* Introducimos el nombre del key provisto por hacienda y su respectivo password, al igual que el nombre del archivo de salida PEM */
shell_exec('C:\sellodigital\openssl.exe pkcs8 -inform DER -in aaa010101aaa_CSD_02.key -passin pass:a0123456789 -out aaa010101aaa_CSD_02.key.pem');
/* Definimos donde esta el key en formato PEM */
$key='aaa010101aaa_CSD_02.key.pem';
/* Introducimos la cadena original provista por el SAT */
$cadenaoriginal="||A|1|2005-09-02T16:30:00|1|ISP900909Q88|Industrias del Sur Poniente, S.A. de C.V.|Alvaro Obregón|37|3|Col. Roma Norte|México|Cuauhtémoc|Distrito Federal|México|06700|Pino Suarez|23|Centro|Monterrey|Monterrey|Nuevo Léon|México|95460|CAUR390312S87|Rosa María Calderón Uriegas|Topochico|52|Jardines del Valle|Monterrey|Monterrey|Nuevo León|México|95465|10|Caja|Vasos decorados|20|200|1|pieza|Charola metálica|150|150|IVA|52.5||";
/* Transformamos la cadena a UTF8 */
$cadena = utf8_encode($cadenaoriginal) ;
/* Hacemos un echo para ver la cadena en UTF8 (no es necesario pero es para ir paso por paso) */
echo '<h5>UTF8</h5>'.$cadena;
/* Hacemos un echo para ver la cadena en MD5, aquí obtenemos el mismo resultado que el SAT */
$cadena= md5($cadena);echo '<h5>MD5</h2>'.$cadena;
/* Aquí lo que hacemos es escribir un txt (md5.txt) con la digestión MD5 para usarlo en el sellado */
$fp = fopen ("md5.txt", "w+");
fwrite($fp, $cadena);fclose($fp);
/* Aquí sellamos con el MD5 con el key para obtener el sello y guardarlo en sello.txt */
exec("C:\sellodigital\openssl.exe dgst -sign $key md5.txt | C:\sellodigital\openssl.exe enc -base64 -A > sello.txt");
Cadena obtenida
al validar esta cadena me dice que el sello no es valido
cLBps3/cBUFelW/uxxNmKGvxThUva3AjvppfCxioTBlgqttkrV0yjPvRmA2592l7WQfwN1iXCQT4eyRtblXQre37a+EV4+vGuJD5Oah6ED1U/sVP2ak53nH31RhnQQeQN8NV2TtpjKQ=
- Dado
- Mensajes: 15981
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Pregunta: ¿Como se agrega el sello digital al archivo XM
Me parece que tu cadena no esta bien formada, alcanzo a distinguir hasta 3 direcciones : Col. Roma Norte Mexico, DF // Pino Suarez 23 Monterrey // Topochico 52 Monterrey$cadenaoriginal="||A|1|2005-09-02T16:30:00|1|ISP900909Q88|Industrias del Sur Poniente, S.A. de C.V.|Alvaro Obregón|37|3|Col. Roma Norte|México|Cuauhtémoc|Distrito Federal|México|06700|Pino Suarez|23|Centro|Monterrey|Monterrey|Nuevo Léon|México|95460|CAUR390312S87|Rosa María Calderón Uriegas|Topochico|52|Jardines del Valle|Monterrey|Monterrey|Nuevo León|México|95465|10|Caja|Vasos decorados|20|200|1|pieza|Charola metálica|150|150|IVA|52.5||";
Normalmente solo debe haber 2 direcciones, la del emisor y la del receptor, tambien te falta la tasa del IVA que es obligatorio, quedaria algo asi IVA|16.0|52.5||
Tambien te falta poner la version del CFD al principio de la cadena ||2.0|
Realmente comparaste la cadena que generas contra la que te dan los validadores? porque si me parece que esta muy mal formada.
Mmmmh, me regrese a editar mi post porque de reojo vi que pusiste:
Solo por aclarar las ideas, la Cadena original NO TE LA PROPORCIONA EL SAT, te la tienes que aventar tu en tu programa* Introducimos la cadena original provista por el SAT */
Dicho esto, espero que solo haya sido un resbalon de palabras......
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 2
- Registrado: Lun Sep 27, 2010 5:47 pm
Re: Pregunta: ¿Como se agrega el sello digital al archivo XM
una duda cuando genero el sello con el .key con el opensll y genero el xml el validador del sat me marca un error dice que no es valido
alguien sabe porque o mejor podrian poner un ejemplo :S
alguien sabe porque o mejor podrian poner un ejemplo :S
- Dado
- Mensajes: 15981
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Pregunta: ¿Como se agrega el sello digital al archivo XM
Yo tengo un ejemplo, esta en Delphi, se lleva 3,000 lineas de codigo.......jericu escribió:una duda cuando genero el sello con el .key con el opensll y genero el xml el validador del sat me marca un error dice que no es valido
alguien sabe porque o mejor podrian poner un ejemplo :S

Ya en serio, si quieres ayuda tienes que darnos TODAS las pistas, que haces? como lo haces? en que lenguaje estas programando? muestra la parte del codigo donde calculas el sello. Es imposible contestar un mensaje del tipo "Tengo un error, alguien sabe en donde?"
Saludos,
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 1
- Registrado: Mié Oct 06, 2010 5:34 pm
Re: Pregunta: ¿Como se agrega el sello digital al archivo XM
Hola a todos. Un comentario al respecto.
El dia de hoy, haciendo pruebas de validacion con el sitio del sat:
https://www.consulta.sat.gob.mx/SICOFI_ ... dador.html
me salio el siguiente error :
"El sello del comprobante presenta problemas:
Comprobante C:\PIA-VIO-17003.xml leido exitosamente
Validando encodingComprobante expresado en UTF-8
Realizando validación del sello con un certificado externo
Certificado usado : 30001000000100000800
Certificado reportado : 30001000000100000800
El sello no pudo ser verificado"
ACABO DE HABLAR CON EL PERSONAL DEL SAT A Atención telefónica 01 800 46 36 728.
Y LA PERSONA QUE ME ATENDIO, LUEGO DE VERIFICAR NO SE QUE COSA (PORQUE SE TARDO UN RATO)
TERMINO DICIENDO QUE SI LA PAGINA ME DECIA QUE EL ARCHIVO SE "LEYO EXITOSAMENTE"
(COMO EN MI CASO), QUE TODO ESTABA BIEN, QUE NO ME PREOCUPARA, QUE MI DOCUMENTO
ERA CORRECTO.
El punto es que he estado leyendo en foros al respecto y algunos usuario le atribuyen este error a la
falta de codificacion de los datos en formato UTF-8.
Bueno entre si "son peras o manzanas" yo voy a seguir con otras rutinas que tengo pendientes
y hacerle caso al personal del SAT que me atendio.
Claro que Al final tengo que corroborar lo que les estoy comentando
Aunque las preguntas son obias :
¿A alguno de uds les ha pasado lo mismo?
¿ y como corrigieron el "detallito"?
El dia de hoy, haciendo pruebas de validacion con el sitio del sat:
https://www.consulta.sat.gob.mx/SICOFI_ ... dador.html
me salio el siguiente error :
"El sello del comprobante presenta problemas:
Comprobante C:\PIA-VIO-17003.xml leido exitosamente
Validando encodingComprobante expresado en UTF-8
Realizando validación del sello con un certificado externo
Certificado usado : 30001000000100000800
Certificado reportado : 30001000000100000800
El sello no pudo ser verificado"
ACABO DE HABLAR CON EL PERSONAL DEL SAT A Atención telefónica 01 800 46 36 728.
Y LA PERSONA QUE ME ATENDIO, LUEGO DE VERIFICAR NO SE QUE COSA (PORQUE SE TARDO UN RATO)
TERMINO DICIENDO QUE SI LA PAGINA ME DECIA QUE EL ARCHIVO SE "LEYO EXITOSAMENTE"
(COMO EN MI CASO), QUE TODO ESTABA BIEN, QUE NO ME PREOCUPARA, QUE MI DOCUMENTO
ERA CORRECTO.
El punto es que he estado leyendo en foros al respecto y algunos usuario le atribuyen este error a la
falta de codificacion de los datos en formato UTF-8.
Bueno entre si "son peras o manzanas" yo voy a seguir con otras rutinas que tengo pendientes
y hacerle caso al personal del SAT que me atendio.
Claro que Al final tengo que corroborar lo que les estoy comentando
Aunque las preguntas son obias :
¿A alguno de uds les ha pasado lo mismo?
¿ y como corrigieron el "detallito"?
-
- Mensajes: 1
- Registrado: Jue Oct 07, 2010 2:22 pm
Re: Pregunta: ¿Como se agrega el sello digital al archivo XM
Hola, bunas tardes...
Podrias poener un post de "Como sellar un CFD manualmente usando OpenSSl"
Podrias poener un post de "Como sellar un CFD manualmente usando OpenSSl"