![]() |
Ejemplo para crear la Huella
Buenos días,
Estoy intentando hacer un programa en Visual Studio Basic para calcular la huella siguiendo el ejemplo en java que la AEAT expone en la documentación, y el resultado es diferente. Alguien podría compartir el código en Visual Studio Basic? Expongo el código que estoy utilizando: Código:
Imports SystemResultado que debería de ser según la documentación de la AEAT: 3C464DAF61ACB827C65FDA19F352A4E3BDC2C640E9E9FC4CC058073F38F12F60 Gracias de antemano por la ayuda. Saludos, |
Buenas. Yo lo tengo en C#, estoy algo oxidado en VB pero creo que veo algún error.
Estás añadiendo un separador ";" entre campos al pasar el true como parámetro. El separador en todo caso sería "&". El string te tiene que quedar con el "&" como inicio del nombre de cada campo excepto del primero(IDEmisorFactura). Cambiando eso ya te debería salir bien. Si te sigue saliendo mal pon también cómo te queda el string antes de convertirlo y será más fácil localizar otros posibles fallos. Ese código del SHA256 huele a ChatGPT :D |
Error en huella
Gracias por la respuesta MaeseKvothe,
He reemplazado el separador ";" por el "&", y displayo en consola la cadena: IDEmisorFactura=89890001K&NumSerieFactura=12345678/G33&FechaExpedicionFactura=01-01-2024&TipoFactura=F1&CuotaTotal=12.35&ImporteTotal=123.45&Huella=&FechaHoraUsoRegistro=2024-01-01T19:20:30+01:00 A63B2F9600DDAAD8464120FBA23486E9F0BB39619060C1C75AA08135314560D3 Y según el manual de la AEAT es el siguiente: Código:
calcularHuella("IDEmisorFactura=89890001K&NumSerieFactura=12345678/G33&FechaExpedicionFactura=01-01-2024&TipoFactura=F1&CuotaTotal=12.35&ImporteTotal=123.45&Huella=&FechaHoraHusoGenRegistro=2024-01-01T19:20:30+01:00”);3C464DAF61ACB827C65FDA19F352A4E3BDC2C640E9E9FC4CC058073F38F12F60 Te agradezco la ayuda. Saludos |
Error en huella
Gracias por la respuesta MaeseKvothe,
He reemplazado el separador ";" por el "&", y displayo en consola la cadena: IDEmisorFactura=89890001K&NumSerieFactura=12345678/G33&FechaExpedicionFactura=01-01-2024&TipoFactura=F1&CuotaTotal=12.35&ImporteTotal=123.45&Huella=&FechaHoraUsoRegistro=2024-01-01T19:20:30+01:00 A63B2F9600DDAAD8464120FBA23486E9F0BB39619060C1C75AA08135314560D3 Y según el manual de la AEAT es el siguiente: Código:
calcularHuella("IDEmisorFactura=89890001K&NumSerieFactura=12345678/G33&FechaExpedicionFactura=01-01-2024&TipoFactura=F1&CuotaTotal=12.35&ImporteTotal=123.45&Huella=&FechaHoraHusoGenRegistro=2024-01-01T19:20:30+01:00”);3C464DAF61ACB827C65FDA19F352A4E3BDC2C640E9E9FC4CC058073F38F12F60 Te agradezco la ayuda. Saludos |
Ya está resuelto, para quien le pueda ayudar, el problema lo tenia en la etiqueta "FechaHoraHusoGenRegistro" que estaba mal escrita.
IDEmisorFactura=89890001K&NumSerieFactura=12345678/G33&FechaExpedicionFactura=01-01-2024&TipoFactura=F1&CuotaTotal=12.35&ImporteTotal=123.45&Huella=&FechaHoraHusoGenRegistro=2024-01-01T19:20:30+01:00 3C464DAF61ACB827C65FDA19F352A4E3BDC2C640E9E9FC4CC058073F38F12F60 Gracias por la colaboración. Saludos, |
Cita:
Por favor, a los que sois usuarios nuevos, revisad la Guía de estilo de los foros. Una de las cosas que explica es que en los mensajes donde se añade código es útil utilizar los TAGs destinados a ese menester. Hay una etiqueta para DELPHI y otra genérica para otros lenguajes. Gracias. ![]() |
En Delphi, la función para calcular la huella SHA-256 es sencilla:
Y aquí la llamada, creando primero la cadena con los campos que pide Verifactu (en este ejemplo, los campos están en TEdit en pantalla):
Lo probé con el ejemplo que aparece en la documentación de la AEAT y devuelve exactamente el mismo hash. Imprescindible poner en el uses la unit System.Hash |
Formateo Fecha.
Ojo con la función publicada. El formateo de la fecha yo creo que está mal:
debe ser dd-MM-yyyy Código:
' Genera la referencia concatenada |
Yo lo hago así en VB .NET:
Código:
Public Function HuellaVerifactu_Alta(ByVal IDEmisorFactura As String, ByVal NumSerieFactura As String, ByVal FechaExpedicionFactura As Date, ByVal TipoFactura As String, _Como dicen arriba, hay que tener cuidado con los formatos de los campos (sobretodo FechaHoraHusoGenRegistro) porque si no tiene el formato esperado dará error. Espero que le pueda servir a alguien |
| La franja horaria es GMT +2. Ahora son las 21:02:23. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi