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 02-06-2021
tejano tejano is offline
Miembro
 
Registrado: dic 2020
Posts: 129
Poder: 4
tejano Va por buen camino
Cita:
Empezado por Band Ver Mensaje
Buenas,

estoy usando el autofirma del gobierno (desde línea de comandos) y me encuentro algo curioso cuando firmo.

Lo primero, firmo el fichero de la siguiente manera:

Código Delphi [-]
signParams := 'sign -format XAdES ' +
                '-config xadesSignFormat="XAdES Enveloped" ' +
                '-xml ' + 
                '-i "ficheroxmlorigen.xml" ' +
                '-o "ficheroxmlfirmado.xml" ' + 
                '-store pkcs12:"sello_entidad_act.p12" ' + // certificado prueba izenpe
                '-filter "imported" ' + 
                '-password "IZDesa2021" ';

Después ejecuto el autofirmaCommandLine.exe con estos parámetros. Me devuelve una respuesta correcta y cuando abro el fichero firmado, me encuentro que me pone una parte antes del tag de apertura de <T:TicketBai>

Código:
<?xml version="1.0" encoding="UTF-8"?><ds:Signature xmlns:ds="htxp://ww.w3.org/2000/09/xmldsig#" Id="Signature-8fa9da36-336e-45d6-b3dd-b71754940975-Signature"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="htxp://ww.w3.org/TR/2001/REC-xml-c14n-20010315"/><ds:SignatureMethod Algorithm="htxp://ww.w3.org/2001/04/xmldsig-more#rsa-sha512"/><ds:Reference Id="Reference-7022344d-8098-40e2-85a1-9b6fac8e7fe2" Type="htxp://ww.w3.org/2000/09/xmldsig#Object" URI="#Object-85d35cbb-4970-4879-9b8f-36a791abaa3e"><ds:Transforms><ds:Transform Algorithm="htxp://ww.w3.org/TR/2001/REC-xml-c14n-20010315"/></ds:Transforms><ds:DigestMethod Algorithm="htxp://ww.w3.org/2001/04/xmlenc#sha512"/><ds:DigestValue>Ez+74wZNxKZZKtEqJ316cqdmFS8PleD/FYXLGPJlLRbzy9m3cBPhnBlVBfy5bfXO1v7sDrWDytdpIC6j7G+sqw==</ds:DigestValue></ds:Reference><ds:Reference Type="htxp://uri.etsi.org/01903#SignedProperties" URI="#Signature-8fa9da36-336e-45d6-b3dd-b71754940975-SignedProperties"><ds:DigestMethod Algorithm="htxp://ww.w3.org/2001/04/xmlenc#sha512"/><ds:DigestValue>UlcCCa03GKj736PTmA4XE75OKg1t0H5s6Wy6wnNYK4CQz8RhSI+E5qawUZlTaR8A4HYC7an1gZ7uYLcOzOBfyw==</ds:DigestValue></ds:Reference><ds:Reference URI="#Signature-8fa9da36-336e-45d6-b3dd-b71754940975-KeyInfo"><ds:DigestMethod Algorithm="htxp://ww.w3.org/2001/04/xmlenc#sha512"/><ds:DigestValue>Qi/soITpAWmbm4ijl/kbUO24PpZosIDoBFjT7idNWrZRShw3+7WxehTxFYy0+BZI8vaHegq0p4ybuzQ1+zQfUA==</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue Id="Signature-8fa9da36-336e-45d6-b3dd-b71754940975-SignatureValue">MSzBViTRZjMXM6kpQXs/AD/eMTfCnY/iN5NJMeYjLjVF4K/f5xzXSJjjIQFpc6zTtN3WzYGtKnCISOqXQfYy0AsxH6MEtQsGjUGVVNEyjOyRN4n4tiP6YFhZSesAZkkY9J03qOxWxAN/KphKqCi2iQkflEpuCqgVta51zfop9sLf8w/8iNzSj3JbUz88LBihlpMSgPTCv5UFXvGczji4dq1P5wkqlT5Mfbwt75zRKnwBtuhCIIFm/0ZqrMGeCspHXEMKfR2LIUIXVVkQvG5LaUTL9LbizIPEXkFxzOzFZxATTGrv9s/FxJ9so2ro6RlWYHqiHXf5rmk+Lvz1uTbsZg==</ds:SignatureValue><ds:KeyInfo Id="Signature-8fa9da36-336e-45d6-b3dd-b71754940975-KeyInfo"><ds:X509Data><ds:X509Certificate>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</ds:X509Certificate></ds:X509Data><ds:KeyValue><ds:RSAKeyValue><ds:Modulus>2iBFxg9FDP2ilY7AEL0EFIVKSK8k3rGIx+lrPMta+TeGSgyHUIn+iv3KmhBBduFyHVzD7M9bvwc+Tgqvpe7y5VbY9+4w1mbwzuZqKhQELtGX9+uDVOeDZiTrBxJtm/7pp4X55QrsuA1JhL7Amfc4IwX8WZG0Wc0S0/QblBax1sTQ4wxb7rOnOfMSAqcdZ0XHCM6l7TQrwgmQ4gZW35BsXbgO1uT9TZGhhDNaZDwzcL4qSc7FiPGoUuTLD3Ob4H4oXvGcbDxOLZ/VUWvDQCZiWY8iPXP4of2LKgnSdDPzb3XVhqAk4P/tuQnNALhvcjob//zyCxfBupfYII29DC5sEw==</ds:Modulus><ds:Exponent>AQAB</ds:Exponent></ds:RSAKeyValue></ds:KeyValue></ds:KeyInfo><ds:Object Id="Object-85d35cbb-4970-4879-9b8f-36a791abaa3e" MimeType="text/xml"><T:TicketBai xmlns:T="urn:ticketbai:emision">

