public async Task <string> PagoConTC(ContratoTC contratoTC) { List <ProdSerXVendidosPed> listaPedido = _pEFachada.GetProductosPedidosPorIdPedido(contratoTC.IdPedido); DemografiaCor demografiaComprador = _cOGeneralFachada.GetDemografiaPorId(contratoTC.IdDemografiaComprador); TipoDocumentoCor documentoComprador = _cOGeneralFachada.GetTipoDocumentoPorId(demografiaComprador.Tipodocumentocorid); List <ProductosServiciosPc> productos = new List <ProductosServiciosPc>(); for (int i = 0; i < listaPedido.Count; i++) { ProductosServiciosPc producto = await _cOFachada.GetPublicacionPorIdPublicacion(listaPedido[i].Idproductoservico); productos.Add(producto); } return(await _fAFacturaBiz.PagoConTC(contratoTC, listaPedido, demografiaComprador, documentoComprador, productos)); }
public async Task <string> PagoConTC([FromBody] ContratoTC contratoTC) { string respuesta = null; try { respuesta = await _fAFachada.PagoConTC(contratoTC); } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine(e.InnerException); Console.WriteLine(e.StackTrace); } return(respuesta); }
public async Task <string> PagoConTC(ContratoTC contratoTC, List <ProdSerXVendidosPed> listaPedido, DemografiaCor demografiaComprador, TipoDocumentoCor documentoComprador, List <ProductosServiciosPc> productos) { int?total = 0; foreach (ProdSerXVendidosPed p in listaPedido) { total += p.Preciototal; } TokenModel token = epayco.CreateToken( contratoTC.NumeroTC, //cardNumber contratoTC.AnioTC.ToString(), //expYear contratoTC.MesTC.ToString(), //expMonth contratoTC.CvcTC.ToString() //cvc ); CustomerCreateModel customer = epayco.CustomerCreate( token.id, //string demografiaComprador.Nombre, //string demografiaComprador.Apellido, //string demografiaComprador.Email, //string true //boolean ); ChargeModel response = epayco.ChargeCreate( token.id, customer.data.customerId, documentoComprador.Codigo, demografiaComprador.Numerodocumento.ToString(), demografiaComprador.Nombre, demografiaComprador.Apellido, demografiaComprador.Email, contratoTC.IdPedido.ToString(), "Pedido numero " + contratoTC.IdPedido.ToString(), total.ToString(), "0", // tax "0", // tax base "COP", contratoTC.Cuotas.ToString(), demografiaComprador.Direccion, demografiaComprador.Telefono.ToString(), demografiaComprador.Telefono.ToString(), "url_response", "url_confirmation", // TODO: Obtener IP "ip" ); List <FacturasFac> facturasGuargadas = new List <FacturasFac>(); string respuesta; // TODO: Si el response.estado == Aceptado, realizar la facturación, si es false, realizar su debido proceso. if (response.data.estado == "Aceptada") { List <FacturasFac> facturas = PedidoAFacturas(listaPedido, productos); foreach (FacturasFac f in facturas) { _ = await _repoFacturasFac.GuardarFactura(f); facturasGuargadas.Add(f); } List <ProdSerXFacturaFac> productosFacturas = ProductosPedidoAProductosFacturados(listaPedido, productos, facturasGuargadas); foreach (ProdSerXFacturaFac pf in productosFacturas) { _ = await _repoProdSerXFacturaFac.GuardarProductoFactura(pf); } respuesta = "Transacción realizada correctamente"; } else { respuesta = "Transacción fallida. Intente nuevamente."; } return(respuesta); }