Jump to content
Fórum Script Brasil
  • 0

Pagseguro <-


Gustavo Totta

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652.1k
×
×
  • Create New...