y otra parte al final del documento, después del tag </T:TicketBai>

Código:
</T:TicketBai></ds:Object><ds:Object><xades:QualifyingProperties xmlns:xades="htxp://uri.etsi.org/01903/v1.3.2#" Id="Signature-8fa9da36-336e-45d6-b3dd-b71754940975-QualifyingProperties" Target="#Signature-8fa9da36-336e-45d6-b3dd-b71754940975-Signature" xmlns:ds="htxp://ww.w3.org/2000/09/xmldsig#"><xades:SignedProperties Id="Signature-8fa9da36-336e-45d6-b3dd-b71754940975-SignedProperties"><xades:SignedSignatureProperties><xades:SigningTime>2021-06-02T11:04:53+02:00</xades:SigningTime><xades:SigningCertificate><xades:Cert><xades:CertDigest><ds:DigestMethod Algorithm="htxp://ww.w3.org/2001/04/xmlenc#sha512"/><ds:DigestValue>lF2EMvVHlIK9Aa4kMV3nRJ1/JiKlclPKKqMNR/tB0bEWzijflNYzT204iuMKfWTEDRu1+k++TT66aBV/9fX7Ow==</ds:DigestValue></xades:CertDigest><xades:IssuerSerial><ds:X509IssuerName>CN=CA de Ciudadanos y Entidades (4) - DESARROLLO, OU=NZZ Ziurtagiri publikoa - Certificado publico SCI, O=IZENPE S.A., C=ES</ds:X509IssuerName><ds:X509SerialNumber>7038</ds:X509SerialNumber></xades:IssuerSerial></xades:Cert></xades:SigningCertificate></xades:SignedSignatureProperties><xades:SignedDataObjectProperties><xades:DataObjectFormat ObjectReference="#Reference-7022344d-8098-40e2-85a1-9b6fac8e7fe2"><xades:Description/><xades:ObjectIdentifier><xades:Identifier Qualifier="OIDAsURN">urn:oid:1.2.840.10003.5.109.10</xades:Identifier><xades:Description/></xades:ObjectIdentifier><xades:MimeType>text/xml</xades:MimeType><xades:Encoding/></xades:DataObjectFormat></xades:SignedDataObjectProperties></xades:SignedProperties></xades:QualifyingProperties></ds:Object></ds:Signature>

Si envio el fichero tal cual después de firmarlo, obtengo la siguiente respuesta:

Código:
<Codigo>002</Codigo>
<Descripcion>Error: El fichero de alta TicketBAI no cumple el esquema XSD. Detalle del error: cvc-complex-type.2.4.b: The content of element 'T:TicketBai' is not complete. One of '{"htxp://ww.w3.org/2000/09/xmldsig#":Signature}' is expected.</Descripcion>
Lo cual es normal, ya que no estoy cumpliendo con el esquema.
Pero si luego simplemente pongo bien a mano la firma donde toca, como está en sus ejemplos, me devuelve la siguiente respuesta:

