Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #341  
Antiguo 10-11-2020
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
Acabo de hacer un envío y funciona bien.

¿Estas rellenado el campo número de dispositivo? Yo envíe una factura sin rellenar ese campo y tambien me daba error. Luego hablando con ellos me han dicho que lo tienen que solucionar que es un problema de ellos.

Tambien puede ser algo de fichero que estas intentando enviar.

Un Saludo.
Responder Con Cita
  #342  
Antiguo 10-11-2020
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 174
Poder: 12
elcharlie Va por buen camino
Yo les enviaría un email a los de de Lantik con el fichero que intentas enviar, para que te lo validen manualmente, y asi ir descartando cosas.
Responder Con Cita
  #343  
Antiguo 10-11-2020
juramisa juramisa is offline
Miembro
 
Registrado: abr 2007
Posts: 54
Poder: 18
juramisa Va por buen camino
Es lo que he hecho, les he mandado el fichero, tiene que ser algo de las validaciones. Yo pensaba que en el fichero de respuesta vendrían los errores.
El ticketbai va como sigue:

- <Software>
<LicenciaTBAI>TBAIPRUEBA</LicenciaTBAI>
- <EntidadDesarrolladora>
<NIF>14xxxxxxxx</NIF>
</EntidadDesarrolladora>
<Nombre>FACT01</Nombre>
<Version>1.0.0.0</Version>
</Software>
El número de dispositivo no era ya obligatorio. De todas formas esperemos que me contestan. Ya os contaré.

Me entran dudas del GZip, si lo hago adecuadamente, que herramienta usaís?. A ver si es un problema del fichero enviado.

Gracias
Responder Con Cita
  #344  
Antiguo 10-11-2020
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 174
Poder: 12
elcharlie Va por buen camino
Cita:
Empezado por juramisa Ver Mensaje
Es lo que he hecho, les he mandado el fichero, tiene que ser algo de las validaciones. Yo pensaba que en el fichero de respuesta vendrían los errores.
El ticketbai va como sigue:

- <Software>
<LicenciaTBAI>TBAIPRUEBA</LicenciaTBAI>
- <EntidadDesarrolladora>
<NIF>14xxxxxxxx</NIF>
</EntidadDesarrolladora>
<Nombre>FACT01</Nombre>
<Version>1.0.0.0</Version>
</Software>
El número de dispositivo no era ya obligatorio. De todas formas esperemos que me contestan. Ya os contaré.

Me entran dudas del GZip, si lo hago adecuadamente, que herramienta usaís?. A ver si es un problema del fichero enviado.

Gracias

yo uso la ZLib
http://docwiki.embarcadero.com/CodeE...press_(Delphi))
Responder Con Cita
  #345  
Antiguo 10-11-2020
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
Cita:
Empezado por juramisa Ver Mensaje
Es lo que he hecho, les he mandado el fichero, tiene que ser algo de las validaciones. Yo pensaba que en el fichero de respuesta vendrían los errores.
El ticketbai va como sigue:

- <Software>
<LicenciaTBAI>TBAIPRUEBA</LicenciaTBAI>
- <EntidadDesarrolladora>
<NIF>14xxxxxxxx</NIF>
</EntidadDesarrolladora>
<Nombre>FACT01</Nombre>
<Version>1.0.0.0</Version>
</Software>
El número de dispositivo no era ya obligatorio. De todas formas esperemos que me contestan. Ya os contaré.

Me entran dudas del GZip, si lo hago adecuadamente, que herramienta usaís?. A ver si es un problema del fichero enviado.

Gracias
El numero de dispositivo no es obligatorio, pero su sistema esta dando error si lo envías sin rellenar y además el error no lo retorna en el fichero de respuesta, sino que n o retorna nada.

Yo los comprimo conun componente de los secureblackbox TsbxArchiveWriter.

Un Saludo.
Responder Con Cita
  #346  
Antiguo 10-11-2020
juramisa juramisa is offline
Miembro
 
Registrado: abr 2007
Posts: 54
Poder: 18
juramisa Va por buen camino
Vale me han respondido lo siguiente

Hemos revisado el fichero que nos han adjuntado y hemos visto que en la codificación del TicketBAI en Base64 le sobran los primeros caracteres que indico con fondo amarillo:

