Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal não estou recebendo a confirmação do PagSeguro, porque o script não salva os dados no banco de dados, fiz algo errado? por favor alguém poderia ajudar?
$retorno_site = 'retorno.php'; // Site para onde o usuário vai ser redirecionado ao termino do pagamento
$retorno_token = 'meu token'; // Token gerado pelo PagSeguro
$retorno_host = 'localhost'; // Local da base de dados MySql
$retorno_database = 'DB'; // Nome da base de dados MySql
$retorno_usuario = 'usuario'; // Usuario com acesso a base de dados MySql
$retorno_senha = 'senha'; // Senha de acesso a base de dados MySql
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;
}
}
function MoedaBR($valor) {
$valor = str_replace('.','',$valor);
$valor = str_replace(',','.',$valor);
return $valor;
}
function ConverterData($data) {
$data = explode(' ', $data);
$hora = $data[1]; $data = $data[0];
$data = explode('/', $data);
$data = $data[2].'-'.$data[1].'-'.$data[0].' ';
return $data.$hora;
}
$lnk = mysql_connect($retorno_host, $retorno_usuario, $retorno_senha) or die ('Nao foi possível conectar ao MySql: ' . mysql_error());
mysql_select_db($retorno_database, $lnk) or die ('Nao foi possível ao banco de dados selecionado no MySql: ' . mysql_error());
define('TOKEN', $retorno_token);
retorno_automatico (
$VendedorEmail, $TransacaoID, $Referencia, $TipoFrete,
$ValorFrete, $Anotacao, $DataTransacao, $TipoPagamento,
$StatusTransacao, $CliNome, $CliEmail, $CliEndereco,
$CliNumero, $CliComplemento, $CliBairro, $CliCidade,
$CliEstado, $CliCEP, $CliTelefone, $produtos, $NumItens
);
function retorno_automatico (
$VendedorEmail, $TransacaoID, $Referencia, $TipoFrete,
$ValorFrete, $Anotacao, $DataTransacao, $TipoPagamento,
$StatusTransacao, $CliNome, $CliEmail, $CliEndereco,
$CliNumero, $CliComplemento, $CliBairro, $CliCidade,
$CliEstado, $CliCEP, $CliTelefone, $produtos, $NumItens if ($StatusTransacao == 'Completo' OR $StatusTransacao == 'Aprovado') {
$banco = new BancoDeDados();
$banco->update('TabelaDeCompras', $Referencia, 'Liberado');
}
}
class createLog{
private $name = 'ps.txt';
private $type = 'ab';
public $log;
function setType($type = '') {
$this -> type = $type;
}
function setFileName($name = ''){
$this -> name = $name;
}
public function setLog($log){
$this -> log = $this -> log . $log;
}
public function createlog(){
$f = fopen ($this -> name, $this -> type);
fwrite($f, $this -> log . "\n\n");
fclose($f);
}
}
if (count($_POST) > 0) {
$log = new createLog();
$log -> setLog("POST @ " . date("d/m/Y H:i:s") . "\n");
$log -> setLog("<pre>" . var_export($_POST, true) . "</pre>\n<--------------->\n");
$log -> createlog();
$npi = new PagSeguroNpi();
$result = $npi->notificationPost();
$transacaoID = isset($_POST['TransacaoID']) ? $_POST['TransacaoID'] : '';
if ($result == "VERIFICADO") {
// Recebendo Dados
$VendedorEmail = $_POST['VendedorEmail'];
$TransacaoID = $_POST['TransacaoID'];
$Referencia = $_POST['Referencia'];
$Extras = MoedaBR($_POST['Extras']);
$TipoFrete = $_POST['TipoFrete'];
$ValorFrete = MoedaBR($_POST['ValorFrete']);
$DataTransacao = ConverterData($_POST['DataTransacao']);
$Anotacao = $_POST['Anotacao'];
$TipoPagamento = $_POST['TipoPagamento'];
$StatusTransacao = $_POST['StatusTransacao'];
$CliNome = $_POST['CliNome'];
$CliEmail = $_POST['CliEmail'];
$CliEndereco = $_POST['CliEndereco'];
$CliNumero = $_POST['CliNumero'];
$CliComplemento = $_POST['CliComplemento'];
$CliBairro = $_POST['CliBairro'];
$CliCidade = $_POST['CliCidade'];
$CliEstado = $_POST['CliEstado'];
$CliCEP = $_POST['CliCEP'];
$CliTelefone = $_POST['CliTelefone'];
$NumItens = $_POST['NumItens'];
// Gravando Dados
mysql_query("INSERT into PagSeguroTransacoes SET
VendedorEmail='$VendedorEmail',
TransacaoID='$TransacaoID',
Referencia='$Referencia',
Extras='$Extras',
TipoFrete='$TipoFrete',
ValorFrete='$ValorFrete',
DataTransacao='$DataTransacao',
Anotacao='$Anotacao',
TipoPagamento='$TipoPagamento',
StatusTransacao='$StatusTransacao',
CliNome='$CliNome',
CliEmail='$CliEmail',
CliEndereco='$CliEndereco',
CliNumero='$CliNumero',
CliComplemento='$CliComplemento',
CliBairro='$CliBairro',
CliCidade='$CliCidade',
CliEstado='$CliEstado',
CliCEP='$CliCEP',
CliTelefone='$CliTelefone',
NumItens='$NumItens',
Data=now();");
// Recebendo e gravando produtos
$Processo = mysql_query("SELECT VendedorEmail FROM PagSeguroProdutos WHERE VendedorEmail='$VendedorEmail' AND TransacaoID='$TransacaoID'");
if (mysql_num_rows($Processo)==0) {
for($i=1;$i<=$NumItens;$i++) {
$ProdID = $_POST["ProdID_{$i}"];
$ProdDescricao = $_POST["ProdDescricao_{$i}"];
$ProdValor = MoedaBR($_POST["ProdValor_{$i}"]);
$ProdQuantidade = $_POST["ProdQuantidade_{$i}"];
$ProdFrete = MoedaBR($_POST["ProdFrete_{$i}"]);
mysql_query("INSERT into PagSeguroProdutos SET
VendedorEmail='$VendedorEmail',
TransacaoID='$TransacaoID',
Ordem='$i',
ProdID='$ProdID',
ProdDescricao='$ProdDescricao',
ProdValor='$ProdValor',
ProdQuantidade='$ProdQuantidade',
ProdFrete='$ProdFrete'");
}
}
}echo"ok<br>";
}Carregando comentários...