• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Pagseguro System ^o)

lucasmazzei

New Member
Joined
Feb 14, 2010
Messages
95
Reaction score
0
Hello everybody, here in Brazil there is a site of the payment "PAGSEGURO" and I just found here on Otland, the system alone to confirm payment via paypal. I wonder if it has one how to "PAGSEGURO" Also, the site is http://www.pagseguro.com.br, Do not you could help me?
Where can I ask please, so it is more outlined my ot.


Thank you,
Lucas

Help Me!!!
 
help help help help help
Pagseguro Script ~~~~~

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: PHP: cURL - Manual
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();
}


?>


pgs.php
<?php

class pgs {
var $_itens = array();
var $_config = array ();
var $_cliente = array ();
/**
* pgs
*
* Função de inicialização
* você pode passar os parâmetros padrão alterando as informações padrão como o tipo de moeda ou
* o tipo de carrinho (próprio ou do pagseguro)
*
* Ex:
* <code>
* array (
* 'email_cobranca' => '[email protected]',
* 'tipo' => 'CBR',
* 'ref_transacao' => 'A36',
* 'tipo_frete' => 'PAC',
* )
* </code>
*
* @access public
* @param array $args Array associativo contendo as configurações que você deseja alterar
* @return void
*/
function pgs($args = array()) {
if ('array'!=gettype($args)) $args=array();
$default = array(
'email_cobranca' => '',
'tipo' => 'CP',
'moeda' => 'BRL',
);
$this->_config = $args+$default;
}
/**
* error
*
* Retorna a mensagem de erro
*
* @access public
* @return string
*/
function error($msg){
trigger_error($msg);
return $this;
}
/**
* adicionar
*
* Adiciona um item ao carrinho
*
* O elemento adicionado deve ser um array associativo com as seguintes chaves
* id => string com até 100 caracteres
* descricao => string com até 100 caracteres
* quantidade => integer
* valor => integer ou float
* peso => integer (opcional) coloque o peso (em gramas) do produto, caso seja um peso único para todos os
* produtos é preferivel inplantá-lo no new pgs(array('item_peso_1' => 1300))
* frete => integer ou float (opcional) coloque o valor do frete, caso seja um frete único
* para todos os produtos é preferivel inplantá-lo no new pgs(array('item_frete_1' => 30))
*
* @access public
* @param array $item O elemento que será adicionado
* @return object pgs O próprio objeto para que possa ser concatenado a outro comando dele mesmo
*/
function adicionar($item) {

if ('array' !== gettype($item))
return $this->error("Item precisa ser um array.");
if(isset($item[0]) && 'array' === gettype($item[0])){
foreach ($item as $elm) {
if('array' === gettype($elm)) {
$this->adicionar($elm);
}
}
return $this;
}

$tipos=array(
"id" => array(1,"string", '@\w@' ),
"quantidade" => array(1,"string,integer", '@^\d+$@' ),
"valor" => array(1,"double,string,integer", '@^\d*\.?\d+$@'),
"descricao" => array(1,"string", '@\w@' ),
"frete" => array(0,"string,integer", '@^\d+$@' ),
"peso" => array(0,"string,integer", '@^\d+$@' ),
);

foreach($tipos as $elm=>$valor){
list($obrigatorio,$validos,$regexp)=$valor;
if(isset($item[$elm])){
if(strpos($validos,gettype($item[$elm])) === false ||
(gettype($item[$elm]) === "string" && !preg_match($regexp,$item[$elm]))){
return $this->error("Valor invalido passado para $elm.");
}
}elseif($obrigatorio){
return $this->error("O item adicionado precisa conter $elm");
}
}

$this->_itens[] = $item;
return $this;
}
/**
* cliente
*
* Define o cliente a ser inserido no sistema.
* Recebe como parametro um array associativo contendo os dados do cliente.
*
* Ex:
* <code>
* array (
* 'nome' => 'José de Arruda',
* 'cep' => '12345678',
* 'end' => 'Rua dos Tupiniquins',
* 'num' => 37,
* 'compl' => 'apto 507',
* 'bairro' => 'Sto Amaro',
* 'cidade' => 'São Camilo',
* 'uf' => 'SC',
* 'pais' => 'Brasil',
* 'ddd' => '48',
* 'tel' => '55554877',
* 'email' => '[email protected]',
* )
* </code>
*
* @access public
* @param array $args Dados sobre o cliente, se não forem passados os dados corretos,
* o pagseguro se encarrega de perguntar os dados ao cliente
* @return void
*/
function cliente($args=array()) {
if ('array'!==gettype($args)) return;
$this->_cliente = $args;
}
/**
*
* mostra
*
* Mostra o formulário de envio de post do PagSeguro
*
* Após configurar o objeto, você pode usar este método para mostrando assim o
* formulário com todos os inputs necessários para enviar ao pagseguro.
*
* <code>
* array (
* 'print' => false, // Cancelará o evento de imprimir na tela, retornando o formulário
* 'open_form' => false, // Não demonstra a tag <form target="pagseguro" ... >
* 'close_form' => false, // Não demonstra a tag </form>
* 'show_submit' => false, // Não mostra o botão de submit (imagem ou um dos 5 do pagseguro)
* 'img_button' => 'imagem.jpg', // Usa a imagem (url) para formar o botão de submit
* 'btn_submit' => 1, // Mostra um dos 5 botões do pagseguro no botão de submit
* )
* </code>
*
* @access public
* @param array $args Array associativo contendo as configurações que você deseja alterar
*/
function mostra ($args=array()) {
$default = array (
'print' => true,
'open_form' => true,
'close_form' => true,
'show_submit' => true,
'img_button' => false,
'bnt_submit' => false,
);
$args = $args+$default;
$_input = ' <input type="hidden" name="%s" value="%s" />';
$_form = array();
if ($args['open_form'])
$_form[] = '<form target="pagseguro" action="https://pagseguro.uol.com.br/security/webpagamentos/webpagto.aspx" method="post">';
foreach ($this->_config as $key=>$value)
$_form[] = sprintf ($_input, $key, $value);
foreach ($this->_cliente as $key=>$value)
$_form[] = sprintf ($_input, "cliente_$key", $value);

$assoc = array (
'id' => 'item_id',
'descricao' => 'item_descr',
'quantidade' => 'item_quant',
);
$i=1;
foreach ($this->_itens as $item) {
foreach ($assoc as $key => $value) {
$sufixo=($this->_config['tipo']=="CBR")?'':'_'.$i;
$_form[] = sprintf ($_input, $value.$sufixo, $item[$key]);
unset($item[$key]);
}
$_form[] = str_replace ('.', '', sprintf (' <input type="hidden" name="%s" value="%.2f" />', "item_valor$sufixo", $item['valor']));
unset($item['valor']);

foreach ($item as $key=>$value)
$_form[] = sprintf ($_input, "item_{$key}{$sufixo}", $value);

$i++;
}
if ($args['show_submit']) {
if ($args['img_button']) {
$_form[] = sprintf(' <input type="image" src="%s" name="submit" alt="Pague com o PagSeguro - &eacute; r&aacute;pido, gr&aacute;tis e seguro!" />', $args['img_button']);
} elseif ($args['btn_submit']) {
switch ($args['btn_submit']) {
case 1: $btn = 'btnComprarBR.jpg'; break;
case 2: $btn = 'btnPagarBR.jpg'; break;
case 3: $btn = 'btnPagueComBR.jpg'; break;
case 4: $btn = 'btnComprar.jpg'; break;
case 5: $btn = 'btnPagar.jpg'; break;
default: $btn = 'btnComprarBR.jpg';
}
$_form[] = sprintf (' <input type="image" src="https://pagseguro.uol.com.br/Security/Imagens/%s" name="submit" alt="Pague com o PagSeguro - &eacute; r&aacute;pido, gr&aacute;tis e seguro!" />', $btn);
} else {
$_form[] = ' <input type="submit" value="Pague com o PagSeguro" />';
}
}
if($args['close_form']) $_form[] = '</form>';
$return = implode("\n", $_form);
if ($args['print']) print ($return);
return $return;
}
}

