Ir para conteúdo
Entre para seguir isso  
alfbru

Pagseguro Automatico para GESIOR

Recommended Posts

alfbru    0
alfbru

Bem, vim postar um script que eu tenho aqui de gesior, eu peguei ele em outro forum, e editei algumas coisas.

 

Vou Começar pelo script do gesior:

 

Va em Config/config.php.

 

Ponha Isso no final:

 

[spoiler=Config.php]

// Sistema automatico Pagseguro by tatu_hunter

// Seu email cadastrado no pagseguro

$config['pagseguro']['email'] = 'seu e-mail';

 

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

$config['pagseguro']['token'] = 'SEU TOKEN PAGSEGURO AQUI';

 

 

Agora va na pasta htdocs, e crie um arquivo chamado retPagseguro.php

e adicione isso dentro dele:

[spoiler=retPagseguro.php]

<?php

include('config-and-functions.php');

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') {

$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></title>

</head>

<body>

 

<h1>Pedido em processamento</h1>

<p>Recebemos seu pedido e estamos aguardando pela

confirmação do pagamento. Obrigado por comprar conosco.</p>

 

</body>

</html>

 

 

Crie um arquivo chamado retorno.php e ponha isso:

 

 

[spoiler=retorno]

<?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();

}

 

 

?>

 

 

Agora va no buypoints.php e coloque isso:

 

[spoiler=buypoints.php]

<?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 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 .= '

<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="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>'; } ?>

 

 

É Isso ai creditos: Tatu Hunter;

Edição: alfbru

 

Edit:::

Como muitos perceberam o script não está funcionando do mesmo geito que você viu no otland, porem irei explicar oque falta:

ao selecionar o retorno, o pagseguro envia os dados para o "retPagseguro.php", o qual tem a função " include ="retorno.php" ", ao execultar isso ele efetua uma consulta na tabela pagsegurotransações na database, ou seja para o script funcionar corretamente você tem que adicionar a seguinte tabela sem sua database, vá na sua database clique em sql e cole o seguinte codigo:

CREATE TABLE `retorno_automatico` (

`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;

Editado por alfbru

Compartilhar este post


Link para o post
Tyladron    1
Tyladron

Obrigado pela contribuição, aprovado.

Compartilhar este post


Link para o post
LsM    2
LsM

Este sistema é o que já adiciona a vip ao player logo após o pagamento ser aprovado? Sem o GOD ter que fazer isso manualmente?

Compartilhar este post


Link para o post
alfbru    0
alfbru

Esse script adicionaria os pontos na conta do site gesior automaticamente ;)

e no caso o god nao teria que ficar indo no painel de administração para adicionar etc...

Ficaria tudo automatico.

Compartilhar este post


Link para o post
lucas-appr2    0
lucas-appr2

Muito complexo, eu montei um para o meu otserv com 1 arquivo so, integrado 100% ao gesior :>

Compartilhar este post


Link para o post
WeBSpideR    0
WeBSpideR

Já quebra o galho,melhor que pagar por um!

Valeuzz.

Compartilhar este post


Link para o post
Henke Rula    4
Henke Rula

COnheço esse sistema, achei interessante mais ainda nao tive coragem de usa-lo.

 

 

Muito complexo, eu montei um para o meu otserv com 1 arquivo so, integrado 100% ao gesior :>

Poste o seu, quanto mais simples melhor

 

abraços

Compartilhar este post


Link para o post
duduxampp    7
duduxampp

Ja sabia desse sistema num Otro forum.

 

Mais vlws por traser aki na OTBR.

Compartilhar este post


Link para o post
vyctor17    35
vyctor17

muito bom :D bem melhor que sms e paypal

Compartilhar este post


Link para o post
wanziny    0
wanziny

Fiz tudo certinho.. aqui . fiz ate uma compra pra test o script.

mais os pontos não forem para a minha account..

 

 

ta bugado!

Compartilhar este post


Link para o post
alfbru    0
alfbru

Eu esqueci de adicionar uma coisa no script as tabelas mysql :X daqui a poco eu edito.

@wanziny

me adiciona msn que eu te ajudo.

[email protected]

Compartilhar este post


Link para o post
panesq    0
panesq

nao funciona, isso ta na otland, foi copiado. e codigo antigo isso. nao funfa, eu mesmo testei ;x

Compartilhar este post


Link para o post
alfbru    0
alfbru

Desculpe a demora tinha esquecido do topico ;x

yes copiado otland, basta ler os creditos =P

porem para funcionar vou explicar,

ao selecionar o retorno, o pagseguro envia os dados para o "retPagseguro.php", o qual tem a função " include ="retorno.php" ", ao execultar isso ele efetua uma consulta na tabela pagsegurotransações na database, ou seja para o script funcionar corretamente você tem que adicionar a seguinte tabela sem sua database, vá na sua database clique em sql e cole o seguinte codigo:

 

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;

 

Mais uma vez desculpe a demora para a resposta.

Compartilhar este post


Link para o post
zaksz    144
zaksz

Muito Legal , tava precisando.

 

Aprovado ~

Compartilhar este post


Link para o post
Relidy    0
Relidy

alguem testou depois com as table?

Compartilhar este post


Link para o post
alfbru    0
alfbru

eu testei, e funcionou, apenas para avisar o site não pode conter :8090, :8080, etc...

Ele tem de estar na porta 80.

Compartilhar este post


Link para o post
god_dreamer    1
god_dreamer

no meu gesior nao tem esse buypoints.php, tipo sera ki vai funcionar se eu criar ele?

Compartilhar este post


Link para o post
alfbru    0
alfbru

Qual o link da sua shop ? no caso do index = seuot/index.php?subtopic=index

No de um gesior qualquer é seuot/index.php?subtopic=buypoints

 

Veja qual é o link do seu gesior, onde " compra os points ".

E me mande.

Compartilhar este post


Link para o post
alissonelc    1
alissonelc

Eu testei direitinho =) mais não funcionou ele não envia nenhum dado pro Mysql, tanto que eu nem vi função relacionada a Sql em todo codigo de ambas partes. Ta parecendo que ele cria um Log .txt e não sql D:

Compartilhar este post


Link para o post
god_dreamer    1
god_dreamer

fala que o subtopic buypoints é invalido, mas eu criei e deu certo...

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×