2017 © Pedro Peláez
 

library pagseguro

Client para integração com API do Pagseguro

image

phpsc/pagseguro

Client para integração com API do Pagseguro

  • Wednesday, September 20, 2017
  • by lcobucci
  • Repository
  • 36 Watchers
  • 149 Stars
  • 13,121 Installations
  • PHP
  • 4 Dependents
  • 0 Suggesters
  • 63 Forks
  • 13 Open issues
  • 11 Versions
  • 6 % Grown

The README.md

Projeto Descontinuado

Atenção, (*1)

Este projeto foi descontinuado. Fique à vontade para fazer fork e alterá-lo conforme as suas necessidades., (*2)

API PagSeguro

Gitter, (*3)

Build Status Scrutinizer Code Quality Code Coverage, (*4)

Total Downloads Latest Stable Version, (*5)

API de integração com o PagSeguro para PHP 5.6+, deve ser utilizado um Autoloader compatível com a PSR-4., (*6)

Instalação

A instalação desta biblioteca pode ser feita utilizando o Composer., (*7)

Exemplos básicos

Nesta versão é possível gerenciar:, (*8)

  • Solicitações (pagamentos e assinaturas);
  • Notificações
  • Busca por código (pagamentos e assinaturas);
  • Cancelamento e cobrança de assinaturas.

Credenciais de acesso

Para poder realizar requisições ao PagSeguro você deve configurar as credenciais de acesso, podendo ser para ambiente de produção ou sandbox:, (*9)

<?php
// Consideramos que já existe um autoloader compatível com a PSR-4 registrado

use PHPSC\PagSeguro\Credentials;
use PHPSC\PagSeguro\Environments\Production;
use PHPSC\PagSeguro\Environments\Sandbox;

/* Ambiente de produção: */

$credentials = new Credentials('EMAIL CADASTRADO NO PAGSEGURO', 'TOKEN DE ACESSO À API');

// ou 

$credentials = new Credentials(
    'EMAIL CADASTRADO NO PAGSEGURO', 
    'TOKEN DE ACESSO À API',
    new Production()
);

/* Ambiente de testes: */

$credentials = new Credentials(
    'EMAIL CADASTRADO NO PAGSEGURO', 
    'TOKEN DE ACESSO À API',
    new Sandbox()
);

Solicitações

Conjunto de serviços para solicitação da autorização do cliente para o pagamento ou assinatura., (*10)

Pagamentos

Este serviço é responsável por solicitar pagamentos, seu fluxo básico é:, (*11)

Loja                                  PagSeguro
 |                                        |
 |----- (A) solicitação de compra ------->|
 |                                        | (B) realiza processamento
 |<---- (C) envia resposta ---------------|
 |                                        |
 |----- (D) redireciona o cliente ------->|
  • (A) A loja cria uma solicitação de compra e envia para o serviço
  • (B) PagSeguro processa a requisição
  • (C) PagSeguro envia resposta da requisição (informando erros caso houverem)
  • (D) Caso o processamento de (C) ocorreu com sucesso um código será retornado e a loja deverá redirecionar o cliente para o PagSeguro para efetuar o pagamento

Após o cliente ser redirecionado pela loja para o PagSeguro (D) e autorizar o pagamento, ele poderá ser redirecionado de volta à loja com o código da transação criada (dependendo da configuração), (*12)

O seguinte código pode ser utilizado como exemplo básico para solicitação de pagamentos:, (*13)

<?php
// Consideramos que já existe um autoloader compatível com a PSR-4 registrado e as credenciais foram configuradas em $credentials

use PHPSC\PagSeguro\Customer\Customer;
use PHPSC\PagSeguro\Items\Item;
use PHPSC\PagSeguro\Requests\Checkout\CheckoutService;

try {
    $service = new CheckoutService($credentials); // cria instância do serviço de pagamentos

    $checkout = $service->createCheckoutBuilder()
                        ->addItem(new Item(1, 'Televisão LED 500', 8999.99))
                        ->addItem(new Item(2, 'Video-game mega ultra blaster', 799.99))
                        ->getCheckout();

    $response = $service->checkout($checkout);

    //Se você quer usar uma url de retorno
    $checkout->setRedirectTo( "http://seu_dominio/uri/retorno" );

    //Se você quer usar uma url de notificação
    $checkout->setNotificationURL( "http://seu_dominio/admin/transacao/notificacao" );

    header('Location: ' . $response->getRedirectionUrl()); // Redireciona o usuário
} catch (Exception $error) { // Caso ocorreu algum erro
    echo $error->getMessage(); // Exibe na tela a mensagem de erro
}

