Ir para conteúdo

POWERED BY:

Arquivado

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

Cesão

Como pegar um campo sem nome completo

Recommended Posts

Olá, amigos.

 

Estou fazendo a página de retorno do PagSeguro funcionar em um site, mas estou com uma dúvida.

O PagSeguro diz que o campo que corresponde ao ID do produto que retorna por POST é o ProdID_x. Esse X no nome, acredito que seja o próprio ID do produto, para diferenciar o nome do campo caso haj mais de um produto retornando. Então, o nome real do campo seria tipo ProdID_10.

 

O problema é que não sei como fazer para capturar um campo que tenho apenas o nome parcial e não sei como fazer para ele capturar todos os campos e seus respectivos conteúdos, mesmo sem saber quantos campos são e quais seus nomes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vocÇe pode recuperar os campos, se for atraves do método Post, use request.form, se for ataves da URL use o request.querystring....

 

existem topicos sobre o PagSeguro , faça uma pesquisa pode te ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Xan, capturar os dados via POST eu sei. hehe

A minha dúvida é sobre capturar dados de um campo que não sei o nome completo.

 

Como você pode ver na minha dúvida acima, o PagSeguro parece que envia o nome dos campos já com o ID do produto pedido, para que os nomes dos campos não se repitam. Sei apenas o que o nome do campo é ProdID_x, sendo esse X o ID do produto. O que não sei é como fazer para capturar todos os campos de cada produto, independente da quantidade de campos e independente do nome completo deles.

 

E busquei a maioria dos posts sobre PagSeguro aqui no fórum, mas todos eles se referem à exemplos com a API anterior, mas a API mudou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, para ser mais claro, segue o código da minha página de retorno do PagSeguro. Como podem ver, ela não é mais a mesma que aparece nos tópicos mais antigos aqui do fórum.

Quando o PagSeguro retorna para minha página, era para cair no VERIFICADO, onde aparece um alert de que foi integrado normalmente. Mas na verdade, parece que o PagSeguro não está reenviando dado nenhum para minha página de retorno, já que ela cai no último ELSE, que dá um alert que "NAO ACONTECE NADA". Esse último ELSE é correspondente ao IF de Request.Form.Count, ou seja, se caiu nesse ELSE é pq o PagSeguro não enviou informação nenhuma.

 

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

Dim TOKEN
TOKEN = "9999999999999999999999999"

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")
		DataTransacao = Request.Form("DataTransacao")
		StatusTransacao = Request.Form("StatusTransacao")
		ProdID_x = ObjRSA.Decode(Request.Form("ProdID_x"))
		ProdValor_x = Replace(Request.Form("ProdValor_x"),",","")
	Else
		transacaoID = ""
	end If
	
	if result = "VERIFICADO" then
		%><script type="text/javascript">alert('OK. INTEGRADO!');</script><%
	elseif result = "FALSO" then
		%><script type="text/javascript">alert('FALSO');</script><%
	else
		%><script type="text/javascript">alert('NAO HOUVE INTEGRAÇÃO');</script><%
	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.
	%>
	<script type="text/javascript">alert('NAO ACONTECE NADA!');</script>

    <%
end if
%>

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.