Пример #1
0
        private static void Main(string[] args)
        {
            bool isSandbox = false;

            EnvironmentConfiguration.ChangeEnvironment(isSandbox);

            try
            {
                AccountCredentials credentials = PagSeguroConfiguration.Credentials(isSandbox);

                // TODO: Substitute the code below with a notification code for your transaction.
                // You receive this notification code through a post on the URL that you specify in
                // this page: https://pagseguro.uol.com.br/integracao/notificacao-de-transacoes.jhtml

                // Use notificationType to check if is PreApproval (preApproval or transaction)
                Transaction transaction = NotificationService.CheckTransaction(credentials, "766B9C-AD4B044B04DA-77742F5FA653-E1AB24");

                Console.WriteLine(transaction);
                Console.ReadKey();
            }
            catch (PagSeguroServiceException exception)
            {
                Console.WriteLine(exception.Message + "\n");

                foreach (ServiceError element in exception.Errors)
                {
                    Console.WriteLine(element + "\n");
                }
                Console.ReadKey();
            }
        }
Пример #2
0
        // GET: RetornoPagamento/Edit/5
        public ActionResult Retorno(string notificationType, string notificationCode)
        {
            AccountCredentials credentials = PagSeguroConfiguration.Credentials(true);


            if (notificationType == "transaction")
            {
                // obtendo o objeto transaction a partir do código de notificação
                Transaction transaction = NotificationService.CheckTransaction(
                    credentials,
                    notificationCode
                    );

                int status = transaction.TransactionStatus;

                if (status == 3) // paga
                {
                    string   referencia = transaction.Reference;
                    DateTime data       = transaction.LastEventDate;

                    int id = Int32.Parse(referencia.Substring(3));

                    Matricula mat = db.Matriculas.Find(id);

                    mat.DataPago = data;
                    mat.Situacao = "P"; // pago

                    db.Entry(mat).State = EntityState.Modified;
                    db.SaveChanges();
                }
            }
            ViewBag.Mensagem = "Processada.";
            return(View());
        }
Пример #3
0
        public IHttpActionResult ReceiveNotification(string notificationType, string notificationCode)
        {
            if (notificationType == "transaction")
            {
                // obtendo o objeto transaction a partir do código de notificação
                var transaction = NotificationService.CheckTransaction(
                    _credentials,
                    notificationCode
                    );

                var cart = _context.Users
                           .Include(u => u.Carts.Select(c => c.Products.Select(p => p.Product)))
                           .Single(u => u.Id == _userId)
                           .Carts.Single(c => c.Id == Int32.Parse(transaction.Reference));

                cart.TransactionCode = transaction.Code;

                if (transaction.TransactionStatus == TransactionStatus.Refunded || transaction.TransactionStatus == TransactionStatus.Cancelled)
                {
                    // Return products to stock
                    foreach (var cartProduct in cart.Products)
                    {
                        cartProduct.Product.NumberInStock += cartProduct.Quantity;
                    }
                }
            }

            return(Ok());
        }
Пример #4
0
        static void RequestExample(HttpRequest Request)
        {
            bool isSandbox = false;

            EnvironmentConfiguration.ChangeEnvironment(isSandbox);

            AccountCredentials credentials = PagSeguroConfiguration.Credentials(isSandbox);

            string notificationType = Request.Form["notificationType"];
            string notificationCode = Request.Form["notificationCode"];

            if (notificationType == "transaction")
            {
                // obtendo o objeto transaction a partir do código de notificação
                Transaction transaction =
                    NotificationService.CheckTransaction(credentials, notificationCode);

                var status = transaction.TransactionStatus;
            }
        }
Пример #5
0
        public void Notificacao(string code)
        {
            EnvironmentConfiguration.ChangeEnvironment(isSandbox);

            try
            {
                AccountCredentials credentials = PagSeguroConfiguration.Credentials(isSandbox);

                Transaction transaction = NotificationService.CheckTransaction(credentials, code);

                TratarRetorno(transaction);
            }
            catch (PagSeguroServiceException exception)
            {
                string retorno = exception.Message + "\n";

                foreach (ServiceError element in exception.Errors)
                {
                    retorno += element + "\n";
                }
            }
        }
