Ir ao conteúdo
  • Cadastre-se
Matheus Ribeiro_725245

Pagseguro com inserção de informações em banco de dados MYSQL

Recommended Posts

Boa tarde!

Estou tendo problemas para um sistema no meu site. Estou pensando em abrir um servidor de jogos, mas não consegui um sistema desse funcional. O único problema é que o script não está inserindo as informações na database.

Estarei postando aqui o sistema que estou usando:

 

SCRIPT DE COMPRAR OS PONTOS: Acredito que ele envia uma informação o pagseguro (variável que usarei depois para inserir alguns dados na database)

<?phpif(!$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 onmouseover="MouseOverBigButton(this);" onmouseout="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 onmouseover="MouseOverBigButton(this);" onmouseout="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¹:</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 } ?>'; } ?>

SCRIPT DE RETORNO:

<?PHP$host = "localhost"; /* HOST */$user = "root"; /* USER */$passwd = "SENHADOPHPMYADMIN"; /* PASSWORD */$db = "NOMEDADATABASE"; /* DB */###############################################################                         CONFIGURAÇÕES##############################################################$retorno_token = 'SEUTOKENPAGSEGURO'; // Token gerado pelo PagSeguroif (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>

ALGUMAS OUTRAS CONFIGURAÇÕES & QUERYS DA DATABASE:

// 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';
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;

Não sei como inserir Spoiler, desculpas se ficou muito grande.

Por favor preciso muito dessa ajuda porque não sei muita coisa de PHP, estou lendo algumas coisas na internet, mas não consegui resolver este problema :/

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×