![]() |
![]() |
| 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
|
|||
|
|||
|
Buenas!
Hace tiempo que no toco este tema porque no tengo muchos clientes que usen el SII, pero casualmente esta semana un cliente nos ha dicho que recibe este error: Received content of invalid content-type setting: text/html - SOAP expects "text/xml" Lo cierto es que no sé por qué de repente da este error, porque no se ha cambiado nada. Uso el componente HTTPRIO. Lo tengo así: - SecureProtocols: TLS12 y TLS13 - En WSDL Location tengo: https://www2.agenciatributaria.gob.e...tEmitidas.wsdl (no sé si es necesario si luego asigno yo el puerto, addr y service a mano, pero bueno, ahí está) - Port y Service los tengo en blanco en el componente porque lo relleno a mano para poder alternar entre Pruebas y Producción de esta manera: Código:
if (ENTORNO_PRUEBAS) then
begin
HTTPRIO1.WSDLLocation := 'https://prewww1.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP';
HTTPRIO1.Service := 'siiService';
HTTPRIO1.Port := 'SuministroFactEmitidasPruebas';
end
else
begin
HTTPRIO1.WSDLLocation := 'https://www1.agenciatributaria.gob.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP';
HTTPRIO1.Service := 'siiService';
HTTPRIO1.Port := 'SuministroFactEmitidas';
end;
result := GetsiiSOAP(false,'',HTTPRIO1).SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas);
|
|
#2
|
||||
|
||||
|
Cita:
Buenas compañero. ¿Es posible que sea por la versión de windows? Tema de compatibilidades con TLS y eso. Saludos.
__________________
Be water my friend. |
|
#3
|
|||
|
|||
|
Cita:
Al cliente también le pasa y tiene W11 también. |
|
#4
|
||||
|
||||
|
Cita:
Pues no sé. Lo único que te puedo decir es que a mi me salía exactamente el mismo error intentando enviar datos con mi W7 a partir de la actualización que hicieron de seguridad en los servidores de la aeat y por eso tuve que cambiar mi máquina y ahora uso una con W10. Una prueba que podrías hacer es intentar enviar datos desde W10 a ver.... Saludos.
__________________
Be water my friend. |
|
#5
|
||||
|
||||
|
Cita:
A mi ese mensaje me apareció el otro día, haciendo pruebas en VERI*FACTU, al enviar la comunicación sin firmar, es decir no encontró el certificado y lo estaba intentando enviar sin firma. Lo comento, por si va por ahí los tiros y te sirve de algo. Suerte Un saludo |
|
#6
|
|||
|
|||
|
Cita:
No sé si el código estará bien, pero no he cambiado absolutamente nada (de hecho era un proyecto que llevaba años sin tocarse). Ha sido ahora al abrir el proyecto con Delphi 12.2 cuando he tenido que hacer algún cambio, pero sin embargo el cliente tiene la misma versión de siempre. |
|
#7
|
|||
|
|||
|
A ver, que esto está empezando a volverme loco...
He creado el XML y lo he revisado con la utilidad de "invocación de webservice de la AEAT" para comprobar si es válido: https://prewww1.aeat.es/static_files...teWSAEAT2.html La respuesta del servidor es "Correcto". Por lo tanto, entiendo que en el XML que genero está todo bien, pero por algún motivo el componente HTTPRIO no está leyendo la respuesta porque me devuelve el error: Received content of invalid content-type setting: text/html - SOAP expects "text/xml" Entiendo que en el SII no hay que firmar el XML, solo el envío. Esto lo hago en el evento OnNeedCertificate: Código:
for I := 0 to ACertificateList.Count - 1 do
begin
if i=strtointdef(comboCertificate.items.SelectedItem.Hint,0) then
begin
AnIndex := I;
Exit;
end;
end;
Código:
try
// se hace la llamada a la funcion suministrada por el WS
if ENTORNO_DE_PRUEBAS then
begin
HTTPRIO1.WSDLLocation := 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactEmitidas.wsdl';
HTTPRIO1.Service := 'siiService';
HTTPRIO1.Port := 'SuministroFactEmitidasPruebas';
HTTPRIO1.URL := 'https://prewww1.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP';
end
else
begin
HTTPRIO1.WSDLLocation := 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactEmitidas.wsdl';
HTTPRIO1.Service := 'siiService';
HTTPRIO1.Port := 'SuministroFactEmitidas';
HTTPRIO1.URL := 'https://www1.agenciatributaria.gob.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP';
end;
result := GetsiiSOAP(false,HTTPRIO1.URL,HTTPRIO1).SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas);
//mostrar los resultados devueltos por la llamada
for i := low(result.RespuestaLinea) to High(result.RespuestaLinea) do
begin
with result.RespuestaLinea[i] do
begin
//si el estado no es correcto, se muestran los errores
if EstadoRegistro <> EstadoRegistroType(0) then
begin
showmessage('Error ' + InttoStr(CodigoErrorRegistro)+#13#10+DescripcionErrorRegistro);
error:=DescripcionErrorRegistro;
end
else
begin
spain.Table1.edit;
spain.Table1.FieldByName('ID_HACIENDA').AsString:=result.CSV;
spain.Table1.Post;
end;
end;
end;
except
On E:Exception do
MessageDlg(E.Message, mtError, [mbOK], 0);
end;
He probado también a hacer el envío con el componente NetHTTPClient para ver qué pasa. En ese caso, como respuesta obtengo un código html de una página de la AEAT (eso explica el error si uso HTTPRIO, estoy obteniendo como respuesta una página html en vez de un xml). ¿Puede alguien confirmarme si las URL que estoy usando y la forma de llamar a GetsiiSOAP() es correcta? Algo me dice que el envío está abriendo otra página, o algo similar, y por eso devuelve html y no xml. La firma del envío la hago en el evento OnNeedCertificate del HTTPRIO. No creo que eso esté mal porque lleva funcionando así siempre. ¿Será que debo usar otro certificado distinto? ¿Hay que darse de alta en algún sitio primero? ¿Puedo usar certificados de prueba? ¿Debe el nombre del emisor coincidir con el nombre en el certificado? La verdad es que ya no sé qué más probar. Funcionaba todo bien hasta hace unos días (al menos a mi cliente). Y ahora tanto él como yo no podemos enviar al entorno de pruebas. |
|
#8
|
||||
|
||||
|
Cita:
Pues con más razón compañero, haz lo que te digo y prueba en una máquina con W10 a ver si W11 va a tener algún tipo de configuración especial con los nuevos protocolos de seguridad de la aeat. Saludos.
__________________
Be water my friend. |
|
#9
|
||||
|
||||
|
En windows 11 funciona correctamente. Lo único que te puedo decir es que pases un pequeño proyecto sólo con el envío de una factura y te lo puedo probar.
|
|
#10
|
|||
|
|||
|
Cita:
He incluido también el archivo .pas que se genera al importar el wsdl. Los datos del emisor, cliente, etc. son ficticios en este proyecto (en mis pruebas uso NIFs y nombres reales). Lo de asignar certificado tendrías que completarlo tu si quieres compilar y probar el código, pero no creo que haga falta porque tampoco tiene mucha ciencia el proceso de firmar el envío. Yo me he asegurado de que el certificado que uso para el envío es el correcto (mostrando en pantalla el nombre del certificado que se asigna al HTTPRIO en el momento de hacer anIndex := xxxx). Total, que espero que puedas decirme si tienes algo diferente. Me da rabia porque viendo los primeros mensajes del foro, hay mensajes míos de 2019 en el que conseguí enviar facturas sin problema con el mismo proyecto. Pero más rabia me da saber que hasta hace 1 semana mi cliente podía enviar sin problemas sin haber tocado nada ![]() OJO, probando ESTE mini proyecto, ahora PUEDO ENVIAR FACTURAS. Ahora sí que no entiendo nada. He copiado/pegado el código y los componentes de un proyecto a otro. Última edición por espinete fecha: 07-03-2025 a las 14:48:17. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco | keys | Internet | 4530 | Hace 1 Semana 14:09:59 |
| AEAT envio de datos vía Webservice problemas con WSDL | CelsoO | Internet | 11 | 09-10-2019 20:03:41 |
| webService Soap de la Administración Digital Española notific@ | apicito | Internet | 3 | 31-01-2017 11:25:28 |
| Error en Webservice funcion envio de sms | webmasterplc | Delphi para la web | 5 | 25-07-2013 20:10:29 |
| Problemas con envío de XML a un WebService | davidvamo | Internet | 1 | 13-02-2007 15:49:20 |
|