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")); } }