PagSeguro ¬¬
Ao efetuar uma compra percebi que o PagSeguro não está me enviando as informações devolta pois meu Log de retorno fica Vazio, sendo que meu script estava funcionando perfeitamente!
Esse é meu código:
<?php
// TOKEn da Empresa Gerado pelo PagSeguro
$retorno_token = 'TOKEN';
// Log dos Dados retornados pelo PagSeguro
$log = var_export($_POST, true);
// Nome do Arquivo que receberá os Dados.
$Nome_Arquivo = "log.txt";
// Abrimos o Arquivo.
$Arquivo = fopen($Nome_Arquivo, "ab");
// Array Contendo os Caracteres que serão Substituidos ou Removidos.
$Array_Subst = array(">" => "", ")" => "", "array (" => "", "array ( " => "", " " => "", "\n" => "");
// Substituimos e/ou Removemos os Caracteres.
$Substitui = strtr($log, $Array_Subst);
// Substituimos ',' por ' = '
$Formatacao_Log = preg_replace("/','/","' = '",$Substitui);
// Substituimos ', por '
$Formatacao_Log2 = preg_replace("/',/","'",$Formatacao_Log);
// Substituimos ' = ' por '='
$Formatacao_Log3 = preg_replace("/' = '/","'='",$Formatacao_Log2);
// Gravamos as Informações no Arquivo
fwrite($Arquivo, $Formatacao_Log3);
if($log == 0){
echo"Ocorreu um erro ao Armazenar os Dados...<br>";
exit;}
// Fechamo o Arquivo.
fclose($Arquivo);
// Abrimos o Arquivo Novamente.
$Arquivo2 = fopen ($Nome_Arquivo, "r+");
// Pegamos os Dados do Log e armazenamos em uma Variavel
if ($Linha = fgets($Arquivo2, 102400)){
// Criamos um Array com os Dados do Log
$Cria_Array = explode("=", $Linha);
// Contamos quantos Valores o Array tem.
$Contador = count($Cria_Array);
// Definimos uma Variavel que Recebera todas as Informações.
$Dados_Url;
// Fazemos um Loop de acordo com a Quantidade de Valores do Array.
for($i=0; $i<$Contador; $i++){
// Verificamos se $i é Par ou Impar
$Par = ($i % 2);
// Se $i for Par entra nessa Condição.
if($Par == 0){
// Retiramos os Espaços e as Aspas Simples da String.
$Info_PagSeguro = str_replace(" ", "", str_replace("'", "", $Cria_Array[$i]));
// Guardamos os Dados em uma Variavel.
$Dados_Url .= $Info_PagSeguro."=";
// Se $i for Impar entra nessa Condição.
}else{
// Retiramos as Aspas Simples da String.
$Retira_Aspas = str_replace("'", "", $Cria_Array[$i]);
// Substituimos os Espaços por +
$Info_Cliente = str_replace(' ', '+', $Retira_Aspas);
// Guardamos os Dados em uma Variavel.
$Dados_Url .= $Info_Cliente."&";
}
}
if($Dados_Url == 0){
echo"Os Dados não puderam ser Tratados e Lidos...<br>";
exit;}
}
// Definimos o Tempo de Envio das Informações ao PagSeguro.
$Tempo = 20;
// Juntamos TODOS os Dados que serão Enviados ao PagSeguro.
$Dados_Url_Completo ='Comando=validar&Token='.$retorno_token.'&'.$Dados_Url;
function Envia_Url($Data, $Tmp){
$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, $Tmp);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$result = trim(curl_exec($curl));
curl_close($curl);
// Retornamos a Resposta do PagSeguro.
return $result;
}
if($Dados_Url_Completo == "Comando=validar&Token=".$retorno_token."&"){
echo"Os Dados não puderam ser enviados ao PagSeguro...<br>";
}
// Fechamos o Arquivo.
fclose ($Arquivo2);
// Guardamos a Resposta do PagSeguro em uma Variavel.
$Verificacao = Envia_Url($Dados_Url_Completo, $Tempo);
if($Verificacao == "VERIFICADO"){
echo"<fieldset><font color='#999'>Seu Pedido foi VERIFICADO, aguarde alguns segundos para que possamos Confirmar os seus Dados</font><br><br><center><img src='img/load.gif'></center></fieldset>";
echo'<meta http-equiv="refresh" content="5;URL=BD.php?'.$Dados_Url.'" />';
}else{
echo"Ocorreu um problema ao VERIFICAR seu pedido, por favor tente novamente!";
}
?>
Alguém sabe o que está acontecendo???
Discussão (17)
Carregando comentários...