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

用于与 PagSeguro 系统API 集成的客户端。 了解 PagSeguro

此客户端针对 PagSeguro 的最新 API,文档在 https://dev.pagbank.uol.com.br/reference/introducao

安装

Composer

composer require canislupus/api-client-pagseguro

使用

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());
}

可以通过传递构建的 OrderResource 对象来创建一个订单

$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);

或者直接传递所需结构的数组来创建一个订单

$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,
                ],
            ]
        ]
    ],
]);

更多示例

更多示例可以在 docs/examples 文件夹中找到

范围

API 列表

许可证

  • MIT 许可证