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

Problemas retorno PagSeguro


Espartaco

Pergunta

Pessoal, estou tentando implentar o pagseguro no site de um cliente, mas o próprio script que eles cedem, não funciona. Já baixei vários scripts na net, mas nenhum funciona.

Alguém aí que entende de PHP e da misteriosa lógica PAgSeguro, poderia me dar uma luz no código abaixo:

##############################################################
#                         CONFIGURAÇÕES
##############################################################

$retorno_site = 'http://www.xxx.com.br/index.php?area=_sucesso';  // Site para onde o usuário vai ser redirecionado
$retorno_token = 'A6D4ABE885874E04A155DD7E59E5C580'; // Token gerado pelo PagSeguro

$retorno_host = 'xxx'; // Local da base de dados MySql
$retorno_database = 'gui// Nome da base de dados MySql
$retorno_usuario = 'xxx'; // Usuario com acesso a base de dados MySql
$retorno_senha = 'xxx';  // Senha de acesso a base de dados MySql


$lnk = mysql_connect($retorno_host, $retorno_usuario, $retorno_senha) or die ('não foi possível conectar ao MySql: ' . mysql_error());
mysql_select_db($retorno_database, $lnk) or die ('não foi possível ao banco de dados selecionado no MySql: ' . mysql_error());    

// Validando dados no PagSeguro

$PagSeguro = 'Comando=validar';
$PagSeguro .= '&Token=' . $retorno_token; 
$Cabecalho = "Retorno PagSeguro";

foreach ($_POST as $key => $value)
{
 $value = urlencode(stripslashes($value));
 $PagSeguro .= "&$key=$value";
}

if (function_exists('curl_exec'))
{
 $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;
}

if ($curl == true)
{
 $ch = curl_init();

 curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/pagseguro-ws/checkout/NPI.jhtml');
 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);

  curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/pagseguro-ws/checkout/NPI.jhtml');
  $resp = curl_exec($ch);

 curl_close($ch);
 $confirma = (strcmp ($resp, "VERIFICADO") == 0);
}
elseif ($fsocket == true)
{
 $Cabecalho  = "POST /pagseguro-ws/checkout/NPI.jhtml 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;
       if (strcmp ($res, "VERIFICADO") == 0)
       {
          $confirma=true;
          break;
       }
    }
    fclose ($fp);
 }
 else
 {
    echo "$errstr ($errno)<br />\n";
 }
}


if ($confirma) {

 // Recebendo Dados
         $Referencia = $_POST['Referencia'];
        $StatusTransacao = $_POST['StatusTransacao'];
        $msg .= "Transação: ".$_POST['TransacaoID']." / ";
        $msg .= $_POST['DataTransacao']." / ";
        $msg .= $_POST['TipoPagamento']."<br>";
        $msg .= "Cliente: ".$_POST['CliNome ']."<br>";
        $msg .= $_POST['CliEmail']." / ";
        $msg .= $_POST['CliEndereco']." / ";
        $msg .= $_POST['CliNumero']." / ";
        $msg .= $_POST['CliComplemento']."<br>";
        $msg .= $_POST['CliCidade']." - ";
        $msg .= $_POST['CliEstado']." - ";
        $msg .= $_POST['CliCEP']."<br>";
        $msg .= "Fone: ".$_POST['CliTelefone'];

 // Gravando Dados
    mysql_query("INSERT into respostas_ps SET
    Referencia='$Referencia',    
    StatusTransacao='$StatusTransacao',    
    mensagem='$msg';");

}

Header("Location: $retorno_site"); exit();

agradeço a atenção

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...