Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal estou para ficar doido rsrs, fiz um script para pegar os dados que a api de pagamentos do pagseguro retorna e de acordo com alguns parâmetros que defini ele atualiza o valor de uma linha da tabela 'usuários'.
Minha idéia é a seguinte, na hora que o usuário gera a ordem de pagamento o script pega o valor do produto e soma 5% e depois o arquivo que pega os dados da api faz a seguinte conta para voltar ao valor original: exemplo: o valor do produto era 370 e com + 5% é igual a 388,50 e para voltar a 370 eu faço 388,50 / 1.05 que é igual a 370. Mais ele está gravando no banco de dados 369.52
já defini o campo da tabela como decimal(10,2) mas mesmo assim não da certo.
coloquei meu script logo abaixo caso queiram dar uma olhada
me ajudem por favor
<?php
header("access-control-allow-origin: [https://sandbox.pagseguro.uol.com.br](https://sandbox.pagseguro.uol.com.br)");
if (count($_POST)>0) {
$email = "meu@email.com";
$token = "ETOKEN";
$notificationCode = $_POST['notificationCode'];
$url = "https://ws.sandbox.pagseguro.uol.com.br/v2/transactions/notifications/".$notificationCode."?email=".$email."&token=".$token;
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
$http = curl_getinfo($curl);
if($response == 'Unauthorized'){
print_r($response);
exit;
}
curl_close($curl);
$response= simplexml_load_string($response);
$status = $response->status;
$ref = $response->reference;
$idusu = $response->items->item->id;
$valor = $response->items->item->amount;
$eventon = $response->items->item->description;
$calculo = $valor / 1.05;
if($status == 1){
require_once "Connections/conexao.php";
mysql_select_db($database_conexao, $conexao);
$procura = mysql_query("SELECT * FROM transacoes WHERE id = '$ref'", $conexao);
$contar = mysql_num_rows($procura);
if($contar > 0){
//aki faz o update
$update = "UPDATE transacoes SET status = 'Pendente' WHERE id = '$ref'";
mysql_select_db($database_conexao, $conexao);
mysql_query($update, $conexao) or die(mysql_error());
}else{
//aki faz o insert
$inserir = "INSERT INTO transacoes (idusuario, status, nome, valor) VALUES ('$idusu', 'Pendente', '$eventon', '$valor')";
mysql_select_db($database_conexao, $conexao);
mysql_query($inserir, $conexao) or die(mysql_error());
}
}
if($status == 2){
require_once "Connections/conexao.php";
mysql_select_db($database_conexao, $conexao);
$procura = mysql_query("SELECT * FROM transacoes WHERE id = '$ref'", $conexao);
$contar = mysql_num_rows($procura);
if($contar > 0){
//aki faz o update
$update = "UPDATE transacoes SET status = 'Pendente' WHERE id = '$ref'";
mysql_select_db($database_conexao, $conexao);
mysql_query($update, $conexao) or die(mysql_error());
}else{
//aki faz o insert
$inserir = "INSERT INTO transacoes (idusuario, status, nome, valor) VALUES ('$idusu', 'Pendente', '$eventon', '$valor')";
mysql_select_db($database_conexao, $conexao);
mysql_query($inserir, $conexao) or die(mysql_error());
}
}
if($status == 3){
require_once "Connections/conexao.php";
mysql_select_db($database_conexao, $conexao);
$procura = mysql_query("SELECT * FROM transacoes WHERE id = '$ref'", $conexao);
$contar = mysql_num_rows($procura);
if($contar > 0){
//aki faz o update
$update = "UPDATE usuarios SET creditos = creditos+$calculo WHERE id = '$idusu'";
$update2 = "UPDATE transacoes SET status = 'Aprovada' WHERE id = '$ref'";
mysql_select_db($database_conexao, $conexao);
mysql_query($update, $conexao) or die(mysql_error());
mysql_query($update2, $conexao) or die(mysql_error());
}else{
//aki faz o insert
$inserir = "INSERT INTO transacoes (idusuario, status, nome, valor) VALUES ('$idusu', 'Aprovada', '$eventon', '$valor')";
$update = "UPDATE usuarios SET creditos = creditos+$calculo WHERE id = '$idusu'";
mysql_select_db($database_conexao, $conexao);
mysql_query($inserir, $conexao) or die(mysql_error());
mysql_query($update, $conexao) or die(mysql_error());
}
}
if($status == 4){
require_once "Connections/conexao.php";
mysql_select_db($database_conexao, $conexao);
$procura = mysql_query("SELECT * FROM transacoes WHERE id = '$ref'", $conexao);
$contar = mysql_num_rows($procura);
if($contar > 0){
//aki faz o update
$update = "UPDATE transacoes SET status = 'Disponível' WHERE id = '$ref'";
mysql_select_db($database_conexao, $conexao);
mysql_query($update, $conexao) or die(mysql_error());
}else{
//aki faz o insert
$inserir = "INSERT INTO transacoes (idusuario, status, nome, valor) VALUES ('$idusu', 'Disponível', '$eventon', '$valor')";
mysql_select_db($database_conexao, $conexao);
mysql_query($inserir, $conexao) or die(mysql_error());
}
}
if($status == 7){
require_once "Connections/conexao.php";
mysql_select_db($database_conexao, $conexao);
$procura = mysql_query("SELECT * FROM transacoes WHERE id = '$ref'", $conexao);
$contar = mysql_num_rows($procura);
if($contar > 0){
//aki faz o update
$update = "UPDATE transacoes SET status = 'Cancelada' WHERE id = '$ref'";
mysql_select_db($database_conexao, $conexao);
mysql_query($update, $conexao) or die(mysql_error());
}else{
//aki faz o insert
$inserir = "INSERT INTO transacoes (idusuario, status, nome, valor) VALUES ('$idusu', 'Cancelada', '$eventon', '$valor')";
mysql_select_db($database_conexao, $conexao);
mysql_query($inserir, $conexao) or die(mysql_error());
}
}
$today = date("Y_m_d");
$file = fopen("LogPag2Seguro.$today.txt", "ab");
$hour = date("H:i:s T");
fwrite($file,"Log de Notificações e consulta\\\\r\\\\n");
fwrite($file,"Hora da consulta: $hour \\\\r\\\\n");
fwrite($file,"HTTP: ".$http['http_code']." \\\\r\\\\n");
fwrite($file,"Código de Notificação:".$notificationCode." \\\\r\\\\n");
fwrite($file, "Código da transação:".$response->code."\\\\r\\\\n");
fwrite($file, "REFERENCE: $ref \\\\r\\\\n");
fwrite($file, "Status da transação:".$response->status."\\\\r\\\\n");
fwrite($file,"______________________________________________________________________________ \\\\r\\\\n");
fclose($file);
}
?>Carregando comentários...