Código:
<Salida>
        <IdentificadorTBAI>TBAI-B12345679-270819-LyOCa+YH/nwde-017</IdentificadorTBAI>
        <FechaRecepcion>02-06-2021 11:39:48</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 -- SignedInfo failed to verify. Reference URI="#Object-76fa901b-053f-4a52-a1c7-99ea25d23551" failed to verify. Reference URI="#Signature-cf5f9ae0-96fb-4306-bd15-709cde0c3501-SignedProperties" failed to verify. Reference URI="#Signature-cf5f9ae0-96fb-4306-bd15-709cde0c3501-KeyInfo" 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 -- SignedInfo failed to verify. Reference URI="#Object-76fa901b-053f-4a52-a1c7-99ea25d23551" failed to verify. Reference URI="#Signature-cf5f9ae0-96fb-4306-bd15-709cde0c3501-SignedProperties" failed to verify. Reference URI="#Signature-cf5f9ae0-96fb-4306-bd15-709cde0c3501-KeyInfo" 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>TBAIab94d122-fb84-4828-9e5e-45f565ed7536</CSV>
    </Salida>

Así que me lo acepta pero me sale este mensaje: "El mensaje ha sido modificado en tránsito o la firma no está bien realizada" que es correcto, ya que no se debe modificar el fichero una vez firmado (o creo que es a causa de esto).

Agradecería si alguien sabe porque la firma no sale donde toca (supongo que debe ser antes del cierre del tag <T:TicketBai> ya que así sale en sus ejemplos) Si es que estoy generando algo mal en el xml o algo me falla en los parámetros del autofirma.

Gracias!
Yo utilizo este comando para firmarlo y creo que va bien, aunque todavía no he podido enviar ninguna por el problema con el curl

AutoFirmaCommandLine.exe sign
-i fichero_origen
-o fichero_destino
-store pkcs12:certificado_p12
-password password_certificado_p12
-filter certificado_p12
-format xades -xml
-config "format=XAdES Enveloped
\npolicyIdentifier=https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_
especificaciones_de_la_firma_electronica_v1_0.pdf
\npolicyIdentifierHash=Quzn98x3PMbSHwbUzaj5f5KOpiH0u8bvmwbbbNkO9Es=
\npolicyIdentifierHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
\npolicyQualifier=https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_
especificaciones_de_la_firma_electronica_v1_0.pdf
Responder Con Cita
  #2  
Antiguo 02-06-2021
tejano tejano is offline
Miembro
 
Registrado: dic 2020
Posts: 129
Poder: 4
tejano Va por buen camino
Emails Batuz DFB

Buenas tardes,

Me acaba de llegar este email de Batuz, diciendo que cambian el email para consultas.

Os adjunto los nuevos emails:

Puede dirigir sus consultas relativas al proyecto Batuz a las siguientes direcciones:
- Consultas fiscales: batuz.zergak@bizkaia.eus.
- Consultas técnicas: batuz.programak@bizkaia.eus.
Responder Con Cita
  #3  
Antiguo 03-06-2021
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por tejano Ver Mensaje
Me acaba de llegar este email de Batuz, diciendo que cambian el email para consultas.

Actualizados los Mails en el mensaje inicial.
Los nuevos entran en funcionamiento a partir del 8 de Junio; Y desde ese momento el anterior buzon (batuz@bizkaia.eus) se cierra.

Gracias por el aviso.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 03-06-2021
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
En general, bastante de acuerdo con lo comentado por [keys].
Anular y rectificar son 2 conceptos distintos.
https://rodriguezyasoc.com/lo-una-fa...ctura-anulada/


Cita:
Empezado por rci Ver Mensaje
Si se envía una anulación de una factura a TicketBAI y no se puede volver a utilizar esa numeración para otra factura, entendemos que por la parte de hacienda queda registrada esa factura como anulada pero....

¿qué ocurre en la parte del emisor de la factura?
Dependerá de cómo se gestione en tu programa.
Puedes borrarla, o dejarla marcada como "anulada", eso es una gestión que quedará para tu programa y de cómo decidáis hacerlo.
En ningún caso "desaparece" de tu sistema, porque toda la información referente a TicketBAI/Batuz debes conservarla.

Cita:
Empezado por rci Ver Mensaje
¿qué tiene que hacer con esa factura? ¿Eliminarla?
Le quedará un vacio en la numeración y esto no es posible. El concepto “anular” no existe y nos crea muchas dudas.
Personalmente, optaría por "marcarla como anulada". Aunque eso es una decisión vuestra.
Sea cual sea la decisión, debes guardar la información necesaria, para si es necesario justificar ese salto (por una anulación).

Cita:
Empezado por rci Ver Mensaje
El concepto “anular” no existe y nos crea muchas dudas.
Como he dicho antes, si que existe, aunque es poco probable.
Básicamente se anula una factura, cuando el trabajo facturado (por ejemplo) no se ha realizado. En ese caso no puedes "rectificar", porque estarías facturando y rectificando sobre un trabajo que no se ha llevado a cabo.
En ese caso, la factura inicial, se anula, no se rectifica.

Entiendo que en general son casos puntuales.
Si en tu sistema aparecen "muchas" facturas anuladas, es posible que alguien en hacienda decida hacerte una visita...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 03-06-2021
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 143
Poder: 4
rci Va por buen camino
Dudas concepto "Anular factura"

Muchas gracias Keys y Neftali por las respuestas.



Saludos
Responder Con Cita
  #6  
Antiguo 03-06-2021
Band Band is offline
Miembro
 
Registrado: may 2021
Posts: 35
Poder: 0
Band Va por buen camino
Ya he dado con el error que tenía en lo de la firma. Estaba poniendo el "format=XAdES Enveloped" mal. Esta que acabo de poner es la manera correcta y yo lo hacía así: format="XAdES Enveloped". Esto hacía que me partiera la firma y no la colocase bien.


Os comento otro detalle en el envío del fichero con CURL, por si alguien se encuentra con esto.

Yo hasta ahora enviaba el fichero así:
Código Delphi [-]
'-d "@' + nombreArchivo+ '" '

Con lo que me encontraba todo el rato con este "error":

Código:
Reference URI="" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606)

La manera correcta o que a mi me funciona es así:
Código Delphi [-]
'--data-binary "@' + nombreArchivo + '" '

Eso, dicho sin mirármelo a fondo, creo que se debe a que con el -d a secas probablemente se esté enviando algún carácter mal codificado (o creo que por aquí va la cosa). Luego hay una discordancia con el fichero firmado ya que "se ha modificado algo" después de la firma cuando lo recibe el servicio.

Saludos!
Responder Con Cita
  #7  
Antiguo 03-06-2021
landaga landaga is offline
Miembro
 
Registrado: may 2021
Posts: 15
Poder: 0
landaga Va por buen camino
Cabeceras respuesta curl

Yo tambien utilizo curl para enviar el LROE pero no veo la forma de recibir las cabeceras de la respuesta, el cuerpo de la respuesta si lo recibo y lo archivo pero no los headers.
El asunto es que algunas veces no envia nada y como en estos casos no devuelve nada en el body no se cual es la razón del fallo.
Alguien lo tiene resuelto?
Gracias
Responder Con Cita
  #8  
Antiguo 03-06-2021
bilbur bilbur is offline
Miembro
 
Registrado: dic 2019
Posts: 60
Poder: 5
bilbur Va por buen camino
Cita:
Empezado por landaga Ver Mensaje
Yo tambien utilizo curl para enviar el LROE pero no veo la forma de recibir las cabeceras de la respuesta, el cuerpo de la respuesta si lo recibo y lo archivo pero no los headers.
El asunto es que algunas veces no envia nada y como en estos casos no devuelve nada en el body no se cual es la razón del fallo.
Alguien lo tiene resuelto?
Gracias

Mira si te sirve esto:

Código PHP:
 $response curl_exec($soap_do); 
    
$size_response curl_getinfo($soap_doCURLINFO_HEADER_SIZE);
    
$header_response substr($response0$size_response);
    
$body_response substr($response$size_response);

    function 
get_headers_from_curl_response($header_response)
    {
    
$headers_r = array();
    foreach (
explode("\r\n"$header_response) as $i => $line)
    if (
$i !== 0)
    {
    list (
$key$value) = explode(': '$line);
    
$headers_r[$key] = utf8_encode($value);
    }
    return 
$headers_r;
    }    
$headers_r get_headers_from_curl_response($header_response);
    
$respuesta_tipo $headers_r['eus-bizkaia-n3-tipo-respuesta'];
    
