caiolufer 0 Denunciar post Postado Abril 5, 2009 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
Michael Granados 0 Denunciar post Postado Abril 7, 2009 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
caiolufer 0 Denunciar post Postado Abril 14, 2009 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
caiolufer 0 Denunciar post Postado Abril 15, 2009 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
Michael Granados 0 Denunciar post Postado Abril 15, 2009 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