Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > Envío de registros y sus respuestas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Tema Cerrado
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-03-2025
Avatar de ramherfer
ramherfer ramherfer is offline
Miembro
 
Registrado: may 2013
Ubicación: Valencia
Posts: 163
Poder: 14
ramherfer Va por buen camino
A ver, yo sigo con el tema de comprobación del servicio soap esté activo o no. Soy cabezón por naturaleza

He estado probando con el tema de consulta vacia a la AEAT, pero me da errores "Consultando a la AEAT" y la verdad, tampoco he conseguido averiguar el motivo, ya que la consulta esta calcada de la que se realiza en la pantalla de consultas que funciona a la perfección.

Si la comprobación la realizo solo al entrar en la aplicación, tengo el inconveniente que si la aplicación no se cierra y el servicio deja de estar activo y se emite una o varias facturas, ya tenemos el lio montado.

Si la comprobación la realizo antes de realizar un envío, se va a poner a realizar consulta tras consulta hasta que detecte que el servicio está activo y la envie.

Todo ello desconociendo si hay algún limite de consultas, o si la operación de consultas continuadas puede desembocar en algún tipo de baneo por parte de mis amigos de la AEAT.

Entonces basandome en que la URL del EndPoint de mis amigos del fisco responde con una redirección, eso debiera bastar para indicar que está activo ya que si no se encuentra activo, no debiera de haber respuesta con esa redirección. Entonces con la siguiente función trato de hacer esa comprobación que activaría o desactivaría un flag y la imagen correspondiente en el StatusBar para que el usuario sea consciente en todo momento de como está el patio. La he probado con https://prewww1.aeat.es/wlpl/TIKE-CO.../VerifactuSOAP y con https://prewww1.aeat.es/wlpl/TIKE-CO...factuSOAP?wsdl y aparentemente cumple su función.

Código Delphi [-]
 
Function VerificarServicioSOAP(URL:String): Boolean;
var
  HTTP: TIdHTTP;
  SSLIO: TIdSSLIOHandlerSocketOpenSSL;

begin
  result := false;

  HTTP := TIdHTTP.Create(nil);
  SSLIO := TIdSSLIOHandlerSocketOpenSSL.Create(HTTP);

  try
    try
      // Forzar el uso de TLS 1.2
      SSLIO.SSLOptions.Method := sslvTLSv1_2;
      SSLIO.SSLOptions.Mode := sslmClient;
      HTTP.IOHandler := SSLIO;

      HTTP.Head(URL);
      //ShowMessage(Format('%s Disponible', [url]));
      result := true;
    except
      on E: EIdHTTPProtocolException do
      begin
        if (E.ErrorCode = 302) then begin
          //ShowMessage(Format('%s Disponible (Redireccionando)', [url]));
          result := True;
        end else begin
          //ShowMessage(Format('%s No Disponible: %s', [URL, E.Message]));
          result := False;
        end;
      end;
      on E: Exception do
        //ShowMessage(Format('%s No Disponible: %s', [URL, E.Message]));
    end;
  finally
    HTTP.Free;
  end;

end;

No se si estoy en un error. A ver que os parece y me alegraría que fuera válido.

Un saludo,
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos.
  #2  
Antiguo 28-03-2025
mqm mqm is offline
Miembro
 
Registrado: nov 2006
Posts: 63
Poder: 20
mqm Va por buen camino
Buenas tardes.
Siguiendo con las pruebas, me delvuelve este error.
Las pruebas las realizo con el "CERTIFICADO FISICA PRUEBAS - 99999910G".

Si proceso al envio de 1-6 facturas , veo que se lo traga todo del tiron, todo Correcto..
Sin embargo al meter 10 facturas en el envio me devuelve el error que muestro en el codigo siguiente.

Es problema mio, del codigo o del certificado que estoy usando?
Le ha pasado a alguien más?




Cita:
Se ha realizado el envío

Estado Del Envio: Enviado
CSV: A-PMM4K6MFKQS5MA
TimeStamp: 28/03/2025 13:53:15

A0000073-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60
A0000074-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60
A0000075-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60
A0000076-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60
A0000077-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60
A0000078-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60
A0000079-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60
A0000080-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60
A0000081-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60
A0000082-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60

Facturas Aceptadas: 10
Facturas Aceptadas Con Errores: 0
Facturas Con Errores: 0
El envío no ha podido ser realizado
Error Al Enviar
(ESOAPHTTPException)-Se requiere un certificado para completar la autenticación de cliente - URL:https://prewww1.aeat.es/wlpl/TIKE-CO.../VerifactuSOAP - SOAPAction:""
  #3  
Antiguo 28-03-2025
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.232
Poder: 24
newtron Va camino a la fama
Cita:
Empezado por mqm Ver Mensaje
Buenas tardes.
Siguiendo con las pruebas, me delvuelve este error.
Las pruebas las realizo con el "CERTIFICADO FISICA PRUEBAS - 99999910G".

Si proceso al envio de 1-6 facturas , veo que se lo traga todo del tiron, todo Correcto..
Sin embargo al meter 10 facturas en el envio me devuelve el error que muestro en el codigo siguiente.