var_dump($headers_r); 
Responder Con Cita
  #9  
Antiguo 04-06-2021
landaga landaga is offline
Miembro
 
Registrado: may 2021
Posts: 15
Poder: 0
landaga Va por buen camino
Gracias Bilbur pero lo estoy haciendo por línea de comandos.
Responder Con Cita
  #10  
Antiguo 04-06-2021
tejano tejano is offline
Miembro
 
Registrado: dic 2020
Posts: 129
Poder: 4
tejano Va por buen camino
Cita:
Empezado por landaga Ver Mensaje
Gracias Bilbur pero lo estoy haciendo por línea de comandos.
Yo también lo hago por línea de comandos y me devuelve unos caracteres muy extraños.

Landaga, puedes enviar la línea de comando?

Yo lo envío de esta forma
c:\curl\1\bin\curl --insecure --cert-type P12 --cert c:\amis\exes\CERTIFICADO.p12:PASSWORD -H "Accept-Encoding:gzip" -H "Content-Encoding:gzip" -H "Content-Type:application/octet-stream" -H "eus-bizkaia-n3-version:1.0" -H "eus-bizkaia-n3-content-type:application/xml" -H "eus-bizkaia-n3-data:{\"con\":\"LROE\",\"apa\":\"1.1\",\"inte\":{\"nif\":\"A48190839\",\"nrs\":\"TECNICAS DE REFRACTARIOS S.A.U\"},\"drs\":{\"mode\":\"240\",\"ejer\":\"2021\"}}" -v "https://pruesarrerak.bizkaia.eus/N3B4001M/kontsulta" --data-binary "@c:\tmp\consulta.gz" --output c:\tmp\respuesta.xml

Y devuelve algo así.

‹ ªUþ‹ ÿ101368_peticion_Resp.xml ¥R]oÛ0 ü+FßkÙi¶µ'Àðœ!ÅævÚWC–ÕTmy¢„ýõ£ƒ6éöRxGñHî”Ä*´É¯r•¯¯góh!¤óV`Þk§[™ªŸt¡ïœ(Ž^¡Á¾ïL^(|?»wnÄ„±Ýn6ÂùÇPydwÚí…S[-þ°˦VLá_¯zT¯¯kj]ÇtÞö¯Ôï&¨oãš*Â=¶g2Ñ(©¬àðÛ´ª3œä€=Å”µóÅÀŽ1T¾‘ÇDH©—¬F’“Ú <‹HêáVYœ‚8$þ@þ*¬Ôô‚Ï¢‰0¬šNoEk6V7Þ ;qÅrÁÓùe|]^\› ¤£ê:Ý,LßXUŠGZÝH-:¾É³b™¥Uð#Ê|Q¦Ù&-—«*¨Â4¼öŸRšýƒþìäY:9Ûšg9,”¼GÍÏ£¯çÓZA<OâoÉì °×O*ðýZlõp¢Èƒ÷$ä{N
%}tÖ /Ȫ·°fbŸø®üðîJì ìÅ%sª

Gracias
Saludos
Responder Con Cita
  #11  
Antiguo 04-06-2021
landaga landaga is offline
Miembro
 
Registrado: may 2021
Posts: 15
Poder: 0
landaga Va por buen camino
Cita:
Empezado por tejano Ver Mensaje
Yo también lo hago por línea de comandos y me devuelve unos caracteres muy extraños.

Landaga, puedes enviar la línea de comando?

Yo lo envío de esta forma
c:\curl\1\bin\curl --insecure --cert-type P12 --cert c:\amis\exes\CERTIFICADO.p12:PASSWORD -H "Accept-Encoding:gzip" -H "Content-Encoding:gzip" -H "Content-Type:application/octet-stream" -H "eus-bizkaia-n3-version:1.0" -H "eus-bizkaia-n3-content-type:application/xml" -H "eus-bizkaia-n3-data:{\"con\":\"LROE\",\"apa\":\"1.1\",\"inte\":{\"nif\":\"A48190839\",\"nrs\":\"TECNICAS DE REFRACTARIOS S.A.U\"},\"drs\":{\"mode\":\"240\",\"ejer\":\"2021\"}}" -v "https://pruesarrerak.bizkaia.eus/N3B4001M/kontsulta" --data-binary "@c:\tmp\consulta.gz" --output c:\tmp\respuesta.xml

