Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

WjcgMu1.png

 

Fala linduxos do TK, hoje vim trazer para vocês um sistema que venho modificando a algum tempo.
O Sistema de pagseguro automático, ao longo do script ensinarei perfeitamente como instalar/configurar.
Lembrando que uso esse sistema em um servidor meu e está 100% entregando os pontos no mesmo instante, adicionei a opção de entregar pontos dobrados, para promoção double points acima de X valor.

 
BeXcw9u.pngVá em sua pasta www ou htocs/config abra o arquivo config.php e procure por: $config['site']['layout'] = ... embaixo disto adicione o seguinte:
 

// Pagseguro Automático by Absolute on Luminera
// Seu email cadastrado no PagSeguro
$config['pagseguro']['email'] = 'SEU E-MAIL DO PAGSEGURO';
// Nome do produto
$config['pagseguro']['produtoNome'] = 'Premium Points';

// Valor de cada ponto
// Exemplo de valores:
// 100 = R$ 1,00
// 250 = R$ 2,50
$config['pagseguro']['produtoValor'] = '100';

Simples explicação sobre este passo: em SEU E-MAIL DO PAGSEGURO basta colocar o seu e-mail do pagseguro, ficando como exemplo:
$config['pagseguro']['email'] = '[email protected]';        (não mexa em mais nada)

 

BeXcw9u.pngPróximo passo:
Agora vá na sua pasta www ou htocs e crie um arquivo chamado pagseguro_retorno.php (Extensão PHP formato de página PHP), dentro do pagseguro_retorno.php adicione:
 

<?PHP
$host = "localhost"; /* HOST */
$user = "root"; /* USER */
$passwd = "SENHADOPHPMYADMIN"; /* PASSWORD */
$db = "NOMEDADATABASE"; /* DB */
##############################################################
#                         CONFIGURAÇÕES
##############################################################
$retorno_token = 'SEUTOKENPAGSEGURO'; // Token gerado pelo PagSeguro

if (empty($_POST['Referencia'])) { header("Location http://pagseguro.com.br");  }

list($accname, $world) = explode('-', $_POST['Referencia']);
if ($world=='sv') {
    $retorno_host = "$host"; // Local da base de dados MySql
    $retorno_database = "$db"; // Nome da base de dados MySql
    $retorno_usuario = "$user"; // Usuario com acesso a base de dados MySql
    $retorno_senha = "$passwd";  // Senha de acesso a base de dados MySql
}

###############################################################
#            ATENÇÃO TIBIAKING  NÃO ALTERE DESTA LINHA PARA BAIXO OK? Absolute Agradeçe hihi #

$lnk = mysql_connect("$host", "$user", "$passwd") or die ('Nao foi possível conectar ao MySql: ' . mysql_error());
mysql_select_db("$db", $lnk) or die ('Nao 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/Security/NPI/Default.aspx');
 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/Security/NPI/Default.aspx');
  $resp = curl_exec($ch);

 curl_close($ch);
 $confirma = (strcmp ($resp, "VERIFICADO") == 0);
}
elseif ($fsocket == true)
{
 $Cabecalho  = "POST /Security/NPI/Default.aspx 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 ##
$TransacaoID = $_POST['TransacaoID'];
$VendedorEmail  = $_POST['VendedorEmail'];
$Referencia = $_POST['Referencia'];
$TipoFrete = $_POST['TipoFrete'];
$ValorFrete = $_POST['ValorFrete'];
$Extras = $_POST['Extras'];
$Anotacao = $_POST['Anotacao'];
$TipoPagamento = $_POST['TipoPagamento'];
$StatusTransacao = $_POST['StatusTransacao'];
$CliNome = $_POST['CliNome'];
$CliEmail = $_POST['CliEmail'];
$CliEndereco = $_POST['CliEndereco'];
$CliNumero = $_POST['CliNumero'];
$CliComplemento = $_POST['CliComplemento'];
$CliBairro = $_POST['CliBairro'];
$CliCidade = $_POST['CliCidade'];
$CliEstado = $_POST['CliEstado'];
$CliCEP = $_POST['CliCEP'];
$CliTelefone = $_POST['CliTelefone'];
$NumItens = $_POST['ProdValor_1'];
$ProdQuantidade_x = $POST['ProdQuantidade_1'];
 
# GRAVA OS DADOS NO BANCO DE DADOS #
mysql_query("INSERT into pagsegurotransacoes SET
    TransacaoID='$TransacaoID',
    VendedorEmail='$VendedorEmail',
    Referencia='$Referencia',
    TipoFrete='$TipoFrete',
    ValorFrete='$ValorFrete',
    Extras='$Extras',
    Anotacao='$accname',
    TipoPagamento='$TipoPagamento',
    StatusTransacao='$StatusTransacao',
    CliNome='$CliNome',
    CliEmail='$CliEmail',
    CliEndereco='$CliEndereco',
    CliNumero='$CliNumero',
    CliComplemento='$CliComplemento',
    CliBairro='$CliBairro',
    CliCidade='$CliCidade',
    CliEstado='$CliEstado',
    CliCEP='$CliCEP',
    CliTelefone='$CliTelefone',
    NumItens='$NumItens',
    Data=now(),
ProdQuantidade_x='$ProdQuantidade_x';");

if ($NumItens >= 5) {
$pontosadd = $NumItens * 2;
} else {
$pontosadd = $NumItens;
}

if ($StatusTransacao == "Aprovado") {
mysql_query("UPDATE accounts SET premium_points = premium_points + '$pontosadd' WHERE name = '".htmlspecialchars($accname)."'");
mysql_query("UPDATE pagsegurotransacoes SET StatusTransacao = 'Entregue' WHERE CONVERT( `pagsegurotransacoes`.`TransacaoID` USING utf8 ) = '$TransacaoID' AND CONVERT( `PagSeguroTransacoes`.`StatusTransacao` USING utf8 ) = 'Aprovado' LIMIT 1 ;");
mysql_query('OPTIMIZE TABLE  `pagsegurotransacoes`');
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Donate Server</title>
<style type="text/css">
body {
    font-family: Tahoma, Geneva, sans-serif;
    font-size: 16px;
    width: 900px;
    margin: 0px auto;
    margin-top: 30px;
}
b {
    font-size: 18px;
    font-weight: bold;
}
</style>
</head>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
  <tr>
    <td width="11%" align="center" valign="middle"><img src="images/true.png" height="auto" width="64" /></td>
    <td width="89%"><p><b>S</b>ua compra está sendo processada por nossos sistemas de apuração, dentro de no máximo <u>1 hora seus pontos serão creditados</u>, caso o pagamento não for efetuado, ficará em aberto 1 ou mais pagamentos pendentes em sua conta. Caso você tenha mais de 3 pagamentos pendentes por falta de pagamento, sua conta será bloqueada temporariamente para efetuar pagamentos.</p></td>
  </tr>
</table>
<p><b>ID de Transação:</b> <?php echo $_POST['TransacaoID']; ?></p>
</body>
</html>

Explicação de configuração deste passo:
Coloque a senha que você usa para entrar no phpmyadmin aqui: $passwd = "SENHADOPHPMYADMIN"; /* PASSWORD */

Exemplo de como ficaria: $passwd = "absolute123"; /* PASSWORD */

Coloque aqui o nome que está seu banco de dados (o mesmo que vai no config.lua, onde salva os characters, contas e cia):

$db = "NOMEDADATABASE"; /* DB */ ;

Exemplo de como ficaria:
$db = "otserver"; /* DB */

 

 

IMPORTANTE, TOKEN Pagseguro!
Você irá entrar neste link, aparecerá uma página pedindo para colocar a url de retorno, no entanto você colocará o seu site terminado em /pagseguro_retorno.php, exemplo de link para colocar: http://otglobal.com/pagseguro_retorno.php (LEMBRANDO QUE É APENAS UM EXEMPLO, SERÁ SEUSITE.COM/pagseguro_retorno.php, como na imagem a seguir:

IBoCHia.png
Pós verificar a seleção do "Ativar" e o link correto clique em Salvar.

Agora descendo um pouco esta página onde terá a opção a cima terá uma opção como a imagem a seguir:
Jy3xMtA.png

 

Clique em GERAR, você receberá o seu código token e coloque no script que estará na sua pasta www ou htocs, mude na linha:
$retorno_token = 'SEUTOKENPAGSEGURO'; // Token gerado pelo PagSeguro
EM SEUTOKENPAGSEGURO coloque o TOKEN que você acabou de pegar, será vários números e letras, exemplo de como ficaria:
$retorno_token = 'AE89464AE8145487484PAEA978E91'; // Token gerado pelo PagSeguro

 

DOUBLE POINTS EXPLICAÇÃO:
Neste mesmo script há algumas linhas com a seuginte função:

if ($NumItens >= 5) {
$pontosadd = $NumItens * 2;

Isto quer dizer, > 5 (A cima de 5 pontos, receba: NumItens * 2, receba em 2x PONTOS EM DOBRO!)

Para alterar o valor a cima que a pessoa receberá em dobro: NumItens >= 5) 5 pontos ou mais a pessoa receberá em dobro, caso seja para qualquer valor, troque o 5 pelo 1.

Caso não deseje DOUBLE POINTS e sim 50% do valor em pontos, exemplo: 10R$ = 15 Pontos, altere para:

$pontosadd = $NumItens * 1.5;

Caso não deseje promoção e queira que seja 1 Real = 1 Ponto:

$pontosadd = $NumItens * 1;
 
 
 
 
BeXcw9u.pngPróximo passo:
 
Calma gente, está quase acabando eu prometo, então abra o seu PHPMYADMIN, localhost/phpmyadmin ou seusite.com/phpmyadmin, exemplo: www.absolutewar.com/phpmyadmin ; absoluteot.servegame.com/phpmyadmin, clique na opção SQL do phpmyadmin (como mostrarei na imagem e de executar.

vGmwX5I.png
 
 

 

Código a inserir no "espaço":

CREATE TABLE `pagsegurotransacoes` (
`TransacaoID` varchar(36) NOT NULL,
`VendedorEmail` varchar(200) NOT NULL,
`Referencia` varchar(200) default NULL,
`TipoFrete` char(2) default NULL,
`ValorFrete` decimal(10,2) default NULL,
`Extras` decimal(10,2) default NULL,
`Anotacao` text,
`TipoPagamento` varchar(50) NOT NULL,
`StatusTransacao` varchar(50) NOT NULL,
`CliNome` varchar(200) NOT NULL,
`CliEmail` varchar(200) NOT NULL,
`CliEndereco` varchar(200) NOT NULL,
`CliNumero` varchar(10) default NULL,
`CliComplemento` varchar(100) default NULL,
`CliBairro` varchar(100) NOT NULL,
`CliCidade` varchar(100) NOT NULL,
`CliEstado` char(2) NOT NULL,
`CliCEP` varchar(9) NOT NULL,
`CliTelefone` varchar(14) default NULL,
`NumItens` int(11) NOT NULL,
`Data` datetime NOT NULL,
`status` tinyint(1) unsigned NOT NULL default '0',
UNIQUE KEY `TransacaoID` (`TransacaoID`,`StatusTransacao`),
KEY `Referencia` (`Referencia`),
KEY `status` (`status`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Pós executar irá aparecer uma mensagem que o código foi aceito e uma tabela nova foi criada, como na imagem a seguir:
JvM1T8D.png
 
 
 
BeXcw9u.pngAgora por fim o ÚLTIMO PASSO
Novamente na pasta www ou htdocs substitua o seu arquivo donate.php por este:

 

<?php
if(!$logged)
if($action == "logout")
$main_content .= '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Logout Successful</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>You have logged out of your '.$config['server']['serverName'].' account. In order to view your account you need to <a href="?subtopic=accountmanagement" >log in</a> again.</td></tr> </table> </div> </table></div></td></tr>';
else
$main_content .= 'Please enter your account name and your password.<br/><a href="?subtopic=createaccount" >Create an account</a> if you do not have one yet.<br/><br/><form action="?subtopic=accountmanagement" method="post" ><div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Account Login</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td class="LabelV" ><span >Account Name:</span></td><td style="width:100%;" ><input type="password" name="account_login" SIZE="10" maxlength="10" ></td></tr><tr><td class="LabelV" ><span >Password:</span></td><td><input type="password" name="password_login" size="30" maxlength="29" ></td></tr> </table> </div> </table></div></td></tr><br/><table width="100%" ><tr align="center" ><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div &#111;nmouseover="MouseOverBigButton(this);" &#111;nmouseout="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=lostaccount" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div &#111;nmouseover="MouseOverBigButton(this);" &#111;nmouseout="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Account lost?" alt="Account lost?" src="'.$layout_name.'/images/buttons/_sbutton_accountlost.gif" ></div></div></td></tr></form></table></td></tr></table>';
else
{
$main_content .= '<br><br><b>Valores:</b><br>
1 Point = R$ 1,00<br>
10 Points = R$ 10,00<br>
20 Points = R$ 20,00<br>
E assim por diante...<br><br>
';

$main_content .= '
<form target="pagseguro" method="post" action="https://pagseguro.uol.com.br/checkout/checkout.jhtml">
<input type="hidden" name="email_cobranca" value="'. $config['pagseguro']['email']. '">
<input type="hidden" name="tipo" value="CP">
<input type="hidden" name="moeda" value="BRL">

<input type="hidden" name="item_id_1" value="1">
<input type="hidden" name="item_descr_1" value="Pontos na account de nome: '.$account_logged->getCustomField("name").'">

<input type="hidden" name="item_valor_1" value="'. $config['pagseguro']['produtoValor'] .'">
<input type="hidden" name="item_frete_1" value="0">
<input type="hidden" name="item_peso_1" value="0">
<input type="hidden" name="ref_transacao" value="'.$account_logged->getCustomField("name").'">
<table border="0" cellpadding="4" cellspacing="1" width="100%" id="#estilo"><tbody>
<tr bgcolor="#505050" class="white">
<th colspan="2"><strong>Escolha a quantidade de pontos que deseja comprar</strong></th>
</tr>
<tr>
<td width="10%">Sua conta</td>
<td><strong>'.$account_logged->getCustomField("name").'</strong></td>
</tr>
<tr>
<td width="10%">Pontos</td>
<td>
<input name="item_quant_1" type="text" value="10" size="5" maxlength="5">
</td>
</tr>
<tr>
<td colspan="2">
<input type="image" src="https://p.simg.uol.com.br/out/pagseguro/i/botoes/carrinhoproprio/btnFinalizar.jpg" name="submit" alt="Pague com PagSeguro - é rápido, grátis e seguro!" />
</td>
</tr>
</tbody></table></form>
<b><span style="color:#ff0000;">OBS&sup1;:</span></b> Os pontos são entregues <b>automáticamente</b> logo após a <u>aprovação</u> do seu pagamento pelo PagSeguro, ou seja, pagou e foi aprovado pontos depositados. Você pdoerá acessar o shop offer e desfrutar dos melhores items do servidor!
<?php } ?>'; } ?>

Pronto galera tão fácil né? agora vocês poderão pegar seu guarda sol, sua água de coco e sentar na sua cadeira de praia enquanto o script entregará os pontos automáticamente em menos de 1 minuto.
 
Espero ter ajudado, quaisquer dúvidas podem solicitar no tópico ou até mesmo me mandar uma mensagem privado que estarei disposto a ajuda-los.
 
Créditos:
Absolute (EU)
Matheus Sesso pela página donate.php
 
 
Nos vemos na próxima!
Enjoy.

Editado por absoluli (veja o histórico de edições)

  • Respostas 74
  • Visualizações 17.7k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Fala linduxos do TK, hoje vim trazer para vocês um sistema que venho modificando a algum tempo. O Sistema de pagseguro automático, ao longo do script ensinarei perfeitamente como instalar/configurar.

  • luanluciano93
    luanluciano93

    Até onde eu sei ele usa a porta do apache ...  Nesse campo você escolhe a quantidade de pontos:  <input name="item_quant_1" type="text" value="10" size="5" maxlength="5"> Verificando os camp

  • porque precisa de um site registrado ,aqui no meu tbm aparece isso.

Posted Images

Postado
  • Autor

Muito bom cara, muito bem explicado, não testei ainda, mas pelo que li esta correto, reputado!

 

Obrigado Luan, testei aqui novamente está 100% funcional juntamente com o Double Points entregando perfeitamente hehe. Agradeço o feedback.

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo