devsitarget/sdk-erede-php-oauth
最新稳定版本:3.0.1
Composer 安装命令:
composer require devsitarget/sdk-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 devsitarget/sdk-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 RedeOAuth\Store; use RedeOAuth\Environment; use RedeOAuth\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 RedeOAuth\Store; use RedeOAuth\Environment; use RedeOAuth\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 RedeOAuth\Store; use RedeOAuth\Environment; use RedeOAuth\Transaction; use RedeOAuth\eRede; use RedeOAuth\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
统计信息
- 总下载量: 18
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-12-22