Assinaturas

Este serviço é responsável por solicitar a autorização de assinaturas (pagamentos pré autorizados), seu fluxo básico é:, (*14)

Loja                                      PagSeguro
 |                                            |
 |----- (A) solicitação de assinatura ------->|
 |                                            | (B) realiza processamento
 |<---- (C) envia resposta -------------------|
 |                                            |
 |----- (D) redireciona o cliente ----------->|
  • (A) A loja cria uma solicitação de assinatura (com cobrança manual ou automática) e envia para o serviço
  • (B) PagSeguro processa a requisição
  • (C) PagSeguro envia resposta da requisição (informando erros caso houverem)
  • (D) Caso o processamento de (C) ocorreu com sucesso um código será retornado e a loja deverá redirecionar o cliente para o PagSeguro para efetuar o pagamento

Após o cliente ser redirecionado pela loja para o PagSeguro (D) e autorizar a assinatura, ele poderá ser redirecionado de volta à loja com o código da assinatura criada (dependendo da configuração), (*15)

O seguinte código pode ser utilizado como exemplo básico para solicitação de assinaturas manuais, onde a loja fica responsável por enviar as cobranças:, (*16)

<?php
// Consideramos que já existe um autoloader compatível com a PSR-4 registrado e as credenciais foram configuradas em $credentials

use DateTime;
use PHPSC\PagSeguro\Requests\PreApprovals\Period;
use PHPSC\PagSeguro\Requests\PreApprovals\PreApprovalService;

try {
    $service = new PreApprovalService($credentials); // cria instância do serviço de pagamentos

    $request = $service->createRequestBuilder()
                   ->setName('Nome da assinatura')
                   ->setPeriod(Period::MONTHLY)
                   ->setFinalDate(new DateTime('2014-12-31 23:59:59'))
                   ->setMaxTotalAmount(50)
                   ->setMaxPaymentsPerPeriod(1)
                   ->setMaxAmountPerPeriod(10)
                   ->getRequest();

    $response = $service->approve($request);

    header('Location: ' . $response->getRedirectionUrl()); // Redireciona o usuário
} catch (Exception $error) { // Caso ocorreu algum erro
    echo $error->getMessage(); // Exibe na tela a mensagem de erro
}

O seguinte código pode ser utilizado como exemplo básico para solicitação de assinaturas automáticas, onde as cobranças serão controladas pelo PagSeguro:, (*17)

<?php
// Consideramos que já existe um autoloader compatível com a PSR-4 registrado e as credenciais foram configuradas em $credentials

use DateTime;
use PHPSC\PagSeguro\Requests\PreApprovals\Period;
use PHPSC\PagSeguro\Requests\PreApprovals\PreApprovalService;

try {
    $service = new PreApprovalService($credentials); // cria instância do serviço de pagamentos

    $request = $service->createRequestBuilder(false)
                   ->setName('Nome da assinatura')
                   ->setPeriod(Period::MONTHLY)
                   ->setFinalDate(new DateTime('2014-12-31 23:59:59'))
                   ->setAmountPerPayment(10)
                   ->setMaxTotalAmount(50)
                   ->getRequest();

    $response = $service->approve($request);

    header('Location: ' . $response->getRedirectionUrl()); // Redireciona o usuário
} catch (Exception $error) { // Caso ocorreu algum erro
    echo $error->getMessage(); // Exibe na tela a mensagem de erro
}

Notificações

Este serviço é responsável por buscar uma transação ou assinatura a partir do código da notificação, ele deve ser utilizado para acompanhar a alteração do status de pagamento de um pagamento ou assinatura. Seu fluxo básico é:, (*18)

Loja                                  PagSeguro
 |                                        |
 |<---- (A) notifica alteração -----------|
 |                                        |
 |----- (B) solicita dados -------------->|
 |                                        |
 |<---- (C) envia resposta ---------------|
  • (A) O PagSeguro envia uma requisição à uma página (configurada na conta do pagseguro) notificando uma mudança de status
  • (B) A loja busca a transação ou assinatura a partir do código da notificação
  • (C) PagSeguro envia resposta da requisição com os detalhes da transação

