Ir para conteúdo

Arquivado

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

lwtec

Problema com script para pegar dados pagseguro e gravar

Recommended Posts

Pessoal, estou precisando muito da ajuda de vocês.

Fiz um script em php que a principio pega os dados que o pagseguro me retorna pela api de notificações e de acordo com uma situação atualiza uma tabela no banco de dados que criei, e logo após grava no log, vejam:

<?php 

		 header("access-control-allow-origin: https://sandbox.pagseguro.uol.com.br");
         if (count($_POST)>0) {
                  
                   $email = "MEUEMAILPAGSEGURO";
                   $token = "MEUETOKEN";
                   $notificationCode = $_POST['notificationCode'];
                   $url = "https://ws.sandbox.pagseguro.uol.com.br/v2/transactions/notifications/".$notificationCode."?email=".$email."&token=".$token;
                   $curl = curl_init($url);
                   curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
                   curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
                   $response = curl_exec($curl);
                   $http = curl_getinfo($curl);
 
                   if($response == 'Unauthorized'){
                            print_r($response);
                            exit;
                   }
                   curl_close($curl);
                   $response= simplexml_load_string($response);
 
                  $status = $response->status;
				  $ref = $response->reference;
				   
				    if($status == 3){
            require_once "Connections/conexao.php";
            $sql = "UPDATE usuarios SET status = '2' WHERE id = '$ref'";
            //Executa o SQL
            mysql_query($sql);

        }else{
            require_once "Connections/conexao.php";
            $sql = "UPDATE usuarios SET status = '5' WHERE id = '$ref'";
            //Executa o SQL
            mysql_query($sql);
			
		}
 
                   $today = date("Y_m_d");
                   $file = fopen("LogPagSeguro.$today.txt", "ab");
                   $hour = date("H:i:s T");
                   fwrite($file,"Log de Notificações e consulta\\\\r\\\\n");
                   fwrite($file,"Hora da consulta: $hour \\\\r\\\\n");
                   fwrite($file,"HTTP: ".$http['http_code']." \\\\r\\\\n");
                   fwrite($file,"Código de Notificação:".$notificationCode." \\\\r\\\\n");
                   fwrite($file, "Código da transação:".$response->code."\\\\r\\\\n");
                   fwrite($file, "Status da transação:".$response->status."\\\\r\\\\n");
                  fwrite($file,"______________________________________________________________________________ \\\\r\\\\n");
                   fclose($file);
         }
 
 
?>

ESTOU USANDO O SANDBOX PARA TESTAR O FUNCIONAMENTO DELE, E TODA VEZ QUE O SCRIPT ACIMA RECEBE A NOTIFICAÇÃO DO SITE DO PAGSEGURO, ELE GRAVA NO ARQUIVO DE LOG MAIS NÃO ATUALIZA MINHA TABELA NO BANCO DE DADOS.

ME AJUDEM, DESDE JÁ FICO GRATO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

2 possibilidades:

- $ref não tem um valor válido;

- A query tem um erro de sintaxe.

Tente gravar no arquivo o $ref, se não for isto é a query.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não seria mais interessante utilizar a biblioteca PHP que o PagSeguro disponibiliza (manual 3.0) ao invés de usar o que o manual 2.0 indica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ESerra,

Colouquei para gravar e foi normal, então é a query? se for, o que eu faço para concertar?

Log de Notificações e consulta\\r\\nHora da consulta: 12:06:56 BRT \\r\\nHTTP: 200 \\r\\nCódigo de Notificação:9EDA80-E27B2E7B2EF2-2BB426EF9246-8B8B5D \\r\\nCódigo da transação:49F04442-59B8-4D04-952B-59B095D77B47\\r\\nREFERENCE: 23 \\r\\nStatus da transação:1\\r\\n______________________________________________________________________________ \\r\\n

Gabriel Heming,

Se for usar a 3.0 é so mudar a variavel $url e aonde está v2 colocar v3? ou terei que mecher no código em geral?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, muito obrigadoo.

Consegui a arrumar e deu certo.

ESerra era realmente a query, alterei para a seguinte forma abaixo e funcionou:

mysql_select_db($database_conexao, $conexao);
mysql_query($sql, $conexao) or die(mysql_error());

Pode encerrar o tópico, obrigado a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por emmanuelsiqueira30
      Pessoal boa tarde.
      Estou precisando de um help na seguinte questão:
      Estou com um formulário em PHP, chamada cadastro.php que passa um POST para a página de transação chamada resumo-boleto.php, porém o arquivo que possui as configurações (config.php) de E-mail e Token, quando uso o do Sandbox funciona e gera o boleto normalmente mas ao colocar em produção não passa nenhum parametro.
       
       
    • Por emmanuelsiqueira30
      Pessoal boa tarde.
      Estou precisando de um help na seguinte questão:
      Estou com um formulário em PHP, chamada cadastro.php que passa um POST para a página de transação chamada resumo-boleto.php, porém o arquivo que possui as configurações (config.php) de E-mail e Token, quando uso o do Sandbox funciona e gera o boleto normalmente mas ao colocar em produção não passa nenhum parametro.
    • Por Giovanird
      Olá a todos!
      Tenho uma api  Sala de Aula e dentro dela o id de cada aluno. Em outra api, API ALUNO,  tenho os dados de cada aluno:  nome, foto, endereço.
      Estou fazendo o foreach da api Sala de Aula e preciso também retornar os dados de cada aluno.
      Segue o código que não estou conseguindo desenvolver
      $sala = file_get_contents("https://api/sala?id=987"); $sala = json_decode($sala, true); $sala = $sala['data']; foreach ($sala as $resulsala){ $codigoaluno = $resulsala['idaluno']; $alunos = file_get_contents("https://api/alunos?id=$codigoaluno"); $alunos = json_decode($alunos, true); $alunos = $alunos['data']; foreach ($alunos as $resulalunos){ echo $resulalunos['nome']; echo $resulalunos['foto']; echo $resulalunos['rua']; } }  
    • Por Orico Chain
      Oi pessoal,
       
      Preciso de ajuda, estou tentando gerar um TXT com dados de uma API mas não estou conseguindo:
       
      <?php $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://api.bololex.com/api/prices/TRX-USDT", CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => array( "cache-control: no-cache" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); $response = json_decode($response, true); $value1 = $response['result'] [0] ['ask'] ['priceChange']; if (empty($value1)) { $value1 = is_file('/var/www/html/24tstar.txt') ? file_get_c> } else { $value1 = round($value1, 6); file_put_contents('/var/www/html/24tstar.txt', $value1); Preciso que o TXT grave duas informações: ASK e PRICECHANGE uma em baixo da outra
       
      estou errando alguem lugar, alguém poderia me ajudar?
    • Por Kelven
      Bom dia pessoal tudo bem?
      Então, estou trabalhando em um site em php e preciso usar a api do facebook para obter o feed do instagram, porém a chave token é um conteúdo muito sensível, então decidi fazer em php para ela não ficar disponível do lado do cliente. Alguém sabe me dizer se é possível fazer isso? Porque eu pesquisando no google só achei maneiras de fazer em javascript.
×

Informação importante

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