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 27-07-2021
Sistel Sistel is offline
Miembro
 
Registrado: nov 2019
Ubicación: Bilbao
Posts: 373
Poder: 5
Sistel Va por buen camino
Cita:
Empezado por e.jaume Ver Mensaje
Buenas a tod@s,
Este foro me ha servido de gran ayuda para completar el desarrollo de envío de facturas a ticketBAI en Gipuzkoa, os agradezco a todos el esfuerzo y la dedicación, muchas gracias.
Me he animado a escribir porque tengo una duda relacionada con el envío de facturas. He llegado a este punto donde no se qué mas probar, y es que no consigo salir del bucle de este error:
"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)"
La factura se envío en utf-8, he comprobado con el Tortoise y no se modifica durante el proceso de firma, la empresa no contiene caracteres raros...etc.
Programo en C# y utilizo la librería FirmaXadesNet45
La verdad que no se por dónde más tirar, cualquier ayuda os lo agradezco.


P.D: Perdón por la pregunta de la que ya se ha hablado mucho y también he leído todas las páginas del foro y he probado casi de todo XD
Hola e.jaume,

Si ya has probado todo lo que se ha comentado sobre ese error, y sigues igual, mi recomendación es que contactes con Hacienda Foral de Gipuzkoa (ticketbaikontsultak@gipuzkoa.eus).
En el título del email pones: “Pruebas TicketBAI en PRE: Nombre Empresa”
Y pones como categoría del tema: "Errores en envío de facturas"
Les envías los datos de lo que estás enviando y el error y ellos te dirán a qué puede ser debido.

Saludos
Responder Con Cita
  #2  
Antiguo 28-07-2021
e.jaume e.jaume is offline
Registrado
 
Registrado: jul 2021
Posts: 5
Poder: 0
e.jaume Va por buen camino
Cita:
Empezado por Sistel Ver Mensaje
Hola e.jaume,

Si ya has probado todo lo que se ha comentado sobre ese error, y sigues igual, mi recomendación es que contactes con Hacienda Foral de Gipuzkoa (ticketbaikontsultak@gipuzkoa.eus).
En el título del email pones: “Pruebas TicketBAI en PRE: Nombre Empresa”
Y pones como categoría del tema: "Errores en envío de facturas"
Les envías los datos de lo que estás enviando y el error y ellos te dirán a qué puede ser debido.

Saludos
Gracias Sistel! Les envié varios correos el viernes, aún estoy esperando respuesta, supongo que tardarán en contestar debido a las vacaciones.
Como tampoco puedo compartir código por el foro, poco más puedo hacer. A ver si en la sesión informativa pueden aclarar ese punto. ¿Habéis encontrado algún ejemplo que sea bastante claro de cómo montar una firma XAdES Enveloped en C#?

un saludo!
Responder Con Cita
  #3  
Antiguo 28-07-2021
e.jaume e.jaume is offline
Registrado
 
Registrado: jul 2021
Posts: 5
Poder: 0
e.jaume Va por buen camino
Cita:
Empezado por Sistel Ver Mensaje
Hola e.jaume,

Si ya has probado todo lo que se ha comentado sobre ese error, y sigues igual, mi recomendación es que contactes con Hacienda Foral de Gipuzkoa (ticketbaikontsultak@gipuzkoa.eus).
En el título del email pones: “Pruebas TicketBAI en PRE: Nombre Empresa”
Y pones como categoría del tema: "Errores en envío de facturas"
Les envías los datos de lo que estás enviando y el error y ellos te dirán a qué puede ser debido.

Saludos
Hola! al final sí que me han respondido hoy. Me han dicho que es por la codificación, en alguna parte se está realizando la modificación de los caracteres que tienen tilde.
El envío lo estoy realizando de esta forma pero no encuentro que se cambie la codificación...

Código:
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceUri);

            byte[] bytes = Encoding.UTF8.GetBytes(comunicacionXml);

            request.ContentType = "application/xml;charset=utf-8";
            request.ContentLength = bytes.Length;
            request.Method = WebRequestMethods.Http.Post;
            request.ClientCertificates.Add(certs);

            Stream requestStream = null;

            try
            {                
                requestStream = request.GetRequestStream();
                requestStream.Write(bytes, 0, bytes.Length);
                requestStream.Flush();
            }
            finally
            {
                if (requestStream != null)
                {
                    requestStream.Close();
                }
            }

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
¿Se le ocurre alguien alguna idea por disparatada que sea?

Gracias!

Última edición por Neftali [Germán.Estévez] fecha: 28-07-2021 a las 11:55:24. Razón: Añadir TAG's al código
Responder Con Cita
  #4  
Antiguo 28-07-2021
Noe277 Noe277 is offline
Miembro
 
Registrado: jul 2017
Posts: 73
Poder: 7
Noe277 Va por buen camino
Codificación

Cita:
Empezado por e.jaume Ver Mensaje
Hola! al final sí que me han respondido hoy. Me han dicho que es por la codificación, en alguna parte se está realizando la modificación de los caracteres que tienen tilde.
El envío lo estoy realizando de esta forma pero no encuentro que se cambie la codificación...

Código:
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceUri);

            byte[] bytes = Encoding.UTF8.GetBytes(comunicacionXml);

            request.ContentType = "application/xml;charset=utf-8";
            request.ContentLength = bytes.Length;
            request.Method = WebRequestMethods.Http.Post;
            request.ClientCertificates.Add(certs);

            Stream requestStream = null;

            try
            {                
                requestStream = request.GetRequestStream();
                requestStream.Write(bytes, 0, bytes.Length);
                requestStream.Flush();
            }
            finally
            {
                if (requestStream != null)
                {
                    requestStream.Close();
                }
            }

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
¿Se le ocurre alguien alguna idea por disparatada que sea?

Gracias!
Si generas el xml y tiene algún carácter extraño lo cambia de codificación por mas que intentes transformar el fichero(con la factura-e pase por esto). Yo para evitar errores transformo los caracteres a utf8 previamente cuando estoy escribiendo el fichero. En un post anterior indico como. Simplemente hago un replace.
Responder Con Cita
  #5  
Antiguo 28-07-2021
e.jaume e.jaume is offline
Registrado
 
Registrado: jul 2021
Posts: 5
Poder: 0
e.jaume Va por buen camino
Talking

Cita:
Empezado por Noe277 Ver Mensaje
Si generas el xml y tiene algún carácter extraño lo cambia de codificación por mas que intentes transformar el fichero(con la factura-e pase por esto). Yo para evitar errores transformo los caracteres a utf8 previamente cuando estoy escribiendo el fichero. En un post anterior indico como. Simplemente hago un replace.
Gracias por la respuesta aunque lo vi tarde !
Responder Con Cita
  #6  
Antiguo 28-07-2021
e.jaume e.jaume is offline
Registrado
 
Registrado: jul 2021
Posts: 5
Poder: 0
e.jaume Va por buen camino
Cita:
Empezado por e.jaume Ver Mensaje
Hola! al final sí que me han respondido hoy. Me han dicho que es por la codificación, en alguna parte se está realizando la modificación de los caracteres que tienen tilde.
El envío lo estoy realizando de esta forma pero no encuentro que se cambie la codificación...

Código:
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceUri);

            byte[] bytes = Encoding.UTF8.GetBytes(comunicacionXml);

            request.ContentType = "application/xml;charset=utf-8";
            request.ContentLength = bytes.Length;
            request.Method = WebRequestMethods.Http.Post;
            request.ClientCertificates.Add(certs);

            Stream requestStream = null;

            try
            {                
                requestStream = request.GetRequestStream();
                requestStream.Write(bytes, 0, bytes.Length);
                requestStream.Flush();
            }
            finally
            {
                if (requestStream != null)
                {
                    requestStream.Close();
                }
            }

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
¿Se le ocurre alguien alguna idea por disparatada que sea?

Gracias!
Buenas!
Quería comunicaros que ya solucioné el problema. Estaba en la librería que estaba usando (FirmaXAdESNet45), en un método usaba Stream, y cambiaba la codificación a ASCII, vi que no era necesario y quité esas líneas. Ahora puedo decir 100% que ya envío facturas a Gipuzkoa de manera correcta. Ahora me queda la parte más difícil, enviarlas a Bizkaia....
Si alguien tiene alguna duda porque está usando la misma librería y no le funciona que me lo comente, le ayudaré encantado.
Me acaba de llegar el enlace para la sesión informativa del jueves.
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 3 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 09:30:37.


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