bigdata-mx / factura-electronica

Librería de componentes Java para el desarrollo de aplicaciones de Factura Electrónica (CFDI)
Apache License 2.0
94 stars 107 forks source link

CFDI33102, Error #175

Open SAAVER opened 7 years ago

SAAVER commented 7 years ago

Buena tarde, disculpen, baje la branch version33, compile y todo bien; pero al momento de realizar mis pruebas reales con el PAC, su web services me arroja el siguiente error:

CFDI33102 : El resultado de la digestión debe ser igual al resultado de la desencripción del sello.

Pregunta 1: ¿En los resources del proyecto se incluyen las ultimas versiones publicadas por el SAT, sobre el xsd y el xslt?

Pregunta 2: Si require hacer la actualizacion de los resources, ¿como realizo ese procedimiento?

De antemano les agradezco la atención prestada

franciscomontiel commented 7 years ago

Desconozco si son las versiones más recientes, pero hace poco tuve problemas con esos recursos, que marcan como inválidas facturas ya autorizadas por el SAT.

Si logras encontrar resources, tengo entendido que puedes actualizarlos en \factura-electronica\src\main\resources , no dudes en compartir si encuentras algo 👍

acordovar commented 7 years ago

Hola amigo!

Según comentarios del compañero Camarillo, este problema se debe al archivo cadenaoriginal_3_3.xslt Para validar, el PAC vuelve a generar el sello con los datos que se le envían en el xml pero utilizando su propia versión de cadenaoriginal_3_3.xslt; esta es la razón del error CFDI33102. En mi caso, pedí al PAC que me enviara el archivo de la cadena original. Lo puse en el proyecto que baje del branch33 pero ni aun así he logrado resolver mi problema.

Si lo resuelves, por favor dime cómo le hiciste.

Saludos!

camarillo commented 7 years ago

@acordovar @franciscomontiel ya pudieron realizar sus facturas?.

hortegag91 commented 7 years ago

En teoría ya quedó resuelto, efectivamente no tenía actualizado los resources por lo que incumplía con las últimas especificaciones, he terminado de corregirlo y se está buildeando, en cuanto termine (una media hr) le daré push para que puedan hacer las pruebas correspondientes.

hortegag91 commented 7 years ago

Ya está disponible la nueva actualización, hay que importar clases distintas en los proyectos donde lo tengamos impementados, pero no debería representar mayor problema. Les agradeceré lo prueben para que bote lo que esté mal

PpGallo commented 7 years ago

@SAAVER el problema radica en la cadena original con la que estas trabajando y la cadena con la que trabaja tu entidad certificadora, seguramente también tenga que ver la encriptación con la que estás trabajando recordando que para CFDI 3.2 es SHA1RSA, mientras que para CFDI 3.3 es SHA256RSA, vi algunos comentarios donde utilizaban la codificación del certificado para la generación del sello, pero esto no es recomendable dado a que los certificados antiguos tienen SHA1RSA y los nuevos SHA256RSA de modo que que si usas uno relativamente viejo afectará la codificación del SELLO y tu PAC te mandara ERROR.

Saludos

korntotti commented 6 years ago

Aun me sigue mandando el mismo error con las nuevas actualizaciones, @hortegag91 mencionabas importar algunas clases a q clases te referías con eso ?

jlpm-mex commented 6 years ago

Existe un error en la realizar el build, ¿ya se ha corregido esto?

acordovar commented 6 years ago

Disculpen la tardanza, pero ya pude timbrar con Finkok. El 7 de Septiembe camarillo me indicó bajar la ultima versión y fue todo lo que hice.

Saludos!

jlpm-mex commented 6 years ago

@acordovar Yo voy a ampezar a realizar pruebas, pero veo que existe un error en el build, ¿sabes si ya se corrigio?

hortegag91 commented 6 years ago

@korntotti , me refería que a la hora de impementarlo, hubo clases que se movieron de package, por lo que el IDE te marcaría error de sintaxis y habría que actualizar la ruta de las clases, si no te marca errores de sintaxis seguramente ya lo has hecho, Podrías enviarme más específicamente cual es el error porfa?

Para los demas ,pasenme el error de compilación que les da para poder verificar que pasó porfa.

korntotti commented 6 years ago

@hortegag91 Yo genero el xml usando la Version 3.3 y se lo envio a mi PAC para el timbrado pero este es el error q me manda mi PAC, CFDI33102 : El resultado de la digestión debe ser igual al resultado de la desencripción del sello. estoy usando los certificados de prueba CSD_Pruebas_CFDI_MAG041126GT8.cer y CSD_Pruebas_CFDI_MAG041126GT8.key

korntotti commented 6 years ago

Ahora esta es la forma en que estoy sellando el comprobante:

            PrivateKey key = KeyLoaderFactory.createInstance(
            KeyLoaderEnumeration.PRIVATE_KEY_LOADER,
            new FileInputStream("location.key"),
            "key.password").getKey();

            X509Certificate cert = KeyLoaderFactory.createInstance(
            KeyLoaderEnumeration.PUBLIC_KEY_LOADER,
            new FileInputStream("location.cer")).getKey();

            Comprobante sellado = cfd.sellarComprobante(key, cert);

Es correcto @hortegag91 ??

acordovar commented 6 years ago

Hola shrenkyCode,

Ya se corrigió. Yo no tuve ningún problema al compilar el proyecto. Trabajo con Netbeans 8.2 La forma de sellar el comprobante es igual a la 3.2:

Comprobante comprobante = this.createComprobante(); CFDv33 cfdi = new CFDv33(comprobante); PrivateKey key = KeyLoaderFactory.createInstance(KeyLoaderEnumeration.PRIVATE_KEY_LOADER, new FileInputStream(archivoKey), password).getKey(); X509Certificate cert = KeyLoaderFactory.createInstance(KeyLoaderEnumeration.PUBLIC_KEY_LOADER, new FileInputStream(archivoCer)).getKey(); Comprobante comprobanteSellado = cfdi.sellarComprobante(key, cert);