gustavosantarosa / pagarme-sdk
Pagarme SDK
Requires
- php: ^8.2
- laravel/framework: ^10.0 | ^11.0 | ^12.0 | ^13.0
- quantumtecnology/validate-trait: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- laravel/pint: ^1.0
- rector/rector: ^1.0 | ^2.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-18 21:28:09 UTC
README
Pagarme-SDK para Laravel
🧐 Sobre
Este pacote inclui um sdk simples de comunicação com a pagarme. (em breve)
Sempre que possivel ele sera atualizado, e esta aberto para a comunidade sugerir melhorias.
🏁 Para utilizar o pack
Para utilizar a classe, basta instalar ela utilizando o comando do composer:
composer require quantumtecnology/pagarme-sdk
Em seguida basta publicar o config dela em config/pagarme.php
php artisan vendor:publish --tag=config
Crie a seguinte env
PAGARME_ACCESS_TOKEN=YourKey
Pronto, ja é para estar funcionando.
🔁 Repetição e idempotência
O pacote só repete uma requisição quando isso não pode gerar efeito duplicado:
GET,PUT,PATCHeDELETErepetem até 3 vezes, só em falha de conexão ou erro 5xx.POSTnão repete, a menos que tenhaIdempotency-Key. Um timeout pode acontecer depois de o Pagar.me criar o pedido, e repetir sem chave criaria uma segunda cobrança.- Erro 4xx nunca é repetido.
Para criar com segurança, envie uma chave estável por tentativa:
$order = PaymentRepository::order() ->withIdempotencyKey("{$invoiceId}-{$attempt}") ->create($payload);
Em falha de conexão sem chave, a ConnectionException sobe para quem chamou. Use findByCode() para descobrir se o pedido foi criado antes de tentar de novo:
$order = PaymentRepository::order()->findByCode($invoiceId); $charge = PaymentRepository::charge()->find('ch_...');
Para usar outra chave secreta que não a do .env (ex.: guardada no banco): ->withAccessToken($secretKey). O tempo limite vem de PAGARME_TIMEOUT (padrão: 30 s).
🎈 Recursos
Nele existem algumas ferramentas uteis.
- Recurrence:
- Subscript.
🧐 Outras Bibliotecas
- Enum-Basics-Extension - Utilizado para auxiliar nas Classes de Enums;
- SetSchema-Trait - Suprir a necessidade de setar os schemas automaticamente do PostgreSQL;
- Validate-Trait - Bindar os Requests automaticamente de acordo com o caminho do Service Pattern;
- PerPage-Trait - Padronizar a quantidade do paginate na api inteira e definir uma quantidade máxima;
⛏️ Ferramentas
✍️ Autor
- @Luis Gustavo Santarosa Pinto - Idea & Initial work