thegreenter / greenter

Facturación Electrónica - SUNAT - PE :four_leaf_clover:
https://greenter.dev
MIT License
269 stars 138 forks source link

ERROR 2335, El documento electrónico ingresado ha sido alterado #84

Closed guillermofoshlen closed 5 years ago

guillermofoshlen commented 5 years ago

Buen dia al Enviar a NubeFact me aparecio el siguiente error 2335, el documento electronico ingresado ha sido alterado ya le paso lo mismo alguien o saben como podira solucionarlo saludos

thefantas commented 5 years ago

Hola, a mi no, pero tengo entendido que el hash generado es por los datos del xml, si editas alguno (del xml) pues al recrear el hash no coincidirá, pero yo creo que puede ser la codificación del xml o zip (sobre todo entre entornos de windows y linux)...

Saludos.

guillermofoshlen commented 5 years ago

Es lo que me respondieron, Lo que está ocurriendo es que los algoritmos para generar la firma en su comprobante se esté ejecutando incorrectamente. En el servidor de produccion de SUNAT no me aparece lo mismo

giansalex commented 5 years ago

Hola Guillermo, le mencionaste eso a Nubefact (que el ambiente de producción de sunat si lo acepta)

guillermofoshlen commented 5 years ago

Hola Gian, Si les mencione, pero ellos me comunican que lo validan tal como SUNAT, pero Lo que está ocurriendo es que los algoritmos para generar la firma en su comprobante se esté ejecutando incorrectamente.

giansalex commented 5 years ago

Podrías solicitar un xml firmado para muestre, allí podría identificar los algoritmos que mencionan

guillermofoshlen commented 5 years ago

Tipos de comprobantes.zip Hola Gian te envio los archivos xml que me pasaron como ejemplo, porfavor lo revisas. saludos

giansalex commented 5 years ago

En este archivo image Puedes cambiar SHA1 a SHA256, que es el algoritmo que usa el xml de ejemplo

guillermofoshlen commented 5 years ago

Hola Gian, gracias por tu respuesta, lo he probado con SHA256 pero igual me aparece el error 2335 que mas crees que podria ser, saludos 20489723736-01-F003-001062.zip

guillermofoshlen commented 5 years ago

Gian, esta parte -

-

#SIGN-GREEN donde esta el numeral donde podria cambiarlo lo he modificado en el archivo invoice2.1.xml.twig SIGN-GREEN pero igual al generar el xml genera con el #, pienso que podria ser ese # por ser caracter especial saludos
giansalex commented 5 years ago

No, esa no es el área de la firma, es el primer nodo signature

guillermofoshlen commented 5 years ago

al momento de generar el xml #SIGN-GREEN como lo podria cambiar para que sea sin el #, solo SIGN-GREEN, pienso que tal vez por el # sale el error 2335 por ser caracter especial, lo mofique a sha256 pero igual sigue apareciendo el error 2335

giansalex commented 5 years ago

Eso está en el template vendor/greenter/xml/src/Template/invoice.21.xml.twig

guillermofoshlen commented 5 years ago

thumbnail_02

Hola Gian , Me dicen que el xml esta siendo firmado 3 veces poreso es el error

giansalex commented 5 years ago

Esa no es la firma, es la parte pública del certificado, revisa el .pem que está usando, puedes probar con el que está en greenter-sample

wilariz commented 5 years ago

Hola, tengo el mismo problema, y me indican los de Nubefact que muchas etiquetas "Certificate" en el xml, han validado con una sola etiqueta y va bien.

giansalex commented 5 years ago

Eso es un problema en el archivo .pem del certificado, verifica que solo haya una sección para la clave pública y otra para la privada, algo como esto.

-----BEGIN PRIVATE KEY-----
MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQC8+dovKA0PuAl/
W3LnoQ1grnknILIj7tqsm4j+m4sWnbkdfgTfsbt28sC7fq63jlj2j9WygCZG/cZ
vOa2/X/4F2A0mtptio+Ei5iw1ewJgInOmajHfUNq34WlaYrJO8nTl6UN+U+QPfIY
gvMrMa9KRuAC9qNC9eBW2g451J2tZA==....
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIFhzCCA3OgAwIBAgIQpcxUwZ73loBPHK/8MMLsnDAJBgUrDgMCHQUAMD8xJTAj
BgNVBAsTHEROSSA0ODAwNDgzNSBSVUMgMjAyMTA0NDEyMTMxFjAUBgNVBAMTDVRJ
IFNPTFVDSU9ORVMwHhcNMTYxMDI2MTQ1NDE3WhcNMzkxMjMxMjM1OTU5WjA/MSUw
LygND7gJf1ty56ENYK55JyCyI+7arJuI/puLFp2.....
-----END CERTIFICATE-----

Debería haber un solo BEGIN CERTIFICATE

wilariz commented 5 years ago

Eso es un problema en el archivo .pem del certificado, verifica que solo haya una sección para la clave pública y otra para la privada, algo como esto.

-----BEGIN PRIVATE KEY-----
MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQC8+dovKA0PuAl/
W3LnoQ1grnknILIj7tqsm4j+m4sWnbkdfgTfsbt28sC7fq63jlj2j9WygCZG/cZ
vOa2/X/4F2A0mtptio+Ei5iw1ewJgInOmajHfUNq34WlaYrJO8nTl6UN+U+QPfIY
gvMrMa9KRuAC9qNC9eBW2g451J2tZA==....
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIFhzCCA3OgAwIBAgIQpcxUwZ73loBPHK/8MMLsnDAJBgUrDgMCHQUAMD8xJTAj
BgNVBAsTHEROSSA0ODAwNDgzNSBSVUMgMjAyMTA0NDEyMTMxFjAUBgNVBAMTDVRJ
IFNPTFVDSU9ORVMwHhcNMTYxMDI2MTQ1NDE3WhcNMzkxMjMxMjM1OTU5WjA/MSUw
LygND7gJf1ty56ENYK55JyCyI+7arJuI/puLFp2.....
-----END CERTIFICATE-----

Solo debería haber un solo BEGIN CERTIFICATE

si efectivamente, revisando el .pem, tenía 4 bloques de clave publica (el motivo no lo sé), dejé solo con uno y ahora funciona correctamente.. Gracias!

guillermofoshlen commented 5 years ago

Gracias Gian, el problema era de la etiqueta certificate, se soluciono