Verificação de Notificações PagSeguro

Publicado por em 31 dez 15. PHP

Olá pessoal!

Estamos montando um sistema de vendas integrado com o PagSeguro (aguarde novidades…) e acabamos encontrando alguns problemas com a função de verificação de notificações da Biblioteca do PagSeguro (v2.3).

Ao utilizar a função disponibilizada na biblioteca, é retornado o erro: Fatal error: Class ‘PagSeguroAuthorizationParser’ not found

O problema já está sendo discutido no Fórum de Desenvolvedores do PagSeguro.

Mas como dizia meu avô: ‘quem quer faz…’

Então, para resolver o problema, montei uma classe que faz a verificação da Transação a partir da notificação recebida, que disponibilizo a seguir:

/*****************
Classe PagSeguroNotification
Realiza a verificação da transação associada a notificação recebida
Rodrigo Santos, 25/12/2014
******************/

class PagSeguroNotification {
private $email; // e-mail vendendor
private $token; // token (sandbox ou production)
private $url; // url de acesso (sandbox ou production)

public function __construct ($email, $token, $url)
{
$this->email = $email;
$this->token = $token;
$this->url = $url;
}

public function notificationPost($notificationCode) {
$postdata = $notificationCode.’?email=’.$this->email.’&token=’.$this->token;
return $this->verify($postdata);
}

private function verify($data) {
$xml = simplexml_load_file($this->url.$data);

$retorno = array();
foreach($xml as $no=>$v):
$retorno[$no] = (string) $v;
endforeach;
return $retorno;
}
}

//Para chamá-la faça o seguinte:
$notificacao = new PagSeguroNotification(EMAIL_VENDEDOR, TOKEN, URL_PAGSEGURO);
$dados = $notificacao->notificationPost(CODIGO_DA_NOTIFICACAO_RECEBIDO);

//$dados será um array contendo as informações da transação

Está funcionando redondinho agora, assim o sistema é atualizado automaticamente quando o status no PagSeguro é alterado.

Compartilhe com os amigos
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Email this to someone
email
Print this page
Print

Comente

*
*