<TicketBai>77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPFQ6VGlja2V0QmFpIHht

Muevo el fichero a "https://www.base64encode.org/" por ejemplo y me da lo mismo. Teneís alguna explicación a esto?.
Responder Con Cita
  #347  
Antiguo 11-11-2020
juramisa juramisa is offline
Miembro
 
Registrado: abr 2007
Posts: 54
Poder: 18
juramisa Va por buen camino
Buenos días,

Ayer lo sospechaba, y hoy me lo han confirmado.

Hemos visto que el fichero xml, que está dentro del fichero gz que nos han enviado, tiene la codificación UTF-8 con BOM cuando debería ser UTF-8:


Y claro esos caracteres iniciales al convertir el TicketBai a base64 son por lo mismo. ¿Vosotros como realizáis la grabación de los XML en UTF-8 solamente? sin BOM.

Gracias
Responder Con Cita
  #348  
Antiguo 11-11-2020
juramisa juramisa is offline
Miembro
 
Registrado: abr 2007
Posts: 54
Poder: 18
juramisa Va por buen camino
Buenos días

Ya está todo solucionado, hasta la siguiente.

Si alguien más tiene el mismo problema os cuento como lo he solucionado. Rebuscando por internet he encontrado este código.

Código Delphi [-]
interface

  procedure SaveAsUTF8(const Fichero: string; Data: TStrings);

type
  TUTF8NoBOMEncoding = class(TUTF8Encoding)
  public
    function GetPreamble: TBytes; override;
  end;

implementation

function TUTF8NoBOMEncoding.GetPreamble: TBytes;
begin
  SetLength(Result, 0);
end;

  procedure SaveAsUTF8(const Fichero: string; Data: TStrings);
  var
    fs: TFileStream;
    vStreamWriter: TStreamWriter;
    Enc : TUTF8NoBOMEncoding;
  begin
    fs := TFileStream.Create(Fichero, fmCreate);
    try
      Enc := TUTF8NoBOMEncoding.Create;
//      vStreamWriter := TStreamWriter.Create(fs, TEncoding.UTF8);
      vStreamWriter := TStreamWriter.Create(fs, Enc);
      try
        vStreamWriter.Write(Data.Text);
      finally
        vStreamWriter.Free;
      end;
    finally
      fs.free;
      Enc.Free;
    end;

  end;

En el caso del TicketBai tras la firma lo vuelvo a cargar, y lo vuelvo a guardar.

Código Delphi [-]
      result := LoadXMLDocument(mi_fichero);
   // result: IXMLDocument

      SaveAsUTF8(mi_fichero, result.XML);

En el caso del LROE lo guardo antes de generar el GZip.

Código Delphi [-]
      
      SaveAsUTF8(mi_fichero, result.XML);

Resultado, envío correcto.

Muchas gracias a todos por vuestra ayuda.
Responder Con Cita
  #349  
Antiguo 11-11-2020
juramisa juramisa is offline
Miembro
 
Registrado: abr 2007
Posts: 54
Poder: 18
juramisa Va por buen camino
Alternativa NetHttpClient

Buenos días

Os presento una alternativa a NetHttpClient, quien tiene los componentes de SecureBlackBox 2020 DE.

Código Delphi [-]
var
  CertificateStorage: TsbxCertificateStorage;
  cert : TsbxCertificate;
  otros_parametros : string;
  encontrado : Boolean;
  Cuerpo_Mensaje : TFileStream;

  Entry: TSBxArchivedFile;



procedure....
      // Fichero LROE  GZip
      Cuerpo_Mensaje := TFileStream.Create(FicheroComprimido, fmOpenRead);
      // Cargar mensaje json
      el_eus_bizkaia_n3_data := f_cabecera_LROE(el_concepto, el_subcapitulo, DMBatu.CDSPres.FieldByName('PR020').AsString, 
                          DMBatu.CDSPres.FieldByName('PR040').AsString, DMBatu.CDSPres.FieldByName('PR090').AsString, 
                          DMBatu.CDSPres.FieldByName('PR100').AsString, DMBatu.CDSPres.FieldByName('PR080').AsString, IntToStr(ejercicio_presentacion.Value));
      // Selección del cerificado
      sbxHTTPClient1.TLSSettings.AutoValidateCertificates :=   True;
      CertificateStorage := TsbxCertificateStorage.Create(nil);
      if CertificateStorage.Opened then
         CertificateStorage.Close(True);
      CertificateStorage.Open('system://currentuser@localhost/?store=MY');
      encontrado := False;
      sbxHTTPClient1.ClientChain.Clear;
      for i := 0 to CertificateStorage.Certificates.Count - 1 do
      begin
        cert := CertificateStorage.Certificates[i];
        if bintostr(Cert.SerialNumber) = mi_certificadoID.Caption then
        begin
          sbxHTTPClient1.ClientChain.Add(cert);
          encontrado := True;
        end;
      end;
      if not encontrado then
      begin
        Application.MessageBox('Firma no encontrada',
          'Proceso de firma', MB_OK + MB_ICONWARNING
          + MB_DEFBUTTON2);
        Exit;
      end;
      // Carga parámetros cabecera   
      sbxHTTPClient1.RequestParameters.ContentType       := el_Content_Type;
      otros_parametros := 'Accept-Encoding: '             + el_accept_Encoding              + #13#10
                        + 'Content-Encoding: '            + el_Content_Encoding             + #13#10
                        + 'eus-bizkaia-n3-version: '      + el_eus_bizkaia_n3_version       + #13#10
                        + 'eus-bizkaia-n3-content-type: ' + el_eus_bizkaia_n3_content_type  + #13#10
                        + 'eus-bizkaia-n3-data: '         + el_eus_bizkaia_n3_data                  ;
      sbxHTTPClient1.RequestParameters.CustomHeaders := otros_parametros;
      // HTTP
      case rg_Entorno.ItemIndex of
        0: sbxHTTPClient1.PostStream(la_url_pruebas, Cuerpo_Mensaje);
        1: sbxHTTPClient1.PostStream(la_url, Cuerpo_Mensaje);
      end;
      // sbxHTTPClient1.OutputBytes nos devuelve el cuerpo respuesta
      // Guardo el fichero GZIP
      FicheroRespuesta := DMBatu.CDSEnvc.FieldByName('EN070').AsString +'.gz';
      GuardarRespuesta(FicheroRespuesta,sbxHTTPClient1.OutputBytes);
      // Descomprimo el fichero GZIP
      if sbxArchiveReader1.Opened then
         sbxArchiveReader1.Close;

      sbxArchiveReader1.Open(Integer(aftGzip), FicheroRespuesta);

      for i := 0 to sbxArchiveReader1.Files.Count - 1 do
      begin
        Entry := sbxArchiveReader1.Files[i];
        sbxArchiveReader1.Extract(Entry.Path, ExtractFilePath(DMBatu.CDSEnvc.FieldByName('EN070').AsString), false);
        Application.ProcessMessages;
        RenameFile(ExtractFilePath(DMBatu.CDSEnvc.FieldByName('EN070').AsString) + Entry.Path, DMBatu.CDSEnvc.FieldByName('EN070').AsString);
        Application.ProcessMessages;
      end;
      // Tratamiento de la respuesta
      XMLDocument1 := TXMLDocument.Create(nil);

      XMLDocument1.Active := False;
      XMLDocument1.XML.Clear;
      XMLDocument1.LoadFromFile(DMBatu.CDSEnvc.FieldByName('EN070').AsString);

      XMLDocument1.Active := True;
.......

      procedure GuardarRespuesta(const Fichero: String; Respuesta: TBytes);
      var
        stream: TBytesStream;
      begin
        stream := TBytesStream.Create(Respuesta);
        try
          stream.SaveToFile(Fichero);
        finally
          stream.Free;
        end;
      end;

Última edición por Casimiro Notevi fecha: 11-11-2020 a las 17:12:08.
Responder Con Cita
  #350  
Antiguo 12-11-2020
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 174
Poder: 12
elcharlie Va por buen camino
Cita:
Empezado por juramisa Ver Mensaje
Buenos días

