Biblioteca alternativa para pagamento padrão do PagSeguro. Esta biblioteca utiliza a versão 2.* da API do PagSeguro.
Voce deve instalar a biblioteca usando o Composer
Adicione no seu arquivo composer.json:
"require": {
"elieldepaula/pagseguro":"dev-master"
}
// Considerei que você já tem um autoload configurado.
use elieldepaula\pagseguro\PagSeguro;
try {
// Referência da sua venda.
$referencia = (int) 2017;
$ps = new PagSeguro();
$ps->setCredentials(['email'=>'mail@dominio.com', 'token'=>'N0N0N0']);
$ps->setReference($referencia);
$ps->setCustomer(
[
'nome' => 'Comprador de Teste',
'email' => 'email@sandbox.pagseguro.com.br',
'shippingType' => 3
]
);
$ps->setProducts(
[
'id' => 1,
'descricao' => 'Produto de exemplo',
'valor' => 1.99,
'quantidade' => 2,
'peso' => 0
],
... (mais produtos)
);
$botao = $ps->getButton();
echo $botao;
} catch (Exception $error) {
echo $error->getMessage();
}
// Considerei que você já tem um autoload configurado.
use elieldepaula\pagseguro\PagSeguro;
try {
$ps = new PagSeguro();
$ps->setCredentials(['email'=>'mail@dominio.com', 'token'=>'N0N0N0']);
$resultado = $ps->findByCode($_POST['transactionCode']);
var_dump($resultado);
} catch (Exception $error) {
echo $error->getMessage();
}
// Considerei que você já tem um autoload configurado.
use elieldepaula\pagseguro\PagSeguro;
try {
$ps = new PagSeguro();
$ps->setCredentials(['email'=>'mail@dominio.com', 'token'=>'N0N0N0']);
$resultado = $ps->findByNotification($_POST['notificationCode']);
var_dump($resultado);
} catch (Exception $error) {
echo $error->getMessage();
}
Este tipo de retorno ocorre toda vez que o status de uma transação é alterado pelo sistema do Pag Seguro, como por exemplo quando uma transação é alterada de "Aguardando Pagamento" para "Paga".
O Pag Seguro envia um POST com o Código de notificação para a URL indicada nas suas configurações da sua conta no Pag Seguro.
Em seguida, usamos o código de notificação para buscar os dados completos da Transação, onde você pode pegar o campo "Reference" que você criou na hora de gerar o botão de pagamento.
Assim você pode identificar sua venda no banco de dados e atualizar o status ou disparar qualquer outro tipo de ação no seu sistema.
// Considerei que você já tem um autoload configurado.
use elieldepaula\pagseguro\PagSeguro;
if (count($_POST) > 0) {
try {
$ps = new PagSeguro();
$ps->setCredentials(['email'=>'mail@dominio.com', 'token'=>'N0N0N0']);
$notificationCode = (isset($_POST['notificationCode']) && $_POST['notificationCode'] != '') ? $_POST['notificationCode'] : FALSE;
$resultado = $ps->findByNotification($notificationCode);
var_dump($resultado);
// Exemplo: $resultado->reference;
} catch (Exception $error) {
echo $error->getMessage();
}
} else {
echo "Nenhum POST foi recebido.";
}