FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Y aclararon que si se opta por utilizar Verifactu ya no hay obligación de firma de la factura ni de llevar el registro de eventos.
Por supuesto, sí se obliga en Verifactu a que la factura lleve un hash. |
#2
|
||||
|
||||
Una pregunta a ver si alguien me puede aclarar una duda que tengo desde hace tiempo.
¿Se deben generar los xml de cada factura por separado? ¿Luego de generados se genera el soap para enviar? Gracias anticipadas.
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos. |
#3
|
|||
|
|||
En el supuesto de acogerte a envio inmediato: Comp no tienes que conservarlo puedes hacerlo como quieras, pero debes tener en cuenta que te pueden contestar en el resp del soap al enviar que el próximo envío el número de xmls por ejemplo sea 10 registros encapsulados en el mismo soap o 300segunfos de espera. Entonces lo recomendable es que generes el xml por un lado y encapsules en el soap al enviar.
|
#4
|
||||
|
||||
Cita:
Vale perfecto tiene lógica, mientras encapsulas calculas la huella desde los datos de factura, no de ningún nodo. mil gracias como siempre @ermendalenda. A ver si se aclara esta gente de una maldita vez.
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos. |
#5
|
|||
|
|||
Cita:
Supongo que ya cada uno tendrá sus complicaciones. Lo que si tienes que calcular elhash antes de generar el qr de la factura, eso está claro, la explicacion de calcularla mientras encapsulas el soap antes de encapsular no es muy correcta, ya que en el qr, casi seguro va a ir parte del hash calculado, al igual que ticketbai con la firma, es la única forma que tiene para garantizar que no cambies algo entre la emisión y el envío. Última edición por ermendalenda fecha: 16-02-2024 a las 13:04:11. |
#6
|
||||
|
||||
Cita:
Si que me gustaría ver un ejemplo de como encapsulas uno o varios xml generados con anterioridad. Me sería de mucha ayuda
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos. |
#7
|
|||
|
|||
Cita:
En Delphi hay otras formas que los compañeros del foro seguro que te pueden guiar. Mira el código para generar el XML (A pelo) es de esta forma: Código:
close #92 Open "C:\xmls\" & nombre_fichero & ".xml" For Output As #92 Print #92, "<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "UTF-8" & Chr(34) & "?>" Print #92, "<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "UTF-8" & Chr(34) & "?>" If es_anulacion Then Print #92, "<sum:BajaFactuSistemaFacturacion xmlns:sum=" & Chr(34) & "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" & Chr(34) & " xmlns:sum1=" & Chr(34) & "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd" & Chr(34) & ">" Else Print #92, "<sum:AltaFactuSistemaFacturacion xmlns:sum=" & Chr(34) & "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" & Chr(34) & " xmlns:sum1=" & Chr(34) & "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd" & Chr(34) & ">" End If Print #92, "<sum1:Cabecera>" Print #92, "<sum1:IDVersion>" & version_vfactu & "</sum1:IDVersion>" Print #92, "<sum1:ObligadoEmision>" Print #92, "<sum1:NombreRazon>" & TEXT_TO_UTF8(nombre_empresa) & "</sum1:NombreRazon>" Print #92, "<sum1:NIF>" & nif & "</sum1:NIF>" Print #92, "</sum1:ObligadoEmision>" select case tipo "anulacion" Print #92, "<sum1:TipoRegistroAEAT>T3</sum1:TipoRegistroAEAT>" "sustitutiva" Print #92, "<sum1:TipoRegistroAEAT>T1</sum1:TipoRegistroAEAT>" "normal" Print #92, "<sum1:TipoRegistroAEAT>T0</sum1:TipoRegistroAEAT>" end select ***Y ahora lo que voy a escribir lo voy guardando en la variable datohash para calcular el hash cuando tenga en la variable lo que necesite datoxml = "<sum:RegistroFacturacion>" datohash = datoxml If es_anulacion = False Then Print #92, "<sum:RegistroAltaFacturas>" & datoxml; Else Print #92, "<sum:RegistroAnulacionFacturas>" & datoxml; End If datoxml = "<sum1:IDFactura>" datohash = datohash & datoxml Print #92, datoxml; ....... ****AL FINAL CALCULO EL HASH USANDO LAS API DE WINDOWS**** *** CryptCreateHash, ¿¿¿CryptAcquireContext, etc... de la libreria "advapi32.dll"***** huella = UCase(CreateHashString(datohash, CALG_SHA_256)) *** Inserto el hash en el xml y el resto de nodos Print #92, "<sum1:Huella>" & huella & "</sum1:Huella>" Print #92, "<sum1:TipoHash>01</sum1:TipoHash>" Print #92, "</sum:DatosControl>" If es_anulacion Then Print #92, "</sum:RegistroAnulacionFacturas>" Print #92, "</sum:BajaFactuSistemaFacturacion>" Else Print #92, "</sum:RegistroAltaFacturas>" Print #92, "</sum:AltaFactuSistemaFacturacion>" End If close #92 |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Hijo de Informáticos | gluglu | Humor | 3 | 13-03-2007 11:05:35 |
Adictos informaticos ... | Trigger | Humor | 2 | 11-10-2004 12:18:32 |
Nosotros los Informáticos | Trigger | Humor | 1 | 10-10-2004 14:58:09 |
Patrón de los Informáticos. | obiwuan | Varios | 20 | 10-09-2003 14:44:54 |
Chistes Informaticos | jhonny | Humor | 2 | 11-08-2003 21:59:09 |
|