public ActionResult Pagar(string IdPedido)
        {
            //model.Produto = (from i in Lista
            //                 where i.ID_PRODUTO == id
            //                 select i).FirstOrDefault();

            //var pedidoModel = _pedidoApp.GetById(Guid.Parse(IdPedido));
            var includes    = new[] { "ItensPedido" };
            var pedidoModel = _pedidoApp.GetByIdWithIncludes(Guid.Parse(IdPedido), includes);

            if (pedidoModel != null)
            {
                EnvironmentConfiguration.ChangeEnvironment(true);

                PagamentoPagSeguroModel model = new PagamentoPagSeguroModel();
                model.Pedido = new PagamentoPagSeguroPedido {
                    Reference = "P" + IdPedido + "#" + DateTime.Now.Millisecond, RedirectUri = "https://www.google.com.br/search?q=url-temporaria"
                };
                model.Cobrador = new PagamentoPagSeguroCobrador {
                    Nome = "Gabriel Teste Silva", CPF = "33565201720", Email = "*****@*****.**", TelefonePrevixo = 71, TelefoneNumero = 88637803
                };

                //PagSeguroConfiguration.UrlXmlConfiguration = HttpRuntime.AppDomainAppPath + @"Configuration\PagSeguroConfig.xml";
                //AccountCredentials credentials = new AccountCredentials("*****@*****.**", "2507D8278A9D478D94327BABDDC2A573");
                AccountCredentials credentials = PagSeguroConfiguration.Credentials(true);
                try
                {
                    PaymentRequest payment = new PaymentRequest();
                    payment.Currency = Currency.Brl;
                    //payment.Items.Add(new Item(model.Produto.ID_PRODUTO.ToString(), model.Produto.Nome, 1, Convert.ToDecimal(model.Produto.Valor)));

                    //var itensPedidoModel = _itemPedidoApp.BuscarItensPorIdPedido(pedidoModel.IdPedido);
                    foreach (var item in pedidoModel.ItensPedido)
                    {
                        var produtoModel      = _produtoApp.GetById(item.IdProduto);
                        var produtoPrecoModel = _produtoPrecoApp.GetById(item.IdProdutoPreco);

                        var nomeProdutoCompleto = produtoModel.Descricao + " (" + produtoPrecoModel.Descricao + ")";

                        payment.Items.Add(new Item(item.IdProduto.ToString(), nomeProdutoCompleto, item.QtdProduto, Convert.ToDecimal(item.ValorUnitario)));
                    }

                    payment.Reference             = model.Pedido.Reference;
                    payment.Shipping              = new Shipping();
                    payment.Shipping.ShippingType = ShippingType.NotSpecified;
                    payment.Shipping.Cost         = 0.00m;

                    payment.Shipping.Address = new Address(
                        "BRA",
                        "SP",
                        "Sao Paulo",
                        "Jardim Paulistano",
                        "01452002",
                        "Av. Brig. Faria Lima",
                        "1384",
                        "5o andar"
                        );

                    //payment.Shipping.Address = new Address(
                    //    model.Endereco.Pais,
                    //    model.Endereco.Estado,
                    //    model.Endereco.Cidade,
                    //    model.Endereco.Bairro,
                    //    model.Endereco.Cep,
                    //    model.Endereco.Rua,
                    //    model.Endereco.Numero,
                    //    model.Endereco.Complemento
                    //);

                    // Sets your customer information.
                    payment.Sender = new Sender(
                        model.Cobrador.Nome,
                        model.Cobrador.Email,
                        new Phone(model.Cobrador.TelefonePrevixo.ToString(), model.Cobrador.TelefoneNumero.ToString())
                        );

                    // Sets the url used by PagSeguro for redirect user after ends checkout process
                    payment.RedirectUri = new Uri(@"" + model.Pedido.RedirectUri);


                    //payment.RedirectUri = new Uri(HttpRuntime.AppDomainAppPath + @"Configuration\PagSeguroConfig.xml");

                    SenderDocument senderCPF = new SenderDocument(Documents.GetDocumentByType("CPF"), model.Cobrador.CPF);
                    payment.Sender.Documents.Add(senderCPF);
                    string paymentRedirectUri = payment.Register(credentials).ToString();

                    if (!string.IsNullOrEmpty(paymentRedirectUri))
                    {
                        int    posicao = paymentRedirectUri.LastIndexOf("code=");
                        string retor   = paymentRedirectUri.Substring(posicao + 5, 32);

                        //    var resultado = new
                        //        {
                        //            checkoutCode = retor
                        //        };
                        //return Json(resultado);


                        var result = new { Success = "True", Message = retor };
                        return(Json(result, JsonRequestBehavior.AllowGet));


                        //return Redirect(paymentRedirectUri);
                    }
                    else
                    {
                        ViewBag.Retorno = paymentRedirectUri;
                        return(View("PagSeguro"));
                    }
                }
                catch (PagSeguroServiceException exception)
                {
                    ViewBag.Erro = "Não Foi possivel carregar a página";
                    return(View("Error"));
                }
            }
            else
            {
                ViewBag.Retorno = "Pedido não encontrado.";
                return(View("PagSeguro"));
            }
        }