예제 #1
0
        public bool RealizarPagamento(Pedido pedido, Pagamento pagamento)
        {
            var apiKey        = _configManager.GetValue("apiKey");
            var encriptionKey = _configManager.GetValue("encriptionKey");

            var serviceKey  = _payPalGateway.GetPayPalServiceKey(apiKey, encriptionKey);
            var cardHashKey = _payPalGateway.GetCardHashKey(serviceKey, pagamento.CartaoCredito);

            var pagamentoResult = _payPalGateway.CommitTransaction(cardHashKey, pedido.Id.ToString(), pagamento.Valor);

            return(pagamentoResult);
        }
예제 #2
0
        public Pagamento RealizarPagamento(Pedido pedido, Pagamento pagamento)
        {
            pagamento.Valor = pedido.Produtos.Sum(p => p.Valor);
            Console.WriteLine("Iniciando pagamento via Transferencia - valor R$ {0}", pagamento.Valor);

            if (_pagamentoTransferenciaFacade.RealizarPagamento(pedido, pagamento))
            {
                pagamento.Status = "Sucesso no pagamento via transferencia";
                return(pagamento);
            }
            pagamento.Status = "Erro ao efetuar pagamento via transferencia";
            return(pagamento);
        }
예제 #3
0
        public Pagamento RealizarPagamento(Pedido pedido, Pagamento pagamento)
        {
            pagamento.Valor = pedido.Produtos.Sum(p => p.Valor);
            Eventos.Adicionar($"Iniciando Pagamento via Cartão de Crédito - Valor R$ {pagamento.Valor}");
            if (_pagamentoCartaoCreditoFacade.RealizarPagamento(pedido, pagamento))
            {
                pagamento.Status = "Pago via Cartão de Crédito";
                return(pagamento);
            }

            pagamento.Status = "Cartão de Crédito Recusado!";
            return(pagamento);
        }
예제 #4
0
        public static void Executar()
        {
            var produtos = new List <Produto>()
            {
                new Produto("Tenis adidas", new Random().Next(500)),
                new Produto("Camisa boliche", new Random().Next(500)),
                new Produto("Raquete tenis", new Random().Next(500)),
            };

            var pedido = new Pedido()
            {
                Id       = Guid.NewGuid(),
                Produtos = produtos
            };

            var cartao = new Pagamento()
            {
                CartaoCredito = "1234 1324 4546 45457",
            };
            var transferencia = new Pagamento();
            var boleto        = new Pagamento();

            var pedidoBoleto = new PedidoService(PagamentoFactory.CreatePagamento(MeioPagamento.Boleto));
            var resBoleto    = pedidoBoleto.RealizarPagamento(pedido, boleto);

            Console.WriteLine(resBoleto.Status);

            var pedidoCartao = new PedidoService(PagamentoFactory.CreatePagamento(MeioPagamento.CartaoCredito));
            var resCartao    = pedidoCartao.RealizarPagamento(pedido, cartao);

            Console.WriteLine(resCartao.Status);

            var pedidoTransferencia = new PedidoService(PagamentoFactory.CreatePagamento(MeioPagamento.Transferencia));
            var resTransf           = pedidoTransferencia.RealizarPagamento(pedido, transferencia);

            Console.WriteLine(resTransf.Status);
        }
예제 #5
0
 public Pagamento RealizarPagamento(Pedido pedido, Pagamento pagamento)
 {
     return(_pagamento.RealizarPagamento(pedido, pagamento));
 }