Y devuelve algo así.

‹ ªUþ‹ ÿ101368_peticion_Resp.xml ¥R]oÛ0ü+FßkÙi¶µ'Àðœ!ÅævÚWC–ÕTmy¢„ýõ£ƒ6éöRxGñHî”Ä*´É¯r•¯¯góh!¤óV`Þk§[™ªŸt¡ïœ(Ž^¡Á¾ïL^(|?»wnÄ„±Ýn6ÂùÇPydwÚí…S[-þ°Ë¦VLá_¯zT¯¯kj]ÇtÞö¯Ôï&¨oãš*Â=¶g2Ñ(©¬àðÛ´ª3œä€=Å”µóÅÀŽ1T¾‘ÇDH©—¬F’“Ú<‹HêáVYœ‚8$þ@þ*¬Ôô‚Ï¢‰0¬šNoEk6V7Þ ;qÅrÁÓùe|]^\› ¤£ê:Ý,LßXUŠGZÝH-:¾É³b™¥Uð#Ê|Q¦Ù&-—«*¨Â4¼öŸRšýƒþìäY:9Ûšg9,”¼GÍÏ£¯çÓZA<OâoÉì°×O*ðýZlõp¢Èƒ÷$ä{N
%}tÖ /Ȫ·°fbŸø®üðîJì ìÅ%sª

Gracias
Saludos

esos caractertes son el gzip de batuz, si lo abres con un descompresor de archivos te da el xml de hacienda
Cambia --output c:\tmp\respuesta.xml por --output c:\tmp\respuesta.gz
Responder Con Cita
  #12  
Antiguo 04-06-2021
batuzail batuzail is offline
Miembro
 
Registrado: feb 2017
Posts: 57
Poder: 8
batuzail Va por buen camino
Memoria alta software garante

Hola,
Estoy preparando la memoria para darnos de alta en el directorio de software garante, aún no tengo casi empezada la programación. Podéis ayudarme es esto?


Que tipos de certificados se podrán usar, cuales son los más comunes?
Para la validación se ha de acceder a alguna url o basta con validar usando comprobaciones locales? uso los componentes de chilckat.


Gracias
Responder Con Cita
  #13  
Antiguo 04-06-2021
landaga landaga is offline
Miembro
 
Registrado: may 2021
Posts: 15
Poder: 0
landaga Va por buen camino
Cita:
Empezado por batuzail Ver Mensaje
Hola,
Estoy preparando la memoria para darnos de alta en el directorio de software garante, aún no tengo casi empezada la programación. Podéis ayudarme es esto?


Que tipos de certificados se podrán usar, cuales son los más comunes?
Para la validación se ha de acceder a alguna url o basta con validar usando comprobaciones locales? uso los componentes de chilckat.


Gracias
Hola Batuzail,
- Puedes utilizar certificados de representante de entidad jurídica, de persona física, de dispositivo (es el que uso yo), etc.
- Para la validación tienes que realizar tus comprobaciones a nivel local, ellos no comprueban nada, tan sólo que en la memoria pongas que cumples lo que exigen....
- Una vez que estas dado de alta en el registro de software garante puede empezar a utilizar el entorno de pruebas para depurar errores.
Un saludo
Responder Con Cita
  #14  
Antiguo 04-06-2021
batuzail batuzail is offline
Miembro
 
Registrado: feb 2017
Posts: 57
Poder: 8
batuzail Va por buen camino
Cita:
Empezado por landaga Ver Mensaje
Hola Batuzail,
- Puedes utilizar certificados de representante de entidad jurídica, de persona física, de dispositivo (es el que uso yo), etc.
- Para la validación tienes que realizar tus comprobaciones a nivel local, ellos no comprueban nada, tan sólo que en la memoria pongas que cumples lo que exigen....
- Una vez que estas dado de alta en el registro de software garante puede empezar a utilizar el entorno de pruebas para depurar errores.
Un saludo

Muchas gracias, pensaba que se referian a proveedores de certificados.
Responder Con Cita
  #15  
Antiguo 06-06-2021
landaga landaga is offline
Miembro
 
Registrado: may 2021
Posts: 15
Poder: 0
landaga Va por buen camino
Cita:
Empezado por landaga Ver Mensaje
Yo tambien utilizo curl para enviar el LROE pero no veo la forma de recibir las cabeceras de la respuesta, el cuerpo de la respuesta si lo recibo y lo archivo pero no los headers.
El asunto es que algunas veces no envia nada y como en estos casos no devuelve nada en el body no se cual es la razón del fallo.
Alguien lo tiene resuelto?
Gracias

