Ir para conteúdo
Fórum Script Brasil
  • 0

Retorno de transação PAGSEGURO - POST


Cézar Ayran

Pergunta

Estou utilizando a integração do Pagseguro em PHP. O retorno sempre vem FALSO. Já mudei a codificação para inúmeras possibilidades mas sempre entra no FALSO.

Alguém tem ideia do pró?

Segue o código:

<?php
session_start();
ob_start();
ini_set('date.timezone','America/RECIFE');
$db = mysql_connect("localhost","sige","psige");
mysql_select_db("psige");
//header('Content-Type: text/html; charset=ISO-8859-1');

define('TOKEN', '---------------------');

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);
            $valued = $this->$value;
            //$postdata .= "&$key=$valued";
            $postdata .= "&$key=".urlencode($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_HTTPHEADER, Array("Content-Type: text/html", "charset=ISO-8859-1"));
        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") {
        mysql_query("UPDATE tbPedidos set sistema = '1".$_POST['StatusTransacao']."', msg = '".$_POST['Referencia']."' where id = 72");
    } else if ($result == "FALSO") {
        //O post não foi validado pelo PagSeguro.
        mysql_query("UPDATE tbPedidos set sistema = '2".$_POST['StatusTransacao']."', msg = '".$_POST['Referencia']."' where id = 72");
    } else {
        //Erro na integração com o PagSeguro.
        mysql_query("UPDATE tbPedidos set sistema = '3".$_POST['StatusTransacao']."', msg = '".$_POST['Referencia']."' where id = 72");
    }

} 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
}

?>
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...