Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Conte

Retorno pagseguro parou de funcionar

Recommended Posts

Uso um retorno para simples pagamentos em meu sistema, so que do nada parou de funcionar.

 

 

$host = "localhost";

$database = "retorno"; // nome da base de dados MySql
$user = "root"; // Usuário de acesso a base de dados
$pass = "15261234"; // Senha de acesso a base de dados
function conexao_mysql($host,$user,$pass,$database){
global $host, $user, $pass, $database;
//verifica se as variaveis (host,user,pass,database) estao setadas
if(isset($host) and isset($user) and isset($pass) and isset($database)){
//realiza a conexao com o banco de dados
$conexao = @mysql_connect($host, $user, $pass);
//checa se a conexao foi bem sucedida
if(!$conexao){
print("<font color='#FF0000'>Erro: Impossível conectar-se ao banco de dados.</font>");
exit();
}
//verifica e seleciona o banco de dados
if(!@mysql_select_db($database, $conexao)){
print("<font color='#FF0000'>Erro: Impossível selecionar o banco de dados desejado.</font>");
exit();
}
}else{
print("<font color='#FF0000'>Erro: Alguns dos dados para conexão ao banco de dados não foi informado.</font>");
}
}
conexao_mysql($host,$user,$pass,$database);
// RECEBE O POST ENVIADO PELA PagSeguro E ADICIONA OS VALORES PARA VALIDACAO DOS DADOS
$PagSeguro = 'Comando=validar';
$PagSeguro .= '&Token=D09A80E6873F45D8A984411E47E7E5DC'; // Insira aqui o código do Token gerado no PagSeguro
$Cabecalho = "Prodefender"; // Coloque um título
foreach ($_POST as $key => $value)
{
$value = urlencode(stripslashes($value));
$PagSeguro .= "&$key=$value";
}
if (function_exists('curl_exec'))
{
//Prefira utilizar a funcao CURL do PHP
//Leia mais sobre CURL em: http://us3.php.net/curl
$curl = true;
}
elseif ( (PHP_VERSION >= 4.3) && ($fp = @fsockopen ('ssl://pagseguro.uol.com.br', 443, $errno, $errstr, 30)) )
{
$fsocket = true;
}
elseif ($fp = @fsockopen('pagseguro.uol.com.br', 80, $errno, $errstr, 30))
{
$fsocket = true;
}
// ENVIA DE VOLTA PARA A PagSeguro OS DADOS PARA VALIDAÇÃO
if ($curl == true)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $PagSeguro);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$resp = curl_exec($ch);
curl_close($ch);
$confirma = (strcmp ($resp, "VERIFICADO") == 0);
}
elseif ($fsocket == true)
{
$Cabecalho = "POST /Security/NPI/Default.aspx HTTP/1.0\r\n";
$Cabecalho .= "Content-Type: application/x-www-form-urlencoded\r\n";
$Cabecalho .= "Content-Length: " . strlen($PagSeguro) . "\r\n\r\n";
if ($fp || $errno>0)
{
fputs ($fp, $Cabecalho . $PagSeguro);
$confirma = false;
$resp = '';
while (!feof($fp))
{
$res = @fgets ($fp, 1024);
$resp .= $res;
// Verifica se o status da transação está VERIFICADO
if (strcmp ($res, "VERIFICADO") == 0)
{
$confirma=true;
break;
}
}
fclose ($fp);
}
else
{
echo "$errstr ($errno)<br />\n";
// ERRO HTTP
}
}
if ($confirma)
{
// RECEBE OS DADOS ENVIADOS PELA PagSeguro E ARMAZENA EM VARIAVEIS
//Selecione aqui todos os parametros enviados pela PagSeguro
echo $VendedorEmail = $_POST['VendedorEmail'];
$TransacaoID = $_POST['TransacaoID'];
$Referencia = $_POST['Referencia'];
$TipoFrete = $_POST['TipoFrete'];
$ValorFrete = $_POST['ValorFrete'];
$Anotacao = $_POST['Anotacao'];
$DataTransacao = $_POST['DataTransacao'];
$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'];
$ProdID = $_POST['ProdID_1'];
$ProdDescricao = $_POST['ProdDescricao_1'];
$ProdValor = $_POST['ProdValor_1'];
$ProdQuantidade = $_POST['ProdQuantidade_1'];
$ProdFrete = $_POST['ProdFrete_1'];
$ProdExtras = $_POST['ProdExtras_1'];
// Verifique se a TransacaoID não foi previamente processada
// Verifique se o email recebido (VendedorEmail) é o seu email
// Verifique se o valor do pagamento está correto
// Processe o pagamento salvando os dados em seu banco de dados
echo '<input type="hidden" name="vjs" value="PagSeguro by JS Tecnologia" />';
// Pegando o IP do usuário
$ip = $_SERVER['REMOTE_ADDR']; // pegando o endereço remoto
$forward = $_SERVER['HTTP_X_FORWARDED_FOR']; // pegando o endereço que foi repassado (se houver)
$ip=( (($ip=='unknown' || $ip=='201.6.24.158') && ( isset($foward) && $forward!='unknown'))?$forward:$ip);
$datahora = date("Y-m-d H:i:s");
$data = date("Y-m-d");
$hora = date("H:i:s");
$cadastro = mysql_query("INSERT into PagSeguroTransacoes (TransacaoID, VendedorEmail, TipoFrete, ValorFrete, Anotacao, TipoPagamento, Referencia, StatusTransacao, CliNome, CliEmail, CliEndereco, CliNumero, CliComplemento, CliBairro, CliCidade, CliEstado, CliCEP, CliTelefone, NumItens, ProdID, ProdDescricao, ProdValor, ProdQuantidade, ProdFrete, ProdExtras, ip, datahora, data, hora) VALUES ('$TransacaoID','$VendedorEmail','$TipoFrete','$ValorFrete','$Anotacao','$TipoPagamento','$Referencia','$StatusTransacao','$CliNome','$CliEmail','$CliEndereco','$CliNumero','$CliComplemento','$CliBairro','$CliCidade','$CliEstado','$CliCEP','$CliTelefone','$NumItens','$ProdID','$ProdDescricao','$ProdValor','$ProdQuantidade','$ProdFrete','$ProdExtras','$ip','$datahora','$data','$hora')");
}else{
if (strcmp ($res, "FALSO") == 0) {
echo"Não Gravou";
}
}

 

O que pode ser, já que nao retorna erro!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o retorno funcionava mas parou, de nada adianta analisar o código.

 

Vá no painel de controle do pag seguro e analise as requisições. Todo retorno de pagamento é logado no sistema deles.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.