Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-07-2021
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
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 ARPE1 Ver Mensaje
¿con qué componentes o de qué manera haces el envío para que no modifique el fichero en el proceso?
Aunque el mensaje diga eso, no te fies, no es que los componentes modifiquen el fichero en el envío.
Lo normal es que en algún punto del proceso, desde que generamos el fichero y lo firmamos, hasta que lo enviamos, sin querer estamos modficando la codificación.
A veces simplemente es al usar TStreams o grabar en disco y recuperar.

Revisad los pasos que estáis haciendo desde la firma hasta el envío y si en algún punto la codificación cambia, no porque lo hagáis expresamente, sino porque se esté haciendo sin daros cuenta.

En cuanto a los envíos en los mensajes del foro puedes ver que hay varios componentes que se están utilizando. En este mensaje tienes (en la parte inferior) un resumen de los diferentes componenetes que se usa para enviar:
https://www.clubdelphi.com/foros/sho...&postcount=436

* Opcion1: TNetHTTPClient
* Opción2: TRESTClient + TRESTRequest + TRESTResponse
* Opcion3: TsbxHTTPClient (SecureBlackBox)
* Opción4: Utilizando commandos CURL
* Opción5: Utilizando las Indy + OpenSSL
* ...
__________________
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.

Última edición por Neftali [Germán.Estévez] fecha: 16-07-2021 a las 11:51:10.
Responder Con Cita
  #2  
Antiguo 16-07-2021
skatologiko skatologiko is offline
Miembro
 
Registrado: jul 2021
Posts: 38
Poder: 0
skatologiko Va por buen camino
¿Alguien puede poner un ejemplo de algún archivo XML de anulación?
Responder Con Cita
  #3  
Antiguo 16-07-2021
tejano tejano is offline
Miembro
 
Registrado: dic 2020
Posts: 132
Poder: 6
tejano Va por buen camino
Cita:
Empezado por skatologiko Ver Mensaje
¿Alguien puede poner un ejemplo de algún archivo XML de anulación?
Es un proceso algo similar a la emisión, crear la cabecera, codificar el xml del archivo ticketbai de la emisión en base 64, comprimirlo en gz y enviar la anulación.
Responder Con Cita
  #4  
Antiguo 16-07-2021
tejano tejano is offline
Miembro
 
Registrado: dic 2020
Posts: 132
Poder: 6
tejano Va por buen camino
Cita:
Empezado por tejano Ver Mensaje
Es un proceso algo similar a la emisión, crear la cabecera, codificar el xml del archivo ticketbai de la emisión en base 64, comprimirlo en gz y enviar la anulación.
Perdona, se me olvidaba el fichero de anulación, esta firmado, hay que firmarlo al igual que el de la emisión.
Archivos Adjuntos
Tipo de Archivo: rar Ejemplo_Anulacion_TicketBAI_79732487C_A2022_0399.rar (4,4 KB, 16 visitas)
Responder Con Cita
  #5  
Antiguo 16-07-2021
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
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 skatologiko Ver Mensaje
¿Alguien puede poner un ejemplo de algún archivo XML de anulación?

En los ejemplos de Batuz creo que tienes varios XML de anulación. Los ficheros enviados y las diferentes respuestas, tanto para TicketBAI como para Batuz.
https://www.batuz.eus/fitxategiak/Ba...os/Ejemplos.7z
Archivos Adjuntos
Tipo de Archivo: zip Ejemplos anulaciones TBi-BATUZ.zip (28,4 KB, 22 visitas)
__________________
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
  #6  
Antiguo 16-07-2021
ARPE1 ARPE1 is offline
Miembro
 
Registrado: nov 2012
Posts: 43
Poder: 0
ARPE1 Va por buen camino
¡Qué rapidez! Gracias.

Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Lo normal es que en algún punto del proceso, desde que generamos el fichero y lo firmamos, hasta que lo enviamos, sin querer estamos modficando la codificación.
A veces simplemente es al usar TStreams o grabar en disco y recuperar.

Revisad los pasos que estáis haciendo desde la firma hasta el envío y si en algún punto la codificación cambia, no porque lo hagáis expresamente, sino porque se esté haciendo sin daros cuenta.
Hemos probado a enviar el fichero firmado generado directamente con funciones como:
Código Delphi [-]
IdHTTP1.Post(URL, SourceFile, ResponseStream);
o esta
Código Delphi [-]
sbxHTTPClient1.PostFile(URL, FileName);

En teoría así evitamos lo que comentas de cambio de codificaciones al cargar el fichero con Streams y compañía. El resultado es el mismo. Lo sorprendente es que si ese fichero lo enviamos con el programa SoapUI lo acepta sin problemas. Hemos "intentado" crear un LOG con los datos que se envían y comparado byte a byte con el nuestro y son idénticos.

Cita:
En cuanto a los envíos en los mensajes del foro puedes ver que hay varios componentes que se están utilizando. En este mensaje tienes (en la parte inferior) un resumen de los diferentes componenetes que se usa para enviar:
https://www.clubdelphi.com/foros/sho...&postcount=436
Hemos probado todas las opciones y no hay manera, cada una nos falla en un punto diferente. Con la que más hemos conseguido es con las INDY del propio Delphi.

Gracias de nuevo de antemano.
Responder Con Cita
  #7  
Antiguo 16-07-2021
sEngine sEngine is offline
Miembro
 
Registrado: jul 2021
Posts: 79
Poder: 5
sEngine Va por buen camino
Asegurate de enviarlo asi



Código Delphi [-]
idhttp1.Request.ContentType := 'application/xml; charset=utf-8"';


Cita:
Empezado por ARPE1 Ver Mensaje
¡Qué rapidez! Gracias.


Hemos probado a enviar el fichero firmado generado directamente con funciones como:
Código Delphi [-]IdHTTP1.Post(URL, SourceFile, ResponseStream);

o esta
Código Delphi [-]sbxHTTPClient1.PostFile(URL, FileName);


En teoría así evitamos lo que comentas de cambio de codificaciones al cargar el fichero con Streams y compañía. El resultado es el mismo. Lo sorprendente es que si ese fichero lo enviamos con el programa SoapUI lo acepta sin problemas. Hemos "intentado" crear un LOG con los datos que se envían y comparado byte a byte con el nuestro y son idénticos.


Hemos probado todas las opciones y no hay manera, cada una nos falla en un punto diferente. Con la que más hemos conseguido es con las INDY del propio Delphi.

Gracias de nuevo de antemano.
Responder Con Cita
  #8  
Antiguo 16-07-2021
ARPE1 ARPE1 is offline
Miembro
 
Registrado: nov 2012
Posts: 43
Poder: 0
ARPE1 Va por buen camino
Sí, así lo tenemos pero no hay manera.

Código Delphi [-]
   ... 
    wXML := 'prueba.xsig';
    wURL := 'https://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta';
    idhttp1.Request.ContentType := 'application/xml; charset=utf-8';
    IdHTTP1.Request.BasicAuthentication := False;
    wCer := 'CERT_TEST.pfx';
    IdSSLIOHandlerSocketOpenSSL1.SSLOptions.CertFile := wCer;
    IdSSLIOHandlerSocketOpenSSL1.SSLOptions.KeyFile  := wCer;

    IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode   := sslmClient;
    IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1_2; // sslvSSLv23; //sslvTLSv1_1;
    wML.Position := 0;
    Try
      IdHTTP1.Post(wURL, wXML, wMR);
      wMR.Position := 0;
      memo1.Lines.LoadFromStream(wMR, TEncoding.UTF8);
      label1.Caption := IntToStr(IdHTTP1.Response.ResponseCode) + ': ' + IdHTTP1.Response.ResponseText;
    Except
      On E:Exception do
        memo1.Lines.Add(E.Message);
    End;

Gracias por la respuesta.
Responder Con Cita
  #9  
Antiguo 19-07-2021
batuzail batuzail is offline
Miembro
 
Registrado: feb 2017
Posts: 73
Poder: 10
batuzail Va por buen camino
Cita:
Empezado por ARPE1 Ver Mensaje
Sí, así lo tenemos pero no hay manera.

Código Delphi [-] ... wXML := 'prueba.xsig'; wURL := 'https://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta'; idhttp1.Request.ContentType := 'application/xml; charset=utf-8'; IdHTTP1.Request.BasicAuthentication := False; wCer := 'CERT_TEST.pfx'; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.CertFile := wCer; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.KeyFile := wCer; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode := sslmClient; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1_2; // sslvSSLv23; //sslvTLSv1_1; wML.Position := 0; Try IdHTTP1.Post(wURL, wXML, wMR); wMR.Position := 0; memo1.Lines.LoadFromStream(wMR, TEncoding.UTF8); label1.Caption := IntToStr(IdHTTP1.Response.ResponseCode) + ': ' + IdHTTP1.Response.ResponseText; Except On E:Exception do memo1.Lines.Add(E.Message); End;


Gracias por la respuesta.
Hola, a mi me pasaba lo mismo me volví loco con la codificación utf-8, al final el problema era que el nombre del cliente tenía un acento, limpia de carácteres un poco raros todos los strings y prueba, yo tras hacer eso puedo enviar sin problema.


Suerte
Responder Con Cita
  #10  
Antiguo 19-07-2021
ARPE1 ARPE1 is offline
Miembro
 
Registrado: nov 2012
Posts: 43
Poder: 0
ARPE1 Va por buen camino
Hola, ya hemos revisado eso también y efectivamente el acento lo tiene la propia firma ("CN=AC Representación") y no somos capaces de quitarlo ya que si lo hacemos entonces salta que el certificado ha sido modificado. Lo hemos intentado limpiar en el evento OnFormatText del componente TElXMLSigner de SecureBlackBox, sin resultado. De hecho por eso empezamos esta pregunta citando el caso de Neftali ya que no solo lo resolvió si no que está probando con una empresa llamada "áéíóúÁÉÍÓÚÜçÇñÑ€~#@". ¡Tela!

Un saludo y gracias por las respuestas.
Responder Con Cita
  #11  
Antiguo 19-07-2021
Galaxian Galaxian is offline
Miembro
 
Registrado: mar 2021
Posts: 52
Poder: 6
Galaxian Va por buen camino
Cita:
Empezado por batuzail Ver Mensaje
Hola, a mi me pasaba lo mismo me volví loco con la codificación utf-8, al final el problema era que el nombre del cliente tenía un acento, limpia de carácteres un poco raros todos los strings y prueba, yo tras hacer eso puedo enviar sin problema.
Cita:
Empezado por ARPE1 Ver Mensaje
Hola, ya hemos revisado eso también y efectivamente el acento lo tiene la propia firma ("CN=AC Representación") y no somos capaces de quitarlo ya que si lo hacemos entonces salta que el certificado ha sido modificado. Lo hemos intentado limpiar en el evento OnFormatText del componente TElXMLSigner de SecureBlackBox, sin resultado. De hecho por eso empezamos esta pregunta citando el caso de Neftali ya que no solo lo resolvió si no que está probando con una empresa llamada "áéíóúÁÉÍÓÚÜçÇñÑ€~#@". ¡Tela!
Los dos casos se resuelven codificando el XML de ANSI a UTF8 ANTES de firmarlo. He hecho multitud de pruebas y todas han sido aceptadas. Es más, varios de mis clientes que ya están haciendo las "pruebas de campo" tienen, a su vez, clientes cuyo nombre contiene acentos y/o eñes y ningún problema.

Última edición por Galaxian fecha: 19-07-2021 a las 08:54:59.
Responder Con Cita
  #12  
Antiguo 19-07-2021
Avatar de HerensugeBeltz
HerensugeBeltz HerensugeBeltz is offline
Miembro
 
Registrado: may 2021
Ubicación: Hondarribia
Posts: 90
Poder: 6
HerensugeBeltz Va por buen camino
Aplazamiento de Batuz (Bizkaia)

Acabo de recibir este correo:

Kaixo,

Aplazamiento en la obligatoriedad de Batuz y nuevos incentivos para su implantación voluntaria.

Tras recabar las aportaciones de colegios profesionales y asociaciones empresariales y de la asesoría fiscal, la Hacienda Foral considera conveniente flexibilizar el plazo establecido para la adopción obligatoria de Batuz, trasladándolo hasta el 1 de enero de 2024, y estableciendo una compensación de hasta el 15% en IRPF o Sociedades para los autónomos, microempresas y pymes que implanten Batuz en 2022 o 2023. Para más información pulse aquí.

Agur bat.
Responder Con Cita
Respuesta


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
SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice newtron Internet 3716 19-01-2026 20:01:34
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 21:59:22.


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