Ir para conteúdo
Fórum Script Brasil
  • 0

Pagseguro <-


Gustavo Totta

Pergunta

Bom dia Senhores!

Quando o Pagseguro retorna os dados para meu sistema, aparentemente não consegue validar o TOKEN. resumindo: Não retorna como VERIFICADO e nem como FALSO. Alguém pode me ajudar, por favor? Devo configurar algo mais no painel pagseguro?

Segue Script:

<?

//(token vem do painel de controle pela variável $INI['pagseguro']['mid']

header('Content-Type: text/html; charset=ISO-8859-1');

define('TOKEN', $INI['pagseguro']['mid']);

Util::log("TOKEN :: ". $INI['pagseguro']['mid']);

class PagSeguroNpi {

private $timeout = 20; // Timeout em segundos

public function notificationPost() {

$postdata = 'Comando=validar&Token=.TOKEN;

foreach ($_POST as $key => $value) {

$valued = $this->clearStr($value);

$postdata .= "&$key=$valued";

}

return $this->verify($postdata);

}

private function clearStr($str) {

if (!get_magic_quotes_gpc()) {

$str = addslashes($str);

}

return $str;

}

private function verify($data) {

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, "https://pagseguro.uol.com.br/pagseguro-ws/checkout/NPI.jhtml");

curl_setopt($curl, CURLOPT_POST, true);

curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_HEADER, false);

curl_setopt($curl, CURLOPT_TIMEOUT, $this->timeout);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

$result = trim(curl_exec($curl));

curl_close($curl);

return $result;

}

}

if (count($_POST) > 0) {

Util::log($_POST['ProdID_1]. " - Iniciando verificacao do token...");

$npi = new PagSeguroNpi();

$result = $npi->notificationPost();

$ProdID_1 = isset($_REQUEST['ref_transacao']) ? $_REQUEST['ref_transacao'] : '';

if($ProdID_1 == ""){

$ProdID_1 = isset($_REQUEST['ProdID_1']) ? $_REQUEST['ProdID_1'] : '';

}

$transacaoID = isset($_POST['TransacaoID']) ? $_POST['TransacaoID'] : '';

Util::log($_POST['ProdID_1']. " - Resposta ...:".$result);

if ($result == "VERIFICADO") {

Util::log($_POST['ProdID_1']. " - Token confirmado. Processando compra.");

} else if ($result == "FALSO") {

Util::log("Token não validado.");

} else {

Util::log("Erro na integracao com o PagSeguro.");

}

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.

Utility::Redirect( WEB_ROOT );

}

}

?>

Agradeço pela ajuda!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Primeiro, não repita tópicos, você já postou exatamente a mesma coisa a 3 dias:

http://scriptbrasil.com.br/forum/index.php...mp;#entry647029

Segundo, verifique o charset do arquivo, tive um problema parecido e o charset do arquivo que estava diferente, então dava pau no retorno.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...