Ir para conteúdo

POWERED BY:

Arquivado

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

leandroSto

Depois finalizar a comprar gravar no banco Pagseguro

Recommended Posts

Um exemplo?

http://forum.imasters.com.br/topic/433279-retorno-nao-esta-rodando-query/

Tá tudo funcionando, só não tá rodando a query por enquanto, até alguém, ou eu mesmo achar uma solução, assim que eu arrumar te notifico por PM!

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw pelo exemplo !!

 

Mais gostaria de saber dps qnd finalizar a compra eu criei um arquivo chamado pagseguro.php

com codigo abaixo.:

como eu faria para redirecionar para esse arquivo e gravar as informações no BD ?/

 


<?php

header('Content-Type: text/html; charset=ISO-8859-1');

define('TOKEN', 'Meu_Token');

class PagSeguroNpi {

private $timeout = 20; // Timeout em segundos

public function notificationPost() {
	$postdata = 'Comando=validar&Token='.TOKEN;
	foreach ($_POST as $key => $value) {
		$valued    = $this->clearStr($value);
		$postdata .= "&$key=$valued";
	}
	return $this->verify($postdata);
}

private function clearStr($str) {
	if (!get_magic_quotes_gpc()) {
		$str = addslashes($str);
	}
	return $str;
}

private function verify($data) {
	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL, "https://pagseguro.uol.com.br/pagseguro-ws/checkout/NPI.jhtml");
	curl_setopt($curl, CURLOPT_POST, true);
	curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($curl, CURLOPT_HEADER, false);
	curl_setopt($curl, CURLOPT_TIMEOUT, $this->timeout);
	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
	$result = trim(curl_exec($curl));
	curl_close($curl);
	return $result;
}

}

if (count($_POST) > 0) {

// POST recebido, indica que é a requisição do NPI.
$npi = new PagSeguroNpi();
$result = $npi->notificationPost();

$transacaoID = isset($_POST['TransacaoID']) ? $_POST['TransacaoID'] : '';

if ($result == "VERIFICADO") {
	//O post foi validado pelo PagSeguro.
} else if ($result == "FALSO") {
	//O post não foi validado pelo PagSeguro.
} else {
	//Erro na integração com o PagSeguro.
}

} else {
// POST não recebido, indica que a requisição é o retorno do Checkout PagSeguro.
// No término do checkout o usuário é redirecionado para este bloco.
?>
	<h3>Obrigado por efetuar a compra.</h3>
   <?php
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw pelo exemplo !!

 

Mais gostaria de saber dps qnd finalizar a compra eu criei um arquivo chamado pagseguro.php

com codigo abaixo.:

como eu faria para redirecionar para esse arquivo e gravar as informações no BD ?/

 

 

Lembra disso?

 

 

Tenha absoluta certeza que você nem leu o que está escrito ai.

No final da pagina tem um link chamada "Ativar a URL de Retorno"

 

zo9a9y.png

 

Após ter feito isso, ache o topico Ative a URL de retorno.

Clique em ativar

Insira a URL de retorno

Clique em salvar

 

vqnmo7.png

 

 

Agora visualizando seu código

 

define('TOKEN', 'Meu_Token');

 

Espero que você tenha entendido que ai é seu token mesmo... Onde achar? no link onde você configurou a URL de retorno você verá um texto mais ou menos assim "Clique no botão para gerar um novo Token", ai você deve clicar no botão e aparecerá o seu Token.

 

Voltando ao seu codigo

 


if ($result == "VERIFICADO") {
	//O post foi validado pelo PagSeguro.
} else if ($result == "FALSO") {
	//O post não foi validado pelo PagSeguro.
} else {
	//Erro na integração com o PagSeguro.
}	

 

Nessa parte onde está comentádo (" //O post foi validado pelo PagSeguro.") você poderá inserir seu codigo que grava no banco de dados.

em "O post não foi validado pelo PagSeguro." ou "Erro na integração com o PagSeguro.", voce poderá inserir um codigo qualquer que grave log, envie email...qualquer coisa para você identificar qeu o post não foi validado pelo pagSeguro, só não vai tentar imprimir na tela "não validado pelo PagSeguro...", porque o post é enviado em outra sessão ( em segundo plano ).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua explicação foi mto boa msm !!

mais eu queria saber quando eu vou mandar

para esse arquivo: pagseguro.php q eu mostrei ali em baixo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Configurei no Painel do PagSeguro a

`URL DE RETORNO´ ELA RETORNOU TD CERTO

mais ai ela cai nesse parte do codigo

 

        if (count($_POST) > 0) {

    // POST recebido, indica que é a requisição do NPI.
    $npi = new PagSeguroNpi();
    $result = $npi->notificationPost();

    $transacaoID = isset($_POST['TransacaoID']) ? $_POST['TransacaoID'] : '';

    if ($result == "VERIFICADO") {
       //O post foi validado pelo PagSeguro.			  
    } else if ($result == "FALSO") {
       //O post não foi validado pelo PagSeguro.
    } else {
      //Erro na integração com o PagSeguro.
    }

       } else {
    // POST não recebido, indica que a requisição é o retorno do Checkout PagSeguro.
   //  No término do checkout o usuário é redirecionado para este bloco.

         print('<h3>Obrigado por efetuar a compra.</h3>');
       }

 

ELE ENTROU NO ´ELSE` DA MSG.:

 

Obrigado por efetuar a compra

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente você está se referindo que na hora em que ele finalizou a compra o cliente foi redirecionado para sua URL de retorno então ele caiu nesse else, correto?

 

O PagSeguro não envia os posts nessa hora que redireciona o usuário para sua pagina de retorno. Ele envia todos os posts sempre em segundo. Ou seja, esse Obrigado por efetuar a compra, é somente alguma coisa para voc~e deixar para o usuario, uma tela de agradecimento.

 

 

Já viu esse tópico?

 

 

http://forum.imasters.com.br/topic/295416-retorno-automatico-pagseguro/page__view__findpost__p__1079638

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu gostaria de saber se campo ref_transacao teria alguma a ver ??

para dps q eu finalizar a comprar no pagseguro ele ser redirecionado para um

pagina q eu inseria a compra no banco

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.