Os presento una alternativa a NetHttpClient, quien tiene los componentes de SecureBlackBox 2020 DE.
Gracias por el aporte.
Un pregunta, de esta manera, ¿ya no te da el mensaje de "Error sending data: (12030) La conexión con el servidor finalizó anormalmente"?
Es por curiosidad...
Un saludo.
Responder Con Cita
  #351  
Antiguo 12-11-2020
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
Hola a todos. No se si os pasa a vosotros, pero el fichero de respuesta lo tengo que descomprimir dos veces.

Un Saludo.
Responder Con Cita
  #352  
Antiguo 12-11-2020
juramisa juramisa is offline
Miembro
 
Registrado: abr 2007
Posts: 54
Poder: 18
juramisa Va por buen camino
Contestando a elcharlie, con el certificado que pide clave, sí, la primera vez me da errores. De todas formas lo estoy probando ahora, y el fichero me viene que no es un gzip.

Contestando a keys, descomprimiendo con SecureBlackBox, me ha ido a la primera. Salvo ahora, que parece que yo he tocado algo o el servidor me devuelve mal el cuerpo del mensaje.

Os seguiré informando.

Saludos
Responder Con Cita
  #353  
Antiguo 12-11-2020
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 174
Poder: 12
elcharlie Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Hola a todos. No se si os pasa a vosotros, pero el fichero de respuesta lo tengo que descomprimir dos veces.

Un Saludo.
Si si, me pasa lo mismo.

Cita:
Empezado por juramisa Ver Mensaje
Contestando a elcharlie, con el certificado que pide clave, sí, la primera vez me da errores. De todas formas lo estoy probando ahora, y el fichero me viene que no es un gzip.

Contestando a keys, descomprimiendo con SecureBlackBox, me ha ido a la primera. Salvo ahora, que parece que yo he tocado algo o el servidor me devuelve mal el cuerpo del mensaje.

Os seguiré informando.

Saludos
Gracias por la info
Responder Con Cita
  #354  
Antiguo 12-11-2020
juramisa juramisa is offline
Miembro
 
Registrado: abr 2007
Posts: 54
Poder: 18
juramisa Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Hola a todos. No se si os pasa a vosotros, pero el fichero de respuesta lo tengo que descomprimir dos veces.

Un Saludo.
Se te ha solucionado, ahora parece que va bien el servicio.

De todas formar prueba con lo siguiente si quieres, el código completo está en un mensaje anterior.

Código Delphi [-]
       if sbxArchiveReader1.Opened then
         sbxArchiveReader1.Close;

        sbxArchiveReader1.Open(Integer(aftGzip), FicheroRespuesta);

      // Sólo hay un fichero
      for i := 0 to sbxArchiveReader1.Files.Count - 1 do
      begin
        Entry := sbxArchiveReader1.Files[i];
        sbxArchiveReader1.Extract(Entry.Path, ExtractFilePath(el_fichero_a_recibir), false);
        Application.ProcessMessages;
        RenameFile(ExtractFilePath(el_fichero_a_recibir) + Entry.Path, el_fichero_a_recibir);
        Application.ProcessMessages;
      end;
Responder Con Cita
  #355  
Antiguo 12-11-2020
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
Gracias.

El problema lo tengo solucionado, lo descomprimo dos veces y punto.

Yo creo que le problema es del componente TnetHttpClient que es con el que estoy haciendo el envío.

La descompresión ya la estaba haciendo mas o menos como tu pones, pero la tengo que hacer dos veces y si la hago manualmente desde el windows tambien la tengo que hacer dos veces.

Un Saludo.
Responder Con Cita
  #356  
Antiguo 12-11-2020
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
Hola a todos.

Una curiosidad que igual os sirve de algo. He preguntado a hacienda por la calidad de los datos en TBAI, es decir si los cifs/nifs tienen que estar bien puestos, asi como los datos de los clientes de las facturas. Ya que ahora el sistema acepta todo siempre que esten bien formados. Es decir puedo poner mi dni con el nombre y los apellidos de otro.

y esta es la respuesta.

"La validación contra el censo de contribuyentes se realizará en un futuro, pero destacar que el declarante tiene la obligación de consignar correctamente los datos de las personas declaradas. Dicho incumplimiento es sancionable según el artículo 204 de la Norma Foral General Tributaria del Territorio Histórico de Bizkaia."

