-
Notifications
You must be signed in to change notification settings - Fork 94
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Estado del certificado desconocido #97
Comments
Hola @JoomBall, ¿Con "dejó de funcionar" te refieres a que un punto de entrada de facturas no aceptó el documento? Si es así, ¿cuál? ¿FACe? En la captura de pantalla que adjuntas, el validador del Gobierno de España indica que la factura es correcta (firma incluida). |
Hola @josemmo , gracias por contestar tan pronto. "dejó de funcionar" en el mismo día, la primera factura se envio correctamente y las siguientes devolviendo. ¿cuál? ¿FACe? HV01 | Error al verificar firma/certificado | La factura no ha superado la validación del certificado digital del emisor (certificado caducado o no reconocido) o no ha podido validarse la firma electrónica de la factura (su formato no es correcto). | Revisa que el campo SigninTime del XML contenga la hora de firma de la factura sin ningún número o carácter extraño. Si ves por ejemplo un +2 o una Z es necesario rehacer la firma de la factura y enviarla de nuevo. Si no hay nada que altere este campo, es necesario revisar el certificado utilizado para la firma de la factura a través del Signasuite. Puedes ver error HV01 en https://suport-efact-empreses.aoc.cat/hc/es-es/articles/4415512586257-Principales-c%C3%B3digos-de-error-de-rechazo-t%C3%A9cnico-del-servicio-e-FACT "Estado del certificado desconocido" |
Sin ver el documento XML de la factura no te sabría decir con total seguridad cuál es el problema. Lo más probable es que, si el validador del Gobierno da la factura por válida, el problema lo tenga el punto de entrada de facturas al que lo estás mandando. En este enlace tienes la factura que he utilizado. |
Gracias @josemmo Tampoco llego a entender el problema: ¿Puede ser por el tipo de certificado? el mio es como persona física y el tuyo como Persona física representante ante las AAPP de entidad sin pe .. El mio lo utilizo como proveedor de plataforma y así poder enviar facturas de otras empresas pero tampoco tiene sentido ya que funcionaba bién hasta ahora. Te adjunto ejemplo XML
A ver si encuentras un problema. |
@JoomBall, la factura que has subido es correcta: pasa la validación del validador del Gobierno de España, de FACe y de AutoFirma. Insisto en que tu certificado tampoco es el problema. Te recomiendo que te pongas en contacto con efact.aoc.cat ya que parece un problema suyo. Al principio pensaba que el problema era que el digest de firma que usa Facturae-PHP es RSA-SHA1, que desde hace un tiempo se considera obsoleto y tengo pensado cambiar en breve por RSA-SHA256 (no lo he hecho todavía por compatibilidad con plataformas públicas pendientes de adaptación). Sin embargo, la factura de prueba que utilicé con el validador del Consorci AOC usa RSA-SHA256 y tampoco la da por válida, así que ni idea de qué está pasando. |
@josemmo , gracias por todo de verdad, al menos me das pistas. Ayer envie email a AOC preguntando, te contaré si obtengo respuesta. He vuelto a pasar tu factura y la mia por el validador del Consorci AOC y me da el mismo error Resultat: urn:oasis:names:tc:dss:1.0:resultminor:invalid:incorrectSignature Si buscas en Google, la respuesta que he encontrado sobre este error són: El sello de tiempo no es correcto. Aunque tal vez es: Visto en https://docs.oasis-open.org/dss/v1.0/oasis-dss-core-spec-v1.0-os.html. Quizás sepas qué significa. |
Hola de nuevo @josemmo , al final despúes de una dura batalla he obtenido respuesta de AOC sobre el problema. Al final viene de la etiqueta SigninTime, esta es la respuesta de ellos:
Entiendo que al subir la factura en el servidor de eFact la fecha no coincide con la de la Firma SigningTime. Yo antes de esa respuesta probé cosas: $fac->setSignTime(JFactory::getDate('+2hour')->toSql()); // En principio no me funciono Ya que en tu código: En fin que el resultado supongo es el mismo hacer: ¿Qué puedo hacer? o tengo que realizar las pruebas con $fac->setSignTime(); Muchas gracias! |
Hola @JoomBall, Gracias por la actualización.
Lo que te dicen de la zona horaria (el "+00:00") es bastante absurdo. La especificación oficial de XAdES del W3C no dice nada de que cada país tenga que usar su propia zona horaria. Es más, el incluir el offset horario con la fecha está pensado para poder verificar la firma de facturas entre países con zonas horarias distintas y que no haya lugar a confusión.
Primero, comprueba que la máquina desde la que estás generando la factura tiene fecha y hora correctas, no vaya a ser que el problema sea que el reloj esté adelantado. Segundo, si quieres que Facturae-PHP genere un date_default_timezone_set('Europe/Madrid'); |
Hola @josemmo , Puedes cerrar este incidente, primero rebaje 5 minutos el horario y parece que funciona correctamente. Ahora he podido modificar el horario correcto en servidor y supongo que ya no me dará más problemas, de momento no tengo facturas para enviar. Muchas gracias por todo, esta librería funciona muy bien. Tal vez seria otra incidéncia pero comentarte algo que no he visto en documentación, es la posibilidad de añadir cantidades 1,50 (1 y medio, etc). Esto funciona: Esto no funciona: Tal vez hay que añadir comillas... |
De acuerdo, @JoomBall. Gracias a ti por notificar la incidencia. Sobre los decimales, tienes que utilizar "." en vez de "," como separador: // Opción A
$fac->addItem($product['text'], $product['total'], 1.50, Facturae::TAX_IVA, $product['vat']);
// Opción B
$fac->addItem(new FacturaeItem([
"name" => $product['text'],
"unitPriceWithoutTax" => $product['base'],
"quantity" => 1.50,
"taxes" => [Facturae::TAX_IVA => $product['vat']] ]
)); |
Buenas...
Gracias por este gran aporte!
Tengo un certificado electrónico expedido por la FNMT desde febrero y utilizando esta librería para enviar facturas de una empresa con éxito durante 5 meses.
Desde ayer dejo de funcionar el envio de facturas por culpa del certificado (Sin especificar error) pero este esta Válido y no revocado. Comprobado en https://www.sede.fnmt.gob.es/certificados/persona-fisica/verificar-estado/solicitar-verificacion
// SIGNATURE
$fac->sign(PATH . "/certificate.pfx", null, "CONTRASEÑA");
Este es el código que añado para adjuntar archivo.
No entiendo que puede haber pasado, ¿Alguna idea? Uso Facturae-PHP V1.7.0
Es muy urgente para mi, Muchas gracias!!
Adjunto imagen resultado Facturae sin especificar estado certificado:
The text was updated successfully, but these errors were encountered: