Ir para conteúdo
herculesmarketing

retorno automatico pagseguro com autoentrega de produtos digitais.(PHP

Recommended Posts

Eu estava tentando criar um sistema desses (totalmente automatico, com entrega de produto digital) com outro sistema de pagamento (MOIP). mas encontrei um problema. Como o pagsegura seria a minha segunda opção decidi passar por aqui e encontrei esse tópico.

 

Pessoal, é o seguinte. Notei que é possível que usuários mal-intencionados alterem o valor do produto criado com o botão html, alguem sabe de alguma forma de validar o valor do produto antes de solicitar a compra?

 

Porque vai existir 2 problemas se não poder ter essa validação:

 

1º cliente "espertinho" vai consegui receber o produto já que é tudo automatico e o pagseguro vai confirmar o pagamento não importando o valor do mesmo.

 

2º O vendedor poderá ficar com saldo negativo dependendo do valor que o cliente "espertinho" colocou.

 

Exemplo:

Taxa do pagseguro é R$1,50 por pagamento efetuado.

 

Cliente "espertinho" efetua um pagamento de R$0,01

 

Matemática: R$0,01 - R$1,50 = R$-1,49

 

É com isso que estou preocupado... :wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso é verídico ?

quer dizer que se eu achar um produto que tenha botão editar no bloco de notas e colocar 0,01 e pagar o produto chega no email?

pelo fato do pag seguro n saber distinguir o valor certo do produto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu estava tentando criar um sistema desses (totalmente automatico, com entrega de produto digital) com outro sistema de pagamento (MOIP). mas encontrei um problema. Como o pagsegura seria a minha segunda opção decidi passar por aqui e encontrei esse tópico.

 

Pessoal, é o seguinte. Notei que é possível que usuários mal-intencionados alterem o valor do produto criado com o botão html, alguem sabe de alguma forma de validar o valor do produto antes de solicitar a compra?

 

Porque vai existir 2 problemas se não poder ter essa validação:

 

1º cliente "espertinho" vai consegui receber o produto já que é tudo automatico e o pagseguro vai confirmar o pagamento não importando o valor do mesmo.

 

2º O vendedor poderá ficar com saldo negativo dependendo do valor que o cliente "espertinho" colocou.

 

Exemplo:

Taxa do pagseguro é R$1,50 por pagamento efetuado.

 

Cliente "espertinho" efetua um pagamento de R$0,01

 

Matemática: R$0,01 - R$1,50 = R$-1,49

 

É com isso que estou preocupado... :wacko:

 

 

 

 

 

É só você implementar seus produtos todos pelo banco de dados dai quandi alguem colocar para exebir codigo fonte para ver o botão, não vai ver pois n vai ter você só tem acesso direto clickou comprou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ops! Foi mal aí, mas faltou uma pequena modificação.

 

Agora tá ok.

 

 

 

 

 

retorno.php

 

 

 

<?

##############################################################

# CONFIGURAÇÕES

##############################################################

include "phpmailer/class.phpmailer.php";

$retorno_site = 'seu site'; // Site para onde o usuário vai ser redirecionado

$retorno_token = 'seu token'; // Token gerado pelo PagSeguro

 

$retorno_host = 'endereço do seu banco de dados'; // Local da base de dados MySql

$retorno_database = 'nome do seu banco de dados'; // Nome da base de dados MySql

$retorno_usuario = 'usuario'; // Usuario com acesso a base de dados MySql

$retorno_senha = 'senha'; // Senha de acesso a base de dados MySql

 

 

###############################################################

# NÃO ALTERE DESTA LINHA PARA BAIXO, SOMENTE A PARTE DO EMAIL

################################################################

 

$lnk = mysql_connect($retorno_host, $retorno_usuario, $retorno_senha) or die ('Nao foi possível conectar ao MySql: ' . mysql_error());

mysql_select_db($retorno_database, $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['NumItens'];

 

$sql = mysql_query("SELECT COUNT(*) AS conta FROM PagSeguroTransacoes WHERE TransacaoID = '$TransacaoID'");

$conta = mysql_result($sql,0,$conta);

 

if($conta == 0){//se não existe a transacao!

 

// Gravando Dados

mysql_query("INSERT into PagSeguroTransacoes SET

TransacaoID='$TransacaoID',

VendedorEmail='$VendedorEmail',

Referencia='$Referencia',

TipoFrete='$TipoFrete',

ValorFrete='$ValorFrete',

Extras='$Extras',

Anotacao='$Anotacao',

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',

enviado='0',

Data=now();");

 

 

}elseif($conta == 1){//se existe atualiza o status!

mysql_query("UPDATE PagSeguroTransacoes SET StatusTransacao = '$StatusTransacao'

WHERE TransacaoID = '$TransacaoID'");

 

}

}

 

if ($StatusTransacao == 'Completo' OR $StatusTransacao == 'Aprovado') {

 

$mail = new PHPMailer();

$mail->IsSMTP();

$mail->SMTPAuth = true;

$mail->SMTPSecure = "ssl";

$mail->Host = "smtp.gmail.com";

$mail->Port = 465;

 

$mail->Username = "seu email";

$mail->Password = "senha do seu email";

 

$mail->From = "seu email novamente";

$mail->FromName = "seu nome";

 

$mail->AddAddress ($CliEmail, $CliNome);//Pega o email e o nome do cliente

 

$mail->Subject = "Pagamento concluído";

 

 

$texto = "Obrigado, seu pagamento foi efetuado com sucesso! Para ter acesso ao conteudo do site, acesse: www.seusite.com.br/download";// Página onde estiver hospedado o seu produto!

 

 

$mail->Body = $texto;

 

if($enviado == 0){

 

(!$mail->Send());

 

mysql_query("UPDATE PagSeguroTransacoes SET enviado= '1'

WHERE TransacaoID = '$TransacaoID'");

 

}elseif($enviado == 1){

 

 

}

 

}

 

 

 

 

Header("Location: $retorno_site"); exit();

?>

 

 

Olá amigo estou muito feliz pela sua iniciativa, Tambem vendo produto digital e faço a entrega manualmente, muito trabalho e adorei seu trabalho para facilitar sua vida e de muitos outros.

A minha necessidade é a mesma da sua porem não entendo muito de programar, então pesso umildimente se poderia postar todo o codigo desdo cadastro,botão,retorno e email.

 

ex: [codigo php] salve como email.php

ex: [codigo php] salve como retorno.php

ex: [codigo php] salve como index.php

ex: [codigo php] salve como cadastro.php

ex: [codigo php] crie um banco de dados e trasfira essa tabela para seu banco.

 

Ficaria muito grato e poderia fazer uma doação para você.

 

Realmente umildimente, pois já procurei por toda a internet e não tive ezito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pow é só os caras ensinarem como cadastrar os produtos e integrar com esse codigo que foi postado

para que n´so possamos integrar no site mais parece que ninguem se importa em ajudar um pouco mais detalhadamente.

 

aguardando uma alma caridosa que de dicas que nos leve a algum lugar :D

nem pagando?

tecnicoeveraldo@hotmail.com.br

 

obg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, preciso de alguém para implementar esta solução no meu site. Tenho 4 produtos à venda, preciso colocar o botão para pagamento (sem carrinho) do pagseguro e enviar um email automaticamente com os dados para download para o cliente, imediatamente após a compra. Quem tiver interesse, favor entrar em contato em: mario@ozi.com.br. Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai galera do imasters, tenho um script de retorno de entrega de produtos digitais para quem interessar!

Configurado para o pagseguro, e sem bugs.

O programa gera o botão de pagamento para você, coloque o seu token, seu email do pagseguro, cadastre seu produto digital, faça a configuração de sua conta e está pronto!

Entre em contato comigo

Postagem referente: http://www.wellshofar.com.br/category/entrega-automatica-de-infoprodutos-pagseguro

 

Sucesso!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá gente, crio jogos e gostaria de vende-los em um site que estou fazendo, alguem pode me ajudar com isso, com um passo-a-passo

Ps: ainda não tenho lucro, então não posso pagar por engines completas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.