Ir para conteúdo

POWERED BY:

Arquivado

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

Dexter Morgan

[Resolvido] Erro no Retorno

Recommended Posts

Boa noite, seguinte o código abaixo quando retorna do pagseguro nao consegue pegar os dados que estão na sessao e o id do cliente logado, que precisa cadastrar no banco:

 

<?php session_start(); ?>

<?php

header('Content-Type: text/html; charset=ISO-8859-1');
include 'PagSeguroRetornoConfig.php'; 
include 'PagSeguroRetornoFunc.php';
define('TOKEN', $retorno_token);
if(count($_POST) > 0){
$npi = new PagSeguroNpi();
$result = $npi->notificationPost();
$transacaoID = isset($_POST['TransacaoID']) ? $_POST['TransacaoID'] : '';
if($result == "VERIFICADO"){
$TransacaoID = $_POST['TransacaoID'];
$TipoPagamento = $_POST['TipoPagamento'];
$StatusTransacao = $_POST['StatusTransacao'];

$id_pedido = @mysql_result(mysql_query("SELECT id_pedido FROM pedidos ORDER BY id_pedido DESC"));
mysql_query("INSERT INTO pedidos VALUES ('$id_pedido', '".$_COOKIE["id_cliente"][id_cliente]."', '$TransacaoID')");
$sql_id = "SELECT * FROM pedidos WHERE id_pedido = LAST_INSERT_ID()";
$resultado_id = mysql_query($sql_id) or die (mysql_error());
if(mysql_num_rows($resultado_id) < 1){
echo "";
}
else{
while($linha = mysql_fetch_array($resultado_id)){
$id_pedido = $linha["id_pedido"];
$data = date("Ymd");
$id_compra = @mysql_result(mysql_query("SELECT id_compra FROM compras ORDER BY id_compra DESC"));
mysql_query("INSERT INTO compras VALUES ('$id_compra', '$id_pedido', '$data', '$StatusTransacao', '$TipoPagamento', '".$_SESSION[totalprodutos]."', '".$_SESSION[valortotal]."')");
$id_item = @mysql_result(mysql_query("SELECT id_item FROM itens ORDER BY id_item DESC"));
$chave_cesta = @array_keys($_SESSION[cesta]);
for($i = 0; $i < sizeof($chave_cesta); $i++){
$indice = $chave_cesta[$i];
mysql_query("INSERT INTO itens VALUES ('$id_item', '$id_pedido', '".$_SESSION[cesta][$indice][iD]."', '".$_SESSION[cesta][$indice][PRODUTO]."', '".$_SESSION[cesta][$indice][QTDE]."', '".$_SESSION[cesta][$indice][PRECO]."', '".$_SESSION[cesta][$indice][MEDIDA]."', '".$_SESSION[cesta][$indice][COR]."', '".$_SESSION[cesta][$indice][iLUMINARIA]."')");
}
}
}

}
}
else{
session_unregister("totalprodutos");
session_unregister("valortotal");
session_unregister("cesta");
echo "<meta http-equiv=\"refresh\" content=\"0; url=ends.php\">";
}

?>

 

eu precisei midificar o código porque nao estava recebendo TransacaoID, TipoPagamento e StatusTransacao, mas agora nao ta cadastrando o os dados da sessão, o código antigo é esse:

 

<?php session_start(); ?>

<?php

header("Content-Type: text/html; charset=ISO-8859-1");
define("TOKEN", "F61607483411433DA5DC14B1AD9A70D1");
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){
$npi = new PagSeguroNpi();
$result = $npi->notificationPost();
$transacaoID = isset($_POST["TransacaoID"]) ? $_POST["TransacaoID"] : '';
if($result == "VERIFICADO"){
}
elseif($result == "FALSO"){
}
else{
}
}
else{

?>

<?php

include "connection.php";

if($_COOKIE["id_cliente"][NOME] == null){
echo "<meta http-equiv=\"refresh\" content=\"0; url=account.php\">";
}
else{

$TransacaoID = $_POST["TransacaoID"];
$TipoPagamento = $_POST["TipoPagamento"];
$StatusTransacao = $_POST["StatusTransacao"];

$id_pedido = @mysql_result(mysql_query("SELECT id_pedido FROM pedidos ORDER BY id_pedido DESC"));
mysql_query("INSERT INTO pedidos VALUES ('$id_pedido', '".$_COOKIE["id_cliente"][id_cliente]."', '$TransacaoID')");
$sql_id = "SELECT * FROM pedidos WHERE id_pedido = LAST_INSERT_ID()";
$resultado_id = mysql_query($sql_id) or die (mysql_error());
if(mysql_num_rows($resultado_id) < 1){
echo "";
}
else{
while($linha = mysql_fetch_array($resultado_id)){
$id_pedido = $linha["id_pedido"];
$data = date("Ymd");
$id_compra = @mysql_result(mysql_query("SELECT id_compra FROM compras ORDER BY id_compra DESC"));
mysql_query("INSERT INTO compras VALUES ('$id_compra', '$id_pedido', '$data', '$StatusTransacao', '$TipoPagamento', '".$_SESSION[totalprodutos]."', '".$_SESSION[valortotal]."')");
$id_item = @mysql_result(mysql_query("SELECT id_item FROM itens ORDER BY id_item DESC"));
$chave_cesta = @array_keys($_SESSION[cesta]);
for($i = 0; $i < sizeof($chave_cesta); $i++){
$indice = $chave_cesta[$i];
mysql_query("INSERT INTO itens VALUES ('$id_item', '$id_pedido','".$_SESSION[cesta][$indice][PRODUTO]."', '".$_SESSION[cesta][$indice][QTDE]."', '".$_SESSION[cesta][$indice][PRECO]."', '".$_SESSION[cesta][$indice][MEDIDA]."', '".$_SESSION[cesta][$indice][COR]."', '".$_SESSION[cesta][$indice][iLUMINARIA]."')");
}
}
}

}
}

session_unregister("totalprodutos");
session_unregister("valortotal");
session_unregister("cesta");

echo "<meta http-equiv=\"refresh\" content=\"0; url=ends.php\">";

?>

<?php } ?>

 

e outro detalhe quando o pag seguro redireciona para o meu site, nessa pagina acima [1°] mostra isso rapidamente  o que isso??

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.