Пример #6
0
 public IActionResult CheckNotification([FromRoute] string code)
 {
     if (string.IsNullOrEmpty(code))
     {
         return(BadRequest());
     }
     try
     {
         const bool isSandbox = true;
         EnvironmentConfiguration.ChangeEnvironment(isSandbox);
         var credentials  = PagSeguroConfiguration.Credentials(isSandbox);
         var notification = NotificationService.CheckTransaction(credentials, code, false);
         return(Ok(notification));
     }
     catch (PagSeguroServiceException exception)
     {
         return(StatusCode(500, exception.Errors));
     }
     catch (Exception ex)
     {
         return(StatusCode(500, ex.Message));
     }
 }
Пример #7
0
        public string Retorno(RetornoPagamentoModel retorno)
        {
            try
            {
                AccountCredentials credentials = PagSeguroConfiguration.Credentials(isSandbox);
                Transaction        transaction = NotificationService.CheckTransaction(credentials, retorno.notificationCode);

                var reference = long.Parse(new string(transaction.Reference.Where(char.IsDigit).ToArray()));

                if (transaction.TransactionStatus == Uol.PagSeguro.Enums.TransactionStatus.Paid)
                {
                    FinanceiroController finC = new FinanceiroController();
                    finC.RealizarPagamentoPagSeguro(reference);
                }

                SalvarRetorno(reference, transaction.Code, (int)transaction.TransactionStatus, transaction.GrossAmount);

                return(JsonConvert.SerializeObject(transaction));
            }
            catch
            {
                throw;
            }
        }