Me respondo a mi mismo:


La opción -D de curl permite volcar las cabeceras (headers) HTTP recibidas en la respuesta del servidor.

-D Cabecera.txt (guarda las cabeceras en el archivo de texto Cabecera)
Responder Con Cita
  #16  
Antiguo 08-06-2021
Band Band is offline
Miembro
 
Registrado: may 2021
Posts: 35
Poder: 0
Band Va por buen camino
Buenas,

estoy intentando extraer la firma de los xml, pero no consigo referenciar al nodo ds:Signaturevalue.

A continuación os paso el código reducido de cómo lo hago:

Código Delphi [-]
docXML := CreateOleObject('Msxml2.DOMDocument.6.0');
docXML.Load(path+'\'+fichero);

ns := 'xmlns:T=''urn:ticketbai:emision'' xmlns:ds=''http://www.w3.org/2000/09/xmldsig#'' xmlns:xsi=''http://www.w3.org/2001/XMLSchema-instance''';

docXML.setProperty('SelectionNamespaces', ns);
docXML.setProperty('SelectionLanguage', 'XPath');

NodeList := docXML.selectNodes('//T:TicketBai/ds:Signature/ds:SignatureValue');


Considero que así sería la forma correcta de acceder al nodo, sin embargo "NodeList" es un nulo.
Si quiero obtener los nodos hijo de "T:TicketBai", lo hago así:

Código Delphi [-]
NodeList := docXML.selectNodes('//T:TicketBai/*');

Y me devuelve todos los nodos hijos de T:TicketBai, excepto el ds:Signature. La variable ns, que contiene los namespace, también considero que es correcta, puesto que si modifico los namespaces declarados ahí, entonces al ejecutar el
Código Delphi [-]
docXML.selectNodes('//T:TicketBai/ds:Signature/ds:SignatureValue')
se me queja de que los nombres de espacios son incorrectos.

Por ahora, solo puedo hacerlo con Msxml2.DOMDocument.6.0 y debería poderse pero no encuentro donde estoy fallando.

Alguien extrae la firma de esta manera o alguien me puede orientar?


Muchas gracias
Responder Con Cita
  #17  
Antiguo 08-06-2021
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.035
Poder: 22
keys Va por buen camino
Hola.

Para sacar la firma yo lo hago de la siguiente manera.

Código Delphi [-]
  Documento := Txmldocument.Create(nil);
  CoInitialize(nil);
  Documento.LoadFromFile(FicheroTBAI);
  Documento.Active := true;
  firma :=  Documento.DocumentElement.ChildNodes[4].ChildNodes[1].Text;

a través de las clases de Tbai no he conseguido hacerlo, el resto de cosas si, pero la firma no.
Responder Con Cita
  #18  
Antiguo 08-06-2021
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.035
Poder: 22
keys Va por buen camino
Hola a todos.

Alguien a podido consultar en bizkaia los datos enviados al 140 en delphi, con las clases que ellos dan. No hay forma de llegar a los datos. Como por ejemplo al objeto TicketBai.
Responder Con Cita
  #19  
Antiguo 08-06-2021
Band Band is offline
Miembro
 
Registrado: may 2021
Posts: 35
Poder: 0
Band Va por buen camino
Unhappy

Cita:
Empezado por keys Ver Mensaje
Hola.

Para sacar la firma yo lo hago de la siguiente manera.

Código Delphi [-]
  Documento := Txmldocument.Create(nil);
  CoInitialize(nil);
  Documento.LoadFromFile(FicheroTBAI);
  Documento.Active := true;
  firma :=  Documento.DocumentElement.ChildNodes[4].ChildNodes[1].Text;

a través de las clases de Tbai no he conseguido hacerlo, el resto de cosas si, pero la firma no.

Hola keys, gracias por la respuesta.
Mi problema es que no puedo usar el Txmldocument de momento
No sé si es problema del Msxml2.DOMDocument.6.0, porque así
Código Delphi [-]
Documento.DocumentElement.ChildNodes[4].ChildNodes[1].Text;
tampoco consigo referenciarlo.

Seguiré investigando.
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 02:47:36.


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