![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
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 |
|
#2
|
|||
|
|||
|
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
Dim ref As String = GetReferenciaRegistroAlta(nifEmisor, numFacturaSerie, fechaExpedicion.ToString("dd-MM-yyyy"),
tipoFactura, cuotaTotal, importeTotal, huellaAnterior, fechaHoraUsoRegistro)
|
|
#3
|
|||
|
|||
|
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, _
ByVal CuotaTotal As Decimal, ByVal ImporteTotal As Decimal, ByVal Huella As String, ByVal FechaHoraHusoGenRegistro As String) As String
Dim HuellaVerifactu As String = ""
Dim Cadena As String = ""
Cadena += "IDEmisorFactura=" & IDEmisorFactura & "&"
Cadena += "NumSerieFactura=" & NumSerieFactura & "&"
Cadena += "FechaExpedicionFactura=" & Format(FechaExpedicionFactura, "dd-MM-yyyy") & "&"
Cadena += "TipoFactura=" & TipoFactura & "&"
Cadena += "CuotaTotal=" & CuotaTotal.ToString.Replace(",", ".") & "&"
Cadena += "ImporteTotal=" & ImporteTotal.ToString.Replace(",", ".") & "&"
Cadena += "Huella=" & Huella & "&"
Cadena += "FechaHoraHusoGenRegistro=" & FechaHoraHusoGenRegistro
HuellaVerifactu = ObtenerHashVerifactu(Cadena)
Return HuellaVerifactu
End Function
Public Function ObtenerHashVerifactu(ByVal cadena As String) As String
Using sha256 As SHA256 = sha256.Create()
Dim array As Byte() = sha256.ComputeHash(Encoding.UTF8.GetBytes(cadena))
Return BitConverter.ToString(array).Replace("-", "").ToUpper
End Using
End Function
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 |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Software para control del personal con huella digital | santiago14 | Varios | 3 | 15-03-2013 16:10:27 |
| Componente para huella digital | rex | Varios | 1 | 17-05-2006 18:33:52 |
| Lector de Huella Digital para control de personal | Mauro® | Varios | 2 | 05-05-2005 02:43:21 |
| Scanner Huella Dactilar para delphi | camc79 | Varios | 1 | 25-04-2004 20:36:56 |
|