Ir para conteúdo
Entre para seguir isso  
alfbru

Pagseguro Automatico para GESIOR

Recommended Posts

SubythKiller    2
SubythKiller

Uiaa :D

mereçe ate um:

nego.gif

 

Tava tentando fazer um desses a meses e nao consegui pois nem manjo muito nisso, Vlww ae!!

Compartilhar este post


Link para o post
Safet    0
Safet

alguem conseguiu funcionar direitinho?

Compartilhar este post


Link para o post
Rules Violations    0
Rules Violations

ninguem testou mais funciona!!

n sabe interpretar codigos php nao? so de ver n tem erro nenhum

Compartilhar este post


Link para o post
alissonelc    1
alissonelc

Rs fiz outro teste só para ter mais certeza :)

 

----

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:

 

/\ isso n tem nadinha a ver :) , o sistema n envia absolutamente nada para o Mysql a unica coisa enviada é os points. Portanto nem tentem adicionar a tabela =)

bom quem quiser me corrigir é so ver que o script não possui nenhuma query mysql '-' a não ser quando deposita os points.

Bom comigo não funcionou testei de tudo que é forma e muitos também testarão :) talvez esteja faltando algo k.

Mais é isso foi só para avisar

Compartilhar este post


Link para o post
alfbru    0
alfbru

Eu arrumei o sistema, porem fiz com a ajuda de um amigo, e esse sistema que postei aqui não funciona com as versões atuais, se alguem estiver interessado em comprar o sistema me adicione msn: [email protected] que podemos negociar, esse script não funciona com versões acima de 8.4 do gesior eu acho.

Compartilhar este post


Link para o post
otfans    0
otfans

esse sistema esta 0% seguro, nem deveria estar aqui mais.

flw

Compartilhar este post


Link para o post
RazerSoft    0
RazerSoft

Bom pessoal , para aqueles que estão precisando mesmo do sistema isto será uma mão na roda, pois iram atrás de um solução para isso, mais para os preguisosos, isso não fará diferença alguma esse script ele funciona com o retorno que está aqui eu acho, ele grava os seus post, tanto da tabela, quanto, em um arquivo que voçê tem que criar na mesma pasta onde está o retpagseguro.php, um arquivo pagseguro.txt, o script funfa , mais só falta colocar nele para add os points .

 

<?php

define ('TOKEN', 'numero_do_token');

if (isset($_POST)) {

$f=fopen ('pagseguro.log', 'a'); # o "a" é para ele "appendar" o conteúdo, ou seja, colocar ao final

fwrite($f, "'Recebeu o post, verificando junto ao PagSeguro'\n"); # escrevendo a mensagem, mais uma quebra de linha

fwrite($f, var_export( $_POST, true)); # imprime os dados no arquivo de log

fwrite($f, "\n---------\n\n"); # um espaço para separar as ocorrencias

fclose($f);

}

function retorno_automatico (

$VendedorEmail, $TransacaoID, $Referencia, $TipoFrete,

$ValorFrete, $Anotacao, $DataTransacao, $TipoPagamento,

$StatusTransacao, $CliNome, $CliEmail, $CliEndereco,

$CliNumero, $CliComplemento, $CliBairro, $CliCidade,

$CliEstado, $CliCEP, $CliTelefone, $produtos, $NumItens

) {

mysql_connect("localhost","user_db","senha_db");

mysql_select_db("nome_db");

mysql_query("INSERT INTO PagSeguroTransacoes (TransacaoID, Referencia, CliNome, CliEmail, datahora, StatusTransacao, ProdDescricao, ProdValor) VALUES ('$TransacaoID','$Referencia','$CliNome', '$CliEmail','$DataTransacao','$StatusTransacao','{$produtos[0]['ProdDescricao']}','{$produtos[0]['ProdValor']}')");

$f=fopen ('pagseguro.log', 'a'); # o "a" é para ele "appendar" o conteúdo, ou seja, colocar ao final

fwrite($f, "'Dados Verificados! Agora minha função funciona normalmente.'\n"); # escrevendo a mensagem, mais uma quebra de linha

fwrite($f, var_export(array ($VendedorEmail, $TransacaoID, $Referencia, $TipoFrete,

$ValorFrete, $Anotacao, $DataTransacao, $TipoPagamento,

$StatusTransacao, $CliNome, $CliEmail, $CliEndereco,

$CliNumero, $CliComplemento, $CliBairro, $CliCidade,

$CliEstado, $CliCEP, $CliTelefone, $produtos, $NumItens

), true)); # imprime os dados no arquivo de log

fwrite($f, "\nSQL: INSERT INTO PagSeguroTransacoes (TransacaoID, Referencia, CliNome, CliEmail, datahora, StatusTransacao, ProdDescricao, ProdValor) VALUES ('$TransacaoID','$Referencia', '$CliNome','$CliEmail','$DataTransacao','$StatusTransacao','{$produtos[0]['ProdDescricao']}','{$produtos[0]['ProdValor']}')\n");

fwrite($f, "\n---------\n\n"); # um espaço para separar as ocorrencias

fclose($f);

}

