public void PagarCartao(Carrinho carrinho, DetalhePagamento detalhePagamento)
        {
            using (var cartaoService = new CartaoService())
            {
                try
                {
                    cartaoService.Credenciais   = "Credenciais do Cliente";
                    cartaoService.Numero        = detalhePagamento.NumeroDoCartao;
                    cartaoService.MesVencimento = detalhePagamento.MesValidade;
                    cartaoService.AnoVencimento = detalhePagamento.AnoValidade;
                    cartaoService.NomeDoCartao  = detalhePagamento.NomeDoCartao;
                    cartaoService.Valor         = carrinho.Total;

                    cartaoService.Charge();
                }
                catch (AvsMismatchException ex)
                {
                    throw new OrderException("O Cartao foi rejeitado.", ex);
                }
                catch (Exception ex)
                {
                    throw new OrderException("Houve um problema com o cartão.", ex);
                }
            }
        }
 public void Checkout(Carrinho carrinho, DetalhePagamento detalhePagamento)
 {
     if (VerificaEstoque(carrinho))
     {
         PagarCartao(carrinho, detalhePagamento);
         NotificaCliente(carrinho);
     }
 }