Exemplo n.º 1
0
        public async Task <DataPse> PagoPSE(ContratoPSE contratoPSE)
        {
            List <ProdSerXVendidosPed> listaPedido          = _pEFachada.GetProductosPedidosPorIdPedido(contratoPSE.IdPedido);
            DemografiaCor               demografiaComprador = _cOGeneralFachada.GetDemografiaPorId(contratoPSE.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.PagoPSE(contratoPSE, listaPedido, demografiaComprador, documentoComprador, productos));
        }
Exemplo n.º 2
0
        public async Task <DataPse> PagoPSE(ContratoPSE contratoPSE,
                                            List <ProdSerXVendidosPed> listaPedido,
                                            DemografiaCor demografiaComprador,
                                            TipoDocumentoCor documentoComprador,
                                            List <ProductosServiciosPc> productos)
        {
            int?total = 0;

            foreach (ProdSerXVendidosPed p in listaPedido)
            {
                total += p.Preciototal;
            }
            //TODO Hay que cambiar estos y parametrizarlos
            var comision = total * 0.01;
            var checkOut = total + comision + 2380;

            total = (int?)checkOut;
            String   uuid     = Guid.NewGuid().ToString();
            PseModel response = epayco.BankCreate(
                COEpayco.CODIGO_BANCARIO[contratoPSE.Banco],
                uuid, // ID de factura
                "Pedido numero " + contratoPSE.IdPedido.ToString(),
                total.ToString(),
                "0",
                "0",
                "COP",
                "0", // 0 para persona, 1 para comercio
                documentoComprador.Codigo,
                demografiaComprador.Numerodocumento.ToString(),
                demografiaComprador.Nombre,
                demografiaComprador.Apellido,
                demografiaComprador.Email,
                "CO",
                demografiaComprador.Telefono.ToString(),
                "url_response",
                "url_confirmation",
                "method_confirmation"
                );

            if (response.success)
            {
                return(response.data);
            }
            return(null);
        }
Exemplo n.º 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);
        }