Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal,
Utilizo o seguinte código para retorno automático do PagSeguro:
<?php
header('Content-Type: text/html; charset=ISO-8859-1');
define('TOKEN', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
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") {
$TransacaoID = $_POST['TransacaoID'];
$VendedorEmail = $_POST['VendedorEmail'];
$Referencia2 = $_POST['Referencia'];
$TipoPagamento = $_POST['TipoPagamento'];
$StatusTransacao = $_POST['StatusTransacao'];
$NumItens = $_POST['NumItens'];
$DataTransacao = $_POST['DataTransacao'];
$assunto = "Retorno OK";
$mensagem = "$Referencia";
$nome_remetente = "Felipe Sobral";
$email_remetente = "contato@felipesobral.com";
$cabecalho = "MIME-Version: 1.0\n";
$cabecalho .= "Content-type: text/html; charset=iso-8859-1\n";
$cabecalho .= "From: ". $nome_remetente ." <". $email_remetente .">";
$para = "Felipe Sobral" ."<fbsobral@gmail.com>";
mail($para, $assunto, $mensagem, $cabecalho);
} else if ($result == "FALSO") {
//O post não foi validado pelo 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>Obrigado por efetuar a compra.</h3>
<?php
}
?>
Acontece que ele funciona tudo certinho, só que a variável "Referencia" não está sendo retornada.
Obs.: As outras variáveis estão sendo entregues.
Carregando comentários...