O uso básico é:, (*19)

<?php
// Consideramos que já existe um autoloader compatível com a PSR-4 registrado e as credenciais foram configuradas em $credentials

// Caso estiver testando, a linha abaixo deve estar descomentada (assim o pagseguro conseguirá enviar requisições locais via JavaScript)
// header("access-control-allow-origin: https://sandbox.pagseguro.uol.com.br");

use PHPSC\PagSeguro\Purchases\Subscriptions\Locator as SubscriptionLocator;
use PHPSC\PagSeguro\Purchases\Transactions\Locator as TransactionLocator;

try {
    $service = $_POST['notificationType'] == 'preApproval'
               ? new SubscriptionLocator($credentials)
               : new TransactionLocator($credentials); // Cria instância do serviço de acordo com o tipo da notificação

    $purchase = $service->getByNotification($_POST['notificationCode']);

    var_dump($purchase); // Exibe na tela a transação ou assinatura atualizada
} catch (Exception $error) { // Caso ocorreu algum erro
    echo $error->getMessage(); // Exibe na tela a mensagem de erro
}

Busca por código

Este serviço é responsável por buscar uma transação ou assinatura a partir de seu código, ele deve ser utilizado para buscar os dados completos de uma transação/aassinatura. Seu fluxo básico é:, (*20)

Loja                                  PagSeguro
 |                                        |
 |----- (A) solicita dados -------------->|
 |                                        |
 |<---- (B) envia resposta ---------------|
  • (A) A loja busca a transação a partir do código da transação/assinatura (recebido na solicitação de pagamento)
  • (B) PagSeguro envia resposta da requisição com os detalhes da transação/assinatura

O uso para busca de transações é:, (*21)

<?php
// Consideramos que já existe um autoloader compatível com a PSR-4 registrado e as credenciais foram configuradas em $credentials

use PHPSC\PagSeguro\Purchases\Transactions\Locator;

try {
    $service = new Locator($credentials); // Cria instância do serviço de localização de transações

    $transaction = $service->getByCode('CÓDIGO');

    var_dump($transaction); // Exibe na tela a transação
} catch (Exception $error) { // Caso ocorreu algum erro
    echo $error->getMessage(); // Exibe na tela a mensagem de erro
}

Para assinaturas é muito similar:, (*22)

<?php
// Consideramos que já existe um autoloader compatível com a PSR-4 registrado e as credenciais foram configuradas em $credentials

use PHPSC\PagSeguro\Purchases\Subscriptions\Locator;

try {
    $service = new Locator($credentials); // Cria instância do serviço de localização de assinaturas

    $subscription = $service->getByCode('CÓDIGO');

    var_dump($subscription); // Exibe na tela a assinatura
} catch (Exception $error) { // Caso ocorreu algum erro
    echo $error->getMessage(); // Exibe na tela a mensagem de erro
}

Gerenciamento da assinatura

O serviço de assinaturas possibilita duas ações a partir do código da assinatura: cobrança (apenas quando a assinatura é de cobrança manual) e cancelamento., (*23)

Cobrança

Este método é responsável por realizar uma nova cobrança para uma assinatura de cobrança manual. Seu fluxo básico é:, (*24)

Loja                                  PagSeguro
 |                                        |
 |----- (A) solicita dados -------------->|
 |                                        |
 |<---- (B) envia resposta ---------------|
  • (A) A loja busca envia uma nova cobrança com o código da assinatura e o detalhe dos itens
  • (B) PagSeguro envia resposta da requisição com o código da transação de cobrança

O uso básico é:, (*25)

<?php
// Consideramos que já existe um autoloader compatível com a PSR-4 registrado e as credenciais foram configuradas em $credentials

use PHPSC\PagSeguro\Purchases\Subscriptions\SubscriptionService;

try {
    $service = new SubscriptionService($credentials); // Cria instância do serviço de gerenciamento de assinaturas

    $charge = $service->createChargeBuilder('CÓDIGO DA ASSINATURA')
                      ->addItem(new Item(1, 'Pagamento assinatura 1/4', 10))
                      ->getCharge();

    var_dump($service->charge($charge)); // Exibe na tela a resposta da cobrança
} catch (Exception $error) { // Caso ocorreu algum erro
    echo $error->getMessage(); // Exibe na tela a mensagem de erro
}

Cancelamento

Este método é responsável por realizar o cancelamento de uma assinatura pela loja. Seu fluxo básico é:, (*26)

Loja                                  PagSeguro
 |                                        |
 |----- (A) solicita dados -------------->|
 |                                        |
 |<---- (B) envia resposta ---------------|
  • (A) A loja busca envia a solicitação de cancelamento com o código da assinatura
  • (B) PagSeguro envia resposta da requisição

O uso básico é:, (*27)

<?php
// Consideramos que já existe um autoloader compatível com a PSR-4 registrado e as credenciais foram configuradas em $credentials

use PHPSC\PagSeguro\Purchases\Subscriptions\SubscriptionService;

try {
    $service = new SubscriptionService($credentials); // Cria instância do serviço de gerenciamento de assinaturas

    var_dump($service->cancel('CÓDIGO DA ASSINATURA')); // Exibe na tela a resposta do cancelamento
} catch (Exception $error) { // Caso ocorreu algum erro
    echo $error->getMessage(); // Exibe na tela a mensagem de erro
}

Licença de uso

Esta biblioteca segue os termos de uso da Creative Commons Attribution-ShareAlike 2.5, (*28)

Bitdeli Badge, (*29)

The Versions

20/09 2017

dev-master

9999999-dev

Client para integração com API do Pagseguro

  Sources   Download

CC-BY-SA-2.5

The Requires

 

The Development Requires

by Luís Otávio Cobucci Oblonczyk

api pagseguro pagamento notificacao

29/05 2017

1.0.1

1.0.1.0

Client para integração com API do Pagseguro

  Sources   Download

CC-BY-SA-2.5

The Requires

 

The Development Requires

by Luís Otávio Cobucci Oblonczyk

api pagseguro pagamento notificacao

28/05 2017

1.0.0

1.0.0.0

Client para integração com API do Pagseguro

  Sources   Download

CC-BY-SA-2.5

The Requires

 

The Development Requires

by Luís Otávio Cobucci Oblonczyk

api pagseguro pagamento notificacao

28/01 2016

dev-develop

dev-develop

Client para integração com API do Pagseguro

  Sources   Download

CC-BY-SA-2.5

The Requires

 

The Development Requires

by Luís Otávio Cobucci Oblonczyk

api pagseguro pagamento notificacao

12/08 2014

1.0.0alpha7

1.0.0.0-alpha7

Client para integração com API do Pagseguro

  Sources   Download

CC-BY-SA-2.5

The Requires

 

The Development Requires

by Luís Otávio Cobucci Oblonczyk

api pagseguro pagamento notificacao

08/08 2014

1.0.0alpha6

1.0.0.0-alpha6

Client para integração com API do Pagseguro

  Sources   Download

CC-BY-SA-2.5

The Requires

 

The Development Requires

by Luís Otávio Cobucci Oblonczyk

api pagseguro pagamento notificacao

04/08 2014

1.0.0alpha5

1.0.0.0-alpha5

Client para integração com API do Pagseguro

  Sources   Download

CC-BY-SA-2.5

The Requires

 

The Development Requires

by Luís Otávio Cobucci Oblonczyk

api pagseguro pagamento notificacao

28/05 2014

1.0.0alpha4

1.0.0.0-alpha4

Client para integração com API do Pagseguro

  Sources   Download

CC-BY-SA-2.5

The Requires

 

The Development Requires

by Luís Otávio Cobucci Oblonczyk

api pagseguro pagamento notificacao

02/09 2013

1.0.0alpha3

1.0.0.0-alpha3

Client para integração com API do Pagseguro

  Sources   Download

CC-BY-SA-2.5

The Requires

 

by Luís Otávio Cobucci Oblonczyk

api pagseguro pagamento notificacao

22/04 2013

1.0.0alpha2

1.0.0.0-alpha2

Client para integração com API do Pagseguro

  Sources   Download

CC-BY-SA-2.5

The Requires

 

by Luís Otávio Cobucci Oblonczyk

api pagseguro pagamento notificacao

22/04 2013

1.0.0alpha1

1.0.0.0-alpha1

Client para integração com API do Pagseguro

  Sources   Download

CC-BY-SA-2.5

The Requires

  • php >=5.3

 

by Luís Otávio Cobucci Oblonczyk

api pagseguro pagamento notificacao