Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

caiolufer

PagSeguro - post de verificação

Recommended Posts

Eu estou tentando implementar no meu site o retorno automático. Quando o pagamento muda de estatus, para Completo ou Aprovado, o cliente deveria receber um e-mail com algumas informações.

 

Porem, o cliente não esta recebendo este e-mail.

 

Eu chamei a função mail() dentro da função retorno_automatico() e esperaria que quando a função fosse chamada, o e-mail seria enviado.

 

Estou com dúvidas,pois não programei algum codigo que envie um post para o pagseguro com meu token. Para aquela verificação...

 

Então, eu queria saber, se eu preciso fazer isso ou a biblioteca ja faz para mim.

Se preciso, como implemento isso?

 

Se esta tudo certo, por que não o e-mail não esta sendo enviado?

 

Abaixo o codigo da minha pagina de retorno com meu token alterado.

 

<?

 

// Aqui vai seu Token

define('TOKEN','xxxx');

 

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

) {

 

// AQUI VOCÊ TEM OS DADOS RECEBIDOS DO PAGSEGURO, JÁ VERIFICADOS.

// CONFIRA A LISTA DE PRODUTOS E O VALOR COM O QUE VOCÊ TEM NO

// BANCO DE DADOS E, SE ESTIVER TUDO CERTO, ATUALIZE O STATUS

// DO PEDIDO.

 

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

$msg = ' Parabéns, você acabou de adquirir a oportunidade de sua vida!! dentro de instantes recebera o livro em seu e-mail. Esse é um processo automático e poderá demorar um pouco. A senha para vizualizar o conteúdo é: xxxx ';

mail($CliEmail, 'Como ganhar muito dinheiro importando da China', $msg);

}

}

 

?> Codigo html padrão de pagina de retorno

 

==========

 

Abraços e vlw galera!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O seu código me parece estar correto, você está rodando isso localmente ou em um servidor online (com dominio e talz). Lembre-se que se for no seu localhost, o PagSeguro não tem como te enviar o POST de verificação por razões óbvias. Verifique também se sua url de retorno é a mesma que está no seu painel de controle do PagSeruro, assim como estar ativado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então cara,

 

todas esses detalhes estão sendo observados... mas não funciona.

 

Ao utilizar o codigo fornecido pela visie, como colei assima, eu tenho que me preucupar com a validação ou basta apenas fazer como fiz?

 

Eu estou tentando utilizar o ambeinte de teste, mas o manual é muito ruim, não explica direito, o que devo fazer depois de isntalada...

 

sei que não consigo utilizar o pagseguro com retorno automático....

 

o suporte deles não em ajuda em nada.

 

O que pode estar errado ainda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu vou mudar pra pagamento digital,

 

o suporte pra integração não me atende,

a documentação também não,

e eu não posso pagar pra fazerem pra mim.

 

 

e eu preciso automatizar o processo.

 

Eles devem perder muitos users pela dificuldade de integração.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu vou mudar pra pagamento digital,

 

o suporte pra integração não me atende,

a documentação também não,

e eu não posso pagar pra fazerem pra mim.

 

 

e eu preciso automatizar o processo.

 

Eles devem perder muitos users pela dificuldade de integração.

Vamos lá (recomendo ler este artigo antes: http://forum.imasters.com.br/index.php?showtopic=331291 )

 

A biblioteca de retorno automático do PagSeguro (da visie) já envia o Token para você. Verificando se o post que seu site recebeu realmente é do PagSeguro. Depois disso, ele executa a função "retorno_automatico" que você deve definir. Os passos a seguir são exatamente estes: Seu site não deve estar rodando em um ambiente de testes (localhost) e sim online, já que o PagSeguro precisa enviar um post para você e ele não vai conseguir mandar para seu localhost.

 

Anyway, você deve entrar no seu painel de controle do PagSeguro e fazer as seguintes configurações:

 

1 - vá para "Ferramentas" e escolha a opção 7 (retorno automático).

 

2 - Vá em "1) Ative a URL de retorno" e coloque a url para onde o seu usuário será redirecionado ao terminar o pagamento. Essa mesma url servirá para o PagSeguro enviar o POST de retorno automático. (clique em ativar, digite a URL e clique em salvar)

 

3 - Nessa mesma tela, peça para gerar um token na fase "2) Token para Conferência de Segurança"

 

4 - Escreva este script em PHP para verificar se o POST realmente está chegando.

 

<?php
if (isset($_POST)) {
  $f = fopen('pagseguro.log', 'a');
  fwrite ($f, var_export($_POST, true));
  fclose ($f);
}
?>
<h1>Sua compra foi efetuada</h1>

5 - Efetue uma compra, no boleto bancário (assim ele enviará um POST dizendo que foi efetuada uma compra com Boleto, mas ainda não foi efetuada (pagou o boleto).

 

6 - Esse script escrito acima deve gerar um arquivo 'pagseguro.log' na mesma pasta onde se encontra o script (se está rodando em linux, aconselho a criar o arquivo de log antes e dar-lhe permissões de escrita para todos).

 

7 - Se tudo estiver ok, indica que o PagSeguro está mandando o POST normalmente, mas você não está verificando se realmente é o PagSeguro que está mandando o POST. Pode ser um hacker. É aí que entra a biblioteca de implementação do PagSeguro escrito pela Visie (merchan :D)

 

8 - Coloque o arquivo "retorno.php" na mesma pasta de onde está seu script e altere seu script para o seguinte:

 

<?php
define ('TOKEN', 'numero_do_seu_token'); // Aqui você deve colocar o TOKEN que foi gerado na etapa 3
function retorno_automatico (
  $VendedorEmail, $TransacaoID, $Referencia, $TipoFrete,
  $ValorFrete, $Anotacao, $DataTransacao, $TipoPagamento,
  $StatusTransacao, $CliNome, $CliEmail, $CliEndereco,
  $CliNumero, $CliComplemento, $CliBairro, $CliCidade,
  $CliEstado, $CliCEP, $CliTelefone, $produtos, $NumItens
) {

  $f = fopen('pagseguro.log', 'a');
  fwrite ($f, var_export($_POST, true));
  fclose ($f);

}
require_once("retorno.php");
?><html>
  <head>
	<title>Obrigado!</title>
  </head>
  <body>
	<h1>Obrigado, falta muito pouco para liberar seu produto...</h1>
	<p>O pagamento será feito pelo pagseguro e assim que recebermos a confirmação de pagamento, você receberá um e-mail.</p>
  </body>
</html>

9 - Apague o conteúdo do seu arquivo de log e efetue uma outra compra, ao terminar, verifique se o arquivo de log adiciou o novo POST, se isso não acontecer é porque você não colocou o token correto. Se tudo correr bem, basta você alterar a sua função "retorno_automatico". Para:

 

function retorno_automatico (
  $VendedorEmail, $TransacaoID, $Referencia, $TipoFrete,
  $ValorFrete, $Anotacao, $DataTransacao, $TipoPagamento,
  $StatusTransacao, $CliNome, $CliEmail, $CliEndereco,
  $CliNumero, $CliComplemento, $CliBairro, $CliCidade,
  $CliEstado, $CliCEP, $CliTelefone, $produtos, $NumItens
) {

  $f = fopen('pagseguro.log', 'a');
  fwrite ($f, var_export($_POST, true));
  fclose ($f);

if ($StatusTransacao == 'Completo' OR $StatusTransacao == 'Aprovado') {
  $msg = ' Parabéns, você acabou de adquirir a oportunidade de sua vida!! dentro de instantes recebera o livro em seu e-mail. Esse é um processo automático e poderá demorar um pouco. A senha para vizualizar o conteúdo é: xxxx ';
  mail($CliEmail, 'Como ganhar muito dinheiro importando da China', $msg);
}

}

Se ainda assim não funcionar, verifique se a sua função mail está enviando e-mail realmente. Também verifique que o arquivo de log está gerando o desejado. Espero ter ajudado :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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