Retorno automático
Olá pessoal estou a um dia inteiro tentando fazer o retorno automatico funcionar, ja vi varios exemplos por aqui porém nenhum deles funcionou nem mesmo os que deram como tópico resolvido, estou usando o script abaixo, gostaria de saber se esta certo onde pego os dados do POST, e outra dúvida que tenho é sem tem como pegar os dados da transação como emailciente, produtos, quantidade, no redirecionamento da página para o meu site, pergunto isso por que preciso mostrar as informçoes da compra para o usuário e nao somente uma mensagem dizendo que a compra foi realizada.
define('TOKEN', '222222222222222222');
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.
$TransacaoID = $_POST['TransacaoID'];
$StatusTransacao = $_POST['StatusTransacao'];
$CliEmail = $_POST['CliEmail'];
$ProdID_x = $_POST['ProdID_1'];
$ProdQuantidade_x = $_POST['ProdQuantidade_1'];
$ProdValor_x = $_POST['ProdValor_1'];
$valorTotalPromo = $ProdID_x * $ProdValor_x;
// Pegando codigo do usuário
$VO = new usuarioVO();
$VO->USU_EMAIL = $CliEmail;
$total = $VO->pesquisarUsuarioCodigo();
$usuario = $VO->getVetor();
// Gravando os cupons comprados
for($i = 0; $i < $ProdQuantidade_x; $i++) {
$VO = new cupomVO();
$VO->PRO_CODIGO = $ProdID_x;
$VO->USU_CODIGO = $usuario['CODIGO'][0];
$VO->CUP_DATA = date("d-m-Y");
$VO->CUP_STATUS = 'PENDENTE';
$VO->CUP_HEXA = strtoupper(pegando_id_aleatorio(10));
$VO->inserir();
}
// Gravando movimentação na conta
$VOcON = new contaVO();
$VOcON->USU_CODIGO = $usuario['CODIGO'][0];
$VOcON->CON_VALOR = $valorTotalPromo;
$VOcON->CON_DATAMOVIMENTO = date("d/m/Y");
$VOcON->CON_TIPOMOVIMENTO = '03';
$VOcON->inserir();
} 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>Obrigado por efetuar a compra.</h3>
<?php
}Discussão (2)
Carregando comentários...