예제 #1
0
        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));
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }