public ActionResult PagSeguro() { log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); log.Debug("-------------------------------PagSeguro"); Sacola sacola = (Sacola)HttpContext.Session["sacola"]; Usuario usuario = (Usuario)HttpContext.Session["usuario"]; Pedido pedido = (Pedido)HttpContext.Session["pedido"]; string code = ""; if (pedido == null) { pedido = new Pedido(); long ultimoId = PedidoBO.ObterUltimoId(); pedido.Id = long.Parse(PreencherId(ultimoId.ToString())); } try { //var url = "https://ws.pagseguro.uol.com.br/v2/checkout"; var url = "https://ws.sandbox.pagseguro.uol.com.br/v2/checkout"; var content = ""; content += "[email protected]"; //content += "[email protected]"; // content += "&token=a88fbdb1-2df5-45dc-af24-c7f64e303653b58a0b24483fb536ac84be8b536da9d9f8b9-10a6-4177-a75c-5ae7e249ad1c"; content += "&token=5269A70FB9FD41D3A2BDD1C305B142AE"; content += "¤cy=BRL"; content += "&reference=" + pedido.Id; string[] telefones = new string[2]; string ddd = "(31)"; string tel = "99304-7540"; string nome = usuario.Nome; string email = "*****@*****.**"; string telefone = ddd + tel; if (!String.IsNullOrWhiteSpace(telefone) && telefone.Contains(")") && telefone.Contains("-")) { telefones = telefone.Split(')'); ddd = telefones[0].Replace("(", "").Replace(")", ""); tel = telefones[1].Replace(")", "").Replace("-", ""); // content += "&reference = " + pedido.Id; content += "&senderName=" + nome; content += "&senderAreaCode=" + ddd; content += "&senderPhone=" + tel; content += "&senderEmail=" + email; content += "&shippingType=2"; content += "&shippingCost=" + sacola.Sedex.ToString("N2").Replace(",", "."); content += "&shippingAddressStreet=" + sacola.Rua; content += "&shippingAddressNumber=" + sacola.NumeroEndereco; content += "&shippingAddressDistrict=" + sacola.Bairro; content += "&shippingAddressPostalCode=" + sacola.Cep; content += "&shippingAddressCity=" + sacola.Cidade; content += "&shippingAddressState=" + sacola.Estado; content += "&shippingAddressCountry=BRA"; content = RecuperarProdutos(content, sacola.Produtos); var xmlResult = ""; var task = new Task(() => { xmlResult = RestService <String> .AccessTheWebAsync(url, content, "post").Result; }); task.Start(); task.Wait(); if (!string.IsNullOrEmpty(xmlResult)) { var _doc = XDocument.Parse(xmlResult); var hasErrors = _doc.Descendants("errors").Count() > 0; if (!hasErrors) { log.Debug("-------------------------------PagSeguro - OK - Checkout Efetuado sem erros"); log.Debug("-------------------------------Criar Pedido"); CriarPedido(usuario.Email, pedido.Id); log.Debug("-------------------------------Pedido - OK - Pedido criado sem Erros"); var checkout = _doc.Descendants("checkout"); code = checkout.FirstOrDefault().Element("code").Value; //_navegacao.NavigateTo("PagSeguroUOL", code); // PagSeguro pagseguro = new PagSeguro(); // pagseguro.Content = "https://pagseguro.uol.com.br/v2/checkout/payment.html?code=" + code; // HttpContext.Session["sacola"] = null; // return new RedirectResult(pagseguro.Content); // return View("Cart", sacola); } else { TempData["Erro"] = "Erro no Pag Seguro " + xmlResult; log.Debug("-------------------------------Pedido - NOK " + xmlResult); } } } else { // page.DisplayAlert("Erro", "Formato de telefone inválido(XX)XXXXX-XXXX.", "Ok"); TempData["Erro"] = "Erro no Web Service"; ViewBag.Ocorrencias = "Erro no Pag Seguro "; log.Debug("-------------------------------Pedido - NOK " + "Erro no Pag Seguro "); } } catch (Exception ex) { log.Debug("-------------------------------PagSeguro - NOK " + ex.ToString()); TempData["Erro"] = ex.Message; return(new RedirectResult("~/Home/Cart")); } return(new RedirectResult("~/Home/Cart?listaProduto=''&code=" + code)); }