Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SDK Componente Verifactu para Delphi 7+ - Subforo Peticiones (https://www.clubdelphi.com/foros/forumdisplay.php?f=83)
-   -   Como hacer un envio de un xml utilizando el dll (https://www.clubdelphi.com/foros/showthread.php?t=97802)

TheRafa 29-10-2025 14:48:32

Como hacer un envio de un xml utilizando el dll
 
Hola Buenos días...
Desde nuestra aplicativo, nos gustaría hacer el envío de un xml que ya hemos generado completamente utilizando el envío de VERIFACTU, aunque claro, la aplicación que ejecutáramos no tiene que ser visual, y que lo hiciéramos con un ShellExecute. Se ha generado o se puede generar algún ejecutable no visual que haga el envío?

Muchas gracias y un saludo.

seccion_31 29-10-2025 15:11:58

Cita:

Empezado por TheRafa (Mensaje 569104)
Hola Buenos días...
Desde nuestra aplicativo, nos gustaría hacer el envío de un xml que ya hemos generado completamente utilizando el envío de VERIFACTU, aunque claro, la aplicación que ejecutáramos no tiene que ser visual, y que lo hiciéramos con un ShellExecute. Se ha generado o se puede generar algún ejecutable no visual que haga el envío?

Muchas gracias y un saludo.

Entiendo que el XML lo habeis creado manualmente. Para enviarlo tendras que usar el comando curl o alguno similar, que ha sido mencionado en otros hilos del foro.

El componente como tal, no envia XMLs (en el sentido estricto de enviar un archivo externo).

Saludos !

Neftali [Germán.Estévez] 29-10-2025 15:50:35

Recomiendo leer la Guía de estilo (hace tiempo que no lo hago, pero voy a empezar a hacerlo de nuevo...).
Yo personalmente no he entendido nada.:confused::confused:

Carlos 29-10-2025 21:58:17

Cita:

Empezado por TheRafa (Mensaje 569104)
Hola Buenos días...
Desde nuestra aplicativo, nos gustaría hacer el envío de un xml que ya hemos generado completamente utilizando el envío de VERIFACTU, aunque claro, la aplicación que ejecutáramos no tiene que ser visual, y que lo hiciéramos con un ShellExecute. Se ha generado o se puede generar algún ejecutable no visual que haga el envío?

Muchas gracias y un saludo.

Yo lo hago así (no es Delphi pero la idea se entiende):

Código Delphi [-]
ShellExecute( AMPAArra[1][1][2][1][1]:hWnd, Nil, C:\Desarrol\Treball\Utilitats\CURL\BIN\curl.exe, " -k --connect-timeout 60 -m 300 -s -S -L --header" +  "Content-Type: text/xml;charset=UTF-8" +
 " --cert C:\Particular\Ampa\Ampa32\firma_digital\79999999B_LUIS__R__B99999923_20241111.pem --key C:\Particular\Ampa\firma_digital\799999999B_LUIS__R__B99999923_20241111.pem 
--data @C:\DESARROL\TREBALL\BD\BL\VERIFACTU\2025\VER-20251025-190839-455.xml https://prewww1.aeat.es/wlpl/TIKE-CO.../VerifactuSOAP -v 
--output C:\DESARROL\TREBALL\BD\BL\VERIFACTU\2025\VER-20251025-190839-455.xml-Resposta_02.XML", Nil, If( lShowCMD, 1, 0 ) )

Es decir, con la instrucción ShellExecute() utilizo curl.exe para enviar en una sesión CMD, uno de los parámetros de ShellExecute() (el último en este caso), sirve para que se vea la ejecución de curl.exe o no.

Yo lo tengo en bucle con 'n' intentos, si la ejecucución falla, en la siguiente 'n' ejecución cambio el valor de lShowCMD y así veo por pantalla que está trabajando.

TheRafa 30-10-2025 13:56:47

Error 56 con Curl
 
Si ejecuto este curl para enviar directamente el xml, todo el rato me da error 56. Alguien que pueda ayudarme?


Código:

curl.exe -k --tlsv1.2 --connect-timeout 60 -m 300 --data "@NFra_2517046.xml" --cert-type P12 --cert "CertDigital.p12" --pass "*****" --header
"Content-Type: application/xml;charset=UTF-8" -X POST https://prewww1.aeat.es/wlpl/TIKE-CO.../VerifactuSOAP -o respuesta.XML

% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 3793 0 0 100 3793 0 2710 0:00:01 0:00:01 --:--:-- 2713
curl: (56) Recv failure: Connection was reset



Gracias de antemano.

ermendalenda 14-11-2025 22:54:21

Os rexomiendo bajar los tiemours a 60 max
Cuando tienen retardos de rspuestas podeis obtwner un aceptafo con errores, y mejor wnviarlo despues como incidencia
El -k lo estoy reevaluando, puede dar problemas en wl futuro

ermendalenda 15-11-2025 05:57:18

Por otro lado, forzar tlsv1.2 no me parece acertado, dejad que curl negocie el tls correcto,, que lo hace muy bien, la Aeat está ya aceptando tlsv1.3, para probar errores y si añadis a la llamada un -trace "pathdestino.txt" (quitando lo de forzar tlsv1.2) también podeis ver la traza completa en el archivo de destino, donde se produce el error y qué protocolo es el que negocia curl, que posiblemente sea:
"== Info: TLSv1.3 (OUT), TLS handshake, Client hello (1):"
"== Info: TLSv1.3 (IN), TLS handshake, Server hello (2)"


La franja horaria es GMT +2. Ahora son las 06:30:17.

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