Un Salujdo.
Responder Con Cita
  #357  
Antiguo 12-11-2020
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 174
Poder: 12
elcharlie Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Hola a todos.

Una curiosidad que igual os sirve de algo. He preguntado a hacienda por la calidad de los datos en TBAI, es decir si los cifs/nifs tienen que estar bien puestos, asi como los datos de los clientes de las facturas. Ya que ahora el sistema acepta todo siempre que esten bien formados. Es decir puedo poner mi dni con el nombre y los apellidos de otro.

y esta es la respuesta.

"La validación contra el censo de contribuyentes se realizará en un futuro, pero destacar que el declarante tiene la obligación de consignar correctamente los datos de las personas declaradas. Dicho incumplimiento es sancionable según el artículo 204 de la Norma Foral General Tributaria del Territorio Histórico de Bizkaia."

Un Salujdo.
Yo para esas comprobaciones, desde que entró el SII, utilizo este webService https://www2.agenciatributaria.gob.e...ws/VNifV2.wsdl de la agencia tributaria, que funciona muy bien. Os de dejo el pas del servicio por si os interesa.

Un saludo.

Última edición por Neftali [Germán.Estévez] fecha: 03-05-2021 a las 13:59:12.
Responder Con Cita
  #358  
Antiguo 13-11-2020
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
Hola.

Nosotros tambien lo estamos usando. Tambien hay otro sevicio web para comprobar los documentos intracomunitarios VIES. Pero este no lo hemos conseguido hacer funcfionar https://ec.europa.eu/taxation_custom...formation.html.

Cargamos el wsdl y luego a la hora de llamarlo nos dice que el servicio no esta disponible.Si lo intentamos desde el explorador tambien nos pasa lo mismo. No se si es que no esta realmente disponible o que lo estamos haciendo mal.

Alguien ha conseguido llamar a este webservice.

Un Saludo.
Responder Con Cita
  #359  
Antiguo 13-11-2020
Avatar de elcharlie
elcharlie elcharlie is offline
Miembro
 
Registrado: mar 2013
Ubicación: Bilbao
Posts: 174
Poder: 12
elcharlie Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Hola.

Nosotros tambien lo estamos usando. Tambien hay otro sevicio web para comprobar los documentos intracomunitarios VIES. Pero este no lo hemos conseguido hacer funcfionar https://ec.europa.eu/taxation_custom...formation.html.

Cargamos el wsdl y luego a la hora de llamarlo nos dice que el servicio no esta disponible.Si lo intentamos desde el explorador tambien nos pasa lo mismo. No se si es que no esta realmente disponible o que lo estamos haciendo mal.

Alguien ha conseguido llamar a este webservice.

Un Saludo.
Yo lo probé hace tiempo y estaba funcionando bien, pero creo recordar, que había problemas con los CIFS de algunos paises. No te creas que es una maravilla.
EDITO: Ahora si que dá el mensaje de "SERVICE_UNAVAILABLE", estarán de mantenimiento...

Última edición por elcharlie fecha: 13-11-2020 a las 09:15:53.
Responder Con Cita
  #360  
Antiguo 19-11-2020
larax larax is offline
Registrado
 
Registrado: nov 2020
Posts: 1
Poder: 0
larax Va por buen camino
Hola buenas tardes

Estoy teniendo problemas a la hora de firmar (nunca he firmado nada hasta ahora y estoy un poco pez)

A la hora de intentar firmar el xml, estoy teniendo este error con el signtool: "Signtool error: No certificates were found that met all in the given criteria"

Es necesario una firma de por ejemplo de ksoftware.

Con una firma de ellos no tendría este problema?

Muchas gracias
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice newtron Internet 3557 Hace 2 Días 17:42:47
Como utilizar la ayuda del nuevo Sistema Operativo gluglu Humor 3 24-09-2007 09:39:05
Aplicacion Agencia De Viajes ArdiIIa Varios 9 20-01-2007 16:49:53
El Vasco Aguirre Al González La Taberna 5 26-05-2006 09:22:28
Microsoft ha lanzado su nuevo sistema operativo DarkByte Humor 0 25-01-2004 09:21:14


La franja horaria es GMT +2. Ahora son las 16:31:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi