pietrocoelho/erede-php-oauth
Composer 安装命令:
composer require pietrocoelho/erede-php-oauth
包简介
SDK PHP para integração com eRede utilizando autenticação OAuth 2.0
README 文档
README
SDK de integração com eRede utilizando autenticação OAuth 2.0 ao invés de Basic Auth.
Funcionalidades
Este SDK possui as seguintes funcionalidades:
- Autenticação OAuth 2.0
- Autorização de transações
- Captura de transações
- Consulta de transações (por TID ou referência)
- Cancelamento de transações
- Parcelamento
Requisitos
- PHP >= 8.1
- Docker e Docker Compose (para desenvolvimento)
Instalação
Via Composer
O pacote está disponível no Packagist.
composer require pietrocoelho/erede-php-oauth
Via Docker
# Construir a imagem Docker make build # Iniciar o container make up # Instalar dependências make install # Configurar .env para testes (opcional) make setup-env
Configuração
Credenciais OAuth
Configure as credenciais OAuth diretamente no código:
<?php use Rede\Store; use Rede\Environment; use Rede\OAuth\OAuthClient; // Configuração para sandbox $oauthClient = new OAuthClient('https://rl7-sandbox-api.useredecloud.com.br/oauth2/token'); $store = new Store('MERCHANT_ID', 'MERCHANT_KEY', Environment::sandbox(), $oauthClient); // Configuração para produção $oauthClient = new OAuthClient('https://api.userede.com.br/erede/oauth2/token'); $store = new Store('MERCHANT_ID', 'MERCHANT_KEY', Environment::production(), $oauthClient);
Uso Básico
Configuração Inicial
<?php use Rede\Store; use Rede\Environment; use Rede\OAuth\OAuthClient; // Configuração da loja com OAuth em modo sandbox $oauthClient = new OAuthClient('https://rl7-sandbox-api.useredecloud.com.br/oauth2/token'); $store = new Store('MERCHANT_ID', 'MERCHANT_KEY', Environment::sandbox(), $oauthClient); // Para produção $oauthClient = new OAuthClient('https://api.userede.com.br/erede/oauth2/token'); $store = new Store('MERCHANT_ID', 'MERCHANT_KEY', Environment::production(), $oauthClient);
Autorizando uma transação
<?php use Rede\Store; use Rede\Environment; use Rede\Transaction; use Rede\eRede; use Rede\OAuth\OAuthClient; // Configuração da loja $oauthClient = new OAuthClient('https://rl7-sandbox-api.useredecloud.com.br/oauth2/token'); $store = new Store('MERCHANT_ID', 'MERCHANT_KEY', Environment::sandbox(), $oauthClient); // Transação que será autorizada (sem captura automática) $transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard( '5448280000000007', '235', '12', '2025', 'John Snow' )->capture(false); try { $response = (new eRede($store))->create($transaction); if ($response->getReturnCode() == '00') { printf("Transação autorizada com sucesso; tid=%s\n", $response->getTid()); } else { printf("Transação recusada: %s\n", $response->getReturnMessage()); } } catch (\Exception $e) { printf("Erro: %s\n", $e->getMessage()); }
Autorizando e capturando uma transação
<?php // Assumindo que $store já foi configurado anteriormente // Transação com captura automática $transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard( '5448280000000007', '235', '12', '2025', 'John Snow' )->capture(true); $response = (new eRede($store))->create($transaction); if ($response->getReturnCode() == '00') { printf("Transação autorizada e capturada; tid=%s\n", $response->getTid()); }
Transação com parcelamento
<?php $transaction = (new Transaction(100.00, 'pedido' . time()))->creditCard( '5448280000000007', '235', '12', '2025', 'John Snow' )->setInstallments(3); $response = (new eRede($store))->create($transaction); if ($response->getReturnCode() == '00') { printf("Transação parcelada em %dx; tid=%s\n", $response->getInstallments(), $response->getTid()); }
Transação com informações adicionais (gateway e módulo)
<?php $transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard( '5448280000000007', '235', '12', '2025', 'John Snow' )->additional(1234, 56); $response = (new eRede($store))->create($transaction);
Capturando uma transação pré-autorizada
<?php // Primeiro autoriza sem captura $transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard( '5448280000000007', '235', '12', '2025', 'John Snow' )->capture(false); $response = (new eRede($store))->create($transaction); // Depois captura usando o TID $captureTransaction = (new Transaction(20.99))->setTid($response->getTid()); $captureResponse = (new eRede($store))->capture($captureTransaction); if ($captureResponse->getReturnCode() == '00') { printf("Transação capturada com sucesso; tid=%s\n", $captureResponse->getTid()); }
Cancelando uma transação
<?php // Cancela uma transação usando o TID $cancelTransaction = (new Transaction(20.99))->setTid('TID123'); $cancelResponse = (new eRede($store))->cancel($cancelTransaction); if ($cancelResponse->getReturnCode() == '359') { printf("Transação cancelada com sucesso; tid=%s\n", $cancelResponse->getTid()); }
Consultando uma transação pelo TID
<?php $response = (new eRede($store))->get('TID123'); printf("Status: %s\n", $response->getAuthorization()->getStatus()); printf("TID: %s\n", $response->getTid()); printf("NSU: %s\n", $response->getAuthorization()->getNsu()); printf("Código de autorização: %s\n", $response->getAuthorization()->getAuthorizationCode());
Consultando uma transação pela referência
<?php $response = (new eRede($store))->getByReference('pedido123'); printf("Status: %s\n", $response->getAuthorization()->getStatus()); printf("TID: %s\n", $response->getTid());
Consultando cancelamentos (refunds) de uma transação
<?php $refundsResponse = (new eRede($store))->getRefunds('TID123'); // Processa os cancelamentos retornados // Nota: A estrutura de refunds pode variar conforme a resposta da API
Testes
Para executar os testes, você precisa configurar as credenciais no arquivo .env:
- Crie o arquivo
.enva partir do exemplo:
make setup-env
# ou
cp env.example .env
- Edite o arquivo
.envcom suas credenciais de sandbox:
REDE_MERCHANT_ID=seu_merchant_id REDE_MERCHANT_KEY=seu_merchant_key
- Execute os testes:
# Com Docker make test # Localmente composer test
Nota: O arquivo .env é usado apenas para os testes e está no .gitignore.
Comandos Disponíveis
O projeto inclui um Makefile com comandos úteis:
make build- Constrói as imagens Dockermake up- Inicia os containersmake down- Para os containersmake install- Instala as dependênciasmake test- Executa os testesmake cs-check- Verifica o código com PHP_CodeSniffermake cs-fix- Corrige o código automaticamentemake phpstan- Executa análise estática com PHPStanmake shell- Abre um shell no container
Desenvolvimento
Estrutura do Projeto
rede-auth/
├── src/
│ └── Rede/
│ ├── OAuth/ # Autenticação OAuth 2.0
│ ├── Http/ # Cliente HTTP autenticado
│ ├── Transaction.php # Modelo de transação
│ ├── eRede.php # Cliente principal do SDK
│ └── ...
├── tests/
│ ├── Unit/ # Testes unitários
│ └── Integration/ # Testes de integração
├── docker/
├── Dockerfile
└── Makefile
Padrões de Código
O projeto segue os princípios de Clean Code e SOLID:
- Single Responsibility Principle
- Dependency Injection
- Interface Segregation
- Testabilidade
Licença
MIT
pietrocoelho/erede-php-oauth 适用场景与选型建议
pietrocoelho/erede-php-oauth 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 66 次下载、GitHub Stars 达 1, 最近一次更新时间为 2025 年 12 月 03 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 pietrocoelho/erede-php-oauth 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 pietrocoelho/erede-php-oauth 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 66
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 13
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-12-03