Es problema mio, del codigo o del certificado que estoy usando?
Le ha pasado a alguien más?

¿Estás enviando las facturas en un solo paquete o una a una?
__________________
Be water my friend.
  #4  
Antiguo 28-03-2025
mqm mqm is offline
Miembro
 
Registrado: nov 2006
Posts: 63
Poder: 20
mqm Va por buen camino
la envio en paquete de 2, 3, 4, ..... pero al llegar a 10 es cuando me salta el error.
  #5  
Antiguo 28-03-2025
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.232
Poder: 24
newtron Va camino a la fama
Cita:
Empezado por mqm Ver Mensaje
la envio en paquete de 2, 3, 4, ..... pero al llegar a 10 es cuando me salta el error.

¿Y esperas el tiempo indicado entre envíos? porque ese mensaje da la impresión que dice que estás enviando antes de tiempo.

Edito: Ah... no... leyendo bien parece que es algo relacionado con el certificado...
__________________
Be water my friend.
  #6  
Antiguo 28-03-2025
mqm mqm is offline
Miembro
 
Registrado: nov 2006
Posts: 63
Poder: 20
mqm Va por buen camino
Espero los tiempo indicado y mas. Ahora acabo de subie 15 de golpe y han pasado.
Espero que no se repita. Gracias por todo.
  #7  
Antiguo 29-03-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 488
Poder: 10
seccion_31 Va por buen camino
a mi tambien me han pasado errores al enviar 15 o 20 de golpe y luego en otro paquete se han enviado bien. Enviando 1, 2,3 nunca he tenido problemas. Un poco random cuantos mas envias.

Por otro lado antes de publicar la version 2.1 tengo algunas dudas sobre esto: (Los añadire, pero querria vuestra opinion)
Ahora mismo no los estoy enviando, y los registros son aceptados.
Pero dice que es obligatorio y en la hoja de calculo informativa NO aparecen en rojo.

Cita:
TipoUsoPosibleMultiOT
Especifica si el sistema informático de facturación permite llevar independientemente la facturación de varios obligados tributarios (valor "S") o solo de uno (valor "N"). Obligatorio en registros de facturación de alta y de anulación, y opcional en registros de evento.
Entiendo que es para indicar que el programa permite en teoria la facturacion de varios emisores.


Cita:
IndicadorMultiplesOT
Indicador de que el sistema informático, en el momento de la generación de este registro, está soportando la facturación de más de un obligado tributario. Este valor deberá obtenerlo automáticamente el sistema informático a partir del número de obligados tributarios contenidos y/o gestionados en él en ese momento, independientemente de su estado operativo (alta, baja...), no pudiendo obtenerse a partir de otra información ni ser introducido directamente por el usuario del sistema informático ni cambiado por él. El valor "N" significará que el sistema informático solo contiene y/o gestiona un único obligado tributario (de alta o de baja o en cualquier otro estado), que se corresponderá con el obligado a expedir factura de este registro de facturación. En cualquier otro caso, se deberá informar este campo con el valor "S". Obligatorio en registros de facturación de alta y de anulación, y opcional en registros de evento.
Entiendo que es para indicar si en el programa de facturacion tienes registrados al menos dos emisores. (envien registros o no), pero que en tu base de datos figuran. Es decir un programa tiene dos emisores en su bd, envia registros de alta de uno de ellos, pero al tener dos emisores registrados este campo sera true.

¿porque no aparecen en rojo en la hoja de calculo? (como obligatorios)

¿estoy interpretando bien esos campos?

Saludos !

Última edición por seccion_31 fecha: 29-03-2025 a las 09:30:32.
  #8  
Antiguo 29-03-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 488
Poder: 10
seccion_31 Va por buen camino
Cita:
Empezado por mqm Ver Mensaje
Buenas tardes.
Siguiendo con las pruebas, me delvuelve este error.
Las pruebas las realizo con el "CERTIFICADO FISICA PRUEBAS - 99999910G".

Si proceso al envio de 1-6 facturas , veo que se lo traga todo del tiron, todo Correcto..
Sin embargo al meter 10 facturas en el envio me devuelve el error que muestro en el codigo siguiente.

Es problema mio, del codigo o del certificado que estoy usando?
Le ha pasado a alguien más?
El log que muestras es raro. (dejando como he dicho que en su momento yo tambien tuve problemas con pruebas de varios registros, ahora ya no las hago).

Pero leyendolo:
Las 10 facturas han sido aceptadas, y tienen su CSV, es decir el envio SI ha sido exitoso y ha habido respuesta. No entiendo los errores posteriores. Si el envio no hubiera sido exitoso no se habria procesado la consulta y por tanto no habria registro de resultado.
  #9  
Antiguo 29-03-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 488
Poder: 10
seccion_31 Va por buen camino
Cita:
Empezado por ramherfer Ver Mensaje
A ver, yo sigo con el tema de comprobación del servicio soap esté activo o no. Soy cabezón por naturaleza

He estado probando con el tema de consulta vacia a la AEAT, pero me da errores "Consultando a la AEAT" y la verdad, tampoco he conseguido averiguar el motivo, ya que la consulta esta calcada de la que se realiza en la pantalla de consultas que funciona a la perfección.