?>

pagar.html
<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<title>PagSeguro - UOL</title>
<style>
<!--
.c {
MARGIN: 0px 8px; BACKGROUND: #fff8e7
}
#tads {
MARGIN-BOTTOM: 8px !important
}
LI {
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
LI {
BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px
}
LI {
LINE-HEIGHT: 1.2
}
OL LI {
LIST-STYLE-TYPE: none; LIST-STYLE-IMAGE: url('http://www.google.com.br/none')
}
.c LI {
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 8px; PADDING-RIGHT: 3px; PADDING-TOP: 0px
}
#tads LI {
PADDING-BOTTOM: 1px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 1px
}
-->
</style>
</head>

<body>
<p align="center">
<font size="5" color="#FF9900">Opção 1- P</font><FONT color=#ff9900 size=5>agamento </FONT>
<font size="5" color="#FF9900">Direto Banco do Brasil</font></p>
<div align="center">
<center>
<table align="" style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0" width="354">
<tr>
<td bgcolor="#C0C0C0" width="354">
<p align="center"><font size="4" color="#FF0000"><b>Deposito direto: Copie o
número da conta e faça o pagamento em bancos ou nas lotéricas.</b></font></p>
<div align="center">
<center>
<table border="0" cellSpacing="0" cellPadding="0" width="329" style="border-collapse: collapse" bordercolor="#111111">
<tr>
<td width="329"><strong><font size="4">Banco do Brasil</font></strong><font size="4"><br>
</font>
<strong>Agencia:<font size="4"> </font> </strong><font size="4">xxxx-x<br>
</font>
<strong>C/C</strong>:<font size="4"> xxxxx-x
<br></font>Nome</strong>:<font size="4"> x.x.x.x</font></td>
</tr>
<tr>
<td bgcolor="#FFFF00" width="329">
<p align="center"><font size="2">Usando esta opção, ganha de brinde +3 Pontos
para cada R$10,00 Exemplo: Você doa R$50,00 vai receber 65 Pontos.</font></td>
</tr>
</table>
</center>
</div>
</td>
</tr>
</table>
</center>
</div>
<P align="center">
<span style="font-weight: 700; background-color: #FFFF00"><font size="4">
Logo após depositar, clique </font><font color="#0000FF" size="4">
<a href="?subtopic=confirmpayment">aqui</a></font><font size="4">
para confirmar e receber seus Premium Points.</font></span></P>
<P align="center">
<font size="5"><span style="font-weight: 700">-----------------------</span></font></P>
<p>&nbsp;</p>
<p>
<font size="5" color="#FF9900">Opção 2 - P</font><FONT color=#ff9900 size=5>agamento
PagSeguro UOL<br></font><FONT size=2 face="Vani">A UOL&nbsp; protege você na internet,

pode confiar se quiser saber mais acesse </font>
<span style="VISIBILITY: visible" id="main">
<span style="VISIBILITY: visible; MARGIN-RIGHT: 0px" id="taw">
<cite style="font-style: normal; color: #282">
<b style="font-style: normal; color: #282">PagSeguro.UOL</b>.com.br</cite></span></span><FONT size=2 face="Vani">.<br>
PagSeguro é a solução completa para pagamentos online.<BR>
</p>
</font>
<P><FONT size=2 face="Vani"><b><font size="4">Realize a doação através do PagSeguro. </font></b></P>
<P>1º Escolher o valor da doação.</P>
<TABLE border=0 cellSpacing=0 cellPadding=0 width="89%" height="200">
<TBODY>
<TR>
<TD height="32">Doar R$10,00 = 10 Premium Points</TD>
<TD height="32"><!-- INICIO FORMULARIO BOTAO PAGSEGURO -->
<FORM method=post
action=https://pagseguro.uol.com.br/security/webpagamentos/webpagto.aspx
target=pagseguro><INPUT [email protected] type=hidden
name=email_cobranca> <INPUT value=CP type=hidden name=tipo> <INPUT value=BRL
type=hidden name=moeda> <INPUT value=02 type=hidden name=item_id_1> <INPUT
value=10-PontosVIP type=hidden name=item_descr_1> <INPUT value=1 type=hidden
name=item_quant_1> <INPUT value=1000 type=hidden name=item_valor_1> <INPUT
value=000 type=hidden name=item_frete_1>
<INPUT
alt="Pague com PagSeguro - é rápido, grátis e seguro!"
src="https://pagseguro.uol.com.br/Security/Imagens/btnPagueComBR.jpg" type=image
name=submit width="76" height="28"> </FORM><!-- FINAL FORMULARIO BOTAO PAGSEGURO --></TD></TR>
<TR>
<TD height="32">Doar R$15,00 = 15 Premium Points</TD>
<TD height="32"><!-- INICIO FORMULARIO BOTAO PAGSEGURO -->
<FORM method=post
action=https://pagseguro.uol.com.br/security/webpagamentos/webpagto.aspx
target=pagseguro><INPUT [email protected] type=hidden
name=email_cobranca> <INPUT value=CP type=hidden name=tipo> <INPUT value=BRL
type=hidden name=moeda> <INPUT value=03 type=hidden name=item_id_1> <INPUT
value=15-PontosVIP type=hidden name=item_descr_1> <INPUT value=1 type=hidden
name=item_quant_1> <INPUT value=1500 type=hidden name=item_valor_1> <INPUT
value=000 type=hidden name=item_frete_1>
<INPUT
alt="Pague com PagSeguro - é rápido, grátis e seguro!"
src="https://pagseguro.uol.com.br/Security/Imagens/btnPagueComBR.jpg" type=image
name=submit width="76" height="28"> </FORM><!-- FINAL FORMULARIO BOTAO PAGSEGURO --></TD></TR>
<TR>
<TD height="32">Doar R$25,00 = 25 Premium Points</TD>
<TD height="32"><!-- INICIO FORMULARIO BOTAO PAGSEGURO -->
<FORM method=post
action=https://pagseguro.uol.com.br/security/webpagamentos/webpagto.aspx
target=pagseguro><INPUT [email protected] type=hidden
name=email_cobranca> <INPUT value=CP type=hidden name=tipo> <INPUT value=BRL
type=hidden name=moeda> <INPUT value=04 type=hidden name=item_id_1> <INPUT
value=25-PontosVIP type=hidden name=item_descr_1> <INPUT value=1 type=hidden
name=item_quant_1> <INPUT value=2500 type=hidden name=item_valor_1> <INPUT
value=000 type=hidden name=item_frete_1>
<INPUT
alt="Pague com PagSeguro - é rápido, grátis e seguro!"
src="https://pagseguro.uol.com.br/Security/Imagens/btnPagueComBR.jpg" type=image
name=submit width="76" height="28"> </FORM><!-- FINAL FORMULARIO BOTAO PAGSEGURO --></TD></TR>
<TR>
<TD height="32">Doar R$50,00 = 50 Premium Points</TD>
<TD height="32"><!-- INICIO FORMULARIO BOTAO PAGSEGURO -->
<FORM method=post
action=https://pagseguro.uol.com.br/security/webpagamentos/webpagto.aspx
target=pagseguro><INPUT [email protected] type=hidden
name=email_cobranca> <INPUT value=CP type=hidden name=tipo> <INPUT value=BRL
type=hidden name=moeda> <INPUT value=05 type=hidden name=item_id_1> <INPUT
value=50-PontosVIP type=hidden name=item_descr_1> <INPUT value=1 type=hidden
name=item_quant_1> <INPUT value=5000 type=hidden name=item_valor_1> <INPUT
value=000 type=hidden name=item_frete_1>
<INPUT
alt="Pague com PagSeguro - é rápido, grátis e seguro!"
src="https://pagseguro.uol.com.br/Security/Imagens/btnPagueComBR.jpg" type=image
name=submit width="76" height="28"> </FORM><!-- FINAL FORMULARIO BOTAO PAGSEGURO --></TD></TR>
<TR>
<TD height="34">&nbsp;</TD>
<TD height="34">&nbsp;</TD></TR>
<TR>
<TD height="38">Doar outro valor.<BR>Cada R$1,00 vale 1 Pontos</TD>
<TD height="38"><!-- INICIO FORMULARIO BOTAO PAGSEGURO -->
<FORM method=post
action=https://pagseguro.uol.com.br/security/webpagamentos/webpagto.aspx
target=pagseguro><INPUT [email protected] type=hidden
name=email_cobranca> <INPUT value=CBR type=hidden name=tipo> <INPUT value=BRL
type=hidden name=moeda> <INPUT value=6 type=hidden name=item_id> <INPUT
value=PontosVIP type=hidden name=item_descr> <INPUT name=item_quant size="20"> <INPUT
value=100 type=hidden name=item_valor> <INPUT value=000 type=hidden name=frete>
<INPUT alt="Pague com PagSeguro - é rápido, grátis e seguro!"
src="https://pagseguro.uol.com.br/Security/Imagens/btnPagueComBR.jpg" type=image
name=submit width="76" height="28">
</FORM><!-- FINAL FORMULARIO BOTAO PAGSEGURO --></TD></TR></TBODY></TABLE>
<UL type=disc>
<LI>Nesta pagina você poderá determinar o valor a ser doado.
<LI>Clicar no botão do PagSeguro para realizar a doação. </LI>
<P>2º Após clicar no botão você é redirecionado para 1 outra janela.</P>
<P><IMG src="http://tsimagens.com/central/images/koiz0g6o4v20b2y76dc.gif"
width=500></P>
<UL type=disc>
<LI>Preencha todos os campos que são solicitados corretamente.
<LI>Clique em continuar. </LI></UL>
<P>3º Após clicar no botão você é redirecionado para 1 outra janela.</P>
<P><IMG src="http://tsimagens.com/central/images/pq3lg7cnbeyz5cnehz4.gif"
width=500></P>
<UL type=disc>
<LI>Nesta janela você deve determinar a forma de pagamento.
<LI>Caso você possua conta e queira transferir só clicar no link do seu banco.
<LI>Caso queira depositar via boleto clique em boleto. </LI></UL>
<LI>Caso sua escolha seja boleto, você ainda receberá uma ultima confirmação com os valores e dados de tempo estimado para liberação.</LI>
<LI>Caso sua forma de pagamento seja através de TEF você será direcionado para seu banco.</LI>
<div align="center">
<center>
<p>&nbsp;</p>
</center>
</div>
<P align="center">
<span style="font-weight: 700; "><font size="5">
Logo após depositar, clique </font><font color="#0000FF" size="5">
<a href="?subtopic=confirmpayment">aqui</a></font><font size="5">
para confirmar e receber seus Premium Points.</font></span></P>
<P align="center">
<font size="5"><span style="font-weight: 700">-----------------------</span></font></P>
<h5 align="center">* Lembrando: nós do Mundinho não possuímos fins financeiros.<br>
Nós proporcionamos diversão a todos e precisamos de doações para mantermo-nos
sempre online! <br>
Toda renda aqui adquirida será convertida em recursos para estarmos sempre
melhor!</h5>
<P align="center">
&nbsp;</P>
</body>

