Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PHP (http://www.forosdelweb.com/f18/)
-   -   Facturacion electronica en México (http://www.forosdelweb.com/f18/facturacion-electronica-mexico-638882/)

phpnewbie 28/10/2008 18:43

Facturacion electronica en México
 
Voy a especificar muy bien mi problema para ver si me pueden ayudar:

Lo que quiero es: GENERAR SELLO DIGITAL EN PHP PARA FACTURA ELECTRÓNICA EN MÉXICO CON LOS REQUERIMIENTOS DEL SAT

Para ello contamos con:

INFORMACIÓN SOBRE COMO HACER LA FACTURA ELECTRÓNICA SEGÚN EL SAT:

Anexo 20:
http://www.sat.gob.mx/sitio_internet...s/15_3445.html

Los archivos de ejemplo se encuentran en:
http://www.sat.gob.mx/sitio_internet...s/15_6522.html

Dentro trae:
ftp://ftp2.sat.gob.mx/asistencia_ser...uestra_xml.zip
- Un xml de muestra (Muestra.xml) del CFD (Comprobante Fiscal Digital)

ftp://ftp2.sat.gob.mx/asistencia_ser.../Cer_Sello.zip
- Certificados de muestra Cer_Sellos.zip y dentro trae:
- Certificados de muestra pero quiero que hagan enfasis en:
- aaa010101aaa_CSD_01.cer (El primer certificado solo necesitamos 1)
- aaa010101aaa_CSD_01.key (La primera key y solo necesitamos 1)
- Contraseña de Clave Privada.txt (Pass para abrir el key)

Nos facilita también una cadena original:

||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||

Y su digestión MD5:

8aa2b617944427353697e694a2e35a07

PROBLEMA CON ARCHIVOS DE EJEMPLO EN EL SAT

Hasta aquí todo va bien, tenemos todo claro y suficiente información de muestra, pero... al pasar el xml de muestra esta mal, pueden constatarlo en:

https://www.consulta.sat.gob.mx/SICO...Validador.html

Según el marco teórico mostrado en el Anexo 20, y otros recursos, podemos ver que es un proceso extremadamente sencillo, sin embargo, cuando validamos nos arroja que el sello no es válido.

DESARROLLO DE SELLO DIGITAL EN PHP

Voy a documentar el ensayo que hice para ver si ustedes me pueden auxiliar en ver que parte esta mal:

Como referencia usare Muestra.xml que tiene una estructura válida, y cuya cadena esta provista y pasa el validador como correcta y también la digestión MD5 que también es correcta, entonces lo que haré es generar un sello para dicho xml y posteriormente pegarlo para intentar pasar el validador, lo cual debería darme un resultado correcto pero no es así, pero bueno ahora puntualizo el procedimiento que seguí:

1. Primero generamos el PEM en base al key:

pem.php

Código php:
Ver original
  1. <? /* Introducimos el nombre del key provisto por hacienda y su respectivo password, al igual que el nombre del archivo de salida PEM */
  2. shell_exec('openssl pkcs8 -inform DER -in aaa010101aaa_CSD_01.key -passin pass:a0123456789 -out aaa010101aaa_CSD_01.key.pem'); ?>

En este punto generamos: aaa010101aaa_CSD_01.key.pem

2. Posteriormente lo usaremos en:

seal.php

Código php:
Ver original
  1. <?
  2. /* Definimos donde esta el key en formato PEM */
  3. $key='aaa010101aaa_CSD_01.key.pem';
  4.  
  5. /* Introducimos la cadena original provista por el SAT */
  6. $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||';
  7.  
  8. /* Transformamos la cadena a UTF8 */
  9. $cadena = utf8_encode($cadenaoriginal) ;
  10.  
  11. /* Hacemos un echo para ver la cadena en UTF8 (no es necesario pero es para ir paso por paso) */
  12. echo '<h5>UTF8</h5>'.$cadena;
  13.  
  14. /* Hacemos un echo para ver la cadena en MD5, aquí obtenemos el mismo resultado que el SAT */
  15. $cadena=md5($cadena);
  16. echo '<h5>MD5</h2>'.$cadena;
  17.  
  18. /* Aquí lo que hacemos es escribir un txt (md5.txt) con la digestión MD5 para usarlo en el sellado */
  19. $fp = fopen ("md5.txt", "w+");
  20.        fwrite($fp, $cadena);
  21. fclose($fp);
  22.  
  23. /* Aquí sellamos con el MD5 con el key para obtener el sello y guardarlo en sello.txt */
  24. exec("openssl dgst -sign $key md5.txt | openssl enc -base64 -A > sello.txt");
  25.  
  26. /* Aquí mostramos el sello que en teoría debería ser el correcto */
  27. echo "<h5>Seal</h5>";
  28. readfile("sello.txt");
  29. ?>

Hasta aqui el sello que obtengo es:

cLBps3/cBUFelW/uxxNmKGvxThUva3AjvppfCxioTBlgqttkrV0yjPvRmA2592l7W QfwN1iXCQT4eyRtblXQre37a+EV4+vGuJD5Oah6ED1U/sVP2ak53nH31RhnQQeQN8NV2TtpjKQaNn64doKwVg9SGDn8Ppk pzlPBiqH5164=

Ahora lo que hice para checarlo es pegar dicho sello a Muestra.xml, quedando así:

Código xml:
Ver original
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Comprobante fecha="2005-09-02T16:30:00" folio="1" noAprobacion="1" noCertificado="00001000000000000114" sello="[B]cLBps3/cBUFelW/uxxNmKGvxThUva3AjvppfCxioTBlgqttkrV0yjPvRmA2592l7WQfwN1iXCQT4eyRtblXQre37a+EV4+vGuJD5Oah6ED1U/sVP2ak53nH31RhnQQeQN8NV2TtpjKQaNn64doKwVg9SGDn8PpkpzlPBiqH5164=[/B]" serie="A" version="1.0">
  3.     <Emisor nombre="Industrias del Sur Poniente, S.A. de C.V." rfc="ISP900909Q88">
  4.         <DomicilioFiscal calle="Alvaro Obregón" codigoPostal="06700" colonia="Col. Roma Norte" estado="Distrito Federal" localidad="México" municipio="Cuauhtémoc" noExterior="37" noInterior="3" pais="México"/>
  5.         <ExpedidoEn calle="Pino Suarez" codigoPostal="95460" colonia="Centro" estado="Nuevo Léon" localidad="Monterrey" municipio="Monterrey" noExterior="23" pais="México"/>
  6.     </Emisor>
  7.     <Receptor nombre="Rosa María Calderón Uriegas" rfc="CAUR390312S87">
  8.         <Domicilio calle="Topochico" codigoPostal="95465" colonia="Jardines del Valle" estado="Nuevo León" localidad="Monterrey" municipio="Monterrey" noExterior="52" pais="México"/>
  9.     </Receptor>
  10.     <Conceptos>
  11.         <Concepto cantidad="10" descripcion="Vasos decorados" importe="200" unidad="Caja" valorUnitario="20"/>
  12.         <Concepto cantidad="1" descripcion="Charola metálica" importe="150" unidad="pieza" valorUnitario="150"/>
  13.     </Conceptos>
  14.     <Impuestos>
  15.         <Traslados>
  16.             <Traslado importe="52.5" impuesto="IVA"/>
  17.         </Traslados>
  18.     </Impuestos>
  19. </Comprobante>

RESULTADO

Pero a la hora de validarlo con el certificado de ejemplo (aaa010101aaa_CSD_01.cer) en:
https://www.consulta.sat.gob.mx/SICO...Validador.html

Este sello no es válido.

Me gustaría saber si alguien lo obtiene de manera diferente, no puse validaciones ni como generar el xml ya que lo que básicamente me interesa es que el sello sea válido y espero que también les sea de utilidad.

Saludos a todos.

phpnewbie 29/10/2008 08:13

Respuesta: Facturacion electronica en México
 
Encontré un código muy parecido, pero tampoco me resulta, les paso el link:

http://phylevn.mexrom.net/index.php/blog/show/145.html

en un rato mas les pongo otro que encontré

phpnewbie 29/10/2008 09:42

Respuesta: Facturacion electronica en México
 
También encontré este código:

http://www.lacorona.com.mx/fortiz/sat/

La desventaja es que es muy muy largo y es difícil encontrar el punto al que me refiero, pero en esencia el hace esto:

http://www.lacorona.com.mx/fortiz/sat/xml.php

Código PHP:

// La cadena es la cadena ya limpia  en UTF8, $pkeyid es el key en pem

openssl_sign($cadena_original$crypttext$pkeyidOPENSSL_ALGO_MD5);
openssl_free_key($pkeyid);
 
// El sello es el resultado arrojado en base 64
$sello base64_encode($crypttext); 

Y en efecto esto tampoco me da un sello válido, me gustaría que me ayudarán con el primer código que propuse porque es mas fácil implementarlo con otros lenguajes, este solo es viable en PHP5.

Si alguien tiene alguna idea se los agradeceré.

GatorV 29/10/2008 09:50

Respuesta: Facturacion electronica en México
 
Mmm creo deberías reevaluar, si ninguno te esta generando como "valido" es probable que el "validador" este incorrecto, porque no intentas contactar al soporte tecnico del SAT?, digo si ni el ejemplo que ellos mismos exponen es porque igual cambiaron algo que no documentaron..

Saludos.

phpnewbie 29/10/2008 10:30

Respuesta: Facturacion electronica en México
 
El problema es que en el Chat del SAT no hay personal calificado para responder este tipo de preguntas, no saben ni a que te refieres, ya me dejaron dos veces colgado el chat, estoy una tercera vez para ver que me responden, y llegar a la conclusión de que es lo que esta mal, si los archivos, el validador o el algoritmo.

Les comentaré la respuesta en cuanto la tenga, mientras si alguien mas detecta el bug, bienvenido.

phpnewbie 29/10/2008 12:24

Respuesta: Facturacion electronica en México
 
Hago notar un error mio, pero aun así este no fue el causante... esto sigue inválido:

en vez de el certificado que puse el valor es: 10001200000000022517 en vez de 00001000000000000114 en "noCertificado", realmente no afecta este valor ya que no se incluye en la cadena original, pero dejo aqui el ejemplo corregido:

Código:

<?xml version="1.0" encoding="UTF-8"?>
<Comprobante fecha="2005-09-02T16:30:00" folio="1" noAprobacion="1" noCertificado="10001200000000022517" sello="cLBps3/cBUFelW/uxxNmKGvxThUva3AjvppfCxioTBlgqttkrV0yjPvRmA2592l7WQfwN1iXCQT4eyRtblXQre37a+EV4+vGuJD5Oah6ED1U/sVP2ak53nH31RhnQQeQN8NV2TtpjKQaNn64doKwVg9SGDn8PpkpzlPBiqH5164=" serie="A" version="1.0">
        <Emisor nombre="Industrias del Sur Poniente, S.A. de C.V." rfc="ISP900909Q88">
                <DomicilioFiscal calle="Alvaro Obregón" codigoPostal="06700" colonia="Col. Roma Norte" estado="Distrito Federal" localidad="México" municipio="Cuauhtémoc" noExterior="37" noInterior="3" pais="México"/>
                <ExpedidoEn calle="Pino Suarez" codigoPostal="95460" colonia="Centro" estado="Nuevo Léon" localidad="Monterrey" municipio="Monterrey" noExterior="23" pais="México"/>
        </Emisor>
        <Receptor nombre="Rosa María Calderón Uriegas" rfc="CAUR390312S87">
                <Domicilio calle="Topochico" codigoPostal="95465" colonia="Jardines del Valle" estado="Nuevo León" localidad="Monterrey" municipio="Monterrey" noExterior="52" pais="México"/>
        </Receptor>
        <Conceptos>
                <Concepto cantidad="10" descripcion="Vasos decorados" importe="200" unidad="Caja" valorUnitario="20"/>
                <Concepto cantidad="1" descripcion="Charola metálica" importe="150" unidad="pieza" valorUnitario="150"/>
        </Conceptos>
        <Impuestos>
                <Traslados>
                        <Traslado importe="52.5" impuesto="IVA"/>
                </Traslados>
        </Impuestos>
</Comprobante>


Nanox 29/10/2008 19:25

Respuesta: Facturacion electronica en México
 
saludos... fijate que estoy intentando igual esto de la facturacion electronica, pero empece por esto de cifrar y todo el roollo.

tengo una linea cparecida a la tuya. pero a mi no me sale, inclusive he estado intentando directamente en linea de comandos de openssl.

openssl dgst -md5 -sign C:\WEB_SAT\aaa010101aaa.key.pem C:\WEB_SAT\cadenamd5.txt | openssl enc -base64 -a > C:\WEB_SAT\seal.txt

pero no me da nada, podrias ayudarme?

Saludss..... colega.

phpnewbie 30/10/2008 11:34

Respuesta: Facturacion electronica en México
 
Mismo caso, voy a intentar de nuevo comunicarme con el SAT (cuarta vez)

phpnewbie 30/10/2008 11:41

Respuesta: Facturacion electronica en México
 
Cuando ya sea válido será open source, así que si alguien sabe la falla ayudaría bastante, podemos convertir este post en un tutorial, ya que a la fecha no existe un tutorial "probado".

phpnewbie 30/10/2008 12:02

Respuesta: Facturacion electronica en México
 
Me comenta el autor de:

http://phylevn.mexrom.net/index.php/blog/show/145.html

esto:

Cita:

El problema con el validador de SAT es que solo soporta la version 1.0, para la version 2.0 hay nuevos campos que cuándo generas el Sello Digital, el validador de SAT no los reconoce por ende el Sello te lo manda erroneo, si generas el sello con el procedimiento que pongo con los campos de la version 1.0 no tienes problemas.
Haré un ensayo y lo documentaré si funciona, si no, publicaré lo que salio mal para ver si ya queda esto.

HalconVigia 30/10/2008 19:18

Respuesta: Facturacion electronica en México
 
buenas!!

la propuesta de dejarlo como tutorial es buena, creo que a mas de uno nos interesa el tema aunque algunos con poca experiencia como su servidor leemos para aprender ya que no tenemos mucho que poder aportar

un saludo!!

demonioazteka 03/11/2008 18:33

Respuesta: Facturacion electronica en México
 
bueno eso que el validador solo funciona para la version 1.0 es falsa existen dentro del sat 2 validadores, el mas actual en su interface no tiene pesañas y es posible utilizar xml con el certificdo incluido. y ese validador es completamente para ambas versiones, en la pagina www.verificaCFD.com.mx una empresa coloco de manera libre su validador, que aunque tiene algunos defectos al no reconocer un CFD de honorarios jejeje. pero = funciona muy bien, por otro lado, si se documentan mejor podrian lograrlo, lo de la corona tiene unos lijeros errores, sean listos y arreglenlos, o adquieran una consultoria de www.rexsystemssoftwaredeveloper.com bueno saludos, no se desesperen, a los que les interesa implementar con java en JSP o java desktop o php consultenme soy la unica empresa que dota de consultoria para tecnologia JAVA u PHP. aprenderan los mas importante que es respetar el formato para la version 2.0 que pues si no se han dado cuenta ese es su error, un mal formato ocaciona una mala cadena original y por ende un mal sello. bien ya les dije el error, y les repido el verificador del sat funciona muy bien. mis CFD pasan sin problemas saludos...

Nanox 04/11/2008 10:50

Respuesta: Facturacion electronica en México
 
ps le verdad me parece interesante, me gustaria que compartieras lo ke pueda servirnos.

yo publico mis avances en diversos foros he publicado ensayos y codigos.

NO VENGO A HACER NEGOCIO. Vengo a aprender y compartir.

Saludsss.

demonioazteka 04/11/2008 20:22

Respuesta: Facturacion electronica en México
 
Mira amigo yo estoy completamente deacuerdo con lo que dices de compartir, yo ya les dije cual es su error y que hacer para resolverlo, no es sencillo si no tienes pasion por la programacion, en otras palabras no es para amateurs, php no se equivoca lo que estan haciendo mal es que no siguen el formato establecido, lean el anexo 20 y la diferente informacion que proporciona el sat es lo unico que necesitan.


Otra cosa mi estimado compañero que posteo, es licencia gnu aprender no cuesta, pero se sincero, para que quieres aprender eso?, si es porque tu trabajas por honorarios y deseas proporcionar cfd's, existe mi version gratuita.

Y como lo dije en el otro post si tu trabajas para alguna empresa no seas valin compa, porque eso es no respetar gnu, ya que tu utilizarias a una comunidad para dar ganancia a otros. Lee las normas gnu. Y se sincero para que buscas esa informacion, porque en tu trabajo necesitan algo asi, o por mero aprendisaje. Si es por lo segundo congusto te proposiono todo lo que necesites para que lo logres, si es lo primero pues no seas valin y respeta las normas gnu.

El programador de la corona proporciono completamente todo, tiene ciertos errores que para programadores amateur son imperceptibles.

Yo aprendi por gusto, ya que trabajaria en una empresa por honorarios y comence a documentarme hasta que lo logre eso duro 2 meses, de pruebas y pruebas horas y horas de trabajo.

Ing en informatica
ricky lopez
edad: 22 años

saludos, les repito, lean el estandar del sat y encontraran los problemas, y respeten gnu.

Nanox 05/11/2008 11:16

Respuesta: Facturacion electronica en México
 
saludos gracias, he estado revisando el anoxo 20 como lo habias posteado y si hay muchas diferncias estoy en eso.

me da gusto que pienses en eso, pues yo tambien aprendo por gusto, asi comence con progress, 4gl, php, myslq, java, visual, C#..... y he logrado hacer cosas padres que son mias(GNU), no de una empresa, y las pongo a disposicion de mis cuates que ncesitan de ayuda. cualquiera que sea su necesidad.

me gusta programar, me gusta lo que hago. colega ya somos dos. y los que vienen en esto del php.

respeto tu esfuerzo y creeme colega, esto es pura vidaaaa......

y por eso busco quien pueda ayudarme, siempre lo hago en la web. y libros. me encanta los retos. somos informaticos, solos aveces no contamos con la suficiente informacion o el camino adecuado para aprender, colegas como tu que ya lo hicieron posible es lo que me agrada, y si me gustaria que nos ayudaras, digo posiblemente algunos de este foro se sientan intocables pero yo si quisiera que ME hecharas la mano. si quisiera aprender mas de esto que esta de BOOOM.

saludss colega


Lic. en informatica.
Hernan Sanchez Glez
24.

GatorV 05/11/2008 11:37

Respuesta: Facturacion electronica en México
 
Hola Nanox,

Es bueno que quieras aprender, pero recuerda que el foro es para retroalimentarnos todos, por lo que no esta permitido intercambiar emails dentro del foro, si quieres contactarlo enviale un mensaje privado.

Saludos.

Nanox 05/11/2008 14:09

Respuesta: Facturacion electronica en México
 
Saludss GatorV.

disculpa, solo era referencia, no sucedera saludss,

de paso tendras algo que pueda ayudarnos en esto de la facturacion electronica...

demonioazteka 10/11/2008 13:36

Respuesta: Facturacion electronica en México
 
bueno aca les dejo esta direccion
http://phylevn.mexrom.net/index.php/blog/show/Script_PHP_para_generar_Sello_Digital_requerido_po r_el_estandar_de_SAT_para_facturacin_ele.html

segun su creador ya esta funcionando, y es libre y eso, en mi opinion personal esta mal implementado, quiza esta correcto lo que genere sin embargo la manera en que lo hace no es muy recomendable. pero bueno esa es mi humilde opinion, para los que no han encontrado la solucion pues en el link que les pase la muestran. bueno los dejo saludos.

Nanox 11/11/2008 18:14

Respuesta: Facturacion electronica en México
 
fijate que aun tengo el problema de que no obtengo un sello valido

puedo generar un xml, pero ya lo revise contra la estructura que da el anexo 20 y da correcto reviso uno por uno los nodos, pero al sacar la cadena y sellar, lo valido y ps nada.

colega como le hago para obtener una cadena valida, y ps antes de eso un xml valido.

agradecere cualquier comentario al respecto saludsss.....

freebyte 25/11/2008 15:46

Respuesta: Facturacion electronica en México
 
Hola, soy nuevo aquí y también tuve muchos problemas al iniciar este proyecto de factura digital. Aunque yo programo en Visual Studio 2005 creo que la "médula espinal" de todo esto es la misma.

Con relación a conseguir una validación correcta, yo también tuve broncas, pero ahora les cuento como le hice.

Para empezar, y aunque quizá ya lo sepan, el SAT tiene 2 validadores:

1. La versión 1.0 (ó 1.5, no recuerdo bien) que es la que, en su interfaz, contiene 2 pestañitas.
2. La versión 2.0 (la que no tiene pestañas)

Es importante que al validar sepan cuál de las 2 versiones usar, que en teoría debería ser siempre la versión 2, pues es la que compara contra el esquema XML (.XSD) más reciente, expedido por el SAT.

Este "validador" hace una revisión, tanto de la SINTAXIS como del Sello digital que generado. Lo primero que tenemos que lograr, es "pasar con 10 :)" la validación de la sintaxis, ya después nos fijamos en el sello.

Pasar el examen de la sintaxis es muy simple, solo tenemos que seguir al pie de la letra el "anexo 20", que indica claramente la forma y orden que tenemos que seguir al generar nuestro archivo XML. (Presten mucha atención a los tipos de datos y el formato que deben seguir)

En cuanto al sello digital, observen que cuando el validador empieza a verificar nuestro archivo XML, él mismo genera una "Cadena original" en base al archivo que le pasamos (el XML), fíjenseee.... SI LA CADENA ORIGINAL QUE MUESTRA EL VALIDADOR ES DIFERENTE a la que nosotros utilizamos para crear nuestro Sello Digital, obviamente "reprobaremos" esa prueba. NO DEBE EXISTIR ABSOLUTAMENTE NINGUNA DIFERENCIA entre esa cadena original y la nuestra.

Bueno, espero haber aportado aunque sea un poco a esta charla.

Aporten y digan sus experiencias para que todos aprendamos.

Salu2

freebyte :pirata:

Nanox 28/11/2008 11:32

Respuesta: Facturacion electronica en México
 
colegas PHPeros ya tengo un CFD pero no tengo folios validos....

he de pensar que por eso me dice que aun no esta weno el sello.

lo he probado en el validador. me dice que es invalido.

pero tengo un CFD valido al que le cambio el serie y folio y me da el mismo error.
por eso supongo que ya hice solo necesito folios validos.......

alguien sabe donde conseguir?

otra duda..... es cierto que despues de avisar que se expediran CFDs se tiene un mes para empezar?

o es choroooooo........yo no expedire nada, pero ya casi tengo esto.. solo es por aprender.....

quien quiera mi codigo mandame un MP. Por que sta medio desordenado, tu gustas mejorarlo perfectooo......

saludssss

freebyte 10/12/2008 16:14

Respuesta: Facturacion electronica en México
 
Eyy compadre, con los Certificados y Llaves que el SAT te da para probar es suficiente para que puedas pasar las verificaciones de tus comprobantes.

Entra al sitio del SAT y descarga los Certificados de prueba...

Freebyte

mandaman2k 29/12/2008 14:22

Respuesta: Facturacion electronica en México
 
Hola,

Queria saber si alguien pudiera subir un xml de la version 2, como ejemplo ya que yo tampoco estoy pudiendo generar la cadena con el programa del SAT, solo es para comparar si me estoy equivocando en algo o tengo mal una sintaxis q la vdd no creo ya que segui al pie de la letra el anexo 20.

Otra duda, q es mejor usar el archivo cadenaoriginal_2_0_.xslt o el (.XSD), mas bien cual es la diferencia entre ambos.

Gracias
Isaac Lañado

camperomicrofono 24/01/2009 10:17

Respuesta: Facturacion electronica en México
 
Cuidado, los archivos de ejemplo que publica el SAT no están en la versión 2.0 del estándar, en mi caso lo que hice es seguir el estándar publicado y luego compararlo contra el XSD usando la función que para este propósito tiene PHP.

El ejemplo que publican en http://lacorona.com.mx/fortiz/sat/xsl.php sigue la versiòn 2.0, por lo que si pude validarlo usando XSD,sin embargo tuve problemas al generar el hash. Tengo varias teorìas, una de ellas es la conversiòn de caracteres a UTF-8, mejor no me detuve en averiguar el problema, pero generé mi mismo sello y si pasé la validaciòn.

Por otro lado, ni el validador del SAT ni usando el XSD (que supongo que internamente es lo que hace el SAT) garantiza que estén al 100% dentro del estándar, por ejemplo en el anexo 20 dice que hay que eliminar espacios en blanco redundantes y cosas así que ambas herramientas no se fijan. En resumen, recomiendo que hagan validaciòn extensiva y no confíen únicamente en el XSD.

La documentaciòn y herramientas del SAT dejan mucho que desear (es increíble que no puedan poner certificados correctos para sus páginas) y la herramienta que yo usé, que es PHP no hace un mejor papel.

Saludos cordiales

javierhernandezb 23/02/2009 18:53

Respuesta: Facturacion electronica en México
 
Yo estoy entrando en este rollo desarrollandolo bajo JAVA, al final también me dice que no es un sello válido, independientemente de todo.. me pueden decir cual es el sello al que llegan usando el .key perteneciente al certificado 1 ??,

es decir si tenemos la cadena

||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||

el hash es

8aa2b617944427353697e694a2e35a07


Aplicando RSA con private key (.key ) y en base 64 obtengo.-

Pz9HPz8BOz8/Pj8/PyE/Vj8lPz8/bT8/Pz8HPxA/Pz8/Pz8/cGI/Pz8/RD9KNw4/Pwc/C2J8XUo/
N3x+MTsePz8/KgRCYj8AP2w/IAoEPz8sYj9KPzwWPxY/WBUDPz8NPwFzSEwlYD9TfD8/bj8/Iz5F
ay5nQD83GS4TPz8/XQc=

alguno obtiene esto mismo ?

javierhernandezb 09/03/2009 13:26

Respuesta: Facturacion electronica en México
 
Cita:

Iniciado por javierhernandezb (Mensaje 2794981)
Yo estoy entrando en este rollo desarrollandolo bajo JAVA, al final también me dice que no es un sello válido, independientemente de todo.. me pueden decir cual es el sello al que llegan usando el .key perteneciente al certificado 1 ??,

es decir si tenemos la cadena

||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||

el hash es

8aa2b617944427353697e694a2e35a07


Aplicando RSA con private key (.key ) y en base 64 obtengo.-

Pz9HPz8BOz8/Pj8/PyE/Vj8lPz8/bT8/Pz8HPxA/Pz8/Pz8/cGI/Pz8/RD9KNw4/Pwc/C2J8XUo/
N3x+MTsePz8/KgRCYj8AP2w/IAoEPz8sYj9KPzwWPxY/WBUDPz8NPwFzSEwlYD9TfD8/bj8/Iz5F
ay5nQD83GS4TPz8/XQc=

alguno obtiene esto mismo ?


De antemano gracias pero ya pude solucionar los problemas y pasar todas las validaciones... por cierto el resultado del sello digital que pusé arriba no es correcto

tmls 30/04/2009 18:25

Respuesta: Facturacion electronica en México
 
Cita:

Iniciado por javierhernandezb (Mensaje 2815312)
De antemano gracias pero ya pude solucionar los problemas y pasar todas las validaciones... por cierto el resultado del sello digital que pusé arriba no es correcto

hola javier pues aca preguntadote q realizaste para poder obtener la cadena correcta ya que yo obtengo la misma que tu
me podrias indicar que es lo que realizaste por favor

hugo_cueva 21/05/2009 11:07

Respuesta: Facturacion electronica en México
 
Alguien me puede decir como se obtiene el noCertificado desde un archivo .pem o desde el archivo .cer?

Cuando ejecuto el comando de openSSL para obtener el numero de serie es diferente al que pide hacienda de 20 caracteres.

tmls 12/06/2009 12:28

Respuesta: Facturacion electronica en México
 
Tlaxiaco, Oaxaca.
Buen colaborando con este foro, les informo que despues de un arduo trabajo para la realizacion de una factura digital, llegue a la conclución de que esta mal el procedimiento del SAT para el calculo del sello digital ya que el primer algoritmo no se raliza.
Esto es muy lamentable ya que una institucion con tanto prestigio como el SAT, que genera este tipo de aplicaciones para mejorar CFD y resulta que lo que proporcionan como documentación esta mal. Es demasiado complicado generar una factura electronica es a un mas complicado generarla con un a documentacion erronea(anexo 20.- generacion de sello digital)
Bueno foreros espero les sirva este tip.
Saludos TMLS

DestruKtor 22/06/2009 16:17

Respuesta: Facturacion electronica en México
 
Buenas,

En primer lugar gracias por sus aportes me han sido muy utiles, es segundo lugar va mi inquietud.

Eh logrado manipular y convertit los certificados a DER a PEM tal como explican, ahora bien cuando trato de obtener información del certificado publico PEM, por ejemplo el nro. de certificado:

openssl x509 -in aaa010101aaa_CSD_01.pem -serial -noout

Me muestra el error:

2239:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:644:Expecting: TRUSTED CERTIFICATE

eh provado en dos distros linux distintas y me sucede lo mismo, imagino que para operar con los certificados del SAT se requiere el certificado raíz, pero por más que lo busco no logro encontrarlo en el sitio del SAT, ¿sera ese el problema o mi error es otro?


La zona horaria es GMT -6. Ahora son las 06:25.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.