canislupus/api-client-pagseguro

0.4.0 2023-10-19 10:34 UTC

This package is auto-updated.

Last update: 2024-09-19 12:31:54 UTC


README

Cliente para integração com a API do sistema PagSeguro. Conheça o PagSeguro

Este cliente se refere à mais recente API do PagSeguro, que está documentada em https://dev.pagbank.uol.com.br/reference/introducao

Instalação

Composer

composer require canislupus/api-client-pagseguro

Utilização

use CanisLupus\ApiClients\PagSeguro\v1\PagSeguroApiClient;
use CanisLupus\ApiClients\PagSeguro\v1\Enums\EnvironmentEnum;
use CanisLupus\ApiClients\PagSeguro\v1\PagSeguroApiConfig;
use CanisLupus\ApiClients\PagSeguro\v1\Exceptions\PagSeguroApiException;

// Inicialize o cliente passando um objeto de configuração
$clientPagSeguro = new PagSeguroApiClient(
    new PagSeguroApiConfig(EnvironmentEnum::Sandbox, '#SEU-TOKEN-PAGSEGURO#')
);

// Use o cliente
try {
    // Por exemplo, para criar uma chave-pública
    $newPublicKey = $clientPagSeguro->publicKeys->create();
    
    // Para criar um pedido (veja nos exemplos abaixo como passar os $dadosPedido)
    $newOrder = $clientPagSeguro->orders->create($dadosPedido);
    
} catch (PagSeguroApiException $e) {
    die($e->getMessage());
}

Pode-se criar um pedido passando um objeto OrderResource construído

$orderResource = new OrderResource();
$orderResource->setReferenceId('ex-00001');
$orderResource->setCustomer(new CustomerResource(
    'Jose da Silva',
    'c96827089160215759351@sandbox.pagseguro.com.br',
    '12345678909'
));
$orderResource->setItems([
    new ItemResource('item-id-001', 'Item 01', 2, 4500), // 4500 é o valor referente à R$ 45,00
    new ItemResource('item-id-002', 'Item 02', 1, 6599) // 6599 é o valor referente à R$ 65,99
]);
$orderResource->setNotificationUrls(['https://meusite.com/notificacoes1']);
$orderResource->setCharges([
    (new ChargeResource())
        ->setReferenceId('charge-id-001')
        ->setDescription('descricao da cobranca')
        ->setAmount(new AmountResource(15599, 'BRL')) // 15599 é o valor referente à R$ 155,99
        ->setPaymentMethod(
            (new PaymentMethodResource(PaymentMethodEnum::CREDIT_CARD))
                ->setInstallments(1)
                ->setCard(
                    (new CardResource())
                        ->setHolder(new HolderResource("Jose da Silva"))
                        // Pode passar diretamente os dados do cartão
                        ->setNumber('4242424242424242')->setExpMonth('12')->setExpYear('2032')
                        // Ou pode passar o cartão criptografado pelo javascript do PagSeguro
                        // ->setEncrypted($encryptedCard)
                )
        )
]);

$newOrder = $clientPagSeguro->orders->create($orderResource);

Ou pode-se criar um pedido passando diretamente o array da estrutura requerida

$newOrder = $clientPagSeguro->orders->create([
    'reference_id' => 'ex-00001',
    'customer' => [
        'name' => 'Jose da Silva',
        'email' => 'c96827089160215759351@sandbox.pagseguro.com.br',
        'tax_id' => '12345678909',
    ],
    'items' => [
        [
            'reference_id' => 'item-id-001',
            'name' => 'Item 01',
            'quantity' => '1',
            'unit_amount' => '15599', // Significa R$ 155,99
        ]
    ],
    'notification_urls' => ['https://meusite.com/notificacoes'],
    'charges' => [
        [
            'reference_id' => 'charge-id-001',
            'description' => 'descricao da cobranca',
            'amount' => [
                'value' => '15599', // Significa R$ 155,99
                'currency' => 'BRL',
            ],
            'payment_method' => [
                'type' => 'CREDIT_CARD',
                'installments' => '1',
                'capture' => true,
                'card' => [
                    'holder' => [
                        'name' => "Jose da Silva",
                    ],
                    'store' => false,
                    
                    // Pode passar diretamente os dados do cartão
                    'number' => '4242424242424242',
                    'exp_month' => '12',
                    'exp_year' => '2032',

                     // Ou pode passar o cartão criptografado pelo javascript do PagSeguro
                     //'encrypted' => $encryptedCard,
                ],
            ]
        ]
    ],
]);

Mais exemplos

Mais exemplos podem ser encontrados na pasta docs/examples

Abrangência

Lista de API's

Licença

  • MIT License