Ir para conteúdo
  • Cadastre-se

Website retorno automático Pagseguro


Posts Recomendados

Uso gesior 2012 e nenhum sistema de retorno automático funcionou 100%, os sistemas que usa a o arquivo dntpagseguro.php nao funcionam da erro e pagina em branco

atualmente estou usando esse:

Eu recebo a doaçao porem o valor nao é arquivado na tabela e o seguinte nao recebe os pontos automático.

Caso o firewall interfira uso o CSF.

alguem me ajudaaaaaa! REP ++

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

@Sdrula 

 

Crie um novo documento chamaro retpagseguro.php e cole o código abaixo:

Citar

<?PHP
$host = "localhost"; /* HOST */
$user = "usuario"; /* USER */
$passwd = "senha"; /* PASSWORD */
$db = "tabela"; /* DB */
$retorno_token = 'SEUTOKENGERADONOPAGSEGURO'; // Token gerado pelo PagSeguro
##############################################################
#                         CONFIGURAÇÕES
##############################################################
 
 
if (empty($_POST['Referencia'])) { header("Location http://pagseguro.com.br");  }
 
list($accname, $world) = explode('-', $_POST['Referencia']);
if ($world=='sv') {
	$retorno_host = "$host"; // Local da base de dados MySql
	$retorno_database = "$db"; // Nome da base de dados MySql
	$retorno_usuario = "$user"; // Usuario com acesso a base de dados MySql
	$retorno_senha = "$passwd";  // Senha de acesso a base de dados MySql
}
 
###############################################################
#              NÃO ALTERE DESTA LINHA PARA BAIXOs#
 
$lnk = mysql_connect("$host", "$user", "$passwd") or die ('Nao foi possível conectar ao MySql: ' . mysql_error());
mysql_select_db("$db", $lnk) or die ('Nao foi possível ao banco de dados selecionado no MySql: ' . mysql_error());	
 
// Validando dados no PagSeguro
 
$PagSeguro = 'Comando=validar';
$PagSeguro .= '&Token=' . $retorno_token; 
$Cabecalho = "Retorno PagSeguro";
 
foreach ($_POST as $key => $value)
{
 $value = urlencode(stripslashes($value));
 $PagSeguro .= "&$key=$value";
}
 
if (function_exists('curl_exec'))
{
 $curl = true;
}
elseif ( (PHP_VERSION >= 4.3) && ($fp = @fsockopen ('ssl://pagseguro.uol.com.br', 443, $errno, $errstr, 30)) )
{
 $fsocket = true;
}
elseif ($fp = @fsockopen('pagseguro.uol.com.br', 80, $errno, $errstr, 30))
{
 $fsocket = true;
}
 
if ($curl == true)
{
 $ch = curl_init();
 
 curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx');
 curl_setopt($ch, CURLOPT_POST, true);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $PagSeguro);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_HEADER, false);
 curl_setopt($ch, CURLOPT_TIMEOUT, 30);
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
 
  curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx');
  $resp = curl_exec($ch);
 
 curl_close($ch);
 $confirma = (strcmp ($resp, "VERIFICADO") == 0);
}
elseif ($fsocket == true)
{
 $Cabecalho  = "POST /Security/NPI/Default.aspx HTTP/1.0\r\n";
 $Cabecalho .= "Content-Type: application/x-www-form-urlencoded\r\n";
 $Cabecalho .= "Content-Length: " . strlen($PagSeguro) . "\r\n\r\n";
 
 if ($fp || $errno>0)
 {
    fputs ($fp, $Cabecalho . $PagSeguro);
    $confirma = false;
    $resp = '';
    while (!feof($fp))
    {
       $res = @fgets ($fp, 1024);
       $resp .= $res;
       if (strcmp ($res, "VERIFICADO") == 0)
       {
          $confirma=true;
          break;
       }
    }
    fclose ($fp);
 }
 else
 {
    echo "$errstr ($errno)<br />\n";
 }
}
 
 
if ($confirma) {
## Recebendo Dados ##
$TransacaoID = $_POST['TransacaoID'];
$VendedorEmail  = $_POST['VendedorEmail'];
$Referencia = $_POST['Referencia'];
$TipoFrete = $_POST['TipoFrete'];
$ValorFrete = $_POST['ValorFrete'];
$Extras = $_POST['Extras'];
$Anotacao = $_POST['Anotacao'];
$TipoPagamento = $_POST['TipoPagamento'];
$StatusTransacao = $_POST['StatusTransacao'];
$CliNome = $_POST['CliNome'];
$CliEmail = $_POST['CliEmail'];
$CliEndereco = $_POST['CliEndereco'];
$CliNumero = $_POST['CliNumero'];
$CliComplemento = $_POST['CliComplemento'];
$CliBairro = $_POST['CliBairro'];
$CliCidade = $_POST['CliCidade'];
$CliEstado = $_POST['CliEstado'];
$CliCEP = $_POST['CliCEP'];
$CliTelefone = $_POST['CliTelefone'];
$NumItens = $_POST['ProdValor_1'];
$ProdQuantidade_x = $POST['ProdQuantidade_1'];
 
# GRAVA OS DADOS NO BANCO DE DADOS #
mysql_query("INSERT into PagSeguroTransacoes SET
	TransacaoID='$TransacaoID',
	VendedorEmail='$VendedorEmail',
	Referencia='$Referencia',
	TipoFrete='$TipoFrete',
	ValorFrete='$ValorFrete',
	Extras='$Extras',
	Anotacao='$accname',
	TipoPagamento='$TipoPagamento',
	StatusTransacao='$StatusTransacao',
	CliNome='$CliNome',
	CliEmail='$CliEmail',
	CliEndereco='$CliEndereco',
	CliNumero='$CliNumero',
	CliComplemento='$CliComplemento',
	CliBairro='$CliBairro',
	CliCidade='$CliCidade',
	CliEstado='$CliEstado',
	CliCEP='$CliCEP',
	CliTelefone='$CliTelefone',
	NumItens='$NumItens',
	Data=now(),
ProdQuantidade_x='$ProdQuantidade_x';");
 
if ($StatusTransacao == "Aprovado") {
mysql_query("UPDATE accounts SET premium_points = premium_points + '$NumItens' WHERE name = '".htmlspecialchars($accname)."'");
mysql_query("UPDATE PagSeguroTransacoes SET StatusTransacao = 'Entregue' WHERE CONVERT( `PagSeguroTransacoes`.`TransacaoID` USING utf8 ) = '$TransacaoID' AND CONVERT( `PagSeguroTransacoes`.`StatusTransacao` USING utf8 ) = 'Aprovado' LIMIT 1 ;");
mysql_query('OPTIMIZE TABLE  `pagsegurotransacoes`');
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Donate Server</title>
<style type="text/css">
body {
	font-family: Tahoma, Geneva, sans-serif;
	font-size: 16px;
	width: 900px;
	margin: 0px auto;
	margin-top: 30px;
}
b {
	font-size: 18px;
	font-weight: bold;
}
</style>
</head>
 
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
  <tr>
    <td width="11%" align="center" valign="middle"><img src="images/true.png" height="auto" width="64" /></td>
    <td width="89%"><p><b>S</b>ua compra está sendo processada por nossos sistemas de apuração, dentro de no máximo <u>1 hora seus pontos serão creditados</u>, caso o pagamento não for efetuado, ficará em aberto 1 ou mais pagamentos pendentes em sua conta. Caso você tenha mais de 3 pagamentos pendentes por falta de pagamento, sua conta será bloqueada temporariamente para efetuar pagamentos.</p></td>
  </tr>
</table>
<!--p><b>ID de Transação:</b> <?php echo $_POST['TransacaoID']; ?></p-->
</body>
</html> 

Após, execute o SQL abaixo no seu banco:

Citar

CREATE TABLE IF NOT EXISTS `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,
  `ProdQuantidade_x` int(5) NOT NULL,
  `status` tinyint(1) unsigned NOT NULL DEFAULT '0',
  UNIQUE KEY `TransacaoID` (`TransacaoID`,`StatusTransacao`),
  KEY `Referencia` (`Referencia`),
  KEY `status` (`status`)
)

 

Você deverá ter também na tabela accounts uma coluna chamada premmium_points, segue código caso ainda não tenha esta coluna:

Citar

ALTER TABLE  `accounts` ADD  `premium_points` INT( 11 ) NOT NULL ;

 

 

 

Editado por jakons
Alteração do MySQL de teste para premium_points (veja o histórico de edições)

Ajudei? REP+ ?

Servidor 8.6, Mapa Global Editado JKADS ?

Link para o post
Compartilhar em outros sites
ALTER TABLE  `accounts` ADD  `teste` INT( 11 ) NOT NULL ;

deveria ser premmium_points no lugar de teste.

Nao é bem oque preciso, eu removi o firewall csf, agora quando alguem usar o shop vou saber se ta ou nao funcionando, se nao tiver eu testo esse ai, e ta faltando as informações do config.php do seu tuto.

Link para o post
Compartilhar em outros sites

@Sdrula 

Ups, um errinho kkkkkkkkkkkkkkkkkk
Sim, era pra ser premmium_points mesmo hahahaha

Poxa, que bom cara, fico feliz que tenha consertado ?

 

Com este script não tem a necessidade de fazer nada no config.lua, ele só terá integração com o banco mesmo e disponibilizará pra o cliente os pontos automaticamente

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

Ajudei? REP+ ?

Servidor 8.6, Mapa Global Editado JKADS ?

Link para o post
Compartilhar em outros sites

Participe da conversa

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

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Andersontatuador
      .Qual servidor ou website você utiliza como base? 
      Global Full 8.60 + Zao
      Qual o motivo deste tópico? 
      O site não esta adicionando os pontos na conta dos plays.
       
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       



    • Por A.Mokk
      .Qual servidor ou website você utiliza como base? 
      TFS 0.4
      Qual o motivo deste tópico? 
      Estou tendo um probleminha indelicado no meu site, gostaria de obter respostas aqui com voces que sao sempre muito eficientes e praticos.
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
       
    • Por thunmin
      .Qual servidor ou website você utiliza como base? 
      Canary
      Qual o motivo deste tópico? 
      Não consigo deixar ele automatico os players tem que confirmar o pagamento depois eu tenho que verificar se caiu pra depois eu confirmar e colocar as coins
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
    • Por Jordan422
      Faala Deuses do Tibia! Estou com um projeto sólido de um global old, mas to preso nessa parte do website viu.. Eu dou meu jeitinho mas ta chegando nas coisas avançadas que precisa daquele freelancer bacana para ajeitar umas páginas para mim! Já tenho as ideias, basta somente botar a mão na massa.. Quem estiver interessado por favor entrar em contato por mensagem aqui no Tibiaking mesmo ou preferencialmente pelo discord mythh9257 
       
    • Por moleza
      Para quem quer abrir um servidor antigo que roda em php5 e está com dificuldade com a configuração do linux, pode contratar um cpanel que contenha o php5 que facilita a configuração do site!!
       
      essa foi a minha solução!
       
      Resolvido !!
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo