Não consigo receber notificações
Olá pessoal, estou com dificuldades em receber notificação no sistema, gostaria de gravar dados da transação e seu status, porem não recebo estes dados
uma coisa que até hoje eu nao consegui entender, faz uns 6 meses que comecei a implementar PagSeguro
se eu não posso visualizar os POSTs, nem dar echo, nem exibir com print
como posso pegar estes valores para lançar no banco?
na parte do meu insert não esta todo o codigo correto, gostaria que alguem me falasse onde eu posiciono o codigo corretamente dentro do codigo do pagseguro
estou tentando da seguinte forma exemplo:
<?php
header('Content-Type: text/html; charset=ISO-8859-1');
define('TOKEN', 'aqui coloco meu token corretamente D2941DC811F5C');
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) {
// POST recebido, indica que é a requisição do NPI.
$npi = new PagSeguroNpi();
$result = $npi->notificationPost();
$transacaoID = isset($_POST['TransacaoID']) ? $_POST['TransacaoID'] : '';
if ($result == "VERIFICADO") {
//O post foi validado pelo PagSeguro.
//--------gravando dados -------------------------------------------------------
require_once('Conn/conn.php');
@mysql_select_db($database_conn, $conn);
$status = $_POST['StatusTransacao'];
$transacao_id = $_POST['TransacaoID'] ;
///////-------------
//aqui eu dou um select no banco buscando pela transação se nao encontro eu gravo ela
//se ela existir eu dou o update ABAIXO
if($venda == 0 ){
//insert into BLA, BLA, BLA
} else // venda ja esta cadastrada
{
/////------------
@$query_pro = "UPDATE pagseguro SET pag_status = '$status' where pag_transacao_id = '$transacao_id'";
$pro = mysql_query($query_pro, $conn) or die('<h1>Erro no banco de dados</h1>');
} //fim do else
//------------------------------------------------------
} else if ($result == "FALSO") {
//O post não foi validado pelo PagSeguro.
} else {
//Erro na integração 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.
?>
<h3><center>Obrigado por efetuar a compra.
<br />
<a href="http://adrianosites.com.br/cursos">Voltar a pagina que estava</a>
</center></h3>
<?php
}
?>Discussão (1)
Carregando comentários...