API PagSeguro

289 views
Skip to first unread message

Everlon Passos

unread,
Oct 24, 2012, 12:41:24 PM10/24/12
to phpri...@googlegroups.com, phpav...@googlegroups.com, ph...@googlegroups.com, php-b...@googlegroups.com, list...@googlegroups.com
Caros,

Estou implantando o pagamento em um sistema onde tenho que liberar os serviços quando o PagSeguro me der a confirmação do pagamento, mas ao fazer a requisição do pagamento, a pagina de retorno nao esta me retornando os POST, como "prometido"... Assim também me retorna erro ao fazer uma consulta pelo códido da transação...

Alguém já implantou o API que possa me ajudar? Pois todos sabemos que o atendimento da UOL é péssimo...


Everlon A. Passos
Programador PHP / CodeIgniter / MySQL / PostgreSQL
E-Mail/MSN: eve...@worium.com.br
Varginha - MG - Brasil
Celular TIM: 55 35 9191 6778
Celular Oi: 55 35 8822 6893

Eduardo Kraus

unread,
Oct 24, 2012, 12:47:11 PM10/24/12
to php-b...@googlegroups.com
Dica, o Moip é muito melhor para programar, integrar, suporte e depois de 100 transações você recebe o dim dim em 14 dias...

Eu fiz algumas api com o PagSeguro e estão todas funcionando perfeitamente. mais um dos itens que eu deixo marcado é para o PagSeguro só aceitar via API.

Eduardo Kraus
Professor
kr...@eduardokraus.com
www.eduardokraus.com
Blog PHP php.eduardokraus.com
Blog Adobe Flex flex.eduardokraus.com





--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.

Everlon Passos

unread,
Oct 24, 2012, 12:50:00 PM10/24/12
to php-b...@googlegroups.com
Sim Eduardo, deixei ela marcada, e sempre usei Moip... mas preciso integrar esse PagSeguro no projeto... Pode me mostrar como fez?
Estou no Talk aqui se quiser...

Agradeço!



Everlon A. Passos
Programador PHP / CodeIgniter / MySQL / PostgreSQL
E-Mail/MSN: eve...@worium.com.br
Varginha - MG - Brasil
Celular TIM: 55 35 9191 6778
Celular Oi: 55 35 8822 6893



' Rafael .

unread,
Oct 24, 2012, 12:46:31 PM10/24/12
to php-b...@googlegroups.com
O POST não é retornado na hora, um robo fará isso depois. Você tem que esperar o POST depois e não na hora.

Renato Neto

unread,
Oct 24, 2012, 12:56:28 PM10/24/12
to php-b...@googlegroups.com
A notificação vem em tempo real.

Rafael

unread,
Oct 24, 2012, 1:04:52 PM10/24/12
to php-b...@googlegroups.com
Como que a notifica��o de pagamento de um boleto vem na mesma hora que o
cara tirou o boleto?

-----Mensagem Original-----
From: Renato Neto
Sent: Wednesday, October 24, 2012 2:56 PM
To: php-b...@googlegroups.com
Subject: Re: [php-brasil] API PagSeguro

A notifica��o vem em tempo real.

--
Voc� est� recebendo esta mensagem porque se inscreveu no grupo "php-brasil"
dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscri��o nesse grupo, envie um e-mail para
php-brasil+...@googlegroups.com.
Para obter mais op��es, visite esse grupo em
http://groups.google.com/group/php-brasil?hl=pt-BR.

Eduardo Kraus

unread,
Oct 24, 2012, 1:11:39 PM10/24/12
to php-b...@googlegroups.com
Hoje a notificação esta em real time.

' Rafael .

unread,
Oct 24, 2012, 1:19:49 PM10/24/12
to php-b...@googlegroups.com
Sim mas tem que deixar claro, que ao realizar um pedido o retorno não será dada resposta naquela requisição mas sim em outra requisição feita pelo bot do pagseguro
 
Sent: Wednesday, October 24, 2012 3:11 PM
Subject: Re: [php-brasil] API PagSeguro
 
Para cancelar a inscrição nesse grupo, envie um e-mail para mailto:php-brasil%2Bunsu...@googlegroups.com.

Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.
--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para mailto:php-brasil%2Bunsu...@googlegroups.com.

Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.

Renato Neto

unread,
Oct 24, 2012, 1:28:59 PM10/24/12
to php-b...@googlegroups.com
A notificação não é quando o cara "tira" o boleto e sim quando o
status da COBRANÇA é alterado.
No momento que o status é alterado o pagseguro notifica a URL
configurada para notificações.

Renato Neto

unread,
Oct 24, 2012, 1:30:42 PM10/24/12
to php-b...@googlegroups.com
Como já disse, a notificação é feita no momento da alteração de status
da cobrança.

Everlon Passos

unread,
Oct 24, 2012, 1:41:39 PM10/24/12
to php-b...@googlegroups.com
Exatamente Renato!
Por isso precisava desses dados pra alimentar uma Table aqui pra liberar o Serviço...

No mais acho q consegui, não mexi em muita coisa, mas o que parecia ser um erro na verdade era inatividade do PagSeguro mesmo...

Se fizer uma consulta na pagina de retorno do PagSeguro:
$transaction = PagSeguroTransactionSearchService::searchByCode( $credentials, $transaction_id );

Onde $transaction_id é o $_GET vindo na URL, vc terá o Obj com os dados.

Quer ver o status? echo $transaction->getStatus()->getValue();

No mais acho que consegui, vou trabalhar os dados aqui ;)

Valeu galera pela ajuda! Me foi útil! ;)




Everlon A. Passos
Programador PHP / CodeIgniter / MySQL / PostgreSQL
E-Mail/MSN: eve...@worium.com.br
Varginha - MG - Brasil
Celular TIM: 55 35 9191 6778
Celular Oi: 55 35 8822 6893



Eduardo Kraus

unread,
Oct 24, 2012, 1:50:34 PM10/24/12
to php-b...@googlegroups.com
Como fiz...

Primeiro gerar o XML certinho...

PHP
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://ws.pagseguro.uol.com.br/v2/checkout?email=" . $email . "&token=" . $token);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $param);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, Array("Content-Type: application/xml; charset=ISO-8859-1"));

$retorno = curl_exec($curl);
$erro = curl_error($curl);
curl_close($curl);

Bla bla bla de verificações de erro e analyzar o $retorno...

if(strlen($erro))
{
    // iiii, não conseguiu se comunicar com o PagSeguro
}

if ( isset( $xml->error ))
{
    // não rolou...
    echo $xml->error->message;
}
elseif( isset( $xml->code ))
{
    $xml = simplexml_load_string( $retorno );
    // Referencia da transação
    $referencia = $xml->reference;
    
$url = 'https://pagseguro.uol.com.br/v2/checkout/payment.html?code=' . $xml->code;
    header("Location: " . $
url );
}
else
{
    // Algo estranho aconteceu...
}

Agora que ele já foi direcionado para a página de pagamento, vamos aguardar o retorno....

        $_REQUEST['notificationCode'] . 
        "?email=" . $email . 
        "&token=" . $token;

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, Array("Content-Type: application/xml; charset=ISO-8859-1"));

$ret = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);

$xml = simplexml_load_string( $ret );
$referencia = $xml->reference;

if( intval($xml->status) == 3 )
{
    // Aeeeee, ele pagou... Pode liberar a mercadoria...
}

Eduardo Kraus

unread,
Oct 24, 2012, 1:52:06 PM10/24/12
to php-b...@googlegroups.com
Ops, a notificação ocorre em qualquer situação do usuário. Se ele imprimir o boleto já é notificado...

Se ele re-imprimir o boleto mais uma notificação.

Douglas Lira

unread,
Feb 16, 2013, 5:42:08 PM2/16/13
to phpav...@googlegroups.com, phpri...@googlegroups.com, ph...@googlegroups.com, php-b...@googlegroups.com, list...@googlegroups.com
Qual a tua dúvida?

Gilton Guma

unread,
Feb 17, 2013, 2:01:46 PM2/17/13
to php-b...@googlegroups.com
Para utilizar com "uma" loja em uma conta no pagseguro não terá problemas, é só configurar no pagseguro a URL que receberá as notificações e tratá-las em seu sistema.
Agora se tiver mais de uma loja para uma conta no pagseguro, aconselho criar um "cron" para verificar de tempo em tempo as transações e tratá-las em seu sistema! ;)

Espero ter ajudado! ;)
Reply all
Reply to author
Forward
0 new messages