public void PresentarPago() { CPago cpago = new CPago(); cpago._Pago = IagregarPago.pago; OPago opago = servicioPago.EjecutarPago(cpago); if (opago.Correcto) { IagregarPago.PagoCorrecto("se realizo el pago"); } else { IagregarPago.ErrorPago(string.Format("{0}", opago.Excepcion.Message)); } }
public OPago EjecutarPago(CPago cpago) { OPago opago = new OPago(); try { IpagoR.RealizarPago(cpago._Pago); opago.Correcto = true; } catch (Exception e) { opago.Excepcion = e; opago.Correcto = false; } return(opago); }
public OPagoLista ObtenerPagosPorAlumno(CPago cpago) { OPagoLista lista = new OPagoLista(); try { IEnumerable <ConceptoPagoDetalle> pagos = IpagoR.MostrarPagosPorAlumno(cpago._Filtro); lista.detalles = pagos; lista.Correcto = true; } catch (Exception e) { lista.Excepcion = e; lista.Correcto = false; } return(lista); }
public void PresentarPagoPorAlumno() { OPagoLista listadoPagos = servicioPago.ObtenerPagosDetalle(); CPago cpago = new CPago(); cpago._Filtro = ibusqueda.FiltroNomre; OPagoLista listado = servicioPago.ObtenerPagosPorAlumno(cpago); if (listado.Correcto) { if (cpago._Filtro == null) { ibusqueda.MostrarPagosPorAlumno(listadoPagos.pagosDetalleLista); } else { ibusqueda.MostrarPagosPorAlumno(listado.detalles); } } else { ibusqueda.ErrorPagosPorAlumno(string.Format("{0}", listado.Excepcion.Message)); } }
public static string TimbrarPago(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 = ""; CPago comprobante = new CPago();; try { comprobante = GenerarComprobante(Comprobante); } catch (Exception ex) { } Xml = PagosXML.XML(comprobante); // Save file XML in System.IO.Directory.CreateDirectory(@"" + RutaCFDI + @"\Pagos\in\" + RFC); System.IO.File.WriteAllText(@"" + RutaCFDI + @"\Pagos\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_complemento+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.Pago(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("content", content); Respuesta.Add("request", Request); Respuesta.Add("response", response); Respuesta.Add("certificado", NoCertificado); Respuesta.Add("serie", Convert.ToString(Comprobante["Serie"])); Respuesta.Add("folio", Convert.ToString(Comprobante["Folio"])); Respuesta.Add("rfc", RFC); return(Respuesta.ToString()); }
private static CPago GenerarComprobante(Dictionary <string, object> Comprobante) { CPago comprobante = new CPago(); comprobante.Serie = Convert.ToString(Comprobante["Serie"]); comprobante.Folio = Convert.ToString(Comprobante["Folio"]); comprobante.Fecha = Comprobante["Fecha"].ToString(); comprobante.LugarExpedicion = Convert.ToString(Comprobante["LugarExpedicion"]); comprobante.Moneda = Convert.ToString(Comprobante["Moneda"]); comprobante.TipoDeComprobante = Convert.ToString(Comprobante["TipoDeComprobante"]); comprobante.Subtotal = Convert.ToDecimal(Comprobante["SubTotal"]); comprobante.Total = Convert.ToDecimal(Comprobante["Total"]); comprobante.NoCertificado = Convert.ToString(Comprobante["NoCertificado"]); comprobante.Certificado = Convert.ToString(Comprobante["Certificado"]); comprobante.Sello = Convert.ToString(Comprobante["Sello"]); Dictionary <string, object> Emisor = (Dictionary <string, object>)Comprobante["Emisor"]; Dictionary <string, object> Receptor = (Dictionary <string, object>)Comprobante["Receptor"]; comprobante.Emisor.RFC = Convert.ToString(Emisor["RFC"]); comprobante.Emisor.Nombre = Convert.ToString(Emisor["Nombre"]); comprobante.Emisor.RegimenFiscal = Convert.ToString(Emisor["RegimenFiscal"]); comprobante.Receptor.RFC = Convert.ToString(Receptor["RFC"]); comprobante.Receptor.Nombre = Convert.ToString(Receptor["Nombre"]); comprobante.Receptor.UsoCFDI = Convert.ToString(Receptor["UsoCFDI"]); Dictionary <string, object> Concepto = (Dictionary <string, object>)Comprobante["Concepto"]; comprobante.Concepto.ClaveProdServ = Convert.ToString(Concepto["ClaveProdServ"]); comprobante.Concepto.Cantidad = Convert.ToDecimal(Concepto["Cantidad"]); comprobante.Concepto.ClaveUnidad = Convert.ToString(Concepto["ClaveUnidad"]); comprobante.Concepto.Descripcion = Convert.ToString(Concepto["Descripcion"]); comprobante.Concepto.ValorUnitario = Convert.ToDecimal(Concepto["ValorUnitario"]); comprobante.Concepto.Importe = Convert.ToDecimal(Concepto["Importe"]); Dictionary <string, object> Complemento = (Dictionary <string, object>)Comprobante["Complemento"]; comprobante.Complementos.FechaPago = Complemento["FechaPago"].ToString(); comprobante.Complementos.FormaDePagoP = Convert.ToString(Complemento["FormaDePagoP"]); comprobante.Complementos.MonedaP = Convert.ToString(Complemento["MonedaP"]); comprobante.Complementos.TipoCambioP = Convert.ToString(Complemento["TipoCambioP"]); comprobante.Complementos.Monto = Convert.ToDecimal(Complemento["Monto"]); comprobante.Complementos.NumOperacion = Convert.ToString(Complemento["NumOperacion"]); comprobante.Complementos.RfcEmisorCtaOrd = Convert.ToString(Complemento["RfcEmisorCtaOrd"]); comprobante.Complementos.CtaOrdenante = Convert.ToString(Complemento["CtaOrdenante"]); comprobante.Complementos.NomBancoOrdExt = Convert.ToString(Complemento["NomBancoOrdExt"]); comprobante.Complementos.RfcEmisorCtaBen = Convert.ToString(Complemento["RfcEmisorCtaBen"]); comprobante.Complementos.CtaBeneficiario = Convert.ToString(Complemento["CtaBeneficiario"]); //comprobante.Complementos.TipoCadPago = Convert.ToString(Complemento["TipoCadPago"]); //comprobante.Complementos.CertPago = Convert.ToString(Complemento["CertPago"]); //comprobante.Complementos.CadPago = Convert.ToString(Complemento["CadPago"]); //comprobante.Complementos.SelloPago = Convert.ToString(Complemento["SelloPago"]); Object[] Documentos = (Object[])Complemento["DoctosRelacionados"]; if (Documentos.Length > 0) { int i = 0; CDoctoRelacionado[] docto = new CDoctoRelacionado[Documentos.Length]; foreach (Dictionary <string, object> documento in Documentos) { docto[i] = new CDoctoRelacionado { IdDocumento = Convert.ToString(documento["IdDocumento"]), Serie = Convert.ToString(documento["Serie"]), Folio = Convert.ToString(documento["Folio"]), MonedaDR = Convert.ToString(documento["MonedaDR"]), TipoCambioDR = Convert.ToString(documento["TipoCambioDR"]), MetodoDePagoDR = Convert.ToString(documento["MetodoDePagoDR"]), NumParcialidad = Convert.ToString(documento["NumParcialidad"]), ImpSaldoAnt = Convert.ToDecimal(documento["ImpSaldoAnt"]), ImpPagado = Convert.ToDecimal(documento["ImpPagado"]), ImpSaldoInsoluto = Convert.ToDecimal(documento["ImpSaldoInsoluto"]) }; docto[i].IdDocumento = Convert.ToString(documento["IdDocumento"]); docto[i].Serie = Convert.ToString(documento["Serie"]); docto[i].Folio = Convert.ToString(documento["Folio"]); docto[i].MonedaDR = Convert.ToString(documento["MonedaDR"]); docto[i].TipoCambioDR = Convert.ToString(documento["TipoCambioDR"]); docto[i].MetodoDePagoDR = Convert.ToString(documento["MetodoDePagoDR"]); docto[i].NumParcialidad = Convert.ToString(documento["NumParcialidad"]); docto[i].ImpSaldoAnt = Convert.ToDecimal(documento["ImpSaldoAnt"]); docto[i].ImpPagado = Convert.ToDecimal(documento["ImpPagado"]); docto[i].ImpSaldoInsoluto = Convert.ToDecimal(documento["ImpSaldoInsoluto"]); i++; } comprobante.Complementos.DoctoRelacionados = docto; } else { } return(comprobante); }
public static string XML(CPago Comprobante) { string xml = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + System.Environment.NewLine + "<cfdi:Comprobante" + System.Environment.NewLine + " Certificado=\"\"" + System.Environment.NewLine + " NoCertificado=\"" + Comprobante.NoCertificado + "\"" + System.Environment.NewLine + " Sello=\"" + Comprobante.Sello + "\"" + System.Environment.NewLine + " Fecha=\"" + Comprobante.Fecha + "\"" + System.Environment.NewLine + " Folio=\"" + Comprobante.Folio + "\"" + System.Environment.NewLine + " Serie=\"" + Comprobante.Serie + "\"" + System.Environment.NewLine + " Version=\"3.3\"" + System.Environment.NewLine + " LugarExpedicion=\"" + Comprobante.LugarExpedicion + "\"" + System.Environment.NewLine + " TipoDeComprobante=\"" + Comprobante.TipoDeComprobante + "\"" + System.Environment.NewLine + " Total=\"" + Comprobante.Total.ToString("0.##") + "\"" + System.Environment.NewLine + " SubTotal=\"" + Comprobante.Subtotal.ToString("0.##") + "\"" + System.Environment.NewLine + " Moneda=\"" + Comprobante.Moneda + "\"" + System.Environment.NewLine + " xmlns:cfdi=\"http://www.sat.gob.mx/cfd/3\"" + System.Environment.NewLine + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" + System.Environment.NewLine + " xmlns:pago10 = \"http://www.sat.gob.mx/Pagos\"" + System.Environment.NewLine + " xsi:schemaLocation=\"http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd http://www.sat.gob.mx/Pagos http://www.sat.gob.mx/sitio_internet/cfd/Pagos/Pagos10.xsd\" > " + System.Environment.NewLine + " <cfdi:Emisor" + System.Environment.NewLine + " Nombre=\"" + Comprobante.Emisor.Nombre + "\"" + System.Environment.NewLine + " Rfc=\"" + Comprobante.Emisor.RFC + "\"" + System.Environment.NewLine + " RegimenFiscal=\"" + Comprobante.Emisor.RegimenFiscal + "\"/>" + System.Environment.NewLine + " <cfdi:Receptor" + System.Environment.NewLine + " Nombre=\"" + Comprobante.Receptor.Nombre + "\"" + System.Environment.NewLine + " Rfc=\"" + Comprobante.Receptor.RFC + "\"" + System.Environment.NewLine + " UsoCFDI=\"" + Comprobante.Receptor.UsoCFDI + "\"/>" + System.Environment.NewLine + " <cfdi:Conceptos>" + System.Environment.NewLine + " <cfdi:Concepto" + System.Environment.NewLine + " Importe=\"" + Comprobante.Concepto.Importe.ToString("0.##") + "\"" + System.Environment.NewLine + " ValorUnitario=\"" + Comprobante.Concepto.ValorUnitario.ToString("0.##") + "\"" + System.Environment.NewLine + " Descripcion=\"" + Comprobante.Concepto.Descripcion + "\"" + System.Environment.NewLine + " ClaveUnidad=\"" + Comprobante.Concepto.ClaveUnidad + "\"" + System.Environment.NewLine + " Cantidad=\"" + Comprobante.Concepto.Cantidad.ToString("0.######") + "\"" + System.Environment.NewLine + " ClaveProdServ=\"" + Comprobante.Concepto.ClaveProdServ + "\" />" + System.Environment.NewLine + " </cfdi:Conceptos>" + System.Environment.NewLine + " <cfdi:Complemento > " + System.Environment.NewLine + " <pago10:Pagos Version = \"1.0\" > " + System.Environment.NewLine + " <pago10:Pago " + System.Environment.NewLine + " FechaPago = \"" + Comprobante.Complementos.FechaPago + "\" " + System.Environment.NewLine + " FormaDePagoP = \"" + Comprobante.Complementos.FormaDePagoP + "\" " + System.Environment.NewLine + " MonedaP = \"" + Comprobante.Complementos.MonedaP + "\" " + System.Environment.NewLine + " Monto = \"" + Comprobante.Complementos.Monto + "\" " + System.Environment.NewLine; if (Comprobante.Complementos.NumOperacion != "") { xml += " NumOperacion = \"" + Comprobante.Complementos.NumOperacion + "\" " + System.Environment.NewLine; } if (Comprobante.Complementos.TipoCambioP != "") { xml += " TipoCambioP = \"" + Comprobante.Complementos.TipoCambioP + "\" " + System.Environment.NewLine; } if (Comprobante.Complementos.RfcEmisorCtaOrd != "") { xml += " RfcEmisorCtaOrd = \"" + Comprobante.Complementos.RfcEmisorCtaOrd + "\" " + System.Environment.NewLine + " CtaOrdenante = \"" + Comprobante.Complementos.CtaOrdenante + "\" " + System.Environment.NewLine; } if (Comprobante.Complementos.NomBancoOrdExt != "") { xml += " NomBancoOrdExt = \"" + Comprobante.Complementos.NomBancoOrdExt + "\" " + System.Environment.NewLine; } if (Comprobante.Complementos.RfcEmisorCtaBen != "") { xml += " RfcEmisorCtaBen = \"" + Comprobante.Complementos.RfcEmisorCtaBen + "\" " + System.Environment.NewLine + " CtaBeneficiario = \"" + Comprobante.Complementos.CtaBeneficiario + "\" "; } //" NomBancoOrdExt = \"" + Comprobante.Complementos.NomBancoOrdExt + "\" " + System.Environment.NewLine + //" TipoCadPago = \"" + Comprobante.Complementos.TipoCadPago + "\" " + System.Environment.NewLine + //" CertPago = \"" + Comprobante.Complementos.CertPago + "\" " + System.Environment.NewLine + //" CadPago = \"" + Comprobante.Complementos.CadPago + "\" " + System.Environment.NewLine + //" SelloPago = \"" + Comprobante.Complementos.SelloPago + "\" " + System.Environment.NewLine + xml += "> " + System.Environment.NewLine; foreach (CDoctoRelacionado Documento in Comprobante.Complementos.DoctoRelacionados) { xml += " <pago10:DoctoRelacionado " + System.Environment.NewLine + " IdDocumento = \"" + Documento.IdDocumento + "\" " + System.Environment.NewLine + " Serie = \"" + Documento.Serie + "\" " + System.Environment.NewLine + " Folio = \"" + Documento.Folio + "\" " + System.Environment.NewLine + " MonedaDR = \"" + Documento.MonedaDR + "\" " + System.Environment.NewLine; if (Documento.TipoCambioDR != "") { xml += " TipoCambioDR = \"" + Documento.TipoCambioDR + "\" " + System.Environment.NewLine; } xml += " MetodoDePagoDR = \"" + Documento.MetodoDePagoDR + "\" " + System.Environment.NewLine + " NumParcialidad = \"" + Documento.NumParcialidad + "\" " + System.Environment.NewLine; if (Documento.MetodoDePagoDR != "PUE") { xml += " ImpSaldoAnt = \"" + Documento.ImpSaldoAnt + "\" " + System.Environment.NewLine; } xml += " ImpPagado = \"" + Documento.ImpPagado + "\" " + System.Environment.NewLine; if (Documento.MetodoDePagoDR != "PUE") { xml += " ImpSaldoInsoluto = \"" + Documento.ImpSaldoInsoluto + "\" "; } xml += " /> " + System.Environment.NewLine; } xml += " </pago10:Pago > " + System.Environment.NewLine + " </pago10:Pagos > " + System.Environment.NewLine + " </cfdi:Complemento > " + System.Environment.NewLine + "</cfdi:Comprobante>"; return(xml); }