Ir para conteúdo

Arquivado

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

cheaptrick

Erro em consulta de transação

Recommended Posts

Olá!

 

Estava integrando a parte de consulta de transações em um trabalho e estranhamente, a consulta retornava um simples "Not found".

Sei que a URL estava correta pois alterei o token e apareceu "Unauthorized". Também alterei o código da transação; retornou um XML informando que era código inválido.

 

Só reforçando: não retorna um XML ou erro de transação não encontrada, mas sim erro de código 404, "Not found".

 

Gostaria de saber se alguém mais teve esse problema e se existe uma solução.

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Brother, fala exatamente qual API você está usando, como você está fazendo a requisição, linguagem que está utilizando, coloca ai o código que utilizou.... O maximo de informações possíveis.

 

Assim conseguimos lhe ajudar... Com as informações que você passou só consigo imaginar que a transação que você consultou não existe.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou usando a biblioteca PHP própria do Pagseguro.

 

A transação existe e testei com mais de uma. Eu li a documentação da biblioteca, verifiquei o código das classes, e está tudo correto. Como mencionei e quis reforçar, não foi erro de transação não encontrada, e sim 404. Inclusive porque o código retornado pela classe que executa a requisição é 404. E friso: retorna "Not found", em formato texto, não o erro 404 padrão do browser.

 

O problema deveria ser independente da linguagem, até porque a consulta é um simples GET, basta colar na barra de URL, por isso não entrei em detalhes. Está soando como bug, motivo que me fez vir aqui.

 

@senartes: você consegue consultar uma transação acessando diretamente pelo browser, isso é, digitando o endereço de consulta + token + email?

 

Brother, fala exatamente qual API você está usando, como você está fazendo a requisição, linguagem que está utilizando, coloca ai o código que utilizou.... O maximo de informações possíveis.

 

Assim conseguimos lhe ajudar... Com as informações que você passou só consigo imaginar que a transação que você consultou não existe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Brother, estou vendo que você tem um pequeno problema em passar informações...

 

Entendi que você está usando a biblioteca do PagSeguro, entendi que você você testou várias transações... so ficou faltando o mais importante...

 

Qual API você está usando?

Como você está fazendo a requisição?

Cadê o código que você usou para fazer a requisição?

 

Dependendo da API dá para consultar via GET sim, e nesses casos é possível testar pelo próprio navegador, desde que os dados estejam corretos. De qualquer forma precisamos que você mostre como você está fazendo isso.. Cadê o exemplo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra mim só existe um jeito de consultar a transação, e é a referenciada na documentação:

 

https://pagseguro.uol.com.br/v2/guia-de-integracao/consulta-de-transacoes-por-codigo.html

 

Motivo pelo qual não coloquei código algum. A menos que estivesse se referindo à uma versão anterior da API que não conheci.

 

Brother, estou vendo que você tem um pequeno problema em passar informações...

 

Entendi que você está usando a biblioteca do PagSeguro, entendi que você você testou várias transações... so ficou faltando o mais importante...

 

Qual API você está usando?

Como você está fazendo a requisição?

Cadê o código que você usou para fazer a requisição?

 

Dependendo da API dá para consultar via GET sim, e nesses casos é possível testar pelo próprio navegador, desde que os dados estejam corretos. De qualquer forma precisamos que você mostre como você está fazendo isso.. Cadê o exemplo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Todas as APIs retornam dados da transação...

 

Enfim posta agora posta o código que você usou né... assim conseguimos ver onde está o erro...

 

Passa algum exemplo de alguma coisa para que possamos ver o erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código não é o problema, confie em mim.

 

É o mesmo do exemplo da documentação. Como falei no primeiro post, debuguei tudo.

O código gera a URL do webservice corretamente, com as credenciais corretas.

Achei que tinha sido enfático o bastante. Só que como não tem um canal direto com os

desenvolvedores da biblioteca fora o e-mail, resolvi ver se acontecia com mais alguém aqui antes.

 

Acho que não perguntei bem antes: se você, senartes, consultar uma transação via browser, dá certo? Retorna o xml com os dados da mesma?

 

Todas as APIs retornam dados da transação...

 

Enfim posta agora posta o código que você usou né... assim conseguimos ver onde está o erro...

 

Passa algum exemplo de alguma coisa para que possamos ver o erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Brother, estamos aqui apenas para te ajudar, e o pior eu não ganho nada para isso, sinceramente vou passar a ignorar pedidos de ajuda como esses...

 

Posta alguma coisa ai para que possamos VER o mesmo erro que você teve...

 

Talvez você esteja passando alguma coisa errada por isso que está ocorrendo o erro.

 

Tu falastes que não é problema com o código da transação porque testou vários, também não é problema com código, também não é problema com token...

Pow ficar apenas nessas informações não dá para chegar a nada concreto.

 

Como eu faço para eu aqui, ver o mesmo erro que você está vendo?

 

E sim, dá para fazer a requisição direto do navegador, se já testou isso e mesmo assim deu problema, ao menos posta todo o link de como você fez a requisição...

 

Se o problema é cuidado com dados sigilosos, depois você gera um novo token, manda por DM, sei la... Me ajuda que eu te ajudo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente aprecio que esteja tentando me ajudar. Mesmo.

 

Já que insiste:

include '../../spress/helpers/PagSeguroLibrary/PagSeguroLibrary.php';
try
{
$transaction = PagSeguroTransactionSearchService::searchByCode(
	PagSeguroConfig::getAccountCredentials(),
	$Compra['tid']
);
print_r($transaction);
}
catch(PagSeguroServiceException $e)
{
var_dump($e->getHttpStatus()->getType());
foreach($e->getErrors() as $key => $error) :
	echo $error->getCode(), $error->getMessage();
endforeach;
}

 

HTTP/1.1 404 Not Found
Date: Thu, 09 Aug 2012 18:46:36 GMT
Server: Apache-Coyote/1.1
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 9
Vary: Accept-Encoding,User-Agent
Connection: close

Not Found

 

Brother, estamos aqui apenas para te ajudar, e o pior eu não ganho nada para isso, sinceramente vou passar a ignorar pedidos de ajuda como esses...

 

Posta alguma coisa ai para que possamos VER o mesmo erro que você teve...

 

Talvez você esteja passando alguma coisa errada por isso que está ocorrendo o erro.

 

Tu falastes que não é problema com o código da transação porque testou vários, também não é problema com código, também não é problema com token...

Pow ficar apenas nessas informações não dá para chegar a nada concreto.

 

Como eu faço para eu aqui, ver o mesmo erro que você está vendo?

 

E sim, dá para fazer a requisição direto do navegador, se já testou isso e mesmo assim deu problema, ao menos posta todo o link de como você fez a requisição...

 

Se o problema é cuidado com dados sigilosos, depois você gera um novo token, manda por DM, sei la... Me ajuda que eu te ajudo

Compartilhar este post


Link para o post
Compartilhar em outros sites

posta esse código ai para eu dar uma olhada...

 

Altera uma letra ou outra mas mantenha a mesma quantidade de caracteres e a disposição de informações...

 

 

Só por curiosidade, de onde você tirou esse código da transação?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu altero o código tanto da transação quanto a do token, como falei, ou dá xml indicando transação inválida ou "Unauthorized"(para o token errado) em plain text.

 

O código da transação eu copiei e colei do painel do Pagseguro.

É aquele parecido com hexadecimal separado em algumas partes por traço. :)

 

<?php
/*
Verifica legitimidade da compra e retorna
dados da transação do Pagseguro
*/
include '../../spress/config.php';
$Compra = current($Db->query(
'SELECT tid FROM compras WHERE id=?',
array($_GET['cid'])
));

if(isset($Compra['tid'])) :

// Get transaction data from Pagseguro
include '../../spress/helpers/PagSeguroLibrary/PagSeguroLibrary.php';
try
{
	$transaction = PagSeguroTransactionSearchService::searchByCode(
		PagSeguroConfig::getAccountCredentials(),
		$Compra['tid']
	);
	print_r($transaction);
}
catch(PagSeguroServiceException $e)
{
	var_dump($e->getHttpStatus()->getType());
	foreach($e->getErrors() as $key => $error) :
		echo $error->getCode(), $error->getMessage();
	endforeach;
}

endif;
?>

 

posta esse código ai para eu dar uma olhada...

 

Altera uma letra ou outra mas mantenha a mesma quantidade de caracteres e a disposição de informações...

 

 

Só por curiosidade, de onde você tirou esse código da transação?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal,

 

Meu primeiro post aqui, mas cheguei aqui porque estava com o mesmo problema.

Encontrei a solução, então acho que posso ajudar.

 

O fluxo do PagSeguro é o seguinte:

1. Você envia dados da transação para o PagSeguro;

2. O PagSeguro retorna um código de transação, vamos chamar de CODIGO1, de 32 caracteres.

3. Você redireciona o cliente para /checkout/CODIGO1, e deixa ele pagar.

 

Esse é o FIM da primeira etapa, onde você inicia uma transação.

Acho que o ponto aqui é o seguinte, esse CODIGO1 NÃO É UM CÓDIGO DE TRANSAÇÃO QUE VOCÊ PODE CONSULTAR.

 

Os códigos de transação do PagSeguro possuem 36 caracteres, então esse CODIGO1 é um código de redirecionamento, e nada além disso. Então, como fazer para obter o código correto!?

 

Se você habilitou o redirecionamento com código da transação (Integrações > Página de Redirecionamento > Página de Redirecionamento dinâmico), assim que o usuário pagar a fatura, ele voltará com ?transaction_id=CODIGO2.

 

Esse CODIGO2 é o que você consegue consultar. Utilize o campo "reference" que você passou anteriormente ao registrar o pedido, e o erro 404 some.

 

Se o cliente não foi para o PagSeguro, ou cancelou a transação, ou etc., você vai ter que tentar localizar essa transação utilizando as consultas.

 

Se você não quiser utilizar as consultas, você pode aguardar as notificações, e processá-las.

Essas notificações também trazem o CODIGO2, que você pode efetivamente utilizar.

 

Acredito que o erro do nosso amigo acima seja idêntico ao meu erro.

Minha dica é: Os códigos "consultáveis" possuem 36 dígitos, e possuem quatro "traços" (-).

 

Se não estiverem nesse formato, eles podem ser o codigo para início da transação (redirecionar o usuário), ou código de notificação.

 

Espero ter ajudado quem veio aqui com a mesma dúvida que eu.

 

Particularmente, acho a biblioteca que o PagSeguro desenvolveu muito complexa, volumosa.

Dessa forma, estou desenvolvendo uma muito mais simples aqui e prática aqui, vou ver se consigo compartilhar posteriormente.

 

 

Grande abraço aos colegas.

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.