Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite,
estou integrando uma loja virtual com o PagSeguro (a terceira). E dessa vez não há milagre que faça o retorno automático funcionar... O pagamento está indo ok.
O endereço da loja é: www.martinscafe.com/loja
O e-mail do PagSeguro é: mariano@martinscafe.com
Meu e-mail é: gabriel@zaft.com.br
A requisição do PagSeguro está chegando sempre como GET e não entra no IF que verifica o tipo da requisição. Usava a biblioteca do Valois, inclusive uso ela em outro projeto que funciona perfeitamente.
Segue abaixo o código fonte que valida a requisição, peguei o padrão do UOL Host para testar, já que com a ddl do Valois não tava funcionando também.
Outro ponto, quando faço testes com o servidor de testes do Valois localmente tudo funciona perfeitamente, o problema só ocorrem em produção.
Se alguém puder ajudar, agradeço e muito. Att.
ASPX.CS
protected void Page_Load(object sender, EventArgs e)
{
if (Request.HttpMethod == "POST")
{
//o método POST indica que a requisição é o retorno da validação NPI.
string Token = "1234567"; //estou informando o token correto, so ocultei no post
string Pagina = "https://pagseguro.uol.com.br/pagseguro-ws/checkout/NPI.jhtml";
string Dados = HttpContext.Current.Request.Form.ToString() + "&Comando=validar" + "&Token=" + Token;
Util.SQLUtility.enviaEmail("gabriel@zaft.com.br", "site@martinscafe.com", "dados", Dados);
System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(Pagina);
req.Method = "POST";
req.ContentLength = Dados.Length;
req.ContentType = "application/x-www-form-urlencoded";
System.IO.StreamWriter stOut = new System.IO.StreamWriter(req.GetRequestStream(), System.Text.Encoding.GetEncoding("ISO-8859-1"));
stOut.Write(Dados);
stOut.Close();
System.IO.StreamReader stIn = new System.IO.StreamReader(req.GetResponse().GetResponseStream(), System.Text.Encoding.GetEncoding("ISO-8859-1"));
string Result = stIn.ReadToEnd();
stIn.Close();
if (Result == "VERIFICADO")
{
Util.SQLUtility.enviaEmail("gabriel@zaft.com.br", "site@martinscafe.com", "validou", "validou");
}
else if (Result == "FALSO")
{
//o post nao foi validado
Util.SQLUtility.enviaEmail("gabriel@zaft.com.br", "site@martinscafe.com", "nao validou", "nao validou");
}
else
{
//erro na integração com PagSeguro.
Util.SQLUtility.enviaEmail("gabriel@zaft.com.br", "site@martinscafe.com", "erro", "erro");
}
}
else if (Request.HttpMethod == "GET")
{
//o método GET indica que a requisição é o retorno do Checkout PagSeguro para o site vendedor.
//no término do checkout o usuário é redirecionado para este bloco.
Util.SQLUtility.enviaEmail("gabriel@zaft.com.br", "site@martinscafe.com", "get", "get");
}
}
ASPX
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="retorno-teste.aspx.cs" Inherits="loja_retorno_teste" Trace="true" TraceMode="SortByTime" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>Carregando comentários...