Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fokgu

Retorno automatico - ASP

Recommended Posts

Bom dia a todos!

 

Não estou recebendo o post do Pagseguro ou estou tentando gravar errado, alguem pode me da uma luz!

 

Segue o codigo:

 

<%
response.ContentType = "text/HTML"
response.Charset = "ISO-8859-1"

Dim TOKEN

TOKEN = "Pus o token gerado pelo site"



timeout = 20  'Timeout em segundos

function notificationPost()
	
	postdata = "Comando=validar&Token=" & TOKEN
	
	For each x In Request.Form
		valued = clearStr(request.Form(x))
		postdata = postdata & "&" & x & "=" & valued
	Next
	
	notificationPost = verify(postdata)
	
end Function

function clearStr(str)
	
	str = replace(str, "'","\'")
	clearStr = str
	
end function

function verify(data)
	
	strUrl = "https://pagseguro.uol.com.br/pagseguro-ws/checkout/NPI.jhtml"
	
	Set xmlHttp = Server.Createobject("MSXML2.ServerXMLHTTP")
	
	xmlHttp.Open "POST", strUrl, False
	xmlHttp.setRequestHeader "User-Agent", "asp httprequest"
	xmlHttp.setRequestHeader "content-type", "application/x-www-form-urlencoded"
	xmlHttp.setRequestHeader "content-length", Len(data)
	xmlHttp.Send(data)
	
	retorno = xmlHttp.responseText
	
	xmlHttp.abort()
	
	set xmlHttp = Nothing
	
	verify = retorno

end function

if Request.Form.count > 0 then
	
	result = notificationPost()
	
	if Request.Form("TransacaoID") <> empty then
		transacaoID = Request.Form("TransacaoID")
	Else
		transacaoID = ""
	end If
	
	if result = "VERIFICADO" then
	
	dim TransacaoID, Anotacao, DAtaTransacao, TipoPagamento, StatusTransacao, CliNome, CliEmail, Produto, up, conexao
	
	Set Conexao = Server.CreateObject("ADODB.Connection")
    Conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:/home/csgames1/dados/csgames.mdb;"
	
	
	TransacaoID = trim(Request.Form("TransacaoID"))
	Anotacao =	trim(Request.Form("Anotacao"))
	DataTransacao =	trim(Request.Form("DataTransacao"))
	TipoPagamento =	trim(Request.Form("TipoPagamento"))
	StatusTransacao = trim(Request.Form("StatusTransacao"))
	CliNome =	trim(Request.Form("CliNome"))
	CliEmail =	trim(Request.Form("CliEmail"))
	Produto =	trim(Request.Form("ProdId"))
	
	up = "INSERT INTO cs_pedidos (TransacaoID,Anotacao,DataTransacao, TipoPagamento, StatusTransacao,CliNome,CliEmail,Produto) VALUES ('" &TransacaoID& "','" &Anotacao& "','" &DataTransacao& "','" &TipoPagamento& "','" &statusTransacao& "','" &CliNome& "','" &CliEmail& "','" &Produto& "')"
	
	Set us=conexao.Execute(us)
	
	response.Redirect("pedido.asp?id="&TransacaoID)
	
	elseif result = "FALSO" then
		'O post não foi validado pelo PagSeguro.
	else
		'Erro na integração com o PagSeguro.
	end if
	
else
	' POST não recebido, indica que a requisição é o retorno do Checkout PagSeguro.
	' No término do checkout o usuário é redirecionado para este bloco.
	%>
Obrigado 

<%	
end if
%>

Vai direto para o obrigado e não grava nada. Se alguem puder me ajudar ficaria muito grato!

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

EXATAMENTE o mesmo problema. Alguém pode ajudar? Estou com o mesmo problema dos dois acima, o POST vem vazio e meu código está como o postado aí.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Olá ajudou em partes. O log funcionou perfeitamente, mas sempre retorna como falso. Pelo que vi no post, os outros comentários tiveram o mesmo problema.

 

O problema de sempre retornar falso pode ter ligação com o encoding dos dados que são enviados para validação.

 

Tente alterar o seguinte trecho de código:

 

For each x In Request.Form
   valued = clearStr(request.Form(x))
   postdata = postdata & "&" & x & "=" & valued
Next

 

Por este:

 

For each x In Request.Form
   postdata = postdata & "&" & x & "=" & Server.UrlEncode(request.Form(x))
Next

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dessa forma não funciona mesmo, tem um erro no teu código.

Você não está mandando executar a instrução SQL

 

Troque

Set us=conexao.Execute(us)

Por

Set us=conexao.Execute(up)

 

Ai vai funcionar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.