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']
Question
Gustavo Totta
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.