Ir para conteúdo

POWERED BY:

Arquivado

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

tamires

Três problemas com pag seguro

Recommended Posts

Olá!

Estou com 3 problemas na no retorno automático do PagSeguro. Já procurei o suporte mas não obtive resposta.

1 - O valor dos produtos está sendo retornado de forma errada. Qualquer produto que custe mil reais ou mais perde alguns digitos. Se eu deixo a variavel sem tratamento nenhum ele cadastra mil e quinhentos reais como 1 real e 50 cents. Se eu coloco number_format($var,2,",","."), ele cadatra como um real. Muito esquisito isso, até por que qualquer coisa que custe menos de mil retorna corretamente.

2 - Meu campo "referência" não retorna nada. Antes eu estava passando ele assim:

<input type="hidden" name="Referencia" value="<?php echo $linhas_find_cli['id_user_dados']?>"/>
Ai pelo que pesquisei, estava errado. Então comecei a passar assim:

<input type="hidden" name="ref_transacao" value="<?php echo $linhas_find_cli['id_user_dados']?>"/>
mas continua sem retornar nada.

3 - O mesmo acontece com o campo anotação... estou passando assim:

<input type="hidden" name="anotacao" value="1"/>
E ele não me retorna nada.

 

Obrigada pela ajuda

 

Tamires

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 - Esse "cadastra mil e quinhentos reais" seria no SQL ou no sistema do pagseguro?

2 e 3 - não entendi a parte do retorna, você se refere a variavel

$linhas_find_cli['id_user_dados']
ou ao pagseguro?

 

Atenciosamente Silverfox

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 - Esse "cadastra mil e quinhentos reais" seria no SQL ou no sistema do pagseguro?

2 e 3 - não entendi a parte do retorna, você se refere a variavel

$linhas_find_cli['id_user_dados']
ou ao pagseguro?

 

Atenciosamente Silverfox

 

1 - Sim na hora de cadastrar o SQL ele retorna dessa forma. No PagSeguro o boleto é gerado com valor correto. Já verifiquei o campo no banco, está correto o tipo de dados.

2 - Quanto ao retorno, eu postei o input "referencia" com esse "linhas_find_cli" para mostrar como estou passando o campo. O valor é enviado para o PagSeguro mas no retorno estou tendo problemas com esses dois campos que postei, pois eles estão voltando vazios.

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teria como o colocar o script de forma mais completa (sem o TOKEN para sua segurança), provavelmente você esta confundindo algo (ao meu ver) =)

Acho que talvez você esteja trocando alguma variável. Espero que eu possa lhe ajudar.

 

Atenciosamente Silverfox.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claro, segue abaixo!

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

	//procura email do adm para o envio dos emails
	$query_find_par=mysql_query("select valor from lfp_site_parametro where id_site_parametro =2") or die("Erro ao acessar dados. Erro: ".mysql_error());
	$linhas_find_par=mysql_fetch_array($query_find_par);
	//$fromaddress = $linhas_find_par['valor'];
	$fromaddress = "email_para_teste";
	
	//funcao de retorno automatico
	function retorno_automatico ($VendedorEmail, $TransacaoID, $Referencia, $TipoFrete,
$ValorFrete, $Anotacao, $DataTransacao, $TipoPagamento,
$StatusTransacao, $CliNome, $CliEmail, $CliEndereco,
$CliNumero, $CliComplemento, $CliBairro, $CliCidade,
$CliEstado, $CliCEP, $CliTelefone, $produtos, $NumItens
) 
	{
		//trata vars
		$TransacaoID = $_POST['TransacaoID'];
		$Referencia= $_POST['Referencia'];
		$DataTransacao= $_POST['DataTransacao'];
		$StatusTransacao= $_POST['StatusTransacao'];
		$Anotacao= $_POST['Anotacao'];
		
		//verifica se o pedido existe
		$pedido = mysql_query("SELECT * FROM lfp_pedido WHERE TransacaoID='".$TransacaoID."'");
		$linhas=mysql_num_rows($pedido);
		if($linhas==0){
			//deleta produtos do carrinho e cookie
			mysql_query("DELETE FROM lfp_carrinho WHERE clienteId = $Referencia");
			setcookie("cartId","", time()-3600); 
			
			//insert do pedido
			mysql_query("INSERT INTO lfp_pedido (TransacaoID, fk_user_dados, data_hora, pago, atendido, termos, data_final, tipo) VALUES ('$TransacaoID', '$Referencia', STR_TO_DATE('$DataTransacao', '%Y-%m-%d %H:%m:%S'), '$StatusTransacao', 'Sim', 'S', DATE_ADD(now(),INTERVAL 30 DAY), '$Anotacao')");
			
			//insert prods
			for($i=1;isset($_POST["ProdID_1"]);$i++){
				$produto = $_POST["ProdID_{$i}"];
				if($produto != ''){    
					$ProdID = $_POST["ProdID_{$i}"];
					$ProdDescricao = $_POST["ProdDescricao_{$i}"]; 
					$ProdValor = number_format($_POST["ProdValor_{$i}"],2,".",","); 
					$valorTotal = number_format($valorTotal + $_POST["ProdValor_{$i}"],2,".".",");
					mysql_query("INSERT INTO lfp_vinculo_pedido (TransacaoID, fk_img_cadastro, valor) VALUES ('$TransacaoID', '$ProdID', '$ProdValor')");
					
					//envia e-mail para o colaborador
					$query_find_col=mysql_query("SELECT email from lfp_user_dado AS user INNER JOIN lfp_img_cadastro AS img
												ON user.id_user_dados = img.fk_id_user_dado
												WHERE id_img_cadastro =".$ProdID);
					$linhas_find_col=mysql_fetch_array($query_find_col);
					
					//dados do email sobre a venda
					//$toaddress = $linhas_find_col['email'];
					$toaddress = "email_para_teste";
					//$fromaddress = $linhas_find_par['valor'];
					$fromaddress = "email_para_teste";
					$assunto = "TituloMSG.";
					
					//msg
					$formatMessage = "MSG";
					$formatMessage .= "Data: " . date(d)."/".date(m)."/".date(Y)."<br>";
					$formatMessage .= "Hora: " . date(H).":".date(i).":".date(s)."<br>";
									
					//Função mail() para envio de mensagem para o colaborador
					mail("$toaddress","$assunto","$formatMessage","FROM: $fromaddress");	
				}
			}	
			
			//update do pedido - colocando o valor total da compra
			mysql_query("UPDATE lfp_pedido SET valor = '".$valorTotal."' WHERE TransacaoID='".$TransacaoID."'");
			
		}else{
			//update do pedido
			mysql_query("UPDATE lfp_pedido SET StatusTransacao = '".$StatusTransacao."' WHERE TransacaoID='".$TransacaoID."'");
		}
		
		if (isset($_POST)) {
		  $f=fopen ('pagseguro.log', 'a'); # o "a" é para ele "appendar" o conteúdo, ou seja, colocar ao final
		  fwrite($f, "'Recebeu o post, verificando junto ao PagSeguro'\n"); # escrevendo a mensagem, mais uma quebra de linha
		  fwrite($f, var_export( $_POST['TransacaoID'], true)); # imprime os dados no arquivo de log
		  fwrite($f, "\n---------\n\n"); # um espaço para separar as ocorrencias
		  fclose($f);  
		}
	}
	
	retorno_automatico($VendedorEmail, $TransacaoID, $Referencia, $TipoFrete,$ValorFrete, $Anotacao, $DataTransacao, $TipoPagamento,$StatusTransacao, $CliNome, $CliEmail, $CliEndereco,$CliNumero, $CliComplemento, $CliBairro, $CliCidade,$CliEstado, $CliCEP, $CliTelefone, $produtos, $NumItens);
	
	require_once("retorno.php");

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.