Ir para conteúdo

Arquivado

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

jstecnologia

Solução da página de retorno PagSeguro - PHP

Recommended Posts

Solução da página de retorno PagSeguro

 

E ae Galera,

 

Bastante tempo tenho procurado na internet o retorno do PagSeguro que funciona-se, mas infelizmente não encontrei, então fui ao código fonte e passei a realizar diversos testes até chegar no código final.

 

Para que isso não venha acontecer com nossos amigos estou disponibilizando o código fonte de envio e retorno do PagSeguro.

 

Arquivos do zip:

index.php - Página com os dados que devem ser enviados ao PagSeguro

retorno.php - Página de retorno que irá cadastrar os dados na base de dados MySql

PagSeguroTransacoes.sql - Script para criação da tabela na base de dados MySql

 

Obs.: A página de retorno não mostra as informações recebidas, somente é permitido pelo PagSeguro cadastrar os dados no banco de dados, para mostrar na sua página será necessário realizar uma busca na sua base depois que o cadastro for realizado.

 

Versões utilizadas:

PHP: 5.2.6

MySql: 5.0.51a

 

 

Link para download: http://www.jstecnologia.com.br/PagSeguro_by_JSTecnologia.zip

 

Acessem também: http://www.bibliananet.com.br

 

Abraços.

Jefferson - JS Tecnologia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Otima iniciativa, ja baixei e vou testar.

 

Detalhe sobre o tópico:

Leia as regras:

http://forum.imasters.com.br/index.php?act=Help

 

caixa alta é proibido ;)

 

atenciosamente Fox

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se o pessoal sabe, mas PagSeguro e PHP4, não é uma boa mistura, fiquei me matando por semanas, tentando instalar o Pagseguro nos meus servidores, ate testar junto ao JsTecnologia em um servidor que roda php5, e descobrir este problema, caso alguem tenha problema com este script, lembre-se de verificar phpinfo() no servidor

 

o script dele funciona e como eu mencionei a ele, esta é a solução do PS...

 

Obrigado por contribuir. http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, eu testei o seu script mas os dados não estão sendo enviados para o banco de dados, o pior é que ão acusa nenhum erro na pagina retorno.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, eu testei o seu script mas os dados não estão sendo enviados para o banco de dados, o pior é que ão acusa nenhum erro na pagina retorno.php

 

Aqui também não...

a página de confirmação abre como se a compra fosse concluída com sucesso, mesmo se eu digitar o link direto dela, sem passar pelo página do PagSeguro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Será que alguém poderia me dar uma mão nesse bendito de Retorno Automático ???

 

Tipo, fiz as correções dadas pelo Jefferson e realmente o código funcionou, está salvando ALGUNS dados no DB, mas não todos, e ainda tenho um problema maior, preciso salvar estas informações em uma outra tabela, mas parece que não é permitido, como eu poderia fazer isso ?

 

de todos os dados oferecidos em POST pelo PagSeguro, somente os seguintes salvam no banco:

- TransacaoID - TipoPagamento - StatusTransacao - CliNome - CliEmail - CliCEP - CliTelefone - NumItens.

Tem muitos outros que não retornam. Mas este não é o maior problema.

 

* É obvio que não salva tudo, eu não estou recuperando os outros dados, hehehehe DAHH... esqueção esta parte ^^

O meu carrinho é para computadores 'configuraveis' onde o cliente escolhe a placa mãe, processador, memoria, etc... e isso é salvo em COOKIE.

Após salvar os dados do pagseguro, eu faço um FOREACH para listar os cookies e salvar em outra TABELA as peças escolhidas para este computador comprado, mas ai entra o problema, o POST TransacaoID após ser salvo na TABELA PagSeguro, desaparece, então não consigo ligar o nome a pessoa, ou seja, que aquela configuração é da compra da TransacaoID XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.

 

Ai criei uma string

<? $NumeroAleatorio = rand(100,999) . rand(100,999) . rand(100,999) . rand(100,999) . rand(100,999) . rand(100,999) . rand(100,999); ?>

 

Onde salva este numero na TABELA do PagSeguro e na minha outra TABELA, AI FERROU TUDO DE VEZ, pq parece que após salvar os dados da TABELA do PagSeguro ele dá um refresh, ai o meu $NumeroAleatorio salvo na TABELA PagSeguro não é igual ao $NumeroAleatorio salvo na outra TABELA.

 

Alguém fez algo parecido, ou poderia me dar um help ????? Nunca tinha utilizado CURL, e não sei até onde pode estar causando conflito.

 

Me esqueci de um detalhe muito importante, para salvar alguns dados na 2ª TABELA, eu preciso da SESSION, e na página de retorno do PagSeguro eu não posso usar session_start(); . Quando usei, ele duplicava o INSERT e dava uma tremenda confusão.

 

Então a unica coisa que eu precisava era: Depois que ele salvar no banco, eu conseguir dar um redirect para a página com session aberta para salvar os dados do COOKIES na outra TABELA. MASSSSSSSS com o mesmo número gerado no $NumeroAleatorio que foi salvo na TABELA PagSeguro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jefferson, me fala uma coisa....

 

por falta de opção eu usei o $_SERVER['REMOTE_ADDR'] para comparar entre as tabelas e usei como no seu exemplo, mas na página de retorno do PagSeguro ele pega sempre o mesmo IP e não é o meu, pq isso ? como posso consertar isso ?

 

//Pegando o IP do usuário
$ip = $_SERVER['REMOTE_ADDR']; // pegando o endereço remoto 
$forward = $_SERVER['HTTP_X_FORWARDED_FOR'];  // pegando o endereço que foi repassado (se houver) 
$ip = ( ( ($ip=='unknown' || $ip=='200.221.19.20') && ( isset($foward) && $forward!='unknown' ) ) ? $forward : $ip );

Note que mudei o IP de verificação que você tinha usado, pois é este IP que sempre salva na tabela PagSeguro.

Depois que direciona para a página dos COOKIES, aparece o meu IP certo, mas esta verificação do PagSeguro está ferrendo com tudo...

Um Help please.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito Obrigado, funcionou perfeitamente.

 

Mas tem uma coisa a informar: se duas pessoas diferentes estiverem no mesmo IP, não é salvo no BD, mas aparece no meu histórico de transações. Isto não precisaria ser imposto.

 

Vou criar um barra de doações, depois posto aqui.

 

Jefferson obrigado pelo código, o Pagseguro não envia um POST de atualização?

 

Se sim, no seu código falta o UPDATE.

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem eu estou com 1 duvida que eu reluto em acreditar que não seja ridicula.

Porem como não achei a solução decidi expor aqui ela e saber mais sobre o assunto.

 

 

Bem eu trabalho com o botaão de doação do pagseguro.

 

Queria saber se existe um modo de eu salvar o que o USUARIO esta doando para quando a transação for aprovada eu automaticamente agradeça ou libere algum produto ao mesmo.

 

O problema que a parte de valor fica fora do meu site e não sei como posso fazer para recuperar isso. Tal como usuario e senha do meu usuario.

 

Alguem entendeu o que eu quiz dizer? kkkkkk

 

Se alguem puder responder aguardo ansiosamente.

 

att demondark@hotmail.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kra,

 

Ja nem lembrava que tinha login aqui no Forum.

 

Mas você me fez lembrar e entrar para te dar os parabens, teu script funcionou perfeito!!!! Sensacional.

 

Deus te abençoe!!!

 

[]`s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Solução da página de retorno PagSeguro

 

E ae Galera,

 

Bastante tempo tenho procurado na internet o retorno do PagSeguro que funciona-se, mas infelizmente não encontrei, então fui ao código fonte e passei a realizar diversos testes até chegar no código final.

 

Para que isso não venha acontecer com nossos amigos estou disponibilizando o código fonte de envio e retorno do PagSeguro.

 

Arquivos do zip:

index.php - Página com os dados que devem ser enviados ao PagSeguro

retorno.php - Página de retorno que irá cadastrar os dados na base de dados MySql

PagSeguroTransacoes.sql - Script para criação da tabela na base de dados MySql

 

Obs.: A página de retorno não mostra as informações recebidas, somente é permitido pelo PagSeguro cadastrar os dados no banco de dados, para mostrar na sua página será necessário realizar uma busca na sua base depois que o cadastro for realizado.

 

Versões utilizadas:

PHP: 5.2.6

MySql: 5.0.51a

 

 

Link para download: http://www.jstecnologia.com.br/PagSeguro_by_JSTecnologia.zip

 

Acessem também: http://www.bibliananet.com.br

 

Abraços.

Jefferson - JS Tecnologia

 

 

Muito boa a iniciativa cara, mas andando pelo pag seguro uol lí o seguinte :"a loja receberá outro POST, informando o novo status. Cada vez que a transação muda de status, um POST é enviado.". Nesse caso, a sua solução se comportará como? um grande abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

tá dando erro quando clico em comprar:

 

 

Checkout

Mensagem:

 

* Erro 150 - O campo ITEM_QUANT_1 deve ser maior que 0 ou excedeu o número de caracteres permitidos.

* Erro 165 - O campo ITEM_VALOR_1 deve ser numérico.

 

aiai....

 

Tentando entender e aplicar essa bagaça....

 

 

Eu ainda tenho o seguinte dilema:

 

Tenho ebooks com codigos de acesso liberados salvos em arquivo CSV... precisaria que ao confirmar o pagamento o cliente recebece o link para download e este codigo, para cada cliente um novo codigo...

 

e agora?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Uma rápida pergunta. Em PHP, como faço para na página de retorno personalizar para cada cliente.

Por exemplo, o texto desta pagina ser:

 

(NOME DO CLIENTE) obrigado por adquirir (NOME DO PRODUTO). Sua compra foi (STATUS DA TRANSAÇÃO). etc....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Uma rápida pergunta. Em PHP, como faço para na página de retorno personalizar para cada cliente.

Por exemplo, o texto desta pagina ser:

 

(NOME DO CLIENTE) obrigado por adquirir (NOME DO PRODUTO). Sua compra foi (STATUS DA TRANSAÇÃO). etc....

 

A sessão em que seu cliente retorna ao site é diferente da sessão em que você recebe o POST com os dados/status do pedido.

Para exibir estas informações de forma personalizada você precisaria ter as mesmas previamente armazenadas no DB.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jeferson, está funcionando perfeito, obrigado! Só não estou conseguindo ver a informação que para mim é mais importante, a de status aprovado. Tenho recebido no bd todas as transações: quando alguém emite um boleto, quando alguém inicia uma trasação, quando está pendente porém não recebo a mais importante, quando uma transação é aprovada. Na verdade só me interessaria ter no BD as transações aprovadas. É uma limitação deste recurso ou há alguma coisa errada aqui? Obrigado! Alex

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá a todos, estou em busca de um script de retorno automatico do pagseguro, num sei se este script atende meu pedido, bom, tenho 3 mini-site que estou terminando de escrever, agora eu quero que quando o cliente ao acessar uma das minhas cartas de vendas (site1, site2 e site3)tipo index.php => irá para => formulario.php (nome, email, login e senha) que ira pro meu banco de dado (mysql) e em seguida para => pagina pagseguro, quando o cliente efetuar o pagamento o retorno.php automaticamente envie o determinado link do produto pra download no email do cliente, ou se alguem já tiver um script desse tipo já pronto, por favor me ajude, desde já grato, meu email: irispresidente@hotmail.com.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu 99% Certo, inseriu no BD todos os dados - Aguardando pagamento.

Só que eu já recebi o pagamento e ainda não atualizou, como seria? O que mais tenho que fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra mim não funcionou.

Aparece para o cliente que foi finalizado mas o bco de dados não recebe nenhum dado.

 

é desesperador.

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.