Пример #8
0
        public IHttpActionResult ObterNotificacao([FromBody] NotificacaoPagSeguroVO notificacao)
        {
            Boolean sandbox = true;
            String  ArquivoConfiguracaoPagSeguro = @"C:\temp\PagSeguroConfig.xml";

            if (notificacao == null)
            {
                Task.Run(() =>
                {
                    String assunto   = "Erro ao ObterNotificacao - ";
                    String mensagem2 = String.Format("Ocorreu um problema ao receber uma notificação (objeto nulo) do pagseguro: Data: {0}", DateTime.Now.ToString("dd/MM/yyyy - HH:mm:ss"));

                    container.Resolve <IEmailService>().EnviarEmail(Constantes.EMAIL_DESTINATARIO, Constantes.EMAIL_REMETENTE, "Suporte ", assunto, mensagem2, false);
                });

                return(BadRequest());
            }

            try
            {
                var configuracaoRepo = container.Resolve <IConfiguracaoRepository>();
                var configuracao     = configuracaoRepo.GetById(1);

                if (configuracao != null)
                {
                    ArquivoConfiguracaoPagSeguro = configuracao.ArquivoConfiguracaoPagSeguro;
                    sandbox = configuracao.AmbienteProducao == "N";
                }

                // PagSeguroConfiguration.UrlXmlConfiguration = @"C:\temp\PagSeguroConfig.xml";
                EnvironmentConfiguration.ChangeEnvironment(sandbox);

                AccountCredentials credentials = PagSeguroConfiguration.Credentials(sandbox);
                Transaction        transaction = NotificationService.CheckTransaction(credentials, notificacao.notificationCode);

                if (transaction != null)
                {
                    if (!String.IsNullOrEmpty(transaction.Reference))
                    {
                        var pedidoRepo = container.Resolve <IPedidoRepository>();
                        var pedido     = pedidoRepo.GetById(Convert.ToInt32(transaction.Reference));
                        pedidoRepo.Evict(pedido);

                        try
                        {
                            if (pedido != null)
                            {
                                if (transaction.TransactionStatus == TransactionStatus.Cancelled)
                                {
                                    pedido.Status              = (Int32)StatusPedido.Cancelado;
                                    pedido.Motivo              = "Cancelado pelo PagSeguro";
                                    pedido.CodigoAutorizacao   = transaction.Code;
                                    pedido.DataAlteracaoStatus = DateTime.Now;
                                    pedidoRepo.Save(pedido);

                                    var atividadeAtual = new Atividade()
                                    {
                                        Usuario = pedido.Usuario, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.MudancaStatusPedido), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = String.Format("O pagseguro mudou o status do pedido {0} para cancelado.", pedido.Id)
                                    };

                                    container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual);
                                }
                                else if (transaction.TransactionStatus == TransactionStatus.InAnalysis)
                                {
                                    pedido.Status              = (Int32)StatusPedido.Pendente;
                                    pedido.Motivo              = "Em análise pelo PagSeguro";
                                    pedido.CodigoAutorizacao   = transaction.Code;
                                    pedido.DataAlteracaoStatus = DateTime.Now;
                                    pedidoRepo.Save(pedido);

                                    var atividadeAtual = new Atividade()
                                    {
                                        Usuario = pedido.Usuario, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.MudancaStatusPedido), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = String.Format("O pagseguro mudou o status do pedido {0} para em análise.", pedido.Id)
                                    };

                                    container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual);
                                }
                                else if (transaction.TransactionStatus == TransactionStatus.Initiated)
                                {
                                    pedido.Status              = (Int32)StatusPedido.Pendente;
                                    pedido.Motivo              = "Iniciado pelo PagSeguro";
                                    pedido.CodigoAutorizacao   = transaction.Code;
                                    pedido.DataAlteracaoStatus = DateTime.Now;
                                    pedidoRepo.Save(pedido);

                                    var atividadeAtual = new Atividade()
                                    {
                                        Usuario = pedido.Usuario, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.MudancaStatusPedido), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = String.Format("O pagseguro mudou o status do pedido {0} para iniciado.", pedido.Id)
                                    };

                                    container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual);
                                }
                                else if (transaction.TransactionStatus == TransactionStatus.WaitingPayment)
                                {
                                    pedido.Status              = (Int32)StatusPedido.Pendente;
                                    pedido.Motivo              = "Aguardando pagamento pelo PagSeguro";
                                    pedido.CodigoAutorizacao   = transaction.Code;
                                    pedido.DataAlteracaoStatus = DateTime.Now;
                                    pedidoRepo.Save(pedido);

                                    var atividadeAtual = new Atividade()
                                    {
                                        Usuario = pedido.Usuario, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.MudancaStatusPedido), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = String.Format("O pagseguro mudou o status do pedido {0} para aguardando pagamento.", pedido.Id)
                                    };

                                    container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual);
                                }
                                else if (transaction.TransactionStatus == TransactionStatus.Available)
                                {
                                    pedido.Status              = (Int32)StatusPedido.Pago;
                                    pedido.Motivo              = "Saldo disponível no PagSeguro";
                                    pedido.CodigoAutorizacao   = transaction.Code;
                                    pedido.DataAlteracaoStatus = DateTime.Now;
                                    pedidoRepo.Save(pedido);

                                    var atividadeAtual = new Atividade()
                                    {
                                        Usuario = pedido.Usuario, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.MudancaStatusPedido), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = String.Format("O pagseguro mudou o status do pedido {0} para disponível.", pedido.Id)
                                    };

                                    container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual);
                                }
                                else if (transaction.TransactionStatus == TransactionStatus.Paid)
                                {
                                    if (pedido.Status == (Int32)StatusPedido.Pago || pedido.Status == (Int32)StatusPedido.Fechado || pedido.Status == (Int32)StatusPedido.Cancelado)
                                    {
                                        var atividadeAtual1 = new Atividade()
                                        {
                                            Usuario = pedido.Usuario, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.AtividadeIncomumPagSeguro), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = String.Format("O pagseguro aparentemente tentou mudar o status do pedido {0} que está pago/fechado/cancelado ", pedido.Id)
                                        };

                                        container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual1);

                                        return(Ok());
                                    }

                                    pedido.Status              = (Int32)StatusPedido.Pago;
                                    pedido.Motivo              = "Pagamento confirmado pelo PagSeguro";
                                    pedido.CodigoAutorizacao   = transaction.Code;
                                    pedido.DataAlteracaoStatus = DateTime.Now;
                                    pedidoRepo.Save(pedido);

                                    if (pedido.Servico.GeraMeses == "S")
                                    {
                                        //verifica se o usuário tem alguma assinatura vigente
                                        var assinaturaRepo = container.Resolve <IAssinaturaRepository>();
                                        var assinatura     = assinaturaRepo.ObterAssinaturaMaisRecentePeloEmailDoUsuario(pedido.Usuario.Email);

                                        DateTime novaData = (assinatura != null && assinatura.DataFim > DateTime.Now) ? assinatura.DataFim : DateTime.Now;

                                        var novaAssinatura = new Assinatura();
                                        novaAssinatura.Pedido       = pedido;
                                        novaAssinatura.DataCadastro = DateTime.Now;
                                        novaAssinatura.DataInicio   = novaData;
                                        Int32 Quantidade = Convert.ToInt32(pedido.Servico.QuantidadeMeses);
                                        novaAssinatura.DataFim = novaData.AddMonths(Quantidade);
                                        novaAssinatura.Usuario = pedido.Usuario;

                                        container.Resolve <AssinaturaCRUDService>().Salvar(novaAssinatura);

                                        Task.Run(() =>
                                        {
                                            String assunto   = " - Pagamento de pedido confirmado";
                                            String mensagem2 = String.Format("Olá {0} <br><br> O pagamento do seu pedido {1} foi confirmado pelo pagseguro.<br><br>A vigência da sua nova assinatura do serviço de consulta é de {2} até {3}. <br><br> Atenciosamente, Equipe Subcode23", pedido.Usuario.Nome, pedido.Id, novaAssinatura.DataInicio.ToString("dd/MM/yyyy - HH:mm:ss"), novaAssinatura.DataFim.ToString("dd/MM/yyyy - HH:mm:ss"));

                                            container.Resolve <IEmailService>().EnviarEmail(Constantes.EMAIL_DESTINATARIO, Constantes.EMAIL_REMETENTE, "Suporte ", assunto, mensagem2, true);
                                        });
                                    }
                                    else if (pedido.Servico.GeraCredito == "S")
                                    {
                                        var creditoRepo = container.Resolve <ICreditoRepository>();
                                        var novoCredito = new Credito();
                                        novoCredito.Pedido       = pedido;
                                        novoCredito.DataCadastro = DateTime.Now;
                                        novoCredito.DataCadastro = DateTime.Now;
                                        Int32 Quantidade = Convert.ToInt32(pedido.Servico.QuantidadeCredito);
                                        novoCredito.Usuario = pedido.Usuario;

                                        creditoRepo.Save(novoCredito);
                                    }

                                    var atividadeAtual = new Atividade()
                                    {
                                        Usuario = pedido.Usuario, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.MudancaStatusPedido), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = String.Format("O pagseguro mudou o status do pedido {0} para pago.", pedido.Id)
                                    };

                                    container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            Task.Run(() =>
                            {
                                String assunto   = "Erro no método ObterNotificacao - ";
                                String mensagem2 = String.Format("Ocorreu um erro -  Exceção: {0} - Exceção interna: {1} - Data: {2}", ex.Message, (ex.InnerException != null && ex.InnerException.Message != null) ? ex.InnerException.Message : "Exceção interna não definida", DateTime.Now.ToString("dd/MM/yyyy - HH:mm:ss"));

                                container.Resolve <IEmailService>().EnviarEmail(Constantes.EMAIL_DESTINATARIO, Constantes.EMAIL_REMETENTE, "Suporte ", assunto, mensagem2, false);

                                //SalvarErroSistemaHelper.SalvarErro(ex);
                            });
                            return(BadRequest());
                        }
                    }
                    else
                    {
                        return(Ok());
                    }

                    return(Ok());
                }
            }

            catch (PagSeguroServiceException ex)
            {
                String mensagem = String.Empty;
                Task.Run(() =>
                {
                    String assunto = "Erro de PagSeguroServiceException no método ObterNotificacao - Subcode 23";
                    if (ex.Errors.Count > 0)
                    {
                        mensagem = ex.Errors[0].Code + " - " + ex.Errors[0].Message;
                    }
                    String mensagem2 = String.Format("Ocorreu um erro - Erro do pagseguro {0} - Data: {1}", mensagem, DateTime.Now.ToString("dd/MM/yyyy - HH:mm:ss"));

                    container.Resolve <IEmailService>().EnviarEmail(Constantes.EMAIL_DESTINATARIO, Constantes.EMAIL_REMETENTE, "Suporte ", assunto, mensagem2, false);
                });
                return(BadRequest());
            }

            return(Ok());
        }
        public string notificacoespag(string notificationCode, string notificationType)
        {
            //webservice recebe coigo de notificação (notificationCode) via post

            string msg       = "JESUS IS THE LORD";
            bool   isSandbox = true;

            EnvironmentConfiguration.ChangeEnvironment(isSandbox);

            try
            {
                //faz uma requisição a API Pagseguro sobre o status desta notificação
                AccountCredentials credentials = PagSeguroConfiguration.Credentials(isSandbox);
                Transaction        transaction = NotificationService.CheckTransaction(credentials, notificationCode);

                string codeTransation   = transaction.Code.ToString();
                string dataTrasation    = transaction.Date.ToString();
                string statusTransation = transaction.TransactionStatus.ToString();
                string referTransation  = transaction.Reference.ToString();
                string statusTXT        = "";

                switch (statusTransation)
                {
                case "1":
                    statusTXT = "Aguardando pagamento";
                    break;

                case "2":
                    statusTXT = "Em análise";
                    break;

                case "3":
                    statusTXT = "Pago";
                    break;

                case "4":
                    statusTXT = "Disponível";
                    break;

                case "5":
                    statusTXT = "Em Disputa";
                    break;

                case "6":
                    statusTXT = "Devolvida";
                    break;

                case "7":
                    statusTXT = "Cancelada";
                    break;

                case "8":
                    statusTXT = "Debitado";
                    break;

                case "9":
                    statusTXT = "Retenção Temporária";
                    break;

                default:
                    statusTXT = "Outros";
                    break;
                }

                //atualiza status da entrega
                OperacaoBanco operacao = new OperacaoBanco();
                bool          alterar  = operacao.Update("update Tbl_Entregas_Master set " +
                                                         "Status_Pagam = '" + statusTXT + "' " +
                                                         "where PSCodTransacao = '" + codeTransation + "'");
                ConexaoBancoSQL.fecharConexao();
                if (alterar != true)
                {
                    msg = "NAO FOI POSSIVEL ATUALIZAR ";
                }
            }
            catch (PagSeguroServiceException exception)
            {
                msg = "erro:" + exception.Message;
            }

            return(msg);
        }
