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:
############################################################## # 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.