public static string TimbrarFactura(string Id, string Token, Dictionary <string, object> Comprobante, string RFC, string RefID, string NoCertificado, string Formato, string Correos, string RutaCFDI) { JObject Respuesta = new JObject(); string Xml = ""; CComprobante comprobante = new CComprobante();; try { comprobante = GenerarComprobante(Comprobante); } catch (Exception ex) { } Xml = FacturacionXML.XML(comprobante); // Save file XML in System.IO.Directory.CreateDirectory(@"" + RutaCFDI + @"\Facturacion\in\" + RFC); System.IO.File.WriteAllText(@"" + RutaCFDI + @"\Facturacion\in\" + RFC + @"\" + RefID + ".xml", Xml); string encode = Base64.Encode(Xml); JObject Request = new JObject(); JObject Credenciales = new JObject(); JObject Issuer = new JObject(); JObject Receivers = new JObject(); JObject Document = new JObject(); Credenciales.Add("id", Id); Credenciales.Add("token", Token); Issuer.Add("rfc", RFC); Document.Add("ref-id", RefID); Document.Add("certificate-number", NoCertificado); Document.Add("section", "all"); Document.Add("format", Formato); Document.Add("template", "letter"); Document.Add("type", "application/vnd.diverza.cfdi_3.3+xml"); Document.Add("content", encode); Request.Add("credentials", Credenciales); Request.Add("issuer", Issuer); Request.Add("receiver", Conector.ObtenerDestinatarios(Correos.Split(',').ToList())); Request.Add("document", Document); string response = Conector.Emitir(Request); //return response.ToString(); Dictionary <string, object> Response = (Dictionary <string, object>)JSON.Parse(response); //return Response.ToString(); string uuid = ""; string ref_id = ""; string content = ""; string message = "Error en el timbrado"; int Error = 0; if (!Response.ContainsKey("message")) { try { message = ""; uuid = (Response.ContainsKey("uuid")) ? (string)Response["uuid"] : ""; ref_id = (Response.ContainsKey("uuid")) ? (string)Response["ref_id"] : ""; content = (Response.ContainsKey("content")) ? (string)Response["content"] : ""; // Save file ZIP out GuardarContenido(RutaCFDI, content, comprobante.Receptor.RFC, comprobante.Serie, comprobante.Folio); } catch (Exception ex) { message = ex.Message; Error = 1; } } else { message = (string)Response["message"]; Error = 1; } Respuesta.Add("Error", Error); Respuesta.Add("message", message); Respuesta.Add("uuid", uuid); Respuesta.Add("ref_id", ref_id); Respuesta.Add("certificado", NoCertificado); Respuesta.Add("content", content); Respuesta.Add("request", Request); Respuesta.Add("response", response); return(Respuesta.ToString()); }
public static string Emitir(string data) { string xml = XML.XMLEmitir(data); return(Conector.Emitir(xml)); }