Пример #10
0
        public void Receber(string notificationCode, string notificationType, int ranking = 0)
        {
            var log = new Log();

            log.descricao = "Chegou:" + DateTime.Now + ":" + notificationCode;
            db.Log.Add(log);
            db.SaveChanges();

            var barragem = db.BarragemView.Find(ranking);
            AccountCredentials credentials = new AccountCredentials(barragem.emailPagSeguro, barragem.tokenPagSeguro);

            if (notificationType == "transaction")
            {
                // obtendo o objeto transaction a partir do código de notificação
                Transaction transaction = NotificationService.CheckTransaction(credentials, notificationCode);
                // Data da criação
                DateTime date = transaction.Date;
                // Data da última atualização
                DateTime lastEventDate = transaction.LastEventDate;
                // Código da transação
                string code = transaction.Code;
                // Refência
                string reference = transaction.Reference;
                // Valor bruto
                decimal grossAmount = transaction.GrossAmount;
                // Tipo
                int type = transaction.TransactionType;
                // Status

                /* Código	Significado
                 * 1	Aguardando pagamento: o comprador iniciou a transação, mas até o momento o PagSeguro não recebeu nenhuma informação sobre o pagamento.
                 * 2	Em análise: o comprador optou por pagar com um cartão de crédito e o PagSeguro está analisando o risco da transação.
                 * 3	Paga: a transação foi paga pelo comprador e o PagSeguro já recebeu uma confirmação da instituição financeira responsável pelo processamento.
                 * 4	Disponível: a transação foi paga e chegou ao final de seu prazo de liberação sem ter sido retornada e sem que haja nenhuma disputa aberta.
                 * 5	Em disputa: o comprador, dentro do prazo de liberação da transação, abriu uma disputa.
                 * 6	Devolvida: o valor da transação foi devolvido para o comprador.
                 * 7	Cancelada: a transação foi cancelada sem ter sido finalizada.
                 * 8	Debitado: o valor da transação foi devolvido para o comprador.
                 * 9	Retenção temporária: o comprador contestou o pagamento junto à operadora do cartão de crédito ou abriu uma demanda judicial ou administrativa (Procon).
                 */
                int status = transaction.TransactionStatus;
                // Valor líquido
                decimal netAmount = transaction.NetAmount;
                // Valor das taxas cobradas
                decimal feeAmount = transaction.FeeAmount;
                // Valor extra ou desconto
                decimal extraAmount = transaction.ExtraAmount;
                // Tipo de meio de pagamento
                PaymentMethod paymentMethod = transaction.PaymentMethod;

                string[] refs = reference.Split('-');
                if (refs[0].Equals("T"))
                { // se for torneio
                    int idInscricao = Convert.ToInt32(refs[1]);
                    var inscricao   = db.InscricaoTorneio.Find(idInscricao);
                    if (status == 3)
                    {
                        inscricao.isAtivo = true;
                    }
                    inscricao.statusPagamento = status + "";
                    inscricao.formaPagamento  = paymentMethod.PaymentMethodType + "";
                    inscricao.valor           = (float)transaction.GrossAmount;
                    db.Entry(inscricao).State = EntityState.Modified;
                    db.SaveChanges();
                    var log2 = new Log();
                    log2.descricao = ranking + " movimentacao ok " + status + ":" + DateTime.Now + ":" + notificationCode;
                    db.Log.Add(log2);
                    db.SaveChanges();

                    // ativar segunda inscrição caso exista
                    var listInscricao = db.InscricaoTorneio.Where(t => t.torneioId == inscricao.torneioId && t.userId == inscricao.userId && t.Id != inscricao.Id).ToList();
                    if (listInscricao.Count() > 0)
                    {
                        var inscricao2 = listInscricao[0];
                        if (status == 3)
                        {
                            inscricao2.isAtivo = true;
                        }
                        inscricao2.statusPagamento = status + "";
                        inscricao2.formaPagamento  = paymentMethod.PaymentMethodType + "";
                        inscricao2.valor           = (float)transaction.GrossAmount;
                        db.Entry(inscricao2).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                }
            }
        }
Пример #11
0
        public ActionResult Notificacao()
        {
            ViewBag.Tema = Settings.Default.Tema;

            try
            {
                //Stopwatch tempo = new Stopwatch();
                //tempo.Start();

                AccountCredentials credentials = new AccountCredentials(
                    Settings.Default.EmailCredential,
                    Settings.Default.TokenCredential
                    );

                string notificationType = Request.Form["notificationType"];
                string notificationCode = Request.Form["notificationCode"];//Recupera o código da transação que foi aberta pelo pagseguro

                if (notificationType == "transaction")
                {
                    // obtendo o objeto transaction a partir do código de notificação
                    Transaction transaction =
                        NotificationService.CheckTransaction(credentials, notificationCode);

                    IList <Item> lstItem = transaction.Items;//Lista com os itens que foram comprados

                    if (transaction != null)
                    {
                        if (Settings.Default.ReservaPedidoBotaoComprar)
                        {
                            updatePedido.gerarPedido(transaction, lstItem);
                        }
                        else
                        {
                            pedido.gerarPedido(transaction, lstItem);
                        }
                    }
                    //tempo.Stop();
                    //GravarLog.gravarLogError("Tempo de inserção: " + tempo.Elapsed, "Tempo de Inserção");
                }
                else
                {
                    GravarLog.gravarLogError("Tipo de transação: " + notificationType, "Não retornou transaction");
                }
            }
            catch (PagSeguroServiceException ex)
            {
                StackTrace      exe = new StackTrace(ex, true);
                CustomException ep  = new CustomException(ex, exe, "");
                ep.Save(AppDomain.CurrentDomain.BaseDirectory + "/Logs/Log.log");

                if (ex.StatusCode == HttpStatusCode.Unauthorized)
                {
                    GravarLog.gravarLogError("Unauthorized: lease verify if the credentials used in the web service call  re correct./n", "Erro Transaction");
                }

                foreach (PagSeguroServiceError error in ex.Errors)
                {
                    GravarLog.gravarLogError(error.ToString(), "Erro PagSeguro");
                }
            }



            return(View());
        }