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();
Pergunta
Espartaco
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:
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.