Si la comprobación la realizo solo al entrar en la aplicación, tengo el inconveniente que si la aplicación no se cierra y el servicio deja de estar activo y se emite una o varias facturas, ya tenemos el lio montado.

Si la comprobación la realizo antes de realizar un envío, se va a poner a realizar consulta tras consulta hasta que detecte que el servicio está activo y la envie.

Todo ello desconociendo si hay algún limite de consultas, o si la operación de consultas continuadas puede desembocar en algún tipo de baneo por parte de mis amigos de la AEAT.

Entonces basandome en que la URL del EndPoint de mis amigos del fisco responde con una redirección, eso debiera bastar para indicar que está activo ya que si no se encuentra activo, no debiera de haber respuesta con esa redirección. Entonces con la siguiente función trato de hacer esa comprobación que activaría o desactivaría un flag y la imagen correspondiente en el StatusBar para que el usuario sea consciente en todo momento de como está el patio. La he probado con https://prewww1.aeat.es/wlpl/TIKE-CO.../VerifactuSOAP y con https://prewww1.aeat.es/wlpl/TIKE-CO...factuSOAP?wsdl y aparentemente cumple su función.

Código Delphi [-]
 
Function VerificarServicioSOAP(URL:String): Boolean;
var
  HTTP: TIdHTTP;
  SSLIO: TIdSSLIOHandlerSocketOpenSSL;

begin
  result := false;

  HTTP := TIdHTTP.Create(nil);
  SSLIO := TIdSSLIOHandlerSocketOpenSSL.Create(HTTP);

  try
    try
      // Forzar el uso de TLS 1.2
      SSLIO.SSLOptions.Method := sslvTLSv1_2;
      SSLIO.SSLOptions.Mode := sslmClient;
      HTTP.IOHandler := SSLIO;

      HTTP.Head(URL);
      //ShowMessage(Format('%s Disponible', [url]));
      result := true;
    except
      on E: EIdHTTPProtocolException do
      begin
        if (E.ErrorCode = 302) then begin
          //ShowMessage(Format('%s Disponible (Redireccionando)', [url]));
          result := True;
        end else begin
          //ShowMessage(Format('%s No Disponible: %s', [URL, E.Message]));
          result := False;
        end;
      end;
      on E: Exception do
        //ShowMessage(Format('%s No Disponible: %s', [URL, E.Message]));
    end;
  finally
    HTTP.Free;
  end;

end;

No se si estoy en un error. A ver que os parece y me alegraría que fuera válido.

Un saludo,

gracias por el aporte !

Hoy con el error del fin de semana, lamentablamente, sigue dando como valida (al menos en las pruebas que acabo de hacer).... cuando realmente no esta disponible. Si pongo una URL inexistente SI salta el error.


Cita:
Codigo[20009].UNSUCCESSFUL EXECUTION CAUSED BY AN UNAVAILABLE RESOURCE. REASON 00C90081, TYPE OF RESOURCE 00000210, AND RESOURCE NAME DBTCCSOR.TSTCCSOR.00000001. SQLCODE=-904, SQLSTATE=57011, DRIVER=4.33.43
en la version 2.1 , a cambio la consulta "nula" da como inactiva.

Saludos !
  #10  
Antiguo 29-03-2025
Avatar de ramherfer
ramherfer ramherfer is offline
Miembro
 
Registrado: may 2013
Ubicación: Valencia
Posts: 163
Poder: 14
ramherfer Va por buen camino
Cita:
Empezado por seccion_31 Ver Mensaje
gracias por el aporte !

Hoy con el error del fin de semana, lamentablamente, sigue dando como valida (al menos en las pruebas que acabo de hacer).... cuando realmente no esta disponible. Si pongo una URL inexistente SI salta el error.




en la version 2.1 , a cambio la consulta "nula" da como inactiva.

Saludos !
Ufff, pues a mi en estos momentos me aparece como activa. A ver si tengo suerte y en algún momento se desactiva y puedo probar la función.
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos.
  #11  
Antiguo 29-03-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 488
Poder: 10
seccion_31 Va por buen camino
Cita:
Empezado por ramherfer Ver Mensaje
Ufff, pues a mi en estos momentos me aparece como activa. A ver si tengo suerte y en algún momento se desactiva y puedo probar la función.

efectivamente ahora esta activa de nuevo. 11:05

saludos !

: )
Tema Cerrado


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Verifactu o por requerimiento (no-verifactu) ¿decisión del usuario? Maska10 Temas legales 2 07-12-2024 13:34:47
Demo de una applicación para una estación de enfermera con RAD Studio AgustinOrtu La Taberna 1 21-07-2015 18:41:35
Demo Delphi, EMail Caral Internet 1 19-12-2006 01:37:56
Demo de delphi 2005 mazinger Varios 2 18-12-2004 10:23:09
El Rave que viene con Delphi es una Demo? apicito Impresión 0 04-06-2003 12:33:36


La franja horaria es GMT +2. Ahora son las 10:17:53.


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
Copyright 1996-2007 Club Delphi