require_once("retorno.php");

 

 

?>

Compartilhar este post


Link para o post
Messiah    0
Messiah

E quanto as versões que ele funciona e so abaixo o 8.40 mesmo e este script acima concerta o sistema ou continua faltando algo???

 

Bom pessoal , para aqueles que estão precisando mesmo do sistema isto será uma mão na roda, pois iram atrás de um solução para isso, mais para os preguisosos, isso não fará diferença alguma esse script ele funciona com o retorno que está aqui eu acho, ele grava os seus post, tanto da tabela, quanto, em um arquivo que voçê tem que criar na mesma pasta onde está o retpagseguro.php, um arquivo pagseguro.txt, o script funfa , mais só falta colocar nele para add os points .
Editado por Messiah

Compartilhar este post


Link para o post
RazerSoft    0
RazerSoft

Amigo esse script ele funciona, direitnho, mais voçÊ tem que colocar para add os points.

Compartilhar este post


Link para o post
Messiah    0
Messiah
Amigo esse script ele funciona, direitnho, mais voçÊ tem que colocar para add os points.

 

Obrigado pela resposta RazerSoft ajudou muito pois estou terminando de configurar e editar um tibiacom para uso proprio e este script creio eu finaliza esta etapa até mais!

 

 

Vlw!

Compartilhar este post


Link para o post
Fera Holy Kina    0
Fera Holy Kina

Algumas pessoas usa bloco de notas em alguns computadores ira dar erro se usarem o codigo do geito que ele posto

pois em espaços nulos o bloco de notas cria um quadradinho nao deixando funcionar corretamente

so repassei para quem usa bloco de notas

 

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

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

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


?>                      

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

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 Fera Holy Kina

Compartilhar este post


Link para o post
Seth Forsaken    0
Seth Forsaken
ninguem testou mais funciona!!

n sabe interpretar codigos php nao? so de ver n tem erro nenhum

Falou o fodão mega ultra interpretador Tabajara...

Então tu és um merda, pois não sabe nem interpretar, já que não funciona...

Compartilhar este post


Link para o post
Messiah    0
Messiah
// 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'; 

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

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


?> 

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

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; 

 

Por favor pode me dizer se estes codigos são o complemento do topico ou vc refez eles pois você não informou nada!

 

Obrigado!

Compartilhar este post


Link para o post
gpedro    47
gpedro

Legal cara,

esses scripts estão mais rodados que a top lagoa azul na balada the best mixes

Os cara só copia e cola

Os créditos são ao tatuhunter se não me engano.

Compartilhar este post


Link para o post
alfbru    0
alfbru

gpedro se ler no topico eu coloquei os creditos do tatuhunter

Compartilhar este post


Link para o post
bitoca1995    0
bitoca1995

nem funciona esses script ae

Compartilhar este post


Link para o post
Vittu    5
Vittu

aqui o script ta funcionando normal :P

Compartilhar este post


Link para o post
Shin    0
Shin

Quem fez o script funcionar, favor postar a versão de OTServ que está usando...

Compartilhar este post


Link para o post
Exlash    0
Exlash

Testei e não funcionou, quem conseguiu fazer funcionar por favor me diz como!!

 

Testei mais de 10x e nao funcionou nenhuma!

Compartilhar este post


Link para o post
alfbru    0
alfbru

bem eu arrumei o script, quem quiser saber mais adiciona msn: [email protected]

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.

×