tudo em paz? Galera estou com um problema sério. Dou manutenção em um site de compra coletiva, obviamente ele trabalha com vendas online, o sistema de pagamento é o PagSeguro. Ontem migrei o site de servidor, só que preservei todas as senhas de acesso ao banco, arquivos e dados do banco de dados. Depois dessa migração o PagSeguro não retorna mais o status correto da compra, tipo "Em análise", "Cancelado", entre outros. Ao invés disso está retornando um status chamado "Novo" que não era pra existir. Não sou especialista em PagSeguro, mas dei uma lida sobre e vi que o link respoonsável pelo retorno de dados é configurável, no meu caso é o arquivo retorno.php.
Pergunta
Rafael Rocha B.
Opa pessoal,
tudo em paz? Galera estou com um problema sério. Dou manutenção em um site de compra coletiva, obviamente ele trabalha com vendas online, o sistema de pagamento é o PagSeguro. Ontem migrei o site de servidor, só que preservei todas as senhas de acesso ao banco, arquivos e dados do banco de dados. Depois dessa migração o PagSeguro não retorna mais o status correto da compra, tipo "Em análise", "Cancelado", entre outros. Ao invés disso está retornando um status chamado "Novo" que não era pra existir. Não sou especialista em PagSeguro, mas dei uma lida sobre e vi que o link respoonsável pelo retorno de dados é configurável, no meu caso é o arquivo retorno.php.
O conteúdo do arquivo retorno.php segue abaixo:
<?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(); ?>Alguém já passou por isso?
Editado por *FIT*Adicionar as Tags [code].
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.