não, sem poblemas..........
Versão Imprimível
não, sem poblemas..........
Aqui tava dando um probleminha com as querys, que não aceitavam o do config.php e iam como CO_CASH_DB exemplo, então fiz isso:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mssql_query("update ".MuOnline.".dbo.".MEMB_INFO." set ".Gold." = ".Gold." + {$Saldo} WHERE ".memb___id." = '{$Nome}'");
mssql_query("INSERT into ".MuOnline.".dbo.".Pagseguro." (TransacaoID, datahora, TipoPagamento, CliEmail, Valor, Nome) VALUES ('{$Transacao}','{$datahora}','{$TipoPagamento}',' {$CliEmail}','{$Valor}','{$Nome}')");
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Tem problema? Vai dar bug?
Parece que não funciona, eu testei aqui e não chegou, alguém por favor testa e ve se funfa...
@miguel223
Chega sim, não tem erro; rode a query e configure o config.php com o e-mail de cadastro e o token(PAGSEGURO).
ok, e as tabelas que ta dando bug falando q não encontra CASH_DB e talz.. Colocando direto, ficaria que nem no post meu anterior?? Vai dar certo?
Veja se coluna CASH é a moeda do seu servidor.
Olha, vou te passar como configurei:
------------comprar.php------------------
<? require('config.php'); ?><center><form target="pagseguro" method="post"
action="https://pagseguro.uol.com.br/checkout/checkout.jhtml">
<input type="hidden" name="email_cobranca"
value="<?=EMAIL?>" />
<input type="hidden" name="tipo" value="CBR" />
<input type="hidden" name="moeda" value="BRL" />
<input type="hidden" name="item_id" value="1"/>
<p><font size="2"> Digite seu Login. </font></p>
<input type="text" name="item_descr"/>
<p><font size="2"> Informe o Valor Desejado. </font></p>
<input type="hidden" name="item_quant" value="1"/>
<select name="item_valor">
<option value="2,00">2 R$</option>
<option value="5,00">5 R$</option>
<option value="10,00">10 R$</option>
<option value="20,00">20 R$</option>
<option value="30,00">30 R$</option>
<option value="40,00">40 R$</option>
<option value="50,00">50 R$</option>
<option value="100,00">100 R$</option>
<option value="200,00">200 R$</option>
</select><br /><br />
<input type="hidden" name="frete" value="0" />
<input type="hidden" name="peso" value="0" />
<input type="image" value="Comprar" class="button" name="submit"
src="https://p.simg.uol.com.br/out/pagseguro/i/botoes/pagamentos/209x48-comprar-azul-assina.gif"
alt="Pague com PagSeguro - é rápido, grátis e seguro!" />
</form></center>
--------------------------retorno.php--------------------------------
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<?php
require('config.php');
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;
}
}
$connect = mssql_connect(MSSQL, USER, PASS) or die('Não foi possível conectar com o servidor MSSQL');
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'] : '';
$Status = $_POST['StatusTransacao'];
$Transacao = $_POST['TransacaoID'];
$TipoPagamento = $_POST['TipoPagamento'];
$CliEmail = $_POST['CliEmail'];
date_default_timezone_set('America/Sao_Paulo');
$datahora = date("Y/m/d H:i:s");
//update cash
$Nome = $_POST['ProdDescricao_1'];
$Valor = round($_POST['ProdValor_1']);
if ($result == "VERIFICADO") {
if ($Status == "Aprovado") {
//insert payment
switch($Valor)
{
case 2 : $Cash = 0; break;
case 5 : $Cash = 0; break;
case 10 : $Cash = 0; break;
case 20 : $Cash = 0; break;
case 30 : $Cash = 0; break;
case 40 : $Cash = 0; break;
case 50 : $Cash = 0; break;
case 100 : $Cash = 0; break;
case 200 : $Cash = 0; break;
}
$Saldo = $Valor + $Cash;
mssql_query("update ".MuOnline.".dbo.".MEMB_INFO." set ".Gold." = ".Gold." + {$Saldo} WHERE ".memb___id." = '{$Nome}'");
mssql_query("INSERT into ".MuOnline.".dbo.".Pagseguro." (TransacaoID, datahora, TipoPagamento, CliEmail, Valor, Nome) VALUES ('{$Transacao}','{$datahora}','{$TipoPagamento}',' {$CliEmail}','{$Valor}','{$Nome}')");
}
} 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.
?>
<?php
}
?>
O config.php está configurado certinho, com senha e talz, tanto q o listar.php funfa..
Eaw? Nessas configurações vai funfar ou n?????
---------- Post added at 08:10 PM ---------- Previous post was at 06:13 PM ----------
if ($Status == "Aprovado") { ---------- será que o problema não é aqui? Pelo que eu sei aparece Aprovada no pagseguro..
Não pegou de novo -.-'
Mensagem de moderação: Atenção com posts seguidos miguel223...se deseja acrescentar algo ou remover utilize a ferramenta "Editar Post"
Eu vo começar a modificar e testar por mim mesmo com o status Aguardando Pagto. Porém preciso saber o seguinte: o pagseguro retorno os dados imediatamente? Se não, demora quanto tempo?
---------- Post added at 03:33 PM ---------- Previous post was at 03:15 PM ----------
Talvez seja por eu estar testando com .de.nu, porque eu tentei colocar todos os defines no script, tirar os codigos da query por minha acc e um numero específico de golds e mesmo assim não foi. O que vcs acham? É o de.nu? Por favor, me ajuda ai galera...