</html>

- This script don't working
- Only for help good scripter developer
- Many thanks!!!

HELP

http://mundinho.sytes.net:8090/
http://otslist.eu/points/5829
 
Last edited:
Ok, I'll post it here soon. :D

Edit...

Ok done:
Create a file named pagseguro.php
add this into the file:
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 - &eacute; r&aacute;pido, gr&aacute;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 } ?>
save it ROOT_DIR/system/pages/
now you can access this page with /index.php/p/v/pagseguro

now go to config.php of Modern AAC.
and add this:
PHP:
// Sistema automatico Pagseguro by tatu_hunter
// Seu email cadastrado no pagseguro
$config['pagseguro']['email'] = '[email protected]';

// 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
$config['pagseguro']['token'] = 'EFEB3B4CA8914CB3963C3695A6947965';

now create a file in root dir named retPagseguro.php
and add this:
PHP:
<?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>

and now in root dir create a folder named logsPagseguro, in this folder we will save all payments done, if you are using linux chmod this to 777.

download the attachment 'retorno.zip', unzip and put the file in your root dir too.

Ok done, now you have to go in your Pagseguro page and configure to work with this.

In your pagseguro page go to Preferências -> Retorno automático de dados
where 'Ative a URL de retorno', set it to Ativar
and set the URL de Retorno to http://www.yoursite.com/retPagseguro.php

now go more down and click in the button GERAR to create a TOKEN for you which is needed in this system.

OK now all should work.

Not tested, just send bugs to me.

and dont forget to rep me :D

--- edit ---
make sure in your database in table accounts you have premium_points if not run this query:
Code:
ALTER TABLE  `accounts` ADD  `premium_points` INT NOT NULL
 

Attachments

Last edited:
ok here you go:

SCRIPT FOR GESIOR AAC

pagseguro.php
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="' . $config['pagseguro']['produtoNome'] . '">

<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 - &eacute; r&aacute;pido, gr&aacute;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>'; } ?>

dont forget to add this to gesior config (config/config.php):
PHP:
// Sistema automatico Pagseguro by tatu_hunter
// Seu email cadastrado no pagseguro
$config['pagseguro']['email'] = '[email protected]';

// 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
$config['pagseguro']['token'] = 'EFEB3B4CA8914CB3963C3695A6947965';

retPagseguro.php
PHP:
<?php
include('config-and-functions.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') {
		$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>

Rep me thx!
 
Last edited:
Back
Top