![]() |
![]() |
| 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
|
|||
|
|||
|
Cita:
Aquí lo dejo, le tengo puesto un timeout que si quereis lo podeis quitar pero, si el servidor sta caido no se queda tanto tiempo esperando.Es inmediato y funciona de p.m. La llamada al firmador.php: curl --connect-timeout 3 http://.../firmador.php --data-binary @C:\....\...\factura_sin_firmar.xml -o C:\firmada.xml.xsig -D C:\...cabecera_respuesta.txt Añadir al firmador.php: //Capturar fichero en una variable $xml=file_get_contents("php://input"); //Datos certificado $cal_cert="369258"; $dir_cert = ($_SERVER['DOCUMENT_ROOT'].'/certs/Ciudadano.pfx' ); /Declaracion firmador $fac = new Firmador(); //Firma según Comunidad $xmlF = $fac -> firmar($dir_cert,$cal_cert, $xml,"BIZ"); // Devuelve Fichero firmado a la llamada curl o como lo querais capturar echo $xmlF; Saludos |
|
#2
|
|||
|
|||
|
Cita:
Muchas gracias por compartirlo. Muy pero que muy interesante. También podrías hacer que el servidor cree el XML, lo firme a continuación, cree el código TBAI, cree el código QR y envíe el XML firmado a Hacienda Foral. Así la máquina que factura se desentiende de todo lo relativo a TicketBAI. Sólo envía los datos de la factura al servidor y recibe los códigos TBAI y QR para añadirlos en el documento de la factura. Saludos |
|
#3
|
|||
|
|||
|
Cita:
Por ejemplo https://www.kubibai.com/es Última edición por ermendalenda fecha: 02-09-2021 a las 13:02:28. |
|
#4
|
|||
|
|||
|
Cita:
No los conocía. Parece que estos colegas hacen algo parecido a lo mío (servicio online TicketBAI). Gracias por la información. Saludos |
|
#5
|
|||
|
|||
|
Cita:
Esas 2 son las que conozco. |
|
#6
|
|||
|
|||
|
El fichero de alta TicketBAI no cumple el esquema XSD
Hola,
No puedo avanzar, tengo este error y no consigo ver donde esta el fallo... El validador que utilizo me dice que esta todo correcto... Alguien podría decirme algun validador de xml o como puedo saber donde esta el fallo? He contactado con ellos pero no contestan. Un saludo. |
|
#7
|
|||
|
|||
|
Cita:
Http://tools.chilkat.io/xmlDsigVerif...#generatedCode Https://web.uanataca.com/pe/servicio...ma-electronica |
|
#8
|
|||
|
|||
|
Cita:
Repasa y comprueba inclusi las mayúsculas Es posible que en la respuesta te den mas pistas Ya nos dices |
|
#9
|
|||
|
|||
|
Cita:
¿El texto completo es el de "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 '{"http://www.w3.org/2000/09/xmldsig#":Signature}' is expected" que creo que comentamos en otro post? Si sí, estás enviando sin firmar el fichero. A mi me contestaron y resulta que firmaba el fichero, lo validaba y después enviaba el fichero antes de la firma. Claro, daba este error y no lo entendía porque no me daba cuenta de que en el momento de escribir el stream a enviar utilizaba el fichero sin firmar en vez de utilizar el ya firmado... Si no es ese el error, dinos exactamente cuál es. Supongo que tu resultado también especifique la razón de que no cumpla el esquema. Creo que tú utilizas C#. Te paso mi clase para validar por si te sirve Código:
public class Validaciones
{
private bool isValid { get; set; }
private string noValidInformation { get; set; }
public bool ValidaXmlFactura(string xmlFile)
{
try
{
isValid = true;
// Ficheros xsd ubicados en la raíz del ejecutable
string xsdFile = @"ticketBaiV1-2.xsd";
string xsdFile2 = @"xmldsig-core-schema.xsd";
var path = new Uri(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase)).LocalPath;
XmlSchemaSet schema = new XmlSchemaSet();
schema.Add("urn:ticketbai:emision", path + "\\" + xsdFile);
schema.Add("http://www.w3.org/2000/09/xmldsig#", path + "\\" + xsdFile2);
using (XmlReader rd = XmlReader.Create(xmlFile))
{
XDocument doc = XDocument.Load(rd);
doc.Validate(schema, ValidationCallBack);
}
if (!isValid)
{
MessageBox.Show(noValidInformation.TrimEnd(Environment.NewLine.ToCharArray()),
System.Reflection.MethodBase.GetCurrentMethod().Name,
System.Windows.Forms.MessageBoxButtons.OK,
System.Windows.Forms.MessageBoxIcon.Error);
}
return isValid;
}
catch (Exception ex)
{
//isValid = false; no need to say isValid=false as it returns false
MessageBox.Show(ex.Message,
System.Reflection.MethodBase.GetCurrentMethod().Name,
System.Windows.Forms.MessageBoxButtons.OK,
System.Windows.Forms.MessageBoxIcon.Error);
return false;
}
}
private void ValidationCallBack(object sender, ValidationEventArgs e)
{
noValidInformation += string.Format("+ {0}: {1}", e.Severity.ToString(), e.Message) + Environment.NewLine;
isValid = false;
}
}
|
![]() |
| 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 |
|