-
Notifications
You must be signed in to change notification settings - Fork 25
02 Compra
Classe para realizar compras sem recorrencia no PagSeguro
Para realizar compras recorrentes no PagSeguro como assinaturas ou compras com checkout transparente, olhe os examples na página abaixo:
Pagamentos com Checkout Transparente com PagSeguro
Pagamentos Recorrentes com PagSeguro
O código dessa seção serve para realizar compras com checkout no ambiente do PagSeguro.
Para gerar o Token da sua conta do PagSeguro, logar na conta, ir em Minha Conta >> Preferências >> Integração e solicar para gerar um token
No Sandbox para testes, seu token pode ser acessado em Perfil de Integração >> Vendedor
Para usar esse projeto, basta baixar esse repositório em seu projeto e importar a classe em src/PagSeguroAssinaturas.php ou usar o composer que é o mais indicado:
composer require carloswgama/php-pagseguro
Caso seu projeto já possua um arquivo composer.json, você pode também adiciona-lo nas dependências require e rodar um composer install:
{
"require": {
"carloswgama/php-pagseguro": "3.*"
}
}
<?php
require_once(dirname(__FILE__).'/vendor/autoload.php');
use CWG\PagSeguro\PagSeguroCompras;
$email = "[email protected]";
$token = "33D43C3F884E4EB687C2C62BB92ECD6A";
$sandbox = true;
$pagseguro = new PagSeguroCompras($email, $token, $sandbox);
//Nome do comprador (OPCIONAL)
$pagseguro->setNomeCliente("CARLOS W GAMA");
//Email do comprovador (OPCIONAL)
$pagseguro->setEmailCliente("[email protected]");
//Código usado pelo vendedor para identificar qual é a compra (OPCIONAL)
$pagseguro->setReferencia("CWG004");
//Adiciona os itens da compra (ID do ITEM, DESCRICAO, VALOR, QUANTIDADE)
$pagseguro->adicionarItem('ITEM0001', 'Item 1', 10.00, 2);
$pagseguro->adicionarItem('ITEM0002', 'Item 2', 15.50, 1);
//URL para onde será enviado as notificações de alteração da compra (OPCIONAL)
$pagseguro->setNotificationURL('http://carloswgama.com.br/pagseguro/not/notificando.php');
//URL para onde o comprador será redicionado após a compra (OPCIONAL)
$pagseguro->setRedirectURL('http://carloswgama.com.br/');
try{
$url = $pagseguro->gerarURLCompra();
echo 'Sua URL para o pagamento: ' . $url;
} catch (Exception $e) {
echo $e->getMessage();
}
O Lightbox é um recurso do PagSeguro que permite abrir o Checkout do PagSeguro dentro da própria página do site como um pop-up.
Código:
<?php
require dirname(__FILE__)."/../_autoload.class.php";
use CWG\PagSeguro\PagSeguroCompras;
$email = "[email protected]";
$token = "33D43C3F884E4EB687C2C62BB92ECD6A";
$sandbox = true;
$pagseguro = new PagSeguroCompras($email, $token, $sandbox);
//Nome do comprador (OPCIONAL)
$pagseguro->setNomeCliente("CARLOS W GAMA");
//Email do comprovador (OPCIONAL)
$pagseguro->setEmailCliente("[email protected]");
//Código usado pelo vendedor para identificar qual é a compra (OPCIONAL)
$pagseguro->setReferencia("CWG004");
//Adiciona os itens da compra (ID do ITEM, DESCRICAO, VALOR, QUANTIDADE)
$pagseguro->adicionarItem('ITEM0001', 'Item 1', 10.00, 2);
$pagseguro->adicionarItem('ITEM0002', 'Item 2', 15.50, 1);
//JavaScript caso a compra seja realizada (OPCIONAL)
$success = "window.location.href='obrigado.php'";
//JavaScript caso o lightbox seja fechado sem concluir a compra (OPCIONAL)
$abort = "window.location.href='index.php'";
try{
$jsLightbox = $pagseguro->gerarLightbox($success, $abort);
echo $jsLightbox; //Executa o JavaScript do PagSeguro para abrir o LIghtbox
} catch (Exception $e) {
echo $e->getMessage();
}
Sempre que uma compra é realizada, ela envia uma notificação para o link que estiver configurando no ambiente do PagSeguro (Ou para o link que tenha sid informado no notificationURL no ato de criar a compra), com isso é possível acessar as informações da assinatura pelo código da notificação enviado para fazer ativar as funcionalidades em seu site para o cliente:
<?php
require_once(dirname(__FILE__).'/vendor/autoload.php');
use CWG\PagSeguro\PagSeguroCompras;
$email = "[email protected]";
$token = "33D43C3F884E4EB687C2C62BB92ECD6A";
$sandbox = true;
$pagseguro = new PagSeguroCompras($email, $token, $sandbox);
//Caso seja uma notificação de compra (transaction)
if ($_POST['notificationType'] == 'transaction') {
$codigo = $_POST['notificationCode']; //Recebe o código da notificação e busca as informações de como está a assinatura
$response = $pagseguro->consultarNotificacao($codigo);
print_r($response);die;
}
Para alterar a url de notificação basta acessar: Sandbox: Perfis de Integração >> Vendedor >> Notificação de Transação Produção: Minha Conta >> Preferências >> Integrações >> Notiifcação de Transação
<?php
require_once(dirname(__FILE__).'/vendor/autoload.php');
use CWG\PagSeguro\PagSeguroCompras;
$email = "[email protected]";
$token = "33D43C3F884E4EB687C2C62BB92ECD6A";
$sandbox = true;
$pagseguro = new PagSeguroCompras($email, $token, $sandbox);
echo "<h2>Consulta pelo código de Transação</h2>";
//Pelo cóigo da transação
$codigoTransacao = 'CF748673-0190-4B15-8ACA-A10192E7C1D4'; //È o código gerado no ato da compra pelo PagSeguro
$response = $pagseguro->consultarCompra($codigoTransacao);
print_r($response);
echo "<br/><hr/>";
echo "<h2>Consulta pelo código de Referencia</h2>";
//Pelo Código da Referencia
$referencia = 'CWG004'; //È o código gerado no seu site ao criar a solicitação de compra
$response = $pagseguro->consultarCompraByReferencia($referencia);
print_r($response);
Autor: Carlos W. Gama ([email protected]) Licença: MIT
Livre para usar, modificar como desejar e destribuir como quiser