public static ResAcc <TimbreXml> LeerXmlTimbrado(string sXmlFactura) { var Res = new ResAcc <TimbreXml>(); XmlDocument oXml = new XmlDocument(); oXml.LoadXml(sXmlFactura); var oTfds = oXml.GetElementsByTagName("tfd:TimbreFiscalDigital"); if (oTfds.Count <= 0) { Res.Mensaje = "El Xml no contiene la información de timbrado."; return(Res); } try { var oTimbreXml = new TimbreXml(); var oTfd = oTfds[0]; oTimbreXml.FolioFiscal = oTfd.Attributes["UUID"].Value; oTimbreXml.SelloSat = oTfd.Attributes["selloSAT"].Value; oTimbreXml.CertificadoSat = oTfd.Attributes["noCertificadoSAT"].Value; oTimbreXml.FechaCertificacion = Convert.ToDateTime(oTfd.Attributes["FechaTimbrado"].Value); // Se genera la cadena original del timbre fiscal var oFacturaComps = oXml.GetElementsByTagName("cfdi:Comprobante"); if (oFacturaComps.Count <= 0) { Res.Mensaje = "El Xml no contiene la información del comprobante o está mal formado."; return(Res); } var oFacturaComp = oFacturaComps[0]; string sVersion = oFacturaComp.Attributes["version"].Value; string sSelloFactura = oFacturaComp.Attributes["sello"].Value; oTimbreXml.CadenaOriginal = FacturaXml.GenerarCadenaOriginalTimbre(sVersion, sSelloFactura, oTimbreXml); Res.Respuesta = oTimbreXml; } catch (Exception e) { Res.Mensaje = e.Message; return(Res); } Res.Exito = true; return(Res); }
public static ResAcc<TimbreXml> LeerXmlTimbrado(string sXmlFactura) { var Res = new ResAcc<TimbreXml>(); XmlDocument oXml = new XmlDocument(); oXml.LoadXml(sXmlFactura); var oTfds = oXml.GetElementsByTagName("tfd:TimbreFiscalDigital"); if (oTfds.Count <= 0) { Res.Mensaje = "El Xml no contiene la información de timbrado."; return Res; } try { var oTimbreXml = new TimbreXml(); var oTfd = oTfds[0]; oTimbreXml.FolioFiscal = oTfd.Attributes["UUID"].Value; oTimbreXml.SelloSat = oTfd.Attributes["selloSAT"].Value; oTimbreXml.CertificadoSat = oTfd.Attributes["noCertificadoSAT"].Value; oTimbreXml.FechaCertificacion = Convert.ToDateTime(oTfd.Attributes["FechaTimbrado"].Value); // Se genera la cadena original del timbre fiscal var oFacturaComps = oXml.GetElementsByTagName("cfdi:Comprobante"); if (oFacturaComps.Count <= 0) { Res.Mensaje = "El Xml no contiene la información del comprobante o está mal formado."; return Res; } var oFacturaComp = oFacturaComps[0]; string sVersion = oFacturaComp.Attributes["version"].Value; string sSelloFactura = oFacturaComp.Attributes["sello"].Value; oTimbreXml.CadenaOriginal = FacturaXml.GenerarCadenaOriginalTimbre(sVersion, sSelloFactura, oTimbreXml); Res.Respuesta = oTimbreXml; } catch (Exception e) { Res.Mensaje = e.Message; return Res; } Res.Exito = true; return Res; }
private static string GenerarCadenaOriginalTimbre(string sVersion, string sSelloFactura, TimbreXml oTimbre) { return "||" + sVersion + "|" + oTimbre.FolioFiscal + "|" + oTimbre.FechaCertificacion.ToString("yyyy-MM-ddTHH:mm:ss") + "|" + sSelloFactura + "|" + oTimbre.CertificadoSat + "||"; }
private static string GenerarCadenaOriginalTimbre(string sVersion, string sSelloFactura, TimbreXml oTimbre) { return ("||" + sVersion + "|" + oTimbre.FolioFiscal + "|" + oTimbre.FechaCertificacion.ToString("yyyy-MM-ddTHH:mm:ss") + "|" + sSelloFactura + "|" + oTimbre.CertificadoSat + "||"); }