Download the PHP package joshua-barbosa/erede-sdk without Composer
On this page you can find all versions of the php package joshua-barbosa/erede-sdk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download joshua-barbosa/erede-sdk
More information about joshua-barbosa/erede-sdk
Files in joshua-barbosa/erede-sdk
Package erede-sdk
Short Description SDK PHP para a API eRede (Rede) com autenticação OAuth 2.0, integrado ao Laravel.
License MIT
Homepage https://github.com/joshua-barbosa/erede-sdk
Informations about the package erede-sdk
eRede SDK
SDK PHP para a API eRede (Rede) com autenticação OAuth 2.0, integrado ao Laravel.
Suporta Laravel 8 a 13 / PHP 8.0+.
Compatibilidade
| Laravel | PHP | Testado no CI | Situação |
|---|---|---|---|
| 13.x | 8.3 · 8.4 | ✅ | Recomendado |
| 12.x | 8.3 | ✅ | Recomendado |
| 11.x | 8.2 | ✅ | ⚠️ Suporte a ser removido |
| 10.x | 8.1 | ✅ | ⚠️ Suporte a ser removido |
| 9.x | 8.1 | ✅ | ⚠️ Suporte a ser removido |
| 8.x | 8.0 | ✅ | ⚠️ Suporte a ser removido |
⚠️ Laravel 8, 9, 10 e 11 serão descontinuados
O suporte a essas versões existe como medida paliativa, para que projetos legados consigam usar o SDK enquanto a migração não acontece. Ele será removido numa versão futura, sem prazo definido mas sem cerimônia — provavelmente na primeira versão que precisar de um recurso mais novo do framework.
Todas as quatro já estão fora do suporte oficial da Laravel e carregam advisories de segurança conhecidas. Na prática isso significa que o Composer 2.10+ recusa instalá-las por padrão — se o seu projeto está numa delas, você já convive com esse bloqueio, independentemente deste pacote.
Migre para o Laravel 12 ou 13. Enquanto isso não é viável, fixe a versão do SDK para não ser surpreendido quando o suporte cair:
O
~0.2.0aceita correções (0.2.1,0.2.2) mas não sobe para0.3.0, que é onde a remoção pode acontecer.
O piso de PHP 8.0 custou alguns recursos de 8.1+ (readonly, enum nos testes).
O que foi cedido e como reverter está em docs/php-8.0-compat.md.
Instalação
O ServiceProvider é descoberto automaticamente — nada a registrar manualmente.
O pacote está em
0.x: a API pública ainda pode mudar. O SemVer permite alterações incompatíveis entre versões0.xdiferentes, então fixe em~0.2.0se quiser proteção contra quebras — sobretudo se você depende do suporte a Laravel 8–11.
Desenvolvimento local
Para editar o pacote e ver o efeito imediato na aplicação, use um repositório path:
Com symlink: true o Composer aponta o vendor/ para a sua cópia local: você edita o pacote e o
efeito é imediato, sem composer update.
Publicar a configuração
Isso cria config/erede.php na aplicação. O pacote funciona sem publicar — os padrões vêm do
próprio arquivo interno —, mas publicar é o caminho para versionar ajustes de timeout, cache e log.
Configuração
No OAuth 2.0 da Rede o PV é o clientId e a chave de integração é o clientSecret.
Proxy
Ambientes corporativos costumam exigir saída por proxy. Basta definir:
Isso aplica o mesmo proxy a HTTP e HTTPS. Para separar, ou para excluir hosts:
Se nenhuma variável for definida, nenhuma opção de proxy é passada ao Guzzle.
Timeouts
Não há retry automático: criar transação é um POST não idempotente e uma retentativa cega pode gerar cobrança duplicada. Se precisar de retry, aplique-o apenas nas leituras (get, getByReference).
Log
O pacote registra o canal erede em logging.channels automaticamente (driver daily, storage/logs/erede.log, retenção de 14 dias) e loga por ele.
Se você definir logging.channels.erede no config/logging.php da aplicação, a sua definição prevalece — o pacote nunca sobrescreve configuração explícita. Use isso para mandar o eRede para um stack, Slack, Sentry etc.:
Todo contexto passa por eRede\Support\Redactor antes de ir para o log: access_token, securityCode, cvv e afins viram [REDACTED], e cardNumber fica mascarado preservando os 4 últimos dígitos.
Cache do access_token
O token é reaproveitado até expirar, descontando 60 s de margem.
Com múltiplos workers, prefira um store compartilhado (redis, memcached). Com file ou array cada processo autentica por conta própria.
Uso
Injeção de dependência (recomendado)
Ou app(eRede::class).
Instância explícita
Útil quando o PV varia por loja/tenant:
Argumentos omitidos caem para o config/erede.php — passar só o pv mantém timeouts, proxy e cache da aplicação.
Criar uma transação de crédito
Autorizar agora, capturar depois
Consultar
Cancelar / estornar
Referência da API
Documentação detalhada de cada tipo, separada por camada:
| Documento | Conteúdo |
|---|---|
| docs/classes.md | eRede\Classes — objetos de entrada que você monta (Transaction, Amount, Url) e os blocos aninhados das respostas (Authorization, Capture, Refund, Status, Link), além da tabela ReturnResponse |
| docs/components.md | eRede\Components — Transactions e Refunds, os verbos do SDK: quais endpoints chamam, como resolvem o tid e o que retornam |
| docs/responses.md | eRede\Responses — Transaction, TransactionGet, Refund e RefundGet: como a hidratação via fromData funciona e o que cada campo significa |
| docs/traits.md | eRede\Traits — ToArray (serialização e a regra do ignoreNullable), Attribute (acesso por nome) e RetrieveResponse (resposta HTTP → payload ou exceção) |
Tratamento de erros
Todas as falhas de comunicação e de negócio lançam eRede\Exceptions\eRedeException, que estende \Exception.
Erros de configuração (credenciais ausentes, ambiente inválido) lançam ConfigurationException, que também estende eRedeException — capture-a separadamente se quiser distinguir falha de setup de recusa do emissor.
InvalidArgumentException continua sendo lançada para uso incorreto da API do SDK (consulta sem tid, por exemplo).
Testes
Desenvolver o pacote exige PHP 8.1+, embora ele rode em 8.0. O motivo é o
laravel/pint, que exige 8.1. Para instalar as dependências de desenvolvimento em PHP 8.0, remova-o antes:composer remove --dev laravel/pint --no-update. É o que a linha de PHP 8.0 do CI faz.
99 testes, 364 asserções. Cobertura: 94,94% de linhas / 92,46% de métodos (medida com PCOV em PHP 8.3).
A suíte usa Http::fake() — nenhuma requisição sai para a Rede.
Para cobertura local:
Nos testes da sua aplicação, faça o mesmo:
Corrigido na extração
Responses\RefundGet::getRefunds()lançavaTypeErrorsempre. A propriedade é?Refund, mas getter, setter e construtor declaravam?string. Como a hidratação viafromDataatribui umRefund, qualquer chamada agetRefunds()apósrefunds()->getByTid()estourava — o fluxo de consulta de estornos estava quebrado de ponta a ponta. Os três tipos passaram a ser?Refund.
Pendências conhecidas
Herdadas da versão original e mantidas para não alterar comportamento nesta extração:
Amount::getConvertedAmount()eTransaction::setAmount()usamceil()sobrefloat * 100. Funciona para os valores usuais, mas arredonda para cima; migrar paraintval(round(...))oubcmathseria mais seguro para dinheiro.Traits\Attribute::set()recebe 2 parâmetros, masClasses\Link,Classes\StatuseResponses\TransactionGeta chamam com 3. O terceiro é ignorado pelo PHP; é código morto, não um defeito.
Apoie
Este pacote é mantido nas horas vagas. Se ele te poupou algumas horas de briga com a API da Rede, me paga um café ☕ — ajuda a manter a compatibilidade em dia conforme o Laravel e a API da Rede evoluem.
Contribuição de código também é bem-vinda: abra uma issue ou um PR.
Licença
MIT.
All versions of erede-sdk with dependencies
illuminate/contracts Version ^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
illuminate/http Version ^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
illuminate/support Version ^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
guzzlehttp/guzzle Version ^7.5
psr/log Version ^1.1|^2.0|^3.0
symfony/http-foundation Version ^5.4|^6.0|^7.0|^8.0