![]() |
![]() |
| 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
|
|||
|
|||
|
Factura encadenada
Cita:
Contestación de Batuz: El sistema TicketBAI implica que cada factura debe identificar la factura anterior (serie, número, fecha y 100 primeros caracteres de la firma). Aunque en el esquema del fichero TicketBAI estos campos no son obligatorios, esta circunstancia se debe a que existen varias situaciones en los que este requisito no es exigible (p. ej. la primera factura, o en caso de rotura del dispositivo). El cumplimiento del requisito de encadenamiento depende de la forma de funcionamiento del sistema de facturación: - Si un mismo dispositivo emite facturas de diferentes series, el requisito de encadenamiento debe identificar la factura anterior expedida, con independencia de la serie (por ejemplo, a una factura de una serie ordinaria le puede preceder una factura rectificativa de otra serie). - Igualmente, si el sistema de facturación es un sistema centralizado que genera las series y los números de facturación, con independencia del dispositivo que se esté utilizando, el encadenamiento se refiere a la última factura expedida por el sistema. En concreto, “Haz tu factura” funcionaría como un sistema de facturación “centralizado”, por lo que encadena las facturas independientemente de la serie. - No obstante, si existen diferentes dispositivos o centros de facturación, los cuales sólo expiden facturas dentro de una serie específica para cada dispositivo o centro, el encadenamiento se produce dentro de cada serie. Este último parece ser el caso al que se refiere la pregunta planteada. |
|
#2
|
|||
|
|||
|
Estoy teniendo muchos problemas a la hora de firmar las facturas, ¿Alguien lo ha conseguido en C#?
Empecé adaptando la aplicación que ofrecen en PAe y he logrado firmar XMLs con una estructura muy similar a la que muestran en el ejemplo oficial, no obstante algunas etiquetas como "<DataObjectFormat>" parecen tener algunos campos distintos, (Podría ser un problema) pero en general creo que podría dar el pego. El caso es que siempre recibo el siguiente error: "org.apache.axis.types.URI$MalformedURIException: No scheme found in URI" Lo que no es de extrañar ya que el campo donde se encuentra la URI <xades:Identifier> y los tres de la política de firma no hay donde entenderlos, en cada documento dicen unos valores distintos... Actualmente la política la genero así: Código:
<xades:SignaturePolicyIdentifier> <xades:SignaturePolicyId> <xades:SigPolicyId> <xades:Identifier>Politica de firma TicketBAI 1.0</xades:Identifier> <xades:Description/> </xades:SigPolicyId> <xades:SigPolicyHash> <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <ds:DigestValue>6NrKAm60o7u62FUQwzZew24ra2ve9PRQYwC21AM6In0=</ds:DigestValue> </xades:SigPolicyHash> <xades:SigPolicyQualifiers> <xades:SigPolicyQualifier> <xades:SPURI>https://www.gipuzkoa.eus/documents/2456431/12093238/TicketBAI_Pol%C3%ADtica_firma_v_1_0.pdf/3c6e5431-bb1d-34ed-5b26-206aaf085452</xades:SPURI> </xades:SigPolicyQualifier> </xades:SigPolicyQualifiers> </xades:SignaturePolicyId> </xades:SignaturePolicyIdentifier> ¿Qué datos insertasteis?, ¿Usasteis algún algoritmo concreto?, ¿Dónde hay documentación medio clara sobre el tema? En fin, cualquier ayuda es bien recibida, gracias de antemano. |
|
#3
|
|||
|
|||
|
Cita:
"url" => "https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf", Suerte |
|
#4
|
|||
|
|||
|
Firmar xml ticketBAI utilizando c#
Hola, yo también estoy intentando firmar las facturas para tickeBAI en C# y no consigo que me acepten la factura como válida.
Código:
<?xml version="1.0" encoding="utf-8"?>
<ResultadosValidacion>
<Codigo>008</Codigo>
<Descripcion>El mensaje ha sido modificado en tránsito o la firma no está bien realizada -- Reference URI="#Signature509508-SignedProperties932727" failed to verify. Reference URI="" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606)</Descripcion>
Coincido con Noe277 en que la documentación no es suficientemente detallada para firmar los xml. Cualquier ayuda se agradece! Muchas gracias! Cita:
|
|
#5
|
||||
|
||||
|
Cita:
En esta página hemos hablado de ese error: https://www.clubdelphi.com/foros/sho...d.php?p=540615 Posible que esté relacionado con la codificación. Revisa además si tienes caracteres extraños en el mensaje (en la razón social, por ejemplo) como ñáéüç...
__________________
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. |
|
#6
|
|||
|
|||
|
Cita:
Elimina los acentos en el xml previo a la firma y también en el firmador que utilices Espero que sea eso |
|
#7
|
|||
|
|||
|
Cita:
no tengo ningún carácter con tilde en el xml. |
|
#8
|
||||
|
||||
|
Revisa entonces que en algun momento no esté cambiando la codificación o que estés realizando el envío con una codificación incorrecta. Por ejemplo, que no estés guardando en un paso intermedio a fichero y al guardar/recuperar esté cambiando.
__________________
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. |
|
#9
|
|||
|
|||
|
Hola, gracias por las respuestas bilbur y Neftali
Pues sí que va a ser eso de los acentos... al leer vuestras respuestas he revisado la factura que me daba ese error y he visto que en la dirección del cliente había un acento "ú". He hecho otra factura exactamente igual pero poniendo la letra sin acento y ya no ha dado el error de la firma. Lo que no acabo de ver es como solucionarlo porque ya estoy haciendo todo lo que proponéis (creo). 1. Al crear el fichero TicketBAI y guardarlo en disco lo hago en UTF8: Código:
var encoding = System.Text.Encoding.UTF8;
FileMgr.Save(Path.Combine(filePath, fileName), xmltbai, encoding, false);
Código:
XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = new UTF8Encoding();
using (var writer = XmlWriter.Create(fileName, settings))
{
this.Document.Save(writer);
}
Código:
using (StreamReader sr = new StreamReader(filePath, Encoding.UTF8))
{
string content = sr.ReadToEnd();
return content;
}
Código:
var encoding = Encoding.UTF8;
byte[] contentBytes = encoding.GetBytes(content);
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.AllowAutoRedirect = true;
httpWebRequest.ClientCertificates.Add(certificate);
httpWebRequest.Method = "POST";
httpWebRequest.ContentType = "application/xml";
httpWebRequest.ContentLength = contentBytes.Length;
var postStream = httpWebRequest.GetRequestStream();
postStream.Write(contentBytes, 0, contentBytes.Length);
postStream.Flush();
postStream.Close();
He enviado correos con los dos ficheros y la dos respuestas al correo de consultas técnicas de Gipuzkoa pero... deben estar colapsados porque hace mucho que no me contestan, creo que llevan más de 2 semanas de retraso en las respuestas T_T También he escrito a Araba preguntando por su entorno de pruebas y me han dicho que lo están desarrollando y que tiene previsto que para septiembre estará operativo :'( Bueno voy a seguir investigando. Ya sé que el foro es de Delphi y mi código es c# .net pero bueno, si alguien me puede dar otro consejo lo agradeceré. Muchas gracias! |
|
#10
|
||||
|
||||
|
Cita:
Revisa cada uno de los pasos con el contenido hexadecimal del fichero o del stream (revisando el character con acento). Desde la generación del XML hasta el envío, a ver si en algún momento encuentras que la codificación de ese character cambia. Si el envío lo estás haciendo con UTF8, revisa que la firma (el componente o lo que usas) no la esté haciendo como ANSI internamente, eso expñlicaría que lo que has firmado no "cuadra" con lo que estás enviando.
__________________
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. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|