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
  #1  
Antiguo 18-08-2021
iMia iMia is offline
Miembro
 
Registrado: jul 2010
Posts: 141
Poder: 14
iMia Va por buen camino
Red face Gracias

Hola a tod@s...
Primero daros las gracias por compartir todos los conocimientos y dudas que os habéis ido encontrando con el TBAI (ese gran desconocido con el que acabas soñando...)
He conseguido, gracias a vosotros generar el xml, firmarlo (con el AutoFirmaCommandLine), generar el QR, enviarlo y casi lo más difícil, que lo acepten en Guipuzcoa...
Lo he hecho todo con Tokyo (10.2.3), si alguien tiene alguna duda... aquí estoy a vuestra disposición...

Sólo tengo un problemilla con la respuesta, por ahora leo la respuesta directamente a pelo en puro xml. (FindNode('Salida'), etc...) y funciona, pero no la puedo parsear al tipo IXMLTicketBaiResponse (generado automáticamente a partir del xsd)... que sería más elegante, legible y correcto.

intento esto:

Código Delphi [-]
          
var
  idHttp: TIdHttp;
  xmlResp: IXMLDocument;
  xmlTBResp: IXMLTicketBaiResponse;
begin
          ...
          idhttp.Request.ContentType := 'application/xml; charset=utf-8'; // Para evitar el 'ón' de la firma.
          strResponse := idHttp.Post(tblTBAI_Admin.FieldByName('URL_Envia').AsString.Trim + '\alta', RequestBody);
          if not strResponse.isEmpty then
          begin
            xmlResp := TXMLDocument.create(nil);
            strResponse := strResponse.Replace('ns2:TicketBaiResponse','TicketBaiResponse',[rfReplaceAll]); // probado de quitar y nada...
            CoInitialize(nil);
            xmlResp.LoadFromXML(strResponse);
            xmlResp.Active := true;
            responseFileName := strFileName + '_Respuesta_' + formatDateTime(TBAI_DATE_FORMAT_FILE, now()) + FILE_EXT_XML;
            xmlResp.SaveToFile(responseFileName);
            // Aquí podría recorrer xmlResp sin problema...
            if fileExists(responseFileName) then
            begin
              xmlTBResp := NewTicketBaiResponse();
              CoInitialize(nil);
              // Aquí falla con el EIntfCastError 'interface not supported' al intentar meterlo en el tipo TBAIResponse con el LoadTicketBaiResponse
              xmlTBResp := LoadTicketBaiResponse(responseFileName);
              xmlTBResp.Active := true;
              if (xmlTBResp <> nil) and (xmlTBResp.Salida <> nil) then
              ....

Tambien he probado con
Código Delphi [-]
              ...
              xmlTBResp := NewTicketBaiResponse();
              CoInitialize(nil);
              // Aquí falla con el EIntfCastError 'interface not supported' al intentar meterlo en el tipo TBAIResponse con el LoadTicketBaiResponse
              xmlTBResp := GetTicketBaiResponse(xmlResp);  /// Get del xml en vez de load, que es más directo y no hay que guardar a disco
              xmlTBResp.Active := true;
              if (xmlTBResp <> nil) and (xmlTBResp.Salida <> nil) then
              ...
y tampoco...

Si a alguien se le ocurre algo... si no lo dejaré moviéndome por los nodos a pelo...

Muchas gracias de nuevo...

Última edición por iMia fecha: 18-08-2021 a las 08:51:33.
Responder Con Cita
  #2  
Antiguo 18-08-2021
iMia iMia is offline
Miembro
 
Registrado: jul 2010
Posts: 141
Poder: 14
iMia Va por buen camino
Angry Gipuzkoa caido... 503 Service unavailable...

Pues eso... ahora mismito... 18/08/21 10:15h

Como si todos hiciésemos vacaciones...
Responder Con Cita
  #3  
Antiguo 18-08-2021
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Unhappy

Buenos dias, estoy probando a enviar ficheros individualmente a Guipuzcoa (incluso uno que ya estaba validado) y me da constantemente el error:

Error 415: SRVE0295E: Error reported: 415


Por lo menos deberia responder asi, porque lo he modificado:
Código:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:TicketBaiResponse xmlns:ns2="urn:ticketbai:emision">
    <Salida>
        <IdentificadorTBAI>TBAI-03815084M-290721-AfxBP2ingy2gF-031</IdentificadorTBAI>
        <FechaRecepcion>10-08-2021 13:27:51</FechaRecepcion>
        <Estado>00</Estado>
        <Descripcion>Recibido</Descripcion>
        <Azalpena>Jasota</Azalpena>
        <ResultadosValidacion>
            <Codigo>008</Codigo>
            <Descripcion>El mensaje ha sido modificado en tránsito o la firma no está bien realizada -- Reference URI="" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606)</Descripcion>
            <Azalpena>El mensaje ha sido modificado en tránsito o la firma no está bien realizada -- Reference URI="" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606)</Azalpena>
        </ResultadosValidacion>
        <ResultadosValidacion>
            <Codigo>010</Codigo>
            <Descripcion>Aviso: Posible error de encadenamiento.</Descripcion>
            <Azalpena>Abisua: Litekeena da kateamendu errorea gertatzea.</Azalpena>
        </ResultadosValidacion>
        <CSV>TBAId7462037-dab5-4091-97f5-1ca9ffedd8eb</CSV>
    </Salida>
</ns2:TicketBaiResponse>
¿A vosotros os sigue funcionando?
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #4  
Antiguo 18-08-2021
iMia iMia is offline
Miembro
 
Registrado: jul 2010
Posts: 141
Poder: 14
iMia Va por buen camino
Cita:
Empezado por defcon1_es Ver Mensaje
Buenos dias, estoy probando a enviar ficheros individualmente a Guipuzcoa (incluso uno que ya estaba validado) y me da constantemente el error:

Error 415: SRVE0295E: Error reported: 415


Por lo menos deberia responder asi, porque lo he modificado:
Código:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:TicketBaiResponse xmlns:ns2="urn:ticketbai:emision">
    <Salida>
        <IdentificadorTBAI>TBAI-03815084M-290721-AfxBP2ingy2gF-031</IdentificadorTBAI>
        <FechaRecepcion>10-08-2021 13:27:51</FechaRecepcion>
        <Estado>00</Estado>
        <Descripcion>Recibido</Descripcion>
        <Azalpena>Jasota</Azalpena>
        <ResultadosValidacion>
            <Codigo>008</Codigo>
            <Descripcion>El mensaje ha sido modificado en tránsito o la firma no está bien realizada -- Reference URI="" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606)</Descripcion>
            <Azalpena>El mensaje ha sido modificado en tránsito o la firma no está bien realizada -- Reference URI="" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606)</Azalpena>
        </ResultadosValidacion>
        <ResultadosValidacion>
            <Codigo>010</Codigo>
            <Descripcion>Aviso: Posible error de encadenamiento.</Descripcion>
            <Azalpena>Abisua: Litekeena da kateamendu errorea gertatzea.</Azalpena>
        </ResultadosValidacion>
        <CSV>TBAId7462037-dab5-4091-97f5-1ca9ffedd8eb</CSV>
    </Salida>
</ns2:TicketBaiResponse>
¿A vosotros os sigue funcionando?
guacho... mira el mensaje de encima...
Responder Con Cita
  #5  
Antiguo 18-08-2021
edari edari is offline
Miembro
 
Registrado: jun 2021
Posts: 178
Poder: 3
edari Va por buen camino
Cita:
Empezado por defcon1_es Ver Mensaje
Buenos dias, estoy probando a enviar ficheros individualmente a Guipuzcoa (incluso uno que ya estaba validado) y me da constantemente el error:

Error 415: SRVE0295E: Error reported: 415


Por lo menos deberia responder asi, porque lo he modificado:
Código:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:TicketBaiResponse xmlns:ns2="urn:ticketbai:emision">
    <Salida>
        <IdentificadorTBAI>TBAI-03815084M-290721-AfxBP2ingy2gF-031</IdentificadorTBAI>
        <FechaRecepcion>10-08-2021 13:27:51</FechaRecepcion>
        <Estado>00</Estado>
        <Descripcion>Recibido</Descripcion>
        <Azalpena>Jasota</Azalpena>
        <ResultadosValidacion>
            <Codigo>008</Codigo>
            <Descripcion>El mensaje ha sido modificado en tránsito o la firma no está bien realizada -- Reference URI="" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606)</Descripcion>
            <Azalpena>El mensaje ha sido modificado en tránsito o la firma no está bien realizada -- Reference URI="" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606)</Azalpena>
        </ResultadosValidacion>
        <ResultadosValidacion>
            <Codigo>010</Codigo>
            <Descripcion>Aviso: Posible error de encadenamiento.</Descripcion>
            <Azalpena>Abisua: Litekeena da kateamendu errorea gertatzea.</Azalpena>
        </ResultadosValidacion>
        <CSV>TBAId7462037-dab5-4091-97f5-1ca9ffedd8eb</CSV>
    </Salida>
</ns2:TicketBaiResponse>
¿A vosotros os sigue funcionando?

Exactamente igual por aquí. No deben tener buen día. Algo tienen mal.



El error 008 "el mensaje ha sido modificado en tránsito o la firma no está bien realizada" no me debería salir porque he enviado sin problemas otros veces atrás y todo iba o casi...


...y digo casi porque les tengo remitido una consulta sobre el segundo error que te/me da, el de encadenamiento de facturas.


Hasta ahora si yo "jugando" provocaba un error de encadenamiento en la primera factura de un paquete (imaginemos) de 9 facturas, la primera me iba con error de encadenamiento (correcto y con sentido porque así había ocurrido) y las siguientes 8 facturas me subían perfectas (sin error de encadenamiento)


Desde finales de julio TODAS LAS FACTURAS ME SUBEN SIEMPRE CON ERROR DE ENCADENAMIENTO, cosa que no entiendo el motivo, y como digo tengo hecha una consulta a soporte de Guipuzcoa sin contestar todavía.


Hsata aquí puedo leer.
Responder Con Cita
  #6  
Antiguo 18-08-2021
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Vale, el fallo estaba en mi llamada a CURL, que no le habia puesto el parametro -H "Content-type: application/xml;charset=UTF-8"




Código:
CURL -H "Content-type: application/xml;charset=UTF-8" 
-d @C:\Test\tmpFacBAI.xml_signed.xml 
-o C:\Test\Output.xml 
https://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #7  
Antiguo 19-08-2021
iMia iMia is offline
Miembro
 
Registrado: jul 2010
Posts: 141
Poder: 14
iMia Va por buen camino
Arrow

Cita:
Empezado por iMia Ver Mensaje
Hola a tod@s...
Primero daros las gracias por compartir todos los conocimientos y dudas que os habéis ido encontrando con el TBAI (ese gran desconocido con el que acabas soñando...)
He conseguido, gracias a vosotros generar el xml, firmarlo (con el AutoFirmaCommandLine), generar el QR, enviarlo y casi lo más difícil, que lo acepten en Guipuzcoa...
Lo he hecho todo con Tokyo (10.2.3), si alguien tiene alguna duda... aquí estoy a vuestra disposición...

Sólo tengo un problemilla con la respuesta, por ahora leo la respuesta directamente a pelo en puro xml. (FindNode('Salida'), etc...) y funciona, pero no la puedo parsear al tipo IXMLTicketBaiResponse (generado automáticamente a partir del xsd)... que sería más elegante, legible y correcto.

intento esto:

Código Delphi [-]
          
var
  idHttp: TIdHttp;
  xmlResp: IXMLDocument;
  xmlTBResp: IXMLTicketBaiResponse;
begin
          ...
          idhttp.Request.ContentType := 'application/xml; charset=utf-8'; // Para evitar el 'ón' de la firma.
          strResponse := idHttp.Post(tblTBAI_Admin.FieldByName('URL_Envia').AsString.Trim + '\alta', RequestBody);
          if not strResponse.isEmpty then
          begin
            xmlResp := TXMLDocument.create(nil);
            strResponse := strResponse.Replace('ns2:TicketBaiResponse','TicketBaiResponse',[rfReplaceAll]); // probado de quitar y nada...
            CoInitialize(nil);
            xmlResp.LoadFromXML(strResponse);
            xmlResp.Active := true;
            responseFileName := strFileName + '_Respuesta_' + formatDateTime(TBAI_DATE_FORMAT_FILE, now()) + FILE_EXT_XML;
            xmlResp.SaveToFile(responseFileName);
            // Aquí podría recorrer xmlResp sin problema...
            if fileExists(responseFileName) then
            begin
              xmlTBResp := NewTicketBaiResponse();
              CoInitialize(nil);
              // Aquí falla con el EIntfCastError 'interface not supported' al intentar meterlo en el tipo TBAIResponse con el LoadTicketBaiResponse
              xmlTBResp := LoadTicketBaiResponse(responseFileName);
              xmlTBResp.Active := true;
              if (xmlTBResp <> nil) and (xmlTBResp.Salida <> nil) then
              ....

Tambien he probado con
Código Delphi [-]
              ...
              xmlTBResp := NewTicketBaiResponse();
              CoInitialize(nil);
              // Aquí falla con el EIntfCastError 'interface not supported' al intentar meterlo en el tipo TBAIResponse con el LoadTicketBaiResponse
              xmlTBResp := GetTicketBaiResponse(xmlResp);  /// Get del xml en vez de load, que es más directo y no hay que guardar a disco
              xmlTBResp.Active := true;
              if (xmlTBResp <> nil) and (xmlTBResp.Salida <> nil) then
              ...
y tampoco...

Si a alguien se le ocurre algo... si no lo dejaré moviéndome por los nodos a pelo...

Muchas gracias de nuevo...
Me auto-respondo...
Lo encontré...
el problema estaba en el namespace.

en la línea que yo decía que había probado de quitar..

Código Delphi [-]
            
        strResponse := strResponse.Replace('ns2:TicketBaiResponse','TicketBaiResponse',[rfReplaceAll]); // probado de quitar y nada...

La había probado de quitar, pero anteriormente también había quitado el sufijo del namespace ':ns2' y no me ligaba de ninguna forma...
Dejando el mensaje tal y como llega, sin manipular, funciona bien

Código Delphi [-]
              xmlResp := TXMLDocument.create(nil);
              CoInitialize(nil);
              xmlResp.Active := TRUE;
              xmlResp.LoadFromXML(strResponse);
              xmlTBResp := LoadTicketBaiResponse(xmlResp);
pero al tratar el objeto Salida, está vacio ya que lo trata con el ns

por lo que hay que eliminar las 2 referencias al namespace... ':ns2' y 'ns2:'

Entonces va bien...

Saludos...
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 Semanas 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 12:47:17.


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