
Histórico de Curtidas
-
MarcosFraga recebeu reputação de Gabrielx17 em (Resolvido)Modern acc erro ao cria contaALTER TABLE `accounts` ADD `rlname` varchar(255); Acho eu que você deveria importar um arquivo schemas mais compativel.. Esse parece estar faltando muito.
Qualquer coisa executa no bando de dados:
-
MarcosFraga recebeu reputação de Guilherme HP em (Resolvido)Modern acc erro ao cria contaALTER TABLE `accounts` ADD `rlname` varchar(255); Acho eu que você deveria importar um arquivo schemas mais compativel.. Esse parece estar faltando muito.
Qualquer coisa executa no bando de dados:
-
MarcosFraga recebeu reputação de Guilherme HP em (Resolvido)Modern acc erro ao cria contaIsso ocorre quando você importa um arquivo schema incompatível com seu site.
Tenta executar no banco de dados:
ALTER TABLE `accounts` ADD `nickname` varchar(255) not null default ''; -
MarcosFraga recebeu reputação de NovojR em Pagseguro Automatico Modern AACCrie um arquivo.php na pasta: xammp/htdocs/sytem/pages
com o nome de pagseguro.php
<?php global $config; require("config.php"); $ots = POT::getInstance(); $ots->connect(POT::DB_MYSQL, connection()); $SQL = $ots->getDBHandle(); $ide = new IDE; $ide->requireLogin(); if($ide->isLogged()){ $accountName = $_SESSION['name']; //$SQL->query('SELECT * FROM accounts WHERE name="'.$accountName.'"')->fetch(); ?> <form target="pagseguro" method="post" action="https://pagseguro.uol.com.br/checkout/checkout.jhtml"> <input type="hidden" name="email_cobranca" value="<?php echo $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="<?php echo $config['pagseguro']['produtoNome']; ?>"> <input type="hidden" name="item_valor_1" value="<?php echo $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="<?php echo $accountName; ?>"> <table border="0" cellpadding="4" cellspacing="1" width="100%" id="#estilo"><tbody> <tr> <th colspan="2">Escolha a quantidade de pontos que deseja comprar:</th> </tr> <tr> <td width="25%">Sua conta:</td> <td><strong><?php echo $accountName; ?></strong></td> </tr> <tr> <td width="25%">Pontos:</td> <td> <input name="item_quant_1" type="text" value="1" 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><p style="text-align: right; font-size: 10px">created by <a href="http://otland.net/members/tatu+hunter/" target="_blank">tatu hunter</a></p><?php } ?> Agora vá em htdocs e abra o arquivo config.php:
la em baixo antes do "?>"
você adiciona:
// Sistema automatico Pagseguro by tatu_hunter // Seu email cadastrado no pagseguro $config['pagseguro']['email'] = '[email protected]<script cf-hash='f9e31' type="text/javascript"> /* */</script>'; [b]-- seu email pagseguro--[/b] // Nome do Produto $config['pagseguro']['produtoNome'] = 'Pontos VIP'; // Valor unitario do produto ou seja valor de cada ponto // Exemplo de valores // 100 = R$ 1,00 // 235 = R$ 2,35 // 4254 = R$ 42,54 $config['pagseguro']['produtoValor'] = '100'; // Token gerado no painel do pagseguro [b]--token você pega após confirmar que tem mais de 18 anos para receber as donations--[/b] $config['pagseguro']['token'] = 'EFEB3B4CA8914CB3963C3695A6947965'; Agora crie na pasta htdocs um arquivo chamado retPagseguro.php
e cole:
<?php // Arquivo de configuracao do Modern AAC include('config.php'); // Aqui vai seu Token define('TOKEN', $config['pagseguro']['token']); // Incluindo o arquivo da biblioteca include('retorno.php'); // Função que captura os dados do retorno function retorno_automatico ( $VendedorEmail, $TransacaoID, $Referencia, $TipoFrete, $ValorFrete, $Anotacao, $DataTransacao, $TipoPagamento, $StatusTransacao, $CliNome, $CliEmail, $CliEndereco, $CliNumero, $CliComplemento, $CliBairro, $CliCidade, $CliEstado, $CliCEP, $CliTelefone, $produtos, $NumItens) { global $config; if(strtolower($StatusTransacao) == 'aprovado') { require("system/application/libraries/POT/OTS.php"); $ots = POT::getInstance(); $ots->connect(POT::DB_MYSQL, array('host' => $config['database']['host'], 'user' => $config['database']['login'], 'password' => $config['database']['password'], 'database' => $config['database']['database'])); $SQL = $ots->getDBHandle(); $account_logged = $ots->createObject('Account'); $account_logged->find($Referencia); if($account_logged->isLoaded()) { $pontos = $account_logged->getCustomField("premium_points"); $account_logged->setCustomField("premium_points", $pontos + $produtos[0]['ProdQuantidade']); $nome = $Referencia.'-'.date('d-m-Y',$_SERVER['REQUEST_TIME']).'.txt'; if(file_exists('logsPagseguro/'.$nome)) $nome = $Referencia.'-2-'.date('d-m-Y',$_SERVER['REQUEST_TIME']).'.txt'; $arquivo = fopen('logsPagseguro/'.$nome, "w+"); $dados = "Conta: ".$Referencia."\n"; $dados = "Email: ".$CliEmail."\n"; $dados .= "Total de Points: ".$produtos[0]['ProdQuantidade']."\n"; $dados .= "Hora da Transação: ". date('d-m-Y H:i:s', $_SERVER['REQUEST_TIME']).""; fwrite($arquivo, $dados); fclose($arquivo); } } } // A partir daqui, é só HTML: ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Estamos verificando seu pagamento</title> </head> <body> <h1>Pedido em processamento</h1> <p>Recebemos seu pedido e estamos aguardando pela confirmação do pagamento. Obrigado por ajudar.</p> </body> </html> Depois ainda na pasta htdocs você cria uma pasta com o nome de logsPagseguro nela ficarão salvos todos os pagamentos completados.
E para que o pagamento apareça nessa pasta você tem que configurar no site do pagseguro a url de retorno:
Logue em sua conta no Pagseguro
Vá em: Preferências -> Retorno automático de dados
Procure 'Ative a URL de retorno', coloque Ativar.
e depois em URL de Retorno coloque a página que va para o retpagseguro.php do seu site:
http://www.seuservidor.com/retPagseguro.php
*Mais abaixo encontrara o botão "GERAR" para criar seu Token usado como encriptação pessoal para o seu sistema.
Cria outra página com o nome de Retorno.php
<?php if (!defined('TOKEN')) define ('TOKEN', ''); /** * RetornoPagSeguro * * Classe de manipulação para o retorno do post do pagseguro * * @package PagSeguro */ class RetornoPagSeguro { /** * _preparaDados * * Prepara os dados vindos do post e converte-os para url, adicionando * o token do usuario quando necessario. * * @internal é usado pela {@see RetornoPAgSeguro::verifica} para gerar os, * dados que serão enviados pelo PagSeguro * * @access private * * @param array $post Array contendo os posts do pagseguro * @param bool $confirmacao Controlando a adicao do token no post * @return string */ function _preparaDados($post, $confirmacao=true) { if ('array' !== gettype($post)) $post=array(); if ($confirmacao) { $post['Comando'] = 'validar'; $post['Token'] = TOKEN; } $retorno=array(); foreach ($post as $key=>$value){ if('string'!==gettype($value)) $post[$key]=''; $value=urlencode(stripslashes($value)); $retorno[]="{$key}={$value}"; } return implode('&', $retorno); } /** * _tipoEnvio * * Checa qual será a conexao de acordo com a versao do PHP * preferencialmente em CURL ou via socket * * em CURL o retorno será: * <code> array ('curl','https://pagseguro.uol.com.br/Security/NPI/Default.aspx') </code> * já em socket o retorno será: * <code> array ('fsocket', '/Security/NPI/Default.aspx', $objeto-de-conexao) </code> * se não encontrar nenhum nem outro: * <code> array ('','') </code> * * @access private * @global string $_retPagSeguroErrNo Numero de erro do pagseguro * @global string $_retPagSeguroErrStr Texto descritivo do erro do pagseguro * @return array Array com as configurações * */ function _tipoEnvio() { //Prefira utilizar a função CURL do PHP //Leia mais sobre CURL em: http://us3.php.net/curl global $_retPagSeguroErrNo, $_retPagSeguroErrStr; if (function_exists('curl_exec')) return array('curl', 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx'); elseif ((PHP_VERSION >= 4.3) && ($fp = @fsockopen('ssl://pagseguro.uol.com.br', 443, $_retPagSeguroErrNo, $_retPagSeguroErrStr, 30))) return array('fsocket', '/Security/NPI/Default.aspx', $fp); elseif ($fp = @fsockopen('pagseguro.uol.com.br', 80, $_retPagSeguroErrNo, $_retPagSeguroErrStr, 30)) return array('fsocket', '/Security/NPI/Default.aspx', $fp); return array ('', ''); } /** * not_null * * Extraido de OScommerce 2.2 com base no original do pagseguro, * Checa se o valor e nulo * * @access public * * @param mixed $value Variável a ser checada se é nula * @return bool */ function not_null($value) { if (is_array($value)) { if (sizeof($value) > 0) { return true; } else { return false; } } else { if (($value != '') && (strtolower($value) != 'null') && (strlen(trim($value)) > 0)) { return true; } else { return false; } } } /** * verifica * * Verifica o tipo de conexão aberta e envia os dados vindos * do post * * @access public * * @use RetornoPagSeguro::_tipoenvio() * @global string $_retPagSeguroErrNo Numero de erro do pagseguro * @global string $_retPagSeguroErrStr Texto descritivo do erro do pagseguro * @param array $post Array contendo os posts do pagseguro * @param bool $tipoEnvio (opcional) Verifica o tipo de envio do post * @return bool */ function verifica($post, $tipoEnvio=false) { global $_retPagSeguroErrNo, $_retPagSeguroErrStr; if ('array' !== gettype($tipoEnvio)) $tipoEnvio = RetornoPagSeguro::_tipoEnvio(); $spost=RetornoPagSeguro::_preparaDados($post); if (!in_array($tipoEnvio[0], array('curl', 'fsocket'))) return false; $confirma = false; if ($tipoEnvio[0] === 'curl') { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $tipoEnvio[1]); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $spost); 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); $resp = curl_exec($ch); if (!RetornoPagSeguro::not_null($resp)) { curl_setopt($ch, CURLOPT_URL, $tipoEnvio[1]); $resp = curl_exec($ch); } curl_close($ch); $confirma = (strcmp ($resp, 'VERIFICADO') == 0); } elseif ($tipoEnvio[0] === 'fsocket') { if (!$tipoEnvio[2]) { die ("{$_retPagSeguroErrStr} ($_retPagSeguroErrNo)"); } else { $cabecalho = "POST {$tipoEnvio[1]} HTTP/1.0\r\n"; $cabecalho .= "Content-Type: application/x-www-form-urlencoded\r\n"; $cabecalho .= "Content-Length: " . strlen($spost) . "\r\n\r\n"; $resp = ''; fwrite ($tipoEnvio[2], "{$cabecalho}{$spost}"); while (!feof($tipoEnvio[2])) { $resp = fgets ($tipoEnvio[2], 1024); if (strcmp ($resp, 'VERIFICADO') == 0) { $confirma = (strcmp ($resp, 'VERIFICADO') == 0); $confirma=true; break; } } fclose ($tipoEnvio[2]); } } if ($confirma && function_exists('retorno_automatico')) { $itens = array ( 'VendedorEmail', 'TransacaoID', 'Referencia', 'TipoFrete', 'ValorFrete', 'Anotacao', 'DataTransacao', 'TipoPagamento', 'StatusTransacao', 'CliNome', 'CliEmail', 'CliEndereco', 'CliNumero', 'CliComplemento', 'CliBairro', 'CliCidade', 'CliEstado', 'CliCEP', 'CliTelefone', 'NumItens', ); foreach ($itens as $item) { if (!isset($post[$item])) $post[$item] = ''; if ($item=='ValorFrete') $post[$item] = str_replace(',', '.', $post[$item]); } $produtos = array (); for ($i=1;isset($post["ProdID_{$i}"]);$i++) { $produtos[] = array ( 'ProdID' => $post["ProdID_{$i}"], 'ProdDescricao' => $post["ProdDescricao_{$i}"], 'ProdValor' => (double) (str_replace(',', '.', $post["ProdValor_{$i}"])), 'ProdQuantidade' => $post["ProdQuantidade_{$i}"], 'ProdFrete' => (double) (str_replace(',', '.', $post["ProdFrete_{$i}"])), 'ProdExtras' => (double) (str_replace(',', '.', $post["ProdExtras_{$i}"])), ); } retorno_automatico ( $post['VendedorEmail'], $post['TransacaoID'], $post['Referencia'], $post['TipoFrete'], $post['ValorFrete'], $post['Anotacao'], $post['DataTransacao'], $post['TipoPagamento'], $post['StatusTransacao'], $post['CliNome'], $post['CliEmail'], $post['CliEndereco'], $post['CliNumero'], $post['CliComplemento'], $post['CliBairro'], $post['CliCidade'], $post['CliEstado'], $post['CliCEP'], $post['CliTelefone'], $produtos, $post['NumItens'] ); } return $confirma; } } if ($_POST) { RetornoPagSeguro::verifica($_POST); die(); } ?> Tenha certeza de que na sua database tenha a tabela_accounts premium_points se não tiver crie:
Logue no seu phpmyadmin va na sua database "forgottenserver por exemplo" depois vai em SQL e digite :
ALTER TABLE `accounts` ADD `premium_points` INT NOT NULL De executar e pronto.
Creditos:
99,99% Tatu Hunter
0,1% Eu por traduzir e trazer pra cá.
Duvidas só mandar.
-
MarcosFraga recebeu reputação de Cain Jorge em (Resolvido)Admin no Modern AccEntre em seu banco de dados (phpmyadmin por exemplo)
Acesse aba "Account"
Procure sua conta, e clique no ícone do lápis para editar, procure por page_acess, mude o para 6 ou 5.
-
MarcosFraga recebeu reputação de kukas9 em Pagseguro Automatico Modern AACCrie um arquivo.php na pasta: xammp/htdocs/sytem/pages
com o nome de pagseguro.php
<?php global $config; require("config.php"); $ots = POT::getInstance(); $ots->connect(POT::DB_MYSQL, connection()); $SQL = $ots->getDBHandle(); $ide = new IDE; $ide->requireLogin(); if($ide->isLogged()){ $accountName = $_SESSION['name']; //$SQL->query('SELECT * FROM accounts WHERE name="'.$accountName.'"')->fetch(); ?> <form target="pagseguro" method="post" action="https://pagseguro.uol.com.br/checkout/checkout.jhtml"> <input type="hidden" name="email_cobranca" value="<?php echo $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="<?php echo $config['pagseguro']['produtoNome']; ?>"> <input type="hidden" name="item_valor_1" value="<?php echo $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="<?php echo $accountName; ?>"> <table border="0" cellpadding="4" cellspacing="1" width="100%" id="#estilo"><tbody> <tr> <th colspan="2">Escolha a quantidade de pontos que deseja comprar:</th> </tr> <tr> <td width="25%">Sua conta:</td> <td><strong><?php echo $accountName; ?></strong></td> </tr> <tr> <td width="25%">Pontos:</td> <td> <input name="item_quant_1" type="text" value="1" 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><p style="text-align: right; font-size: 10px">created by <a href="http://otland.net/members/tatu+hunter/" target="_blank">tatu hunter</a></p><?php } ?> Agora vá em htdocs e abra o arquivo config.php:
la em baixo antes do "?>"
você adiciona:
// Sistema automatico Pagseguro by tatu_hunter // Seu email cadastrado no pagseguro $config['pagseguro']['email'] = '[email protected]<script cf-hash='f9e31' type="text/javascript"> /* */</script>'; [b]-- seu email pagseguro--[/b] // Nome do Produto $config['pagseguro']['produtoNome'] = 'Pontos VIP'; // Valor unitario do produto ou seja valor de cada ponto // Exemplo de valores // 100 = R$ 1,00 // 235 = R$ 2,35 // 4254 = R$ 42,54 $config['pagseguro']['produtoValor'] = '100'; // Token gerado no painel do pagseguro [b]--token você pega após confirmar que tem mais de 18 anos para receber as donations--[/b] $config['pagseguro']['token'] = 'EFEB3B4CA8914CB3963C3695A6947965'; Agora crie na pasta htdocs um arquivo chamado retPagseguro.php
e cole:
<?php // Arquivo de configuracao do Modern AAC include('config.php'); // Aqui vai seu Token define('TOKEN', $config['pagseguro']['token']); // Incluindo o arquivo da biblioteca include('retorno.php'); // Função que captura os dados do retorno function retorno_automatico ( $VendedorEmail, $TransacaoID, $Referencia, $TipoFrete, $ValorFrete, $Anotacao, $DataTransacao, $TipoPagamento, $StatusTransacao, $CliNome, $CliEmail, $CliEndereco, $CliNumero, $CliComplemento, $CliBairro, $CliCidade, $CliEstado, $CliCEP, $CliTelefone, $produtos, $NumItens) { global $config; if(strtolower($StatusTransacao) == 'aprovado') { require("system/application/libraries/POT/OTS.php"); $ots = POT::getInstance(); $ots->connect(POT::DB_MYSQL, array('host' => $config['database']['host'], 'user' => $config['database']['login'], 'password' => $config['database']['password'], 'database' => $config['database']['database'])); $SQL = $ots->getDBHandle(); $account_logged = $ots->createObject('Account'); $account_logged->find($Referencia); if($account_logged->isLoaded()) { $pontos = $account_logged->getCustomField("premium_points"); $account_logged->setCustomField("premium_points", $pontos + $produtos[0]['ProdQuantidade']); $nome = $Referencia.'-'.date('d-m-Y',$_SERVER['REQUEST_TIME']).'.txt'; if(file_exists('logsPagseguro/'.$nome)) $nome = $Referencia.'-2-'.date('d-m-Y',$_SERVER['REQUEST_TIME']).'.txt'; $arquivo = fopen('logsPagseguro/'.$nome, "w+"); $dados = "Conta: ".$Referencia."\n"; $dados = "Email: ".$CliEmail."\n"; $dados .= "Total de Points: ".$produtos[0]['ProdQuantidade']."\n"; $dados .= "Hora da Transação: ". date('d-m-Y H:i:s', $_SERVER['REQUEST_TIME']).""; fwrite($arquivo, $dados); fclose($arquivo); } } } // A partir daqui, é só HTML: ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Estamos verificando seu pagamento</title> </head> <body> <h1>Pedido em processamento</h1> <p>Recebemos seu pedido e estamos aguardando pela confirmação do pagamento. Obrigado por ajudar.</p> </body> </html> Depois ainda na pasta htdocs você cria uma pasta com o nome de logsPagseguro nela ficarão salvos todos os pagamentos completados.
E para que o pagamento apareça nessa pasta você tem que configurar no site do pagseguro a url de retorno:
Logue em sua conta no Pagseguro
Vá em: Preferências -> Retorno automático de dados
Procure 'Ative a URL de retorno', coloque Ativar.
e depois em URL de Retorno coloque a página que va para o retpagseguro.php do seu site:
http://www.seuservidor.com/retPagseguro.php
*Mais abaixo encontrara o botão "GERAR" para criar seu Token usado como encriptação pessoal para o seu sistema.
Cria outra página com o nome de Retorno.php
<?php if (!defined('TOKEN')) define ('TOKEN', ''); /** * RetornoPagSeguro * * Classe de manipulação para o retorno do post do pagseguro * * @package PagSeguro */ class RetornoPagSeguro { /** * _preparaDados * * Prepara os dados vindos do post e converte-os para url, adicionando * o token do usuario quando necessario. * * @internal é usado pela {@see RetornoPAgSeguro::verifica} para gerar os, * dados que serão enviados pelo PagSeguro * * @access private * * @param array $post Array contendo os posts do pagseguro * @param bool $confirmacao Controlando a adicao do token no post * @return string */ function _preparaDados($post, $confirmacao=true) { if ('array' !== gettype($post)) $post=array(); if ($confirmacao) { $post['Comando'] = 'validar'; $post['Token'] = TOKEN; } $retorno=array(); foreach ($post as $key=>$value){ if('string'!==gettype($value)) $post[$key]=''; $value=urlencode(stripslashes($value)); $retorno[]="{$key}={$value}"; } return implode('&', $retorno); } /** * _tipoEnvio * * Checa qual será a conexao de acordo com a versao do PHP * preferencialmente em CURL ou via socket * * em CURL o retorno será: * <code> array ('curl','https://pagseguro.uol.com.br/Security/NPI/Default.aspx') </code> * já em socket o retorno será: * <code> array ('fsocket', '/Security/NPI/Default.aspx', $objeto-de-conexao) </code> * se não encontrar nenhum nem outro: * <code> array ('','') </code> * * @access private * @global string $_retPagSeguroErrNo Numero de erro do pagseguro * @global string $_retPagSeguroErrStr Texto descritivo do erro do pagseguro * @return array Array com as configurações * */ function _tipoEnvio() { //Prefira utilizar a função CURL do PHP //Leia mais sobre CURL em: http://us3.php.net/curl global $_retPagSeguroErrNo, $_retPagSeguroErrStr; if (function_exists('curl_exec')) return array('curl', 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx'); elseif ((PHP_VERSION >= 4.3) && ($fp = @fsockopen('ssl://pagseguro.uol.com.br', 443, $_retPagSeguroErrNo, $_retPagSeguroErrStr, 30))) return array('fsocket', '/Security/NPI/Default.aspx', $fp); elseif ($fp = @fsockopen('pagseguro.uol.com.br', 80, $_retPagSeguroErrNo, $_retPagSeguroErrStr, 30)) return array('fsocket', '/Security/NPI/Default.aspx', $fp); return array ('', ''); } /** * not_null * * Extraido de OScommerce 2.2 com base no original do pagseguro, * Checa se o valor e nulo * * @access public * * @param mixed $value Variável a ser checada se é nula * @return bool */ function not_null($value) { if (is_array($value)) { if (sizeof($value) > 0) { return true; } else { return false; } } else { if (($value != '') && (strtolower($value) != 'null') && (strlen(trim($value)) > 0)) { return true; } else { return false; } } } /** * verifica * * Verifica o tipo de conexão aberta e envia os dados vindos * do post * * @access public * * @use RetornoPagSeguro::_tipoenvio() * @global string $_retPagSeguroErrNo Numero de erro do pagseguro * @global string $_retPagSeguroErrStr Texto descritivo do erro do pagseguro * @param array $post Array contendo os posts do pagseguro * @param bool $tipoEnvio (opcional) Verifica o tipo de envio do post * @return bool */ function verifica($post, $tipoEnvio=false) { global $_retPagSeguroErrNo, $_retPagSeguroErrStr; if ('array' !== gettype($tipoEnvio)) $tipoEnvio = RetornoPagSeguro::_tipoEnvio(); $spost=RetornoPagSeguro::_preparaDados($post); if (!in_array($tipoEnvio[0], array('curl', 'fsocket'))) return false; $confirma = false; if ($tipoEnvio[0] === 'curl') { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $tipoEnvio[1]); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $spost); 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); $resp = curl_exec($ch); if (!RetornoPagSeguro::not_null($resp)) { curl_setopt($ch, CURLOPT_URL, $tipoEnvio[1]); $resp = curl_exec($ch); } curl_close($ch); $confirma = (strcmp ($resp, 'VERIFICADO') == 0); } elseif ($tipoEnvio[0] === 'fsocket') { if (!$tipoEnvio[2]) { die ("{$_retPagSeguroErrStr} ($_retPagSeguroErrNo)"); } else { $cabecalho = "POST {$tipoEnvio[1]} HTTP/1.0\r\n"; $cabecalho .= "Content-Type: application/x-www-form-urlencoded\r\n"; $cabecalho .= "Content-Length: " . strlen($spost) . "\r\n\r\n"; $resp = ''; fwrite ($tipoEnvio[2], "{$cabecalho}{$spost}"); while (!feof($tipoEnvio[2])) { $resp = fgets ($tipoEnvio[2], 1024); if (strcmp ($resp, 'VERIFICADO') == 0) { $confirma = (strcmp ($resp, 'VERIFICADO') == 0); $confirma=true; break; } } fclose ($tipoEnvio[2]); } } if ($confirma && function_exists('retorno_automatico')) { $itens = array ( 'VendedorEmail', 'TransacaoID', 'Referencia', 'TipoFrete', 'ValorFrete', 'Anotacao', 'DataTransacao', 'TipoPagamento', 'StatusTransacao', 'CliNome', 'CliEmail', 'CliEndereco', 'CliNumero', 'CliComplemento', 'CliBairro', 'CliCidade', 'CliEstado', 'CliCEP', 'CliTelefone', 'NumItens', ); foreach ($itens as $item) { if (!isset($post[$item])) $post[$item] = ''; if ($item=='ValorFrete') $post[$item] = str_replace(',', '.', $post[$item]); } $produtos = array (); for ($i=1;isset($post["ProdID_{$i}"]);$i++) { $produtos[] = array ( 'ProdID' => $post["ProdID_{$i}"], 'ProdDescricao' => $post["ProdDescricao_{$i}"], 'ProdValor' => (double) (str_replace(',', '.', $post["ProdValor_{$i}"])), 'ProdQuantidade' => $post["ProdQuantidade_{$i}"], 'ProdFrete' => (double) (str_replace(',', '.', $post["ProdFrete_{$i}"])), 'ProdExtras' => (double) (str_replace(',', '.', $post["ProdExtras_{$i}"])), ); } retorno_automatico ( $post['VendedorEmail'], $post['TransacaoID'], $post['Referencia'], $post['TipoFrete'], $post['ValorFrete'], $post['Anotacao'], $post['DataTransacao'], $post['TipoPagamento'], $post['StatusTransacao'], $post['CliNome'], $post['CliEmail'], $post['CliEndereco'], $post['CliNumero'], $post['CliComplemento'], $post['CliBairro'], $post['CliCidade'], $post['CliEstado'], $post['CliCEP'], $post['CliTelefone'], $produtos, $post['NumItens'] ); } return $confirma; } } if ($_POST) { RetornoPagSeguro::verifica($_POST); die(); } ?> Tenha certeza de que na sua database tenha a tabela_accounts premium_points se não tiver crie:
Logue no seu phpmyadmin va na sua database "forgottenserver por exemplo" depois vai em SQL e digite :
ALTER TABLE `accounts` ADD `premium_points` INT NOT NULL De executar e pronto.
Creditos:
99,99% Tatu Hunter
0,1% Eu por traduzir e trazer pra cá.
Duvidas só mandar.
-
MarcosFraga recebeu reputação de robiie123 em (Resolvido)[AJUDA] Erro ao criar charMeu deus usa tag spoiler pra esconder esses scripts gigantes da próxima vez pls.
Tenta executar na sua database
INSERT IGNORE INTO `player_skills` SELECT `id` , 0, 10, 0 FROM `players` UNION SELECT `id` , 1, 10, 0 FROM `players` UNION SELECT `id` , 2, 10, 0 FROM `players` UNION SELECT `id` , 3, 10, 0 FROM `players` UNION SELECT `id` , 4, 10, 0 FROM `players` UNION SELECT `id` , 5, 10, 0 FROM `players` UNION SELECT `id` , 6, 10, 0 FROM `players` ; Se não der crie um arquivo .sql com esse código e importe para sua database.
Saindo a noite estou de volta se não der tentarei ajudar mais.
-
MarcosFraga recebeu reputação de tirso em double xp potionCrie um arquivo na pasta data/actions/scripts com o nome
doublexp.lua
Cole dentro dele:
Edite as linhas locais e de texto.
function onUse(cid, item, frompos, item2, topos) local pausa = 1800000 -- (1000 = 1 segundos) Tempo que o script durará local texto = 'You receive double the experience to kill a monster for 30 minutes.' -- Texto que irá receber ao usar a potion. textofinal = 'Its just minutes.' -- Texto que irá receber quando o efeito da potion acabar. local exp = 2 -- O quanto que você quer que dobre sua experiencia, por exemplo 2 é 2x as rates do seu server. expfinal = 1 --Não mude, isso é para a experiencia voltar ao normal. if item.itemid == 7443 then doRemoveItem(item.uid,1) doPlayerSetExperienceRate(cid,exp) doSendMagicEffect(frompos,13) doPlayerSendTextMessage(cid,22,texto) addEvent(potion,pausa,cid) end end function potion(pos, cid) doPlayerSetExperienceRate(pos,expfinal) doPlayerSendTextMessage(pos,22,textofinal) end E depois adicione no arquivo actions.xml localizado na pasta data/actions:
e adicione a linha:
<action itemid="ID DO ITEM" script="doublexplua" /> No script postado esta em azul 7443, edite para o seu item e depois adicione nessa ultima linha postada.
Espero que ajude.
-
MarcosFraga recebeu reputação de xlx em (Resolvido)[AJUDA] Erro ao criar charMeu deus usa tag spoiler pra esconder esses scripts gigantes da próxima vez pls.
Tenta executar na sua database
INSERT IGNORE INTO `player_skills` SELECT `id` , 0, 10, 0 FROM `players` UNION SELECT `id` , 1, 10, 0 FROM `players` UNION SELECT `id` , 2, 10, 0 FROM `players` UNION SELECT `id` , 3, 10, 0 FROM `players` UNION SELECT `id` , 4, 10, 0 FROM `players` UNION SELECT `id` , 5, 10, 0 FROM `players` UNION SELECT `id` , 6, 10, 0 FROM `players` ; Se não der crie um arquivo .sql com esse código e importe para sua database.
Saindo a noite estou de volta se não der tentarei ajudar mais.
-
MarcosFraga recebeu reputação de jhonyirie em (Resolvido)[AJUDA] Erro ao criar charMeu deus usa tag spoiler pra esconder esses scripts gigantes da próxima vez pls.
Tenta executar na sua database
INSERT IGNORE INTO `player_skills` SELECT `id` , 0, 10, 0 FROM `players` UNION SELECT `id` , 1, 10, 0 FROM `players` UNION SELECT `id` , 2, 10, 0 FROM `players` UNION SELECT `id` , 3, 10, 0 FROM `players` UNION SELECT `id` , 4, 10, 0 FROM `players` UNION SELECT `id` , 5, 10, 0 FROM `players` UNION SELECT `id` , 6, 10, 0 FROM `players` ; Se não der crie um arquivo .sql com esse código e importe para sua database.
Saindo a noite estou de volta se não der tentarei ajudar mais.
-
MarcosFraga recebeu reputação de RenanPhellip em Pagseguro Automatico Modern AACCrie um arquivo.php na pasta: xammp/htdocs/sytem/pages
com o nome de pagseguro.php
<?php global $config; require("config.php"); $ots = POT::getInstance(); $ots->connect(POT::DB_MYSQL, connection()); $SQL = $ots->getDBHandle(); $ide = new IDE; $ide->requireLogin(); if($ide->isLogged()){ $accountName = $_SESSION['name']; //$SQL->query('SELECT * FROM accounts WHERE name="'.$accountName.'"')->fetch(); ?> <form target="pagseguro" method="post" action="https://pagseguro.uol.com.br/checkout/checkout.jhtml"> <input type="hidden" name="email_cobranca" value="<?php echo $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="<?php echo $config['pagseguro']['produtoNome']; ?>"> <input type="hidden" name="item_valor_1" value="<?php echo $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="<?php echo $accountName; ?>"> <table border="0" cellpadding="4" cellspacing="1" width="100%" id="#estilo"><tbody> <tr> <th colspan="2">Escolha a quantidade de pontos que deseja comprar:</th> </tr> <tr> <td width="25%">Sua conta:</td> <td><strong><?php echo $accountName; ?></strong></td> </tr> <tr> <td width="25%">Pontos:</td> <td> <input name="item_quant_1" type="text" value="1" 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><p style="text-align: right; font-size: 10px">created by <a href="http://otland.net/members/tatu+hunter/" target="_blank">tatu hunter</a></p><?php } ?> Agora vá em htdocs e abra o arquivo config.php:
la em baixo antes do "?>"
você adiciona:
// Sistema automatico Pagseguro by tatu_hunter // Seu email cadastrado no pagseguro $config['pagseguro']['email'] = '[email protected]<script cf-hash='f9e31' type="text/javascript"> /* */</script>'; [b]-- seu email pagseguro--[/b] // Nome do Produto $config['pagseguro']['produtoNome'] = 'Pontos VIP'; // Valor unitario do produto ou seja valor de cada ponto // Exemplo de valores // 100 = R$ 1,00 // 235 = R$ 2,35 // 4254 = R$ 42,54 $config['pagseguro']['produtoValor'] = '100'; // Token gerado no painel do pagseguro [b]--token você pega após confirmar que tem mais de 18 anos para receber as donations--[/b] $config['pagseguro']['token'] = 'EFEB3B4CA8914CB3963C3695A6947965'; Agora crie na pasta htdocs um arquivo chamado retPagseguro.php
e cole:
<?php // Arquivo de configuracao do Modern AAC include('config.php'); // Aqui vai seu Token define('TOKEN', $config['pagseguro']['token']); // Incluindo o arquivo da biblioteca include('retorno.php'); // Função que captura os dados do retorno function retorno_automatico ( $VendedorEmail, $TransacaoID, $Referencia, $TipoFrete, $ValorFrete, $Anotacao, $DataTransacao, $TipoPagamento, $StatusTransacao, $CliNome, $CliEmail, $CliEndereco, $CliNumero, $CliComplemento, $CliBairro, $CliCidade, $CliEstado, $CliCEP, $CliTelefone, $produtos, $NumItens) { global $config; if(strtolower($StatusTransacao) == 'aprovado') { require("system/application/libraries/POT/OTS.php"); $ots = POT::getInstance(); $ots->connect(POT::DB_MYSQL, array('host' => $config['database']['host'], 'user' => $config['database']['login'], 'password' => $config['database']['password'], 'database' => $config['database']['database'])); $SQL = $ots->getDBHandle(); $account_logged = $ots->createObject('Account'); $account_logged->find($Referencia); if($account_logged->isLoaded()) { $pontos = $account_logged->getCustomField("premium_points"); $account_logged->setCustomField("premium_points", $pontos + $produtos[0]['ProdQuantidade']); $nome = $Referencia.'-'.date('d-m-Y',$_SERVER['REQUEST_TIME']).'.txt'; if(file_exists('logsPagseguro/'.$nome)) $nome = $Referencia.'-2-'.date('d-m-Y',$_SERVER['REQUEST_TIME']).'.txt'; $arquivo = fopen('logsPagseguro/'.$nome, "w+"); $dados = "Conta: ".$Referencia."\n"; $dados = "Email: ".$CliEmail."\n"; $dados .= "Total de Points: ".$produtos[0]['ProdQuantidade']."\n"; $dados .= "Hora da Transação: ". date('d-m-Y H:i:s', $_SERVER['REQUEST_TIME']).""; fwrite($arquivo, $dados); fclose($arquivo); } } } // A partir daqui, é só HTML: ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Estamos verificando seu pagamento</title> </head> <body> <h1>Pedido em processamento</h1> <p>Recebemos seu pedido e estamos aguardando pela confirmação do pagamento. Obrigado por ajudar.</p> </body> </html> Depois ainda na pasta htdocs você cria uma pasta com o nome de logsPagseguro nela ficarão salvos todos os pagamentos completados.
E para que o pagamento apareça nessa pasta você tem que configurar no site do pagseguro a url de retorno:
Logue em sua conta no Pagseguro
Vá em: Preferências -> Retorno automático de dados
Procure 'Ative a URL de retorno', coloque Ativar.
e depois em URL de Retorno coloque a página que va para o retpagseguro.php do seu site:
http://www.seuservidor.com/retPagseguro.php
*Mais abaixo encontrara o botão "GERAR" para criar seu Token usado como encriptação pessoal para o seu sistema.
Cria outra página com o nome de Retorno.php
<?php if (!defined('TOKEN')) define ('TOKEN', ''); /** * RetornoPagSeguro * * Classe de manipulação para o retorno do post do pagseguro * * @package PagSeguro */ class RetornoPagSeguro { /** * _preparaDados * * Prepara os dados vindos do post e converte-os para url, adicionando * o token do usuario quando necessario. * * @internal é usado pela {@see RetornoPAgSeguro::verifica} para gerar os, * dados que serão enviados pelo PagSeguro * * @access private * * @param array $post Array contendo os posts do pagseguro * @param bool $confirmacao Controlando a adicao do token no post * @return string */ function _preparaDados($post, $confirmacao=true) { if ('array' !== gettype($post)) $post=array(); if ($confirmacao) { $post['Comando'] = 'validar'; $post['Token'] = TOKEN; } $retorno=array(); foreach ($post as $key=>$value){ if('string'!==gettype($value)) $post[$key]=''; $value=urlencode(stripslashes($value)); $retorno[]="{$key}={$value}"; } return implode('&', $retorno); } /** * _tipoEnvio * * Checa qual será a conexao de acordo com a versao do PHP * preferencialmente em CURL ou via socket * * em CURL o retorno será: * <code> array ('curl','https://pagseguro.uol.com.br/Security/NPI/Default.aspx') </code> * já em socket o retorno será: * <code> array ('fsocket', '/Security/NPI/Default.aspx', $objeto-de-conexao) </code> * se não encontrar nenhum nem outro: * <code> array ('','') </code> * * @access private * @global string $_retPagSeguroErrNo Numero de erro do pagseguro * @global string $_retPagSeguroErrStr Texto descritivo do erro do pagseguro * @return array Array com as configurações * */ function _tipoEnvio() { //Prefira utilizar a função CURL do PHP //Leia mais sobre CURL em: http://us3.php.net/curl global $_retPagSeguroErrNo, $_retPagSeguroErrStr; if (function_exists('curl_exec')) return array('curl', 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx'); elseif ((PHP_VERSION >= 4.3) && ($fp = @fsockopen('ssl://pagseguro.uol.com.br', 443, $_retPagSeguroErrNo, $_retPagSeguroErrStr, 30))) return array('fsocket', '/Security/NPI/Default.aspx', $fp); elseif ($fp = @fsockopen('pagseguro.uol.com.br', 80, $_retPagSeguroErrNo, $_retPagSeguroErrStr, 30)) return array('fsocket', '/Security/NPI/Default.aspx', $fp); return array ('', ''); } /** * not_null * * Extraido de OScommerce 2.2 com base no original do pagseguro, * Checa se o valor e nulo * * @access public * * @param mixed $value Variável a ser checada se é nula * @return bool */ function not_null($value) { if (is_array($value)) { if (sizeof($value) > 0) { return true; } else { return false; } } else { if (($value != '') && (strtolower($value) != 'null') && (strlen(trim($value)) > 0)) { return true; } else { return false; } } } /** * verifica * * Verifica o tipo de conexão aberta e envia os dados vindos * do post * * @access public * * @use RetornoPagSeguro::_tipoenvio() * @global string $_retPagSeguroErrNo Numero de erro do pagseguro * @global string $_retPagSeguroErrStr Texto descritivo do erro do pagseguro * @param array $post Array contendo os posts do pagseguro * @param bool $tipoEnvio (opcional) Verifica o tipo de envio do post * @return bool */ function verifica($post, $tipoEnvio=false) { global $_retPagSeguroErrNo, $_retPagSeguroErrStr; if ('array' !== gettype($tipoEnvio)) $tipoEnvio = RetornoPagSeguro::_tipoEnvio(); $spost=RetornoPagSeguro::_preparaDados($post); if (!in_array($tipoEnvio[0], array('curl', 'fsocket'))) return false; $confirma = false; if ($tipoEnvio[0] === 'curl') { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $tipoEnvio[1]); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $spost); 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); $resp = curl_exec($ch); if (!RetornoPagSeguro::not_null($resp)) { curl_setopt($ch, CURLOPT_URL, $tipoEnvio[1]); $resp = curl_exec($ch); } curl_close($ch); $confirma = (strcmp ($resp, 'VERIFICADO') == 0); } elseif ($tipoEnvio[0] === 'fsocket') { if (!$tipoEnvio[2]) { die ("{$_retPagSeguroErrStr} ($_retPagSeguroErrNo)"); } else { $cabecalho = "POST {$tipoEnvio[1]} HTTP/1.0\r\n"; $cabecalho .= "Content-Type: application/x-www-form-urlencoded\r\n"; $cabecalho .= "Content-Length: " . strlen($spost) . "\r\n\r\n"; $resp = ''; fwrite ($tipoEnvio[2], "{$cabecalho}{$spost}"); while (!feof($tipoEnvio[2])) { $resp = fgets ($tipoEnvio[2], 1024); if (strcmp ($resp, 'VERIFICADO') == 0) { $confirma = (strcmp ($resp, 'VERIFICADO') == 0); $confirma=true; break; } } fclose ($tipoEnvio[2]); } } if ($confirma && function_exists('retorno_automatico')) { $itens = array ( 'VendedorEmail', 'TransacaoID', 'Referencia', 'TipoFrete', 'ValorFrete', 'Anotacao', 'DataTransacao', 'TipoPagamento', 'StatusTransacao', 'CliNome', 'CliEmail', 'CliEndereco', 'CliNumero', 'CliComplemento', 'CliBairro', 'CliCidade', 'CliEstado', 'CliCEP', 'CliTelefone', 'NumItens', ); foreach ($itens as $item) { if (!isset($post[$item])) $post[$item] = ''; if ($item=='ValorFrete') $post[$item] = str_replace(',', '.', $post[$item]); } $produtos = array (); for ($i=1;isset($post["ProdID_{$i}"]);$i++) { $produtos[] = array ( 'ProdID' => $post["ProdID_{$i}"], 'ProdDescricao' => $post["ProdDescricao_{$i}"], 'ProdValor' => (double) (str_replace(',', '.', $post["ProdValor_{$i}"])), 'ProdQuantidade' => $post["ProdQuantidade_{$i}"], 'ProdFrete' => (double) (str_replace(',', '.', $post["ProdFrete_{$i}"])), 'ProdExtras' => (double) (str_replace(',', '.', $post["ProdExtras_{$i}"])), ); } retorno_automatico ( $post['VendedorEmail'], $post['TransacaoID'], $post['Referencia'], $post['TipoFrete'], $post['ValorFrete'], $post['Anotacao'], $post['DataTransacao'], $post['TipoPagamento'], $post['StatusTransacao'], $post['CliNome'], $post['CliEmail'], $post['CliEndereco'], $post['CliNumero'], $post['CliComplemento'], $post['CliBairro'], $post['CliCidade'], $post['CliEstado'], $post['CliCEP'], $post['CliTelefone'], $produtos, $post['NumItens'] ); } return $confirma; } } if ($_POST) { RetornoPagSeguro::verifica($_POST); die(); } ?> Tenha certeza de que na sua database tenha a tabela_accounts premium_points se não tiver crie:
Logue no seu phpmyadmin va na sua database "forgottenserver por exemplo" depois vai em SQL e digite :
ALTER TABLE `accounts` ADD `premium_points` INT NOT NULL De executar e pronto.
Creditos:
99,99% Tatu Hunter
0,1% Eu por traduzir e trazer pra cá.
Duvidas só mandar.
-
MarcosFraga recebeu reputação de cliverson em double xp potionCrie um arquivo na pasta data/actions/scripts com o nome
doublexp.lua
Cole dentro dele:
Edite as linhas locais e de texto.
function onUse(cid, item, frompos, item2, topos) local pausa = 1800000 -- (1000 = 1 segundos) Tempo que o script durará local texto = 'You receive double the experience to kill a monster for 30 minutes.' -- Texto que irá receber ao usar a potion. textofinal = 'Its just minutes.' -- Texto que irá receber quando o efeito da potion acabar. local exp = 2 -- O quanto que você quer que dobre sua experiencia, por exemplo 2 é 2x as rates do seu server. expfinal = 1 --Não mude, isso é para a experiencia voltar ao normal. if item.itemid == 7443 then doRemoveItem(item.uid,1) doPlayerSetExperienceRate(cid,exp) doSendMagicEffect(frompos,13) doPlayerSendTextMessage(cid,22,texto) addEvent(potion,pausa,cid) end end function potion(pos, cid) doPlayerSetExperienceRate(pos,expfinal) doPlayerSendTextMessage(pos,22,textofinal) end E depois adicione no arquivo actions.xml localizado na pasta data/actions:
e adicione a linha:
<action itemid="ID DO ITEM" script="doublexplua" /> No script postado esta em azul 7443, edite para o seu item e depois adicione nessa ultima linha postada.
Espero que ajude.
-
MarcosFraga recebeu reputação de NoturnoBRN em Pagseguro Automatico Modern AACCrie um arquivo.php na pasta: xammp/htdocs/sytem/pages
com o nome de pagseguro.php
<?php global $config; require("config.php"); $ots = POT::getInstance(); $ots->connect(POT::DB_MYSQL, connection()); $SQL = $ots->getDBHandle(); $ide = new IDE; $ide->requireLogin(); if($ide->isLogged()){ $accountName = $_SESSION['name']; //$SQL->query('SELECT * FROM accounts WHERE name="'.$accountName.'"')->fetch(); ?> <form target="pagseguro" method="post" action="https://pagseguro.uol.com.br/checkout/checkout.jhtml"> <input type="hidden" name="email_cobranca" value="<?php echo $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="<?php echo $config['pagseguro']['produtoNome']; ?>"> <input type="hidden" name="item_valor_1" value="<?php echo $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="<?php echo $accountName; ?>"> <table border="0" cellpadding="4" cellspacing="1" width="100%" id="#estilo"><tbody> <tr> <th colspan="2">Escolha a quantidade de pontos que deseja comprar:</th> </tr> <tr> <td width="25%">Sua conta:</td> <td><strong><?php echo $accountName; ?></strong></td> </tr> <tr> <td width="25%">Pontos:</td> <td> <input name="item_quant_1" type="text" value="1" 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><p style="text-align: right; font-size: 10px">created by <a href="http://otland.net/members/tatu+hunter/" target="_blank">tatu hunter</a></p><?php } ?> Agora vá em htdocs e abra o arquivo config.php:
la em baixo antes do "?>"
você adiciona:
// Sistema automatico Pagseguro by tatu_hunter // Seu email cadastrado no pagseguro $config['pagseguro']['email'] = '[email protected]<script cf-hash='f9e31' type="text/javascript"> /* */</script>'; [b]-- seu email pagseguro--[/b] // Nome do Produto $config['pagseguro']['produtoNome'] = 'Pontos VIP'; // Valor unitario do produto ou seja valor de cada ponto // Exemplo de valores // 100 = R$ 1,00 // 235 = R$ 2,35 // 4254 = R$ 42,54 $config['pagseguro']['produtoValor'] = '100'; // Token gerado no painel do pagseguro [b]--token você pega após confirmar que tem mais de 18 anos para receber as donations--[/b] $config['pagseguro']['token'] = 'EFEB3B4CA8914CB3963C3695A6947965'; Agora crie na pasta htdocs um arquivo chamado retPagseguro.php
e cole:
<?php // Arquivo de configuracao do Modern AAC include('config.php'); // Aqui vai seu Token define('TOKEN', $config['pagseguro']['token']); // Incluindo o arquivo da biblioteca include('retorno.php'); // Função que captura os dados do retorno function retorno_automatico ( $VendedorEmail, $TransacaoID, $Referencia, $TipoFrete, $ValorFrete, $Anotacao, $DataTransacao, $TipoPagamento, $StatusTransacao, $CliNome, $CliEmail, $CliEndereco, $CliNumero, $CliComplemento, $CliBairro, $CliCidade, $CliEstado, $CliCEP, $CliTelefone, $produtos, $NumItens) { global $config; if(strtolower($StatusTransacao) == 'aprovado') { require("system/application/libraries/POT/OTS.php"); $ots = POT::getInstance(); $ots->connect(POT::DB_MYSQL, array('host' => $config['database']['host'], 'user' => $config['database']['login'], 'password' => $config['database']['password'], 'database' => $config['database']['database'])); $SQL = $ots->getDBHandle(); $account_logged = $ots->createObject('Account'); $account_logged->find($Referencia); if($account_logged->isLoaded()) { $pontos = $account_logged->getCustomField("premium_points"); $account_logged->setCustomField("premium_points", $pontos + $produtos[0]['ProdQuantidade']); $nome = $Referencia.'-'.date('d-m-Y',$_SERVER['REQUEST_TIME']).'.txt'; if(file_exists('logsPagseguro/'.$nome)) $nome = $Referencia.'-2-'.date('d-m-Y',$_SERVER['REQUEST_TIME']).'.txt'; $arquivo = fopen('logsPagseguro/'.$nome, "w+"); $dados = "Conta: ".$Referencia."\n"; $dados = "Email: ".$CliEmail."\n"; $dados .= "Total de Points: ".$produtos[0]['ProdQuantidade']."\n"; $dados .= "Hora da Transação: ". date('d-m-Y H:i:s', $_SERVER['REQUEST_TIME']).""; fwrite($arquivo, $dados); fclose($arquivo); } } } // A partir daqui, é só HTML: ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Estamos verificando seu pagamento</title> </head> <body> <h1>Pedido em processamento</h1> <p>Recebemos seu pedido e estamos aguardando pela confirmação do pagamento. Obrigado por ajudar.</p> </body> </html> Depois ainda na pasta htdocs você cria uma pasta com o nome de logsPagseguro nela ficarão salvos todos os pagamentos completados.
E para que o pagamento apareça nessa pasta você tem que configurar no site do pagseguro a url de retorno:
Logue em sua conta no Pagseguro
Vá em: Preferências -> Retorno automático de dados
Procure 'Ative a URL de retorno', coloque Ativar.
e depois em URL de Retorno coloque a página que va para o retpagseguro.php do seu site:
http://www.seuservidor.com/retPagseguro.php
*Mais abaixo encontrara o botão "GERAR" para criar seu Token usado como encriptação pessoal para o seu sistema.
Cria outra página com o nome de Retorno.php
<?php if (!defined('TOKEN')) define ('TOKEN', ''); /** * RetornoPagSeguro * * Classe de manipulação para o retorno do post do pagseguro * * @package PagSeguro */ class RetornoPagSeguro { /** * _preparaDados * * Prepara os dados vindos do post e converte-os para url, adicionando * o token do usuario quando necessario. * * @internal é usado pela {@see RetornoPAgSeguro::verifica} para gerar os, * dados que serão enviados pelo PagSeguro * * @access private * * @param array $post Array contendo os posts do pagseguro * @param bool $confirmacao Controlando a adicao do token no post * @return string */ function _preparaDados($post, $confirmacao=true) { if ('array' !== gettype($post)) $post=array(); if ($confirmacao) { $post['Comando'] = 'validar'; $post['Token'] = TOKEN; } $retorno=array(); foreach ($post as $key=>$value){ if('string'!==gettype($value)) $post[$key]=''; $value=urlencode(stripslashes($value)); $retorno[]="{$key}={$value}"; } return implode('&', $retorno); } /** * _tipoEnvio * * Checa qual será a conexao de acordo com a versao do PHP * preferencialmente em CURL ou via socket * * em CURL o retorno será: * <code> array ('curl','https://pagseguro.uol.com.br/Security/NPI/Default.aspx') </code> * já em socket o retorno será: * <code> array ('fsocket', '/Security/NPI/Default.aspx', $objeto-de-conexao) </code> * se não encontrar nenhum nem outro: * <code> array ('','') </code> * * @access private * @global string $_retPagSeguroErrNo Numero de erro do pagseguro * @global string $_retPagSeguroErrStr Texto descritivo do erro do pagseguro * @return array Array com as configurações * */ function _tipoEnvio() { //Prefira utilizar a função CURL do PHP //Leia mais sobre CURL em: http://us3.php.net/curl global $_retPagSeguroErrNo, $_retPagSeguroErrStr; if (function_exists('curl_exec')) return array('curl', 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx'); elseif ((PHP_VERSION >= 4.3) && ($fp = @fsockopen('ssl://pagseguro.uol.com.br', 443, $_retPagSeguroErrNo, $_retPagSeguroErrStr, 30))) return array('fsocket', '/Security/NPI/Default.aspx', $fp); elseif ($fp = @fsockopen('pagseguro.uol.com.br', 80, $_retPagSeguroErrNo, $_retPagSeguroErrStr, 30)) return array('fsocket', '/Security/NPI/Default.aspx', $fp); return array ('', ''); } /** * not_null * * Extraido de OScommerce 2.2 com base no original do pagseguro, * Checa se o valor e nulo * * @access public * * @param mixed $value Variável a ser checada se é nula * @return bool */ function not_null($value) { if (is_array($value)) { if (sizeof($value) > 0) { return true; } else { return false; } } else { if (($value != '') && (strtolower($value) != 'null') && (strlen(trim($value)) > 0)) { return true; } else { return false; } } } /** * verifica * * Verifica o tipo de conexão aberta e envia os dados vindos * do post * * @access public * * @use RetornoPagSeguro::_tipoenvio() * @global string $_retPagSeguroErrNo Numero de erro do pagseguro * @global string $_retPagSeguroErrStr Texto descritivo do erro do pagseguro * @param array $post Array contendo os posts do pagseguro * @param bool $tipoEnvio (opcional) Verifica o tipo de envio do post * @return bool */ function verifica($post, $tipoEnvio=false) { global $_retPagSeguroErrNo, $_retPagSeguroErrStr; if ('array' !== gettype($tipoEnvio)) $tipoEnvio = RetornoPagSeguro::_tipoEnvio(); $spost=RetornoPagSeguro::_preparaDados($post); if (!in_array($tipoEnvio[0], array('curl', 'fsocket'))) return false; $confirma = false; if ($tipoEnvio[0] === 'curl') { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $tipoEnvio[1]); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $spost); 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); $resp = curl_exec($ch); if (!RetornoPagSeguro::not_null($resp)) { curl_setopt($ch, CURLOPT_URL, $tipoEnvio[1]); $resp = curl_exec($ch); } curl_close($ch); $confirma = (strcmp ($resp, 'VERIFICADO') == 0); } elseif ($tipoEnvio[0] === 'fsocket') { if (!$tipoEnvio[2]) { die ("{$_retPagSeguroErrStr} ($_retPagSeguroErrNo)"); } else { $cabecalho = "POST {$tipoEnvio[1]} HTTP/1.0\r\n"; $cabecalho .= "Content-Type: application/x-www-form-urlencoded\r\n"; $cabecalho .= "Content-Length: " . strlen($spost) . "\r\n\r\n"; $resp = ''; fwrite ($tipoEnvio[2], "{$cabecalho}{$spost}"); while (!feof($tipoEnvio[2])) { $resp = fgets ($tipoEnvio[2], 1024); if (strcmp ($resp, 'VERIFICADO') == 0) { $confirma = (strcmp ($resp, 'VERIFICADO') == 0); $confirma=true; break; } } fclose ($tipoEnvio[2]); } } if ($confirma && function_exists('retorno_automatico')) { $itens = array ( 'VendedorEmail', 'TransacaoID', 'Referencia', 'TipoFrete', 'ValorFrete', 'Anotacao', 'DataTransacao', 'TipoPagamento', 'StatusTransacao', 'CliNome', 'CliEmail', 'CliEndereco', 'CliNumero', 'CliComplemento', 'CliBairro', 'CliCidade', 'CliEstado', 'CliCEP', 'CliTelefone', 'NumItens', ); foreach ($itens as $item) { if (!isset($post[$item])) $post[$item] = ''; if ($item=='ValorFrete') $post[$item] = str_replace(',', '.', $post[$item]); } $produtos = array (); for ($i=1;isset($post["ProdID_{$i}"]);$i++) { $produtos[] = array ( 'ProdID' => $post["ProdID_{$i}"], 'ProdDescricao' => $post["ProdDescricao_{$i}"], 'ProdValor' => (double) (str_replace(',', '.', $post["ProdValor_{$i}"])), 'ProdQuantidade' => $post["ProdQuantidade_{$i}"], 'ProdFrete' => (double) (str_replace(',', '.', $post["ProdFrete_{$i}"])), 'ProdExtras' => (double) (str_replace(',', '.', $post["ProdExtras_{$i}"])), ); } retorno_automatico ( $post['VendedorEmail'], $post['TransacaoID'], $post['Referencia'], $post['TipoFrete'], $post['ValorFrete'], $post['Anotacao'], $post['DataTransacao'], $post['TipoPagamento'], $post['StatusTransacao'], $post['CliNome'], $post['CliEmail'], $post['CliEndereco'], $post['CliNumero'], $post['CliComplemento'], $post['CliBairro'], $post['CliCidade'], $post['CliEstado'], $post['CliCEP'], $post['CliTelefone'], $produtos, $post['NumItens'] ); } return $confirma; } } if ($_POST) { RetornoPagSeguro::verifica($_POST); die(); } ?> Tenha certeza de que na sua database tenha a tabela_accounts premium_points se não tiver crie:
Logue no seu phpmyadmin va na sua database "forgottenserver por exemplo" depois vai em SQL e digite :
ALTER TABLE `accounts` ADD `premium_points` INT NOT NULL De executar e pronto.
Creditos:
99,99% Tatu Hunter
0,1% Eu por traduzir e trazer pra cá.
Duvidas só mandar.
-
MarcosFraga recebeu reputação de kinglekke em [ajuda] item que da 20 % de exp tfs 1.0Da uma olhada no arquivo events/scripts/player.lua
Procura pela função:
function Player:onGainExperience(source, exp, rawExp) if self:getStorageValue(1234) >= os.time() then exp = exp * 2 end return exp end Se não encontar adicione ela ao arquivo.
Após abra seu arquivo events.xml
adicione :
<event class="Player" method="onGainExperience" enabled="1"/> Crie um arquivo em data/actions/scripts com o nome de doublexp.lua
Cole dentro:
function onUse(cid, item, fromPosition, itemEx, toPosition) local player = Player(cid) if player:getStorageValue(1234) >= os.time() then return true end player:setStorageValue(1234, os.time() + 3600) Item(item.uid):remove(1) return true end function Player:onGainExperience(source, exp, rawExp) if self:getStorageValue(1234) >= os.time() then exp = exp * 2 end return exp end Em seguida abra seu actions.xml
E adicione a tag
<action itemid="11773" script="doublexp.lua"/> Explicando:
No script doublexp está:
exp = exp * 2
Aqui esta dobrando a exp, se você quer sómente 20% faça o teste com 0,2, não cheguei a testar.
Espero que funcione.
-
MarcosFraga recebeu reputação de GOD Falumir em (Resolvido)[AJUDA] Erro ao criar charMeu deus usa tag spoiler pra esconder esses scripts gigantes da próxima vez pls.
Tenta executar na sua database
INSERT IGNORE INTO `player_skills` SELECT `id` , 0, 10, 0 FROM `players` UNION SELECT `id` , 1, 10, 0 FROM `players` UNION SELECT `id` , 2, 10, 0 FROM `players` UNION SELECT `id` , 3, 10, 0 FROM `players` UNION SELECT `id` , 4, 10, 0 FROM `players` UNION SELECT `id` , 5, 10, 0 FROM `players` UNION SELECT `id` , 6, 10, 0 FROM `players` ; Se não der crie um arquivo .sql com esse código e importe para sua database.
Saindo a noite estou de volta se não der tentarei ajudar mais.
-
MarcosFraga recebeu reputação de wandersonnc em aprendendoLegal, gostei dos treiners ficou sem simples e prático.
-
MarcosFraga recebeu reputação de Ricardo Monteiro em Pagseguro Automatico Modern AACCrie um arquivo.php na pasta: xammp/htdocs/sytem/pages
com o nome de pagseguro.php
<?php global $config; require("config.php"); $ots = POT::getInstance(); $ots->connect(POT::DB_MYSQL, connection()); $SQL = $ots->getDBHandle(); $ide = new IDE; $ide->requireLogin(); if($ide->isLogged()){ $accountName = $_SESSION['name']; //$SQL->query('SELECT * FROM accounts WHERE name="'.$accountName.'"')->fetch(); ?> <form target="pagseguro" method="post" action="https://pagseguro.uol.com.br/checkout/checkout.jhtml"> <input type="hidden" name="email_cobranca" value="<?php echo $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="<?php echo $config['pagseguro']['produtoNome']; ?>"> <input type="hidden" name="item_valor_1" value="<?php echo $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="<?php echo $accountName; ?>"> <table border="0" cellpadding="4" cellspacing="1" width="100%" id="#estilo"><tbody> <tr> <th colspan="2">Escolha a quantidade de pontos que deseja comprar:</th> </tr> <tr> <td width="25%">Sua conta:</td> <td><strong><?php echo $accountName; ?></strong></td> </tr> <tr> <td width="25%">Pontos:</td> <td> <input name="item_quant_1" type="text" value="1" 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><p style="text-align: right; font-size: 10px">created by <a href="http://otland.net/members/tatu+hunter/" target="_blank">tatu hunter</a></p><?php } ?> Agora vá em htdocs e abra o arquivo config.php:
la em baixo antes do "?>"
você adiciona:
// Sistema automatico Pagseguro by tatu_hunter // Seu email cadastrado no pagseguro $config['pagseguro']['email'] = '[email protected]<script cf-hash='f9e31' type="text/javascript"> /* */</script>'; [b]-- seu email pagseguro--[/b] // Nome do Produto $config['pagseguro']['produtoNome'] = 'Pontos VIP'; // Valor unitario do produto ou seja valor de cada ponto // Exemplo de valores // 100 = R$ 1,00 // 235 = R$ 2,35 // 4254 = R$ 42,54 $config['pagseguro']['produtoValor'] = '100'; // Token gerado no painel do pagseguro [b]--token você pega após confirmar que tem mais de 18 anos para receber as donations--[/b] $config['pagseguro']['token'] = 'EFEB3B4CA8914CB3963C3695A6947965'; Agora crie na pasta htdocs um arquivo chamado retPagseguro.php
e cole:
<?php // Arquivo de configuracao do Modern AAC include('config.php'); // Aqui vai seu Token define('TOKEN', $config['pagseguro']['token']); // Incluindo o arquivo da biblioteca include('retorno.php'); // Função que captura os dados do retorno function retorno_automatico ( $VendedorEmail, $TransacaoID, $Referencia, $TipoFrete, $ValorFrete, $Anotacao, $DataTransacao, $TipoPagamento, $StatusTransacao, $CliNome, $CliEmail, $CliEndereco, $CliNumero, $CliComplemento, $CliBairro, $CliCidade, $CliEstado, $CliCEP, $CliTelefone, $produtos, $NumItens) { global $config; if(strtolower($StatusTransacao) == 'aprovado') { require("system/application/libraries/POT/OTS.php"); $ots = POT::getInstance(); $ots->connect(POT::DB_MYSQL, array('host' => $config['database']['host'], 'user' => $config['database']['login'], 'password' => $config['database']['password'], 'database' => $config['database']['database'])); $SQL = $ots->getDBHandle(); $account_logged = $ots->createObject('Account'); $account_logged->find($Referencia); if($account_logged->isLoaded()) { $pontos = $account_logged->getCustomField("premium_points"); $account_logged->setCustomField("premium_points", $pontos + $produtos[0]['ProdQuantidade']); $nome = $Referencia.'-'.date('d-m-Y',$_SERVER['REQUEST_TIME']).'.txt'; if(file_exists('logsPagseguro/'.$nome)) $nome = $Referencia.'-2-'.date('d-m-Y',$_SERVER['REQUEST_TIME']).'.txt'; $arquivo = fopen('logsPagseguro/'.$nome, "w+"); $dados = "Conta: ".$Referencia."\n"; $dados = "Email: ".$CliEmail."\n"; $dados .= "Total de Points: ".$produtos[0]['ProdQuantidade']."\n"; $dados .= "Hora da Transação: ". date('d-m-Y H:i:s', $_SERVER['REQUEST_TIME']).""; fwrite($arquivo, $dados); fclose($arquivo); } } } // A partir daqui, é só HTML: ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Estamos verificando seu pagamento</title> </head> <body> <h1>Pedido em processamento</h1> <p>Recebemos seu pedido e estamos aguardando pela confirmação do pagamento. Obrigado por ajudar.</p> </body> </html> Depois ainda na pasta htdocs você cria uma pasta com o nome de logsPagseguro nela ficarão salvos todos os pagamentos completados.
E para que o pagamento apareça nessa pasta você tem que configurar no site do pagseguro a url de retorno:
Logue em sua conta no Pagseguro
Vá em: Preferências -> Retorno automático de dados
Procure 'Ative a URL de retorno', coloque Ativar.
e depois em URL de Retorno coloque a página que va para o retpagseguro.php do seu site:
http://www.seuservidor.com/retPagseguro.php
*Mais abaixo encontrara o botão "GERAR" para criar seu Token usado como encriptação pessoal para o seu sistema.
Cria outra página com o nome de Retorno.php
<?php if (!defined('TOKEN')) define ('TOKEN', ''); /** * RetornoPagSeguro * * Classe de manipulação para o retorno do post do pagseguro * * @package PagSeguro */ class RetornoPagSeguro { /** * _preparaDados * * Prepara os dados vindos do post e converte-os para url, adicionando * o token do usuario quando necessario. * * @internal é usado pela {@see RetornoPAgSeguro::verifica} para gerar os, * dados que serão enviados pelo PagSeguro * * @access private * * @param array $post Array contendo os posts do pagseguro * @param bool $confirmacao Controlando a adicao do token no post * @return string */ function _preparaDados($post, $confirmacao=true) { if ('array' !== gettype($post)) $post=array(); if ($confirmacao) { $post['Comando'] = 'validar'; $post['Token'] = TOKEN; } $retorno=array(); foreach ($post as $key=>$value){ if('string'!==gettype($value)) $post[$key]=''; $value=urlencode(stripslashes($value)); $retorno[]="{$key}={$value}"; } return implode('&', $retorno); } /** * _tipoEnvio * * Checa qual será a conexao de acordo com a versao do PHP * preferencialmente em CURL ou via socket * * em CURL o retorno será: * <code> array ('curl','https://pagseguro.uol.com.br/Security/NPI/Default.aspx') </code> * já em socket o retorno será: * <code> array ('fsocket', '/Security/NPI/Default.aspx', $objeto-de-conexao) </code> * se não encontrar nenhum nem outro: * <code> array ('','') </code> * * @access private * @global string $_retPagSeguroErrNo Numero de erro do pagseguro * @global string $_retPagSeguroErrStr Texto descritivo do erro do pagseguro * @return array Array com as configurações * */ function _tipoEnvio() { //Prefira utilizar a função CURL do PHP //Leia mais sobre CURL em: http://us3.php.net/curl global $_retPagSeguroErrNo, $_retPagSeguroErrStr; if (function_exists('curl_exec')) return array('curl', 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx'); elseif ((PHP_VERSION >= 4.3) && ($fp = @fsockopen('ssl://pagseguro.uol.com.br', 443, $_retPagSeguroErrNo, $_retPagSeguroErrStr, 30))) return array('fsocket', '/Security/NPI/Default.aspx', $fp); elseif ($fp = @fsockopen('pagseguro.uol.com.br', 80, $_retPagSeguroErrNo, $_retPagSeguroErrStr, 30)) return array('fsocket', '/Security/NPI/Default.aspx', $fp); return array ('', ''); } /** * not_null * * Extraido de OScommerce 2.2 com base no original do pagseguro, * Checa se o valor e nulo * * @access public * * @param mixed $value Variável a ser checada se é nula * @return bool */ function not_null($value) { if (is_array($value)) { if (sizeof($value) > 0) { return true; } else { return false; } } else { if (($value != '') && (strtolower($value) != 'null') && (strlen(trim($value)) > 0)) { return true; } else { return false; } } } /** * verifica * * Verifica o tipo de conexão aberta e envia os dados vindos * do post * * @access public * * @use RetornoPagSeguro::_tipoenvio() * @global string $_retPagSeguroErrNo Numero de erro do pagseguro * @global string $_retPagSeguroErrStr Texto descritivo do erro do pagseguro * @param array $post Array contendo os posts do pagseguro * @param bool $tipoEnvio (opcional) Verifica o tipo de envio do post * @return bool */ function verifica($post, $tipoEnvio=false) { global $_retPagSeguroErrNo, $_retPagSeguroErrStr; if ('array' !== gettype($tipoEnvio)) $tipoEnvio = RetornoPagSeguro::_tipoEnvio(); $spost=RetornoPagSeguro::_preparaDados($post); if (!in_array($tipoEnvio[0], array('curl', 'fsocket'))) return false; $confirma = false; if ($tipoEnvio[0] === 'curl') { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $tipoEnvio[1]); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $spost); 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); $resp = curl_exec($ch); if (!RetornoPagSeguro::not_null($resp)) { curl_setopt($ch, CURLOPT_URL, $tipoEnvio[1]); $resp = curl_exec($ch); } curl_close($ch); $confirma = (strcmp ($resp, 'VERIFICADO') == 0); } elseif ($tipoEnvio[0] === 'fsocket') { if (!$tipoEnvio[2]) { die ("{$_retPagSeguroErrStr} ($_retPagSeguroErrNo)"); } else { $cabecalho = "POST {$tipoEnvio[1]} HTTP/1.0\r\n"; $cabecalho .= "Content-Type: application/x-www-form-urlencoded\r\n"; $cabecalho .= "Content-Length: " . strlen($spost) . "\r\n\r\n"; $resp = ''; fwrite ($tipoEnvio[2], "{$cabecalho}{$spost}"); while (!feof($tipoEnvio[2])) { $resp = fgets ($tipoEnvio[2], 1024); if (strcmp ($resp, 'VERIFICADO') == 0) { $confirma = (strcmp ($resp, 'VERIFICADO') == 0); $confirma=true; break; } } fclose ($tipoEnvio[2]); } } if ($confirma && function_exists('retorno_automatico')) { $itens = array ( 'VendedorEmail', 'TransacaoID', 'Referencia', 'TipoFrete', 'ValorFrete', 'Anotacao', 'DataTransacao', 'TipoPagamento', 'StatusTransacao', 'CliNome', 'CliEmail', 'CliEndereco', 'CliNumero', 'CliComplemento', 'CliBairro', 'CliCidade', 'CliEstado', 'CliCEP', 'CliTelefone', 'NumItens', ); foreach ($itens as $item) { if (!isset($post[$item])) $post[$item] = ''; if ($item=='ValorFrete') $post[$item] = str_replace(',', '.', $post[$item]); } $produtos = array (); for ($i=1;isset($post["ProdID_{$i}"]);$i++) { $produtos[] = array ( 'ProdID' => $post["ProdID_{$i}"], 'ProdDescricao' => $post["ProdDescricao_{$i}"], 'ProdValor' => (double) (str_replace(',', '.', $post["ProdValor_{$i}"])), 'ProdQuantidade' => $post["ProdQuantidade_{$i}"], 'ProdFrete' => (double) (str_replace(',', '.', $post["ProdFrete_{$i}"])), 'ProdExtras' => (double) (str_replace(',', '.', $post["ProdExtras_{$i}"])), ); } retorno_automatico ( $post['VendedorEmail'], $post['TransacaoID'], $post['Referencia'], $post['TipoFrete'], $post['ValorFrete'], $post['Anotacao'], $post['DataTransacao'], $post['TipoPagamento'], $post['StatusTransacao'], $post['CliNome'], $post['CliEmail'], $post['CliEndereco'], $post['CliNumero'], $post['CliComplemento'], $post['CliBairro'], $post['CliCidade'], $post['CliEstado'], $post['CliCEP'], $post['CliTelefone'], $produtos, $post['NumItens'] ); } return $confirma; } } if ($_POST) { RetornoPagSeguro::verifica($_POST); die(); } ?> Tenha certeza de que na sua database tenha a tabela_accounts premium_points se não tiver crie:
Logue no seu phpmyadmin va na sua database "forgottenserver por exemplo" depois vai em SQL e digite :
ALTER TABLE `accounts` ADD `premium_points` INT NOT NULL De executar e pronto.
Creditos:
99,99% Tatu Hunter
0,1% Eu por traduzir e trazer pra cá.
Duvidas só mandar.
-
MarcosFraga recebeu reputação de CreatServer em (Resolvido)Admin no Modern AccEntre em seu banco de dados (phpmyadmin por exemplo)
Acesse aba "Account"
Procure sua conta, e clique no ícone do lápis para editar, procure por page_acess, mude o para 6 ou 5.
-
MarcosFraga recebeu reputação de CreatServer em (Resolvido)Admin no Modern AccBom ai eu não sei te dizer não uso Modern AAC... mas acho que somente fará o basicão o admin painel se eu ainda me lembro é bem no final no rodapé do site, no mais da para adicionar pages, noticias.. etc.. fora isso não tem mais nada.
-
MarcosFraga recebeu reputação de CreatServer em (Resolvido)Modern acc erro ao cria contaIsso ocorre quando você importa um arquivo schema incompatível com seu site.
Tenta executar no banco de dados:
ALTER TABLE `accounts` ADD `nickname` varchar(255) not null default ''; -
MarcosFraga recebeu reputação de CreatServer em (Resolvido)Modern acc erro ao cria contaALTER TABLE `accounts` ADD `rlname` varchar(255); Acho eu que você deveria importar um arquivo schemas mais compativel.. Esse parece estar faltando muito.
Qualquer coisa executa no bando de dados:
-
MarcosFraga recebeu reputação de joseanpereira em (Resolvido)matar player ganha xp como tirarMude :
rateExperienceFromPlayers = 2 Para
rateExperienceFromPlayers = 0 Salve, Reload.
-
MarcosFraga deu reputação a Gabrieltxu em [Show-OFF] Ultimo projeto para download?funciona sim , nas ultimas prints adicionadas foi dentro do new client
-
MarcosFraga recebeu reputação de Markin em (Resolvido)matar player ganha xp como tirarMude :
rateExperienceFromPlayers = 2 Para
rateExperienceFromPlayers = 0 Salve, Reload.
-
MarcosFraga recebeu reputação de jNo em (Resolvido)bug, 5 aol de uma vezQualquer Coisa tenta:
function onSay(cid,words,param,channel) if doPlayerRemoveMoney(cid, 20000) then for i = 1,5 do if not getPlayerBlessing(cid, i) then doPlayerAddBlessing(cid, i) end end doPlayerAddItem(cid,2173,1) doSendMagicEffect(getCreaturePosition(cid),26) doPlayerSendTextMessage(cid,22,"Aol + Bless") else doPlayerSendCancel(cid, "Not enough gold") end return true end <talkaction words="!aol" event="script" value="seuarquivo.lua"/>