Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
estou desenvolvendo um website em PHP com CodeIgniter
e estou tentando integrar com o PagSeguro. A parte de pagamento já está funcionando,
mas eu configurei a URL de retorno automático, mas não estou sabendo terminar daí...
Eu já tentei colocar o tratamento no Controlador, já tentei colocar na visão e
chamá-la imediatamente no controlador, e já tentei até criar um Helper, mas
não obtive exito...
A impressão que estou tento é que o retorno automático não
está retornando nada no POST... alguém saberia me explicar o que pode está havendo
ou o que eu devo fazer? Alguém já teve experiência de CodeIgniter com o PagSeguro?
Mais uma dúvida: quando o cliente clica no botão de finalizar e é direcionado ao pagseguro,
seleciona boleto como modo de pagamento, imprime o boleto, e é redirecionado à url de retorno, esse primeiro
redirecionamento gera algum POST?
Obrigado pela vossa atenção, espero que possam me ajudar, pois o cliente já está pressionando para
entregarmos o projeto =S
Atenciosamente,
Paulo
>
Não está dando certo, mas está recebendo algum erro?
Quanto a outra pergunta, se gera um post, quer saber se gera para quem? Para você? Claro que não. O único post envolvido é o que você passar para o pagseguro. Você só irá receber um post deles no retorno automático.
Não está aparecendo nenhuma mensagem de erro, mas no retorno automático não deveria retornar dados para que eu possa
salvar informações no Banco de Dados?
E sobre a outro pergunta, é se esse primeiro retorno após o pagamento, quando o pagante é redirecionado em X segundos, gera algum POST
ou algum retorno de dados.
Sim, no retorno automático é lhe passado um post sim.
Se não está conseguindo receber esses dados deve ter alguma coisa errado na sua página de retorno.
Poste aqui o código, tento procurar algum possível erro.
Paulo, você esta fazendo de qual forma o retorno automático ?
1. Utilizando a biblioteca da Visie.
2. Utilizando implementação proposta pelo PagSeguro.
Qual das duas forma está utilizando ?
>
Paulo, você esta fazendo de qual forma o retorno automático ?
1. Utilizando a biblioteca da Visie.
2. Utilizando implementação proposta pelo PagSeguro.
Qual das duas forma está utilizando ?
Eu tentei usar a biblioteca da Visie, mas sem sucesso...
Eu estou usando o seguinte código:
// RECEBE O POST ENVIADO PELA PagSeguro E ADICIONA OS VALORES PARA VALIDACAO DOS DADOS
$PagSeguro = 'Comando=validar';
$PagSeguro .= '&Token=8C2EAC2450444BDD4C83EC14E89E2DF1'; // Insira aqui o código do Token gerado no PagSeguro
$Cabecalho = ""; // Coloque um título
foreach ($_POST as $key => $value)
{
$value = urlencode(stripslashes($value));
$PagSeguro .= "&$key=$value";
}
echo $PagSeguro;
if (function_exists('curl_exec'))
{
//Prefira utilizar a funcao CURL do PHP
//Leia mais sobre CURL em: [http://us3.php.net/curl](http://us3.php.net/curl)
$curl = true;
}
elseif ( (PHP_VERSION >= 4.3) && ($fp = @fsockopen ('ssl://pagseguro.uol.com.br', 443, $errno, $errstr, 30)) )
{
$fsocket = true;
}
elseif ($fp = @fsockopen('pagseguro.uol.com.br', 80, $errno, $errstr, 30))
{
$fsocket = true;
}
// ENVIA DE VOLTA PARA A PagSeguro OS DADOS PARA VALIDAÇÃO
if ($curl == true)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $PagSeguro);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx');
$resp = curl_exec($ch);
curl_close($ch);
$confirma = (strcmp ($resp, "VERIFICADO") == 0);
}
elseif ($fsocket == true)
{
$Cabecalho = "POST /Security/NPI/Default.aspx HTTP/1.0\r\n";
$Cabecalho .= "Content-Type: application/x-www-form-urlencoded\r\n";
$Cabecalho .= "Content-Length: " . strlen($PagSeguro) . "\r\n\r\n";
if ($fp || $errno>0)
{
fputs ($fp, $Cabecalho . $PagSeguro);
$confirma = false;
$resp = '';
while (!feof($fp))
{
$res = @fgets ($fp, 1024);
$resp .= $res;
// Verifica se o status da transação está VERIFICADO
if (strcmp ($resp, "VERIFICADO") == 0)
{
$confirma=true;
break;
}
}
fclose ($fp);
}
else
{
echo "$errstr ($errno)<br />\n";
// ERRO HTTP
}
}
if ($confirma)
{
// RECEBE OS DADOS ENVIADOS PELA PagSeguro E ARMAZENA EM VARIAVEIS
//Selecione aqui todos os parametros enviados pela PagSeguro
$VendedorEmail = $_POST['VendedorEmail'];
$TransacaoID = $_POST['TransacaoID'];
$Referencia = $_POST['Referencia'];
$TipoFrete = $_POST['TipoFrete'];
$ValorFrete = $_POST['ValorFrete'];
$Anotacao = $_POST['Anotacao'];
$DataTransacao = $_POST['DataTransacao'];
$TipoPagamento = $_POST['TipoPagamento'];
$StatusTransacao = $_POST['StatusTransacao'];
$CliNome = $_POST['CliNome'];
$CliEmail = $_POST['CliEmail'];
$CliEndereco = $_POST['CliEndereco'];
$CliNumero = $_POST['CliNumero'];
$CliComplemento = $_POST['CliComplemento'];
$CliBairro = $_POST['CliBairro'];
$CliCidade = $_POST['CliCidade'];
$CliEstado = $_POST['CliEstado'];
$CliCEP = $_POST['CliCEP'];
$CliTelefone = $_POST['CliTelefone'];
$NumItens = $_POST['NumItens'];
$ProdID = $_POST['ProdID_1'];
$ProdDescricao = $_POST['ProdDescricao_1'];
$ProdValor = $_POST['ProdValor_1'];
$ProdQuantidade = $_POST['ProdQuantidade_1'];
$ProdFrete = $_POST['ProdFrete_1'];
$ProdExtras = $_POST['ProdExtras_1'];
// Pegando o IP do usuário
$ip = $_SERVER['REMOTE_ADDR']; // pegando o endereço remoto
$forward = $_SERVER['HTTP_X_FORWARDED_FOR']; // pegando o endereço que foi repassado (se houver)
$ip=( (($ip=='unknown' || $ip=='201.6.24.158') && ( isset($foward) && $forward!='unknown'))?$forward:$ip);
$datahora = date("Y-m-d H:i:s");
$data = date("Y-m-d");
$hora = date("H:i:s");
$cadastro = $this->Pagseguro_model->executeQuery("INSERT into PagSeguroTransacoes (TransacaoID, VendedorEmail, TipoFrete, ValorFrete, Anotacao, TipoPagamento, Referencia, StatusTransacao, CliNome, CliEmail, CliEndereco, CliNumero, CliComplemento, CliBairro, CliCidade, CliEstado, CliCEP, CliTelefone, NumItens, ProdID, ProdDescricao, ProdValor, ProdQuantidade, ProdFrete, ProdExtras, ip, datahora, data, hora) VALUES ('$TransacaoID','$VendedorEmail','$TipoFrete','$ValorFrete','$Anotacao','$TipoPagamento','$Referencia','$StatusTransacao','$CliNome','$CliEmail','$CliEndereco','$CliNumero','$CliComplemento','$CliBairro','$CliCidade','$CliEstado','$CliCEP','$CliTelefone','$NumItens','$ProdID','$ProdDescricao','$ProdValor','$ProdQuantidade','$ProdFrete','$ProdExtras','$ip','$datahora','$data','$hora')");
}else{
if (strcmp ($resp, "FALSO") == 0) {
// LOG para investigação manual
}
}
$this->load->view('retpagamento');Olá Paulo, era justamente oque ia te falar, por algum motivo que ainda não descobri, a biblioteca da visie não funciona no CI.
Por isso eu utilizo um código que o próprio pagseguro disponibiliza para integração com PHP.
Eu uso esse código aqui. É o disponibilizado pelo pagseguro, eu apenas removi as outras opções e deixei só a de CURL.
if (empty($_POST)) {
redirect('retorno/pagina');
}
function tep_not_null($value) {
if (is_array($value)) {
if (sizeof($value) > 0) {
return true;
} else {
return false;
}
} else {
if (($value != '') && ($value != 'NULL') && (strlen(trim($value)) > 0)) {
return true;
} else {
return false;
}
}
}
// RECEBE O POST ENVIADO PELA PagSeguro E ADICIONA OS VALORES PARA VALIDAÇÃO DOS DADOS
$PagSeguro = 'Comando=validar';
$PagSeguro .= '&Token=SEU TOKEN';
$Cabecalho = "";
foreach ($_POST as $key => $value)
{
$value = urlencode(stripslashes($value));
$PagSeguro .= "&$key=$value";
}
if (function_exists('curl_exec'))
{
//Prefira utilizar a função CURL do PHP
//Leia mais sobre CURL em: [http://us3.php.net/curl](http://us3.php.net/curl)
$curl = true;
}
// ENVIA DE VOLTA PARA A PagSeguro OS DADOS PARA VALIDAÇÃO
if ($curl == true)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $PagSeguro);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$resp = curl_exec($ch);
if (!tep_not_null($resp))
{
curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx');
$resp = curl_exec($ch);
}
curl_close($ch);
$confirma = (strcmp ($resp, "VERIFICADO") == 0);
}
if ($confirma) {
//Selecione aqui todos os parâmetros enviados pela PagSeguro
$TransacaoID = $_POST['TransacaoID'];
$Referencia = $_POST['Referencia'];
$StatusTransacao = $_POST['StatusTransacao'];
$CliNome = $_POST['CliNome'];
$NumItens = $_POST['NumItens'];
$CliEmail = $_POST['CliEmail'];
$CliEndereco = $_POST['CliEndereco'];
$CliNumero = $_POST['CliNumero'];
$CliBairro = $_POST['CliBairro'];
$CliCidade = $_POST['CliCidade'];
$CliEstado = $_POST['CliEstado'];
$CliCEP = $_POST['CliCEP'];
$CliTelefone = $_POST['CliTelefone'];
// INSERE NO BANCO
}
Testa ai e veja se funciona.
Olá Thiago, obrigado pela resposta, agradeça a ajuda... coloquei o código aqui e vou testar.
Mas me tire uma dúvida:
quando eu clico em pagar (o botão de finalizar compra) que é redirecionado pro pagseguro, eu escolho o boleto
como forma de pagamento, em qual momento é enviado o primeiro post para o site?
>
Olá Thiago, obrigado pela resposta, agradeça a ajuda... coloquei o código aqui e vou testar.
Mas me tire uma dúvida:
quando eu clico em pagar (o botão de finalizar compra) que é redirecionado pro pagseguro, eu escolho o boleto
como forma de pagamento, em qual momento é enviado o primeiro post para o site?
Se não me engano, é feito o primeiro post, antes de o usuário ser redirecionado para o seu site.
O primeiro e único post é feito quando o usuário é redirecionado para seu site. Após seleicionar o meio de pagamento e tudo mais no pagseguro.
>
O primeiro e único post é feito quando o usuário é redirecionado para seu site. Após seleicionar o meio de pagamento e tudo mais no pagseguro.
Quer dizer que quando o status do pagamento é alterado, não é feito mais nenhum post pro site não?
>
>
O primeiro e único post é feito quando o usuário é redirecionado para seu site. Após seleicionar o meio de pagamento e tudo mais no pagseguro.
Quer dizer que quando o status do pagamento é alterado, não é feito mais nenhum post pro site não?
É sim!
Sempre que o status da transação mudar, o PagSeguro te envia um novo POST.
Mas e ai Paulo, o código do retorno deu certo?
E só corrigindo, Cláudio o POST é feito antes de o usuário ser redirecionado.
>
>
>
O primeiro e único post é feito quando o usuário é redirecionado para seu site. Após seleicionar o meio de pagamento e tudo mais no pagseguro.
Quer dizer que quando o status do pagamento é alterado, não é feito mais nenhum post pro site não?
É sim!
Sempre que o status da transação mudar, o PagSeguro te envia um novo POST.
Mas e ai Paulo, o código do retorno deu certo?
E só corrigindo, Cláudio o POST é feito antes de o usuário ser redirecionado.
http://visie.com.br/...-automatico.php
Bom, eu testei o código, coloquei uma variável para receber todos os campos do post, como um grande texto, e salvar em uma tabela temporária só para ver os valores que estavam sendo retornados, e coloquei pra redirecionar para uma página única caso o post viesse vazio. Após o tempo do redirecionamento, fui parar na pagina do post vazio, quando fui ver no banco se havia salvo no BD os dados enviados no primeiro POST, o banco estava vazio... Tentei alterar o status da transação pelo admin para "Processando", mas não enviou nenhum POST ainda....
Alguém sabe o que pode estar acontecendo?
Meu site está hospedado no Locaweb, tem algum problema de firewall a ser liberado?
Mas são milésimos de segundos antes, por isso disse que era no mesmo momento, rs.
E não havia pensado na hipótese de troca de meio de pagamento.
Claro que não salvou nada no banco. Você colocou um redirecionamento caso viessem vazios. Agora precisa saber porque está vazio. Pode postar essa parte do código para vermos como ficou?
Não, o fato de estar hopspedado na locaweb não influencia em nada.
>
Mas são milésimos de segundos antes, por isso disse que era no mesmo momento, rs.
E não havia pensado na hipótese de troca de meio de pagamento.
Claro que não salvou nada no banco. Você colocou um redirecionamento caso viessem vazios. Agora precisa saber porque está vazio. Pode postar essa parte do código para vermos como ficou?
Não, o fato de estar hopspedado na locaweb não influencia em nada.
Segue o código completo:
function retorno() {
if (empty($_POST)) {
redirect('pagamentos/cgerenciar/'.$this->session->userdata('anunciante')->idAnunciante);
}
function tep_not_null($value) {
if (is_array($value)) {
if (sizeof($value) > 0) {
return true;
} else {
return false;
}
} else {
if (($value != '') && ($value != 'NULL') && (strlen(trim($value)) > 0)) {
return true;
} else {
return false;
}
}
}
// RECEBE O POST ENVIADO PELA PagSeguro E ADICIONA OS VALORES PARA VALIDAÇÃO DOS DADOS
$PagSeguro = 'Comando=validar';
$PagSeguro .= '&Token=8C2EAC2450444BDD4C83EC14E89E2DF1';
$Cabecalho = "";
foreach ($_POST as $key => $value)
{
$value = urlencode(stripslashes($value));
$PagSeguro .= "&$key=$value";
}
if (function_exists('curl_exec'))
{
//Prefira utilizar a função CURL do PHP
//Leia mais sobre CURL em: [http://us3.php.net/curl](http://us3.php.net/curl)
$curl = true;
}
// ENVIA DE VOLTA PARA A PagSeguro OS DADOS PARA VALIDAÇÃO
if ($curl == true)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $PagSeguro);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$resp = curl_exec($ch);
if (!tep_not_null($resp))
{
curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx');
$resp = curl_exec($ch);
}
curl_close($ch);
$confirma = (strcmp ($resp, "VERIFICADO") == 0);
}
if ($confirma) {
//Selecione aqui todos os parâmetros enviados pela PagSeguro
$TransacaoID = $_POST['TransacaoID'];
$Referencia = $_POST['Referencia'];
$StatusTransacao = $_POST['StatusTransacao'];
$CliNome = $_POST['CliNome'];
$NumItens = $_POST['NumItens'];
$CliEmail = $_POST['CliEmail'];
$CliEndereco = $_POST['CliEndereco'];
$CliNumero = $_POST['CliNumero'];
$CliBairro = $_POST['CliBairro'];
$CliCidade = $_POST['CliCidade'];
$CliEstado = $_POST['CliEstado'];
$CliCEP = $_POST['CliCEP'];
$CliTelefone = $_POST['CliTelefone'];
$VendedorEmail = $_POST['VendedorEmail'];
$TransacaoID = $_POST['TransacaoID'];
$Referencia = $_POST['Referencia'];
$TipoFrete = $_POST['TipoFrete'];
$ValorFrete = $_POST['ValorFrete'];
$Anotacao = $_POST['Anotacao'];
$DataTransacao = $_POST['DataTransacao'];
$TipoPagamento = $_POST['TipoPagamento'];
$StatusTransacao = $_POST['StatusTransacao'];
$CliNome = $_POST['CliNome'];
$CliEmail = $_POST['CliEmail'];
$CliEndereco = $_POST['CliEndereco'];
$CliNumero = $_POST['CliNumero'];
$CliComplemento = $_POST['CliComplemento'];
$CliBairro = $_POST['CliBairro'];
$CliCidade = $_POST['CliCidade'];
$CliEstado = $_POST['CliEstado'];
$CliCEP = $_POST['CliCEP'];
$CliTelefone = $_POST['CliTelefone'];
// INSERE NO BANCO
$cadastro = $this->Pagseguro_model->executeQuery("INSERT into PagSeguroTransacoes (TransacaoID, VendedorEmail, TipoFrete, ValorFrete, Anotacao, TipoPagamento, Referencia, StatusTransacao, CliNome, CliEmail, CliEndereco, CliNumero, CliComplemento, CliBairro, CliCidade, CliEstado, CliCEP, CliTelefone, NumItens, ProdID, ProdDescricao, ProdValor, ProdQuantidade, ProdFrete, ProdExtras, ip, datahora, data, hora) VALUES ('$TransacaoID','$VendedorEmail','$TipoFrete','$ValorFrete','$Anotacao','$TipoPagamento','$Referencia','$StatusTransacao','$CliNome','$CliEmail','$CliEndereco','$CliNumero','$CliComplemento','$CliBairro','$CliCidade','$CliEstado','$CliCEP','$CliTelefone','$NumItens','$ProdID','$ProdDescricao','$ProdValor','$ProdQuantidade','$ProdFrete','$ProdExtras','$ip','$datahora','$data','$hora')");
}
$post_result = var_export($_POST, true);
$this->Pagseguro_model->executeQuery("INSERT into temp (post_result) VALUES ('$post_result')");
}Bom, como disse antes, não entendo de PHP, mas a impressão que tive é que isso "$_POST" é normal que venha vazio. Sendo assim, sua condição sempre será verdadeira lá em cima e sempre vai redirecionar para outra página, evitando você de completar as outras atividades.
Já tentou tirar essa conferência para ver se funciona?
Ah, e outra coisa. Porque colocou todo esse código dentro de uma função? Não sei como está sua página, mas normalmente não há necessidade.
Bom, se o pagseguro tem que retornar dados, ele não deveria vir vazio...
E todo o código está dentro de uma função porque estou trabalhando com o codeigniter, e aquilo está em um controlador.
Até faz sentido, mas repare que antes de você enviar os dados para o pagseguro com o numero de seu token, nenhum valor lhe é passado. Então pode ser que venha vazio, ai você envia o token e ai sim ele te envia os parâmetros.
Tente tirar e faça o teste, na pior das hipóteses procuramos outra saída.
Bom dia!
Brother caso não tenha resolvido seu problema talvez lendo as informações do link abaixo possa te ajudar, pois estava tendo o mesmo problema aqui e acabei por resolver depois que li essas informações.
http://blogpagseguro.com.br/2008/11/tutorial-retorno-automatico/
>
Bom dia!
Brother caso não tenha resolvido seu problema talvez lendo as informações do link abaixo possa te ajudar, pois estava tendo o mesmo problema aqui e acabei por resolver depois que li essas informações.
http://blogpagseguro...rno-automatico/
Eu já havia lido esse post e ele não me ajudou muito...
Mas eu descobri o problema... em todos os códigos que eu estava mexendo, ele só inseria no banco de dados se a resposta do pagseguro fosse VERIFICADO.
Acho que isso só acontece quando o pagamento é confirmado...
eu fiz uma outra verificação para inserir no banco de dados no momento que retornasse o primeiro post, e depois, quando o pagamento for verificado,
simplesmente alterar os dados do pagamento no BD.
Agora eu tenho uma dúvida... aquela variável $resp, no trecho:
// ENVIA DE VOLTA PARA A PagSeguro OS DADOS PARA VALIDAÇÃO
if ($curl == true)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $PagSeguro);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$resp = curl_exec($ch);
if (!tep_not_null($resp))
{
curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx');
$resp = curl_exec($ch);
}
curl_close($ch);
$confirma = (strcmp ($resp, "VERIFICADO") == 0);
}>
>
Bom dia!
Brother caso não tenha resolvido seu problema talvez lendo as informações do link abaixo possa te ajudar, pois estava tendo o mesmo problema aqui e acabei por resolver depois que li essas informações.
http://blogpagseguro...rno-automatico/
Eu já havia lido esse post e ele não me ajudou muito...
Mas eu descobri o problema... em todos os códigos que eu estava mexendo, ele só inseria no banco de dados se a resposta do pagseguro fosse VERIFICADO.
Acho que isso só acontece quando o pagamento é confirmado...
eu fiz uma outra verificação para inserir no banco de dados no momento que retornasse o primeiro post, e depois, quando o pagamento for verificado,
simplesmente alterar os dados do pagamento no BD.
Agora eu tenho uma dúvida... aquela variável $resp, no trecho:
// ENVIA DE VOLTA PARA A PagSeguro OS DADOS PARA VALIDAÇÃO
if ($curl == true)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $PagSeguro);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$resp = curl_exec($ch);
if (!tep_not_null($resp))
{
curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx');
$resp = curl_exec($ch);
}
curl_close($ch);
$confirma = (strcmp ($resp, "VERIFICADO") == 0);
}Status da transação efetuada. Pode receber as seguintes variáveis:
* Completo: Pagamento completo
* Aguardando Pagto: Aguardando pagamento do cliente
* Aprovado: Pagamento aprovado, aguardando compensação
* Em Análise: Pagamento aprovado, em análise pelo PagSeguro
* Cancelado: Pagamento cancelado pelo PagSeguro
>
Mas eu descobri o problema... em todos os códigos que eu estava mexendo, ele só inseria no banco de dados se a resposta do pagseguro fosse VERIFICADO.
Quando abrir um tópico, procure dar a maior quantidade de informações possíveis sobre seu problema.
Até o momento, acredita que estava tendo sucesso nas transações efetuadas dentro do pagseguro.
>
>
Mas eu descobri o problema... em todos os códigos que eu estava mexendo, ele só inseria no banco de dados se a resposta do pagseguro fosse VERIFICADO.
Quando abrir um tópico, procure dar a maior quantidade de informações possíveis sobre seu problema.
Até o momento, acredita que estava tendo sucesso nas transações efetuadas dentro do pagseguro.
Eu postei todas as informações que eu tinha, incluindo o código completo... Assim que obtive mais informações, eu fui postando aqui.
Eu estou usando o ambiente de teste windows e estou tendo o mesmo problema. Resumindo: indepenente do código que uso o meu retorno nunca gera "VERIFICADO" nem "FALSO" sempre fica em branco. Os dados do post estão lá, da para captura-los, mas não verifica os dados... o que pode ser?
Não está dando certo, mas está recebendo algum erro?
Quanto a outra pergunta, se gera um post, quer saber se gera para quem? Para você? Claro que não. O único post envolvido é o que você passar para o pagseguro. Você só irá receber um post deles no retorno automático.