Jump to content

Archived

This topic is now archived and is closed to further replies.

admin

Retorno Automático PagSeguro

Recommended Posts

Pessoal,

 

Tenho algumas dúvidas que eu não consegui sanar em minhas pesquisas na web.

 

> O que acontecerá quando meu site por alguma razão (restart de servidor, manutencao de aplicacao, etc) perder o POST de confirmação do PagSeguro?

 

> O PagSeguro tentará fazer uma novo post após alguns minutos? Se sim, qual o número máximo de tentativas que ele fará? Com que frequencia será essas tentativas?

 

> Existe outra alternativa para consultar o status de uma transação no PagSeguro? Digo uma consulta direta do meu site => pagSeguro e não o inverso como é feito pelos componentes .NET feitos pela VISIE.

 

A minha preocupação é em ter usuários que PAGARAM e não receberam o pedido, pois em meu sistema o pagamento não está confirmado.

 

Mandei um e-mail para o PagSeguro. Enquanto aguardo gostaria de saber se vocês ainda não tiveram essa preocupação e se tiveram poderiam me indicar algum link para o material para eu ler?

 

Procurei no site do PagSeguro e não encontrei nada falando a respeito.

 

Um abraço.

Share this post


Link to post
Share on other sites

Olá amigos, estou com o seguinte problema:

 

Usando a aplicação local com o Servidor de teste do PagSeguro (feito pelo Teoni), o retorno automático envia o post e minha aplicação grava os dados retornados. Quanto publico minha aplicação no servidor o retorno automático não dá erro, mas também não grava nada na base.

 

alguém sabo que que pode ser o problema? A aplicação está em .NET

 

Segue o código:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

 

PGSRetorno.UrlNPI = "https://pagseguro.uol.com.br/pagseguro-ws/checkout/NPI.jhtml"

 

End Sub

 

Protected Sub PGSRetorno_VendaEfetuada(ByVal retornoVenda As UOL.PagSeguro.RetornoVenda) Handles PGSRetorno.VendaEfetuada

 

Dim formapgto As String = retornoVenda.TipoPagamento.ToString

status = retornoVenda.StatusTransacao.ToString

 

'grava venda

 

End Sub

Share this post


Link to post
Share on other sites

Olá amigos, estou com o seguinte problema:

 

Usando a aplicação local com o Servidor de teste do PagSeguro (feito pelo Teoni), o retorno automático envia o post e minha aplicação grava os dados retornados. Quanto publico minha aplicação no servidor o retorno automático não dá erro, mas também não grava nada na base.

 

alguém sabo que que pode ser o problema? A aplicação está em .NET

 

Segue o código:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

 

PGSRetorno.UrlNPI = "https://pagseguro.uol.com.br/pagseguro-ws/checkout/NPI.jhtml"

 

End Sub

 

Protected Sub PGSRetorno_VendaEfetuada(ByVal retornoVenda As UOL.PagSeguro.RetornoVenda) Handles PGSRetorno.VendaEfetuada

 

Dim formapgto As String = retornoVenda.TipoPagamento.ToString

status = retornoVenda.StatusTransacao.ToString

 

'grava venda

 

End Sub

 

Moleza ... você ta fazendo alguma m*****. E essa m***** da pau só na producao. Como o post é entre o servidor do pagseguro e o seu servidor quem verá o erro é o servidor do pagseguro e nao você =). Tente fazer logar todo e qualquer erro em arquivo texto em algum local e verá o problema. =)

Share this post


Link to post
Share on other sites

Alguem poderia me informar como configurar o retorno automático em asp. Fiz alguns testes e sempre me retorna falso na verificação.

 

Obrigado.

Share this post


Link to post
Share on other sites

Alguém por favor poderia me ajudar criei 3 páginas venda0.php, venda1.php e venda2.php para as compras do meu produto. Onde venda0.php é para cadastrar a quantidades desejada onde chama o venda1.php que envia os dados necessários para o pagseguro. Muito bem funcionou e inclusive o cliente já até pagou e o status do pagseguro esta como pago. Mas quando acesso venda2.php aparece a mesma mensagem anterior "Obrigado por efetuar a compra" e não estou conseguindo chamar o "StatusTransacao" atual do retorno automático. poderia me ajudar. Qual quer coisa meu e-mail é edinaldoprof@comerciovirtual.pro.br - peço por favor que me ajudem... estou enviando os dados abaixo:

 

venda0.PHP ===============================================================================================

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<!-- INICIO FORMULARIO de Pedido -->
	<form action="venda1.php" method="post"  onSubmit="return ValidaSemPreenchimento(this)">
		<table width="699" border="0" align="center" widt=100%>

			<tr>
            	<td width="13"><span class="style1">*</span></td>
				<td width="202">E-mail do comprador:<td width="470"><input type="text" size="80" maxlength="100" name="email" obrigatorio="1"></td>
			</tr>

			<tr>
            	<td><span class="style1">*</span></td>
				<td>Senha:</td><td><input type="password" size="8" maxlength="8" name="senha" id="Senha" obrigatorio="1"></td>
			</tr>

			<tr>
            	<td><span class="style1">*</span></td>
				<td>Quantidade de Cupons:</td><td><input type="text" size="3" maxlength="3" name="quant" id="Quantidade de Cupons" obrigatorio="1"></td>
			</tr>

			<tr>
            	<td><span class="style1">*</span></td>
				<td>Usuário 1:</td>
				<td><input type="text" size="50" maxlength="80" name="usuario_cupom" id="Usuario do Cupom 1" obrigatorio="1"></td>
			</tr>

			<tr>
            	<td> </td>
                <td> </td>
			</tr>
			<tr>
                <td> </td>
                <td><input type="submit" name="login" value="Login" id="Login"></td><td> </td>
			</tr>
		</table>
	</form>
<!-- Fim FORMULARIO de Pedido -->
</body>
</html>

venda1.php ============================================================================

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
include "connect.php";

$hoje=date("Y-m-d");
$senha=$_POST["senha"];
$email=$_POST["email"];
$quantunit=$_POST["quant"];
$usuario_cupom=$_POST["usuario_cupom"];

$sql="select * from bdclientes where email='$email'";
$res=mysql_query($sql);
$cad=mysql_fetch_assoc($res);

$nome2=$cad["nome"];
$email2=$cad["email"];
$senha2=$cad["senha"];

if ($email2==""){
	?>
	<script>
		alert("E-mail não cadastrado!!!");
		location.href=("cadastro.php")
	</script>
   	<?php
}

if ($senha2<>$senha){
	?>
	<script>
		alert("Senha não confere!");
		location.href=("compra_pagseguro.php")
	</script>
   	<?php
}

/*if ($quantunit>2){
	?>
   	<script>
		alert("No máximo 2 cupons!!!");
		location.href=("compra_pagseguro.php")
	</script>
	<?php
}*/

$sql="select * from ofertas where ativo='S'";
$res=mysql_query($sql);
$cad=mysql_fetch_assoc($res);

$id_oferta=$cad["id_oferta"];
$descricao=$cad["descricao"];
//variável $quantunit
$preco=$cad["preco"];
$ativo=$cad["ativo"];
//variável 	$usuario_cupom
$pagou="N";
//variável $email
$endereco=$cad["endereco"];
$referencia=$cad["referencia"];
$valor_original=$cad["valor_original"];
$validade=$cad["validade"];
$regra1=$cad["regra1"];
$regra2=$cad["regra2"];
$regra3=$cad["regra3"];
$regra4=$cad["regra4"];
$regra5=$cad["regra5"];
$regra6=$cad["regra6"];
$regra7=$cad["regra7"];
$total = $quantunit * $preco;

$insere="insert into descontos(descricao,quant,preco,ativo,usuario,pagou,email,endereco,referencia,valor_original,validade,regra1,regra2,regra3,regra4,regra5,regra6,regra7,presente,data_compra) values ('$descricao','$quantunit','$preco','$ativo','$usuario_cupom','$pagou','$email','$endereco','$referencia','$valor_original','$validade','$regra1','$regra2','$regra3','$regra4','$regra5','$regra6','$regra7','$presente','$hoje')";
mysql_query($insere) or die ("Ocorreu um erro!");

$sql="select * from descontos where email='$email' and data_compra='$hoje'";
$res=mysql_query($sql);
$cad=mysql_fetch_assoc($res);

$ref_transacao=$cad["id_desconto"];

?>

<form target="pagseguro" method="post" action="https://pagseguro.uol.com.br/checkout/checkout.jhtml">
	<input type="hidden" name="email_cobranca" value="g.libonati@hotmail.com">
	<input type="hidden" name="tipo" value="CP">
	<input type="hidden" name="moeda" value="BRL">
	<input type="hidden" name="ref_transacao" value="<?php echo $ref_transacao; ?>">
	<input type="hidden" name="encoding" value="UTF-8">
    
	<input type="hidden" name="item_id_1" value="<?php echo $id_oferta; ?>">
	<input type="hidden" name="item_descr_1" value="<?php echo $descricao; ?>">
	<input type="hidden" name="item_quant_1" value="<?php echo $quantunit; ?>">
	<input type="hidden" name="item_valor_1" value="<?php echo $total; ?>">
	<input type="hidden" name="item_frete_1" value="0">
	<input type="hidden" name="item_peso_1" value="0">

	<!-- Caso queira mais itens no carrinho
    <input type="hidden" name="item_id_2" value="67890">
	<input type="hidden" name="item_descr_2" value="Descrição do item 2 a ser vendido">
	<input type="hidden" name="item_quant_2" value="1">
	<input type="hidden" name="item_valor_2" value="199">
	<input type="hidden" name="item_frete_2" value="0">
	<input type="hidden" name="item_peso_2" value="0">
    -->

	<input type="hidden" name="tipo_frete" value="EN">
	<input type="image" src="images/botao.gif"  height="150" name="submit" alt="Pague com PagSeguro - é rápido, grátis e seguro!">
</form>

</body>
</html>

venda2.php ==============================================================================

 

<?php

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

define('TOKEN', '221E233A241741F297604486DC11DA81q');

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
}

?>

Share this post


Link to post
Share on other sites

Pessoal, o retorno automático volta para o meu site sem nada (sem nenhum dado POST). Os IPs do PagSeguro (200.221.19.20 e 200.221.19.4, segundo informação neste post) não estão bloqueados no meu servidor. Já quando efetuamos um telnet a partir dele para estes IPs, a requisição não responde.

Alguém tem alguma ideia das possíveis causas q podem levar à não chegada destes dados POST à página de retorno do meu site?

Share this post


Link to post
Share on other sites

Pessoal, o retorno automático volta para o meu site sem nada (sem nenhum dado POST). Os IPs do PagSeguro (200.221.19.20 e 200.221.19.4, segundo informação neste post) não estão bloqueados no meu servidor. Já quando efetuamos um telnet a partir dele para estes IPs, a requisição não responde.

Alguém tem alguma ideia das possíveis causas q podem levar à não chegada destes dados POST à página de retorno do meu site?

 

Somos 2, fiz de tudo... não entra nesse if de jeito nenhum na página de retorno:

 

if(count(@$_POST) > 0)

{

//POST RÔBO PAGSEGURO / AQUI EU gravo o LOG EM ARQUIVO

}

else

{

//CLIENTE / AQUI EU gravo o LOG EM ARQUIVO

}

 

no log só aparece os dados do 'else' , isto é, nunca entra no if(count(@$_POST) > 0)

 

alguma sugestão , galera?

 

abraço

Share this post


Link to post
Share on other sites

Pessoal,

 

Sou leigo no assunto, mas estou tentando montar uma loja virtual com meus produtos. Aos poucos estou progredindo. E agora vou precisar da ajuda de vocês para esclarecer um lance sobre esse tal POST.

 

Eu coloquei o código conforme especificado no site do Pagseguro na página de retorno do meu site. Mas queria saber o que isso faz e porque tem que ser colocado. Eu fiz alguns testes de compra no meus site e eu recebo um email informando que foi comprado no site, as informações estão lá no Pagseguro quando faço o acesso a minha conta. O que mais falta? Não sei se está funcionando porque não sei o que deveria estar acontecendo a mais.

 

Aguardo resposta.

 

Valeu!

Share this post


Link to post
Share on other sites

Pessoal,

...Mas queria saber o que isso faz e porque tem que ser colocado. Eu fiz alguns testes de compra no meus site e eu recebo um email informando que foi comprado no site, as informações estão lá no Pagseguro quando faço o acesso a minha conta. O que mais falta? Não sei se está funcionando porque não sei o que deveria estar acontecendo a mais.

 

Valeu!

 

O retorno automático serve para voce acompanhar passo a passo o status de cada transição. Cada vez que a transação muda de status, um novo POST é enviado para a URL indicada

 

Segue link com detalhes do funcionamento do retorno automático:

 

https://pagseguro.uo..._de_dados.jhtml

Share this post


Link to post
Share on other sites

Lembrem-se de habilitar os módulos PHP_CURL e PHP_OPENSSL no PHP. Senão a validação nunca será feita, já que a validação via HTTP retorna "403 Forbidden".

 

Espero ter ajudado

Share this post


Link to post
Share on other sites

Olá pessoal, sou novo com o Pagseguro e já estou enfrentando um problemão do tamanho do mundo. Se alguém poder me dar uma dica, uma luz eu agradeceria muito.

Vou resumir a situação.

 

Fiz a migração de um sistema web que utiliza o PagSeguro de um plano de hospedagem compartilhada para um plano de hospedagem dedicada. Na migração preservei todos os arquivos, banco de dados e senhas do servidor compartilhado. Até ai tudo bem, o sistema está rodando direitinho, com excessão do PagSeguro que não retorna mais o status dos pedidos. Já verifiquei a url de retorno, no caso, http://www.baiaodeofertas.com.br/retorno.php, no administrador do PagSeguro, verifiquei a existência do arquivo retorno.php, já gerei um novo token e atualizei no meu sistema e nada. A única diferença que notei do servidor compartilhado para o dedicado foi o modo de acesso, que no compartilhado era FTP e no dedicado é SFTP - SSH, será que pode ser isso? Falei com o pessoal do HOST sobre as portas, e eles me informaram que o meu servidor dedicado é configurado por defalut com as portas: http (porta 80) e https (porta 443). Pensei também que o IP do servidor dedicado podesse está bloqueado, porém o suporte me disse que não.

 

Código do arquivo de retorno:

<?php

ob_start();

 

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

header("Cache-Control: private, no-store, no-cache, must-revalidate");

header("Cache-Control: post-check=0, pre-check=0", false);

header("Pragma: no-cache");

 

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

require_once('Connections/compras.php');

 

mysql_select_db($database_compras, $compras);

$query_ptgo = "SELECT * FROM pagseguro";

$ptgo = mysql_query($query_ptgo, $compras) or die(mysql_error());

$row_ptgo = mysql_fetch_assoc($ptgo);

 

define('TOKEN', $row_ptgo['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) {

 

$npi = new PagSeguroNpi();

$result = $npi->notificationPost();

 

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

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

 

mysql_select_db($database_compras, $compras);

$query_pedido = "UPDATE pedidos SET situacao = '".$StatusTransacao."' WHERE id = '".str_replace("Cód Pedido - ","",$Referencia)."'";

mysql_query($query_pedido, $compras) or die(mysql_error());

 

}

 

ob_end_clean();

header("Location: index.php");

exit();

 

?>

Share this post


Link to post
Share on other sites

Pessoal sou novo aqui, desculpe se fiz algo errado em relação à postagem.

Por favor me orientem se for o caso.

 

Estou integrando o pagseguro com o site que estou desenvolveno e preciso saber se fiz certo.

Ele usa a variável "prodid" para indicar se vou dar 30, 90 ou 5 dias de acesso ao site.

E a "referencia" para indicar o id do usuario que terá acesso.

Segue meu código:

 

<?php
include("conexao.php");
header('Content-Type: text/html; charset=ISO-8859-1');
define('TOKEN', 'porRazaoDeSegurancaOmitioToken');
class PagSeguroNpi {
	private $timeout = 20;
	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();
	//pegando meus dados do post
	$tempoAcesso = $_POST['ProdID_1'];
	$idEmpregador = $_POST['Referencia'];
	$StatusTransacao = $_POST['StatusTransacao'];
	$TransacaoID = $_POST['TransacaoID'];
	error_log("Recebemos o post! Status: ".$StatusTransacao." Tempo acesso: ".$tempoAcesso." Empregador: ".$idEmpregador." ID: ".$TransacaoID, 0);
	$transacaoID = isset($_POST['TransacaoID']) ? $_POST['TransacaoID'] : '';
	//fazendo a cehcagem e gravando no banco
	if ($StatusTransacao == 'Completo' || $StatusTransacao == 'Aprovado') {
		error_log("Transação completa!", 0);
		$sqlFaltaDias = mysql_query("SELECT liberado, DATEDIFF(liberado,CURDATE()) AS verificaDias FROM empregador WHERE id='$idEmpregador'") or die(mysql_error());
		$resultDias = mysql_fetch_assoc($sqlFaltaDias);
		$data = $resultDias['liberado'];
		$diasLiberado = $resultDias['verificaDias'];
		if ($diasLiberado > 0) {
			if ($tempoAcesso == 1) {
				$sql = mysql_query("UPDATE empregador SET liberado=(DATE_ADD('$data', INTERVAL 30 DAY)) WHERE id='$idEmpregador'") or die(mysql_error());
			} elseif ($tempoAcesso == 2) {
				$sql = mysql_query("UPDATE empregador SET liberado=(DATE_ADD('$data', INTERVAL 90 DAY)) WHERE id='$idEmpregador'") or die(mysql_error());
			} elseif ($tempoAcesso == 3) {
				$sql = mysql_query("UPDATE empregador SET liberado=(DATE_ADD('$data', INTERVAL 5 DAY)) WHERE id='$idEmpregador'") or die(mysql_error());
			}
		} else {
			if ($tempoAcesso == 1) {
				$sql = mysql_query("UPDATE empregador SET liberado=(DATE_ADD(CURDATE(), INTERVAL 30 DAY)) WHERE id='$idEmpregador'") or die(mysql_error());
			} elseif ($tempoAcesso == 2) {
				$sql = mysql_query("UPDATE empregador SET liberado=(DATE_ADD(CURDATE(), INTERVAL 90 DAY)) WHERE id='$idEmpregador'") or die(mysql_error());
			} elseif ($tempoAcesso == 3) {
				$sql = mysql_query("UPDATE empregador SET liberado=(DATE_ADD(CURDATE(), INTERVAL 5 DAY)) WHERE id='$idEmpregador'") or die(mysql_error());
			}
		}
	}		
	if ($result == "VERIFICADO") {
		error_log("VERIFICADO", 0);
	} else if ($result == "FALSO") {
		error_log("FALSO", 0);
	} else {
		error_log("ERRO INTEGRAÇÃO", 0);
	}
} else {
	error_log("Saida", 0);
	?>
	<h1>Obrigado por efetuar a compra!</h1>
	Assim que o pagamento for compensado, você receberá um email e o acesso será liberado automaticamente!
	<br />A equipe <strong>@ Porta Aberta</strong> lhe deseja sucesso em sua busca por profissionais!
	<?php
}
?>

 

Estou usando o error_log só pra gravar as saídas.

Vou fazer pagamentos testes agora, mas queria saber de vocês se está ok...

 

Muito obrigado!

Share this post


Link to post
Share on other sites

Pessoal,

 

Tenho algumas dúvidas que eu não consegui sanar em minhas pesquisas na web.

 

> O que acontecerá quando meu site por alguma razão (restart de servidor, manutencao de aplicacao, etc) perder o POST de confirmação do PagSeguro?

 

> O PagSeguro tentará fazer uma novo post após alguns minutos? Se sim, qual o número máximo de tentativas que ele fará? Com que frequencia será essas tentativas?

 

> Existe outra alternativa para consultar o status de uma transação no PagSeguro? Digo uma consulta direta do meu site => pagSeguro e não o inverso como é feito pelos componentes .NET feitos pela VISIE.

 

A minha preocupação é em ter usuários que PAGARAM e não receberam o pedido, pois em meu sistema o pagamento não está confirmado.

 

Mandei um e-mail para o PagSeguro. Enquanto aguardo gostaria de saber se vocês ainda não tiveram essa preocupação e se tiveram poderiam me indicar algum link para o material para eu ler?

 

Procurei no site do PagSeguro e não encontrei nada falando a respeito.

 

Um abraço.

 

 

Mesma dúvida e mesmo problema. Não achei a resposta. Se achar, por favor me informe.

 

O que acontece quando falha?

 

Suponha, por exemplo, uma falha na conexão, ou meu servidor está fora do ar, então o meu POST para a UrlNPI do PagSeguro retorna errado, ou nem retorna. O que acontece?

 

O PagSeguro repete o POST até conseguir uma resposta válida? Quantas vezes? De quanto em quanto tempo?

 

O PagSeguro não repete o POST e eu perco a informação?

Share this post


Link to post
Share on other sites

Eu tive o mesmo problema que todos.

Entrei em contato pelo msn com o desenvolvedor de lá e ele me repassou um script que retornava o log.

Só assim consegui resolver o meu problema.

Na realidade o script em php que consta no pagseguro não funciona.

 

em

// Recebendo Dados

 

tire tudo que está lá e coloque

 

foreach( $_POST as $campo => $vlr){ $$campo = AntiInjection($vlr); }

 

coloque tb junto com as funções

 

function AntiInjection($param){

$param = strip_tags($param); // retirar as tags html

$param = mysql_escape_string($param); //Retirar todas tags referentes do mysql ex: select, insert, update drop etc...

return $param;

}

 

poderão ver que vai funcionar direitinho.

 

att,

 

Anna Ramos

www.acror.com.br

Share this post


Link to post
Share on other sites

Pessoal como a API de notificação mostra todos dados enviados pelo retorno automático, e ainda tem dados a mais, sem contar que é mais seguro, e mais fácil de programar, então segue tutorial de como implementar...

 

http://sounoob.com.br/2011/09/06/recebendo-notificacoes-do-pagseguro-usando-php-sem-utilizar-a-biblioteca-oficial/

Share this post


Link to post
Share on other sites

Olá,

pessoal estou com algumas dificuldades para fazer a integração com o método de assinaturas do Pagseguro, através do botão gerado automaticamente consigo fazer o pagamento e receber as notifications em background, porém não consigo associar a notification ao pedido no meu banco de dados.

 

segue minhas duvidas:

 

1 - No final da compra ele está ficando na tela do pagsgeuro e não está retornando para o meu site.

2 - Como faço para passar o valor de referencia(id do pedido no meu banco), pode ser pela api ou pelo gerador de botões?

3 - A cada mês que passar da assinatura o pagseguro me envia uma nova notification com um id diferente?

 

obs: estou utilizando php

 

Obrigado,

Att Tales Galvão

Share this post


Link to post
Share on other sites

Tales, você leu o título do post? Aqui era para ser sobre retorno automático, você está falando sobre assinatura pagseguro + api de notificações, isso é coisa diferente.

 

Sem contar que você fez outro post com exatamente a mesma pergunta, sei que deve estar preocupado com a solução do problema, porem vamos tentar manter a ordem nesse forum.

Share this post


Link to post
Share on other sites

Tales, você leu o título do post? Aqui era para ser sobre retorno automático, você está falando sobre assinatura pagseguro + api de notificações, isso é coisa diferente.

 

Sem contar que você fez outro post com exatamente a mesma pergunta, sei que deve estar preocupado com a solução do problema, porem vamos tentar manter a ordem nesse forum.

 

 

Ok desculpe,

vou manter este assunto somente no tópico que abri.

 

Att

Share this post


Link to post
Share on other sites

Sei que é muito chato reabertura de tópico, mas esse caso serve perfeitamente

 

A API "nova" de integração, não envia nada no NPI? Ja tentei configurar tudo, mesmo habilitando as funções antigas, continua não enviando nada. Gostaria de deixar habilitado somente as funções na "nova" API (entre aspas por que ja não é tão nova, mas está no painel do PS como nova)

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.