Wallogit.com
2017 © Pedro Peláez
Classe para realizar pagamentos comuns e recorrentes no PagSeguro
Classe para realizar compras normais (Checkout Transparente ou não) ou recorrentes no PagSeguro, (*2)
Para realizar compras recorrentes no PagSeguro como assinaturas, olhe os examples na página abaixo:, (*3)
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, (*4)
, (*5)
No Sandbox para testes, seu token pode ser acessado em Perfil de Integração >> Vendedor, (*6)
, (*7)
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:, (*8)
composer require carloswgama/php-pagseguro:3.*
Caso seu projeto já possua um arquivo composer.json, você pode também adiciona-lo nas dependências require e rodar um composer install:, (*9)
{
"require": {
"carloswgama/php-pagseguro": "3.*"
}
}
Documentação Pagamentos Recorrentes com PagSeguro, (*10)
Documentação Pagamentos de Compras com PagSeguro com Checkout Transparente, Padrão e Lightbox, (*11)
Abaixo segue apenas dois exemples do uso da Biblioteca, (*12)
``` php setNomeCliente("CARLOS W GAMA"); //Email do comprovador (OPCIONAL) $pagseguro->setEmailCliente("c73062863531198591643@sandbox.pagseguro.com.br"); //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(); } ``` ### Criando uma compra checkout transparente via boleto ``` php use CWG\PagSeguro\PagSeguroCompras; $email = "carloswgama@gmail.com"; $token = "33D43C3F884E4EB687C2C62BB92ECD6A"; $sandbox = true; $pagseguro = new PagSeguroCompras($email, $token, $sandbox); //Desabilita as outras formas de pagamento, caso não queira $pagseguro->habilitaBoleto(false) ->habilitaDebito(false); //Informar os produtos NO CASO DE CARTÃO DE CREDITO para calcular as parcelas $pagseguro->adicionarItem('ITEM0001', 'Item 1', 10.00, 2); $pagseguro->adicionarItem('ITEM0002', 'Item 2', 15.50, 1); $pagseguro->setParcelasSemJuros(3); //Informa quantidade de parcelas sem juros //URL para onde os dados da compra será realizado para confirmar com o PagSeguro $urlFinalizar = 'http://localhost/pagseguro/examples/compra/checkout-transparente/finalizar_compra.php'; //JavaScript opcional para realizar ao receber os dados de retorno da URL final $jsOpcional = 'alert("Alerta do $jsOpcional"); if (response.success) alert("Concluido com sucesso");'; //Informa URL para completar a compra, JS (opcional) a ser feito e TRUE (OPCIONAL) caso queira importar JQuery $js = $pagseguro->preparaCheckoutTransparente($urlFinalizar, $jsOpcional, true); ?> , (*13)
Número do Cartão, (*14)
, (*15)
CVV do cartão, (*16)
, (*17)
Mês de expiração do Cartao, (*18)
, (*19)
Ano de Expiração do Cartão, (*20)
, (*21)
Parcelas, (*22)
, (*23)
br/, (*24)
, (*25)
=$js['completo']; //Importa o Código do CheckoutTransparente?>
### Criando um plano de assinatura ``` php <?php require_once(dirname(__FILE__).'/vendor/autoload.php'); use CWG\PagSeguro\PagSeguroAssinaturas; $email = "carloswgama@gmail.com"; $token = "33D43C3F884E4EB687C2C62BB92ECD6A"; $sandbox = true; $pagseguro = new PagSeguroAssinaturas($email, $token, $sandbox); //Cria um nome para o plano $pagseguro->setReferencia('Plano_CWG_01'); //Cria uma descrição para o plano $pagseguro->setDescricao('Libera o acesso ao portal por 3 meses. A assinatura voltará a ser cobrada a cada 3 meses.'); //Valor a ser cobrado a cada renovação $pagseguro->setValor(30.00); //De quanto em quanto tempo será realizado uma nova cobrança (MENSAL, BIMESTRAL, TRIMESTRAL, SEMESTRAL, ANUAL) $pagseguro->setPeriodicidade(PagSeguroAssinaturas::TRIMESTRAL); //=== Campos Opcionais ===// //Após quanto tempo a assinatura irá expirar após a contratação = valor inteiro + (DAYS||MONTHS||YEARS). Exemplo, após 5 anos $pagseguro->setExpiracao(5, 'YEARS'); //URL para redicionar a pessoa do portal PagSeguro para uma página de cancelamento no portal $pagseguro->setURLCancelamento('http://carloswgama.com.br/pagseguro/not/cancelando.php'); //Local para o comprador será redicionado após a compra com o código (code) identificador da assinatura $pagseguro->setRedirectURL('http://carloswgama.com.br/pagseguro/not/assinando.php'); //Máximo de pessoas que podem usar esse plano. Exemplo 10.000 pessoas podem usar esse plano $pagseguro->setMaximoUsuariosNoPlano(10000); //=== Cria o plano ===// try { $codigoPlano = $pagseguro->criarPlano(); echo "O Código do seu plano para realizar assinaturas é: " . $codigoPlano; } catch (Exception $e) { echo "Erro: " . $e->getMessage(); }
Apenas é possível estornar compra que tenha sido concluída com sucesso. Por tanto com os status: Paga (3) Disponível (4) ou Em Disputa (5), (*26)
``` php <?php require_once(dirname(FILE).'/vendor/autoload.php'); use CWG\PagSeguro\PagSeguroCompras;, (*27)
$email = "carloswgama@gmail.com"; $token = "33D43C3F884E4EB687C2C62BB92ECD6A"; $sandbox = true;, (*28)
$pagseguro = new PagSeguroCompras($email, $token, $sandbox);, (*29)
$codigoTransacao = 'D76FB9C45A7848888094BBA4C3718BC9'; try { //Estornando $pagseguro->estornar($codigoTransacao);, (*30)
//Opcionalmente pode informar a quantia a estornar (Ex: R$ 178,99). Senão informado, estorna todo valor //$pagseguro->estornar($codigoTransacao, 178.99);
} catch(Exception $e) { echo $e->getMessage(); } ```, (*31)
Nos links acima você poderá ver diversos exemples para criar plano, assinatura, compra, notificações..., (*32)
Autor: Carlos W. Gama (carloswgama@gmail.com) Licença: MIT, (*33)
Livre para usar, modificar como desejar e destribuir como quiser, (*34)