22
33SDK de integração eRede
44
5+ ## ⚠️ Atualização Importante - Nova Autenticação
6+
7+ A partir de ** janeiro de 2026** , a Rede implementou um novo método de autenticação baseado em ** OAuth2** para aprimorar a segurança das transações.
8+
9+ ** A versão 2.x deste SDK é compatível com o novo método de autenticação OAuth2** , garantindo uma transição suave e segura para os desenvolvedores.
10+
11+ Para mais detalhes sobre a nova autenticação e migração, consulte a [ documentação oficial da e-Rede] ( https://developer.userede.com.br/e-rede ) .
12+
513## Funcionalidades
614
715Este SDK possui as seguintes funcionalidades:
@@ -27,7 +35,7 @@ Se já possui um arquivo `composer.json`, basta adicionar a seguinte dependênci
2735``` json
2836{
2937 "require" : {
30- "silbeckdevs/erede-php" : " * "
38+ "silbeckdevs/erede-php" : " ^2.0.0 "
3139 }
3240}
3341```
@@ -67,7 +75,13 @@ export REDE_DEBUG=0
6775
6876Ou copie o arquivo ` tests/config/env.test.php.example ` para ` tests/config/env.test.php ` e adicione as suas credenciais
6977
70- ## Autorizando uma transação
78+ ## Configuração da loja
79+
80+ A configuração da loja é feita através da classe ` Store ` . Ela possui os seguintes parâmetros:
81+
82+ - ` filiation ` : Número de filiação do estabelecimento (ClientId na versão 2.x)
83+ - ` token ` : Chave de Integração (ClientSecret na versão 2.x)
84+ - ` environment ` : Ambiente da loja (Production ou Sandbox)
7185
7286``` php
7387<?php
@@ -77,6 +91,13 @@ $store = new Store('PV', 'TOKEN', Environment::production());
7791// Configuração da loja em modo sandbox
7892// $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());
7993
94+ $eRedeService = new \Rede\eRede($store);
95+ ```
96+
97+ ## Autorizando uma transação
98+
99+ ``` php
100+ <?php
80101// Transação que será autorizada
81102$transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard(
82103 '5448280000000007',
@@ -87,7 +108,7 @@ $transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard(
87108);
88109
89110// Autoriza a transação
90- $transaction = (new eRede($store)) ->create($transaction);
111+ $transaction = $eRedeService ->create($transaction);
91112
92113if ($transaction->getReturnCode() == '00') {
93114 printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
@@ -98,12 +119,6 @@ Por padrão, a transação é capturada automaticamente; caso seja necessário a
98119
99120``` php
100121<?php
101- // Configuração da loja em modo produção
102- $store = new Store('PV', 'TOKEN', Environment::production());
103-
104- // Configuração da loja em modo sandbox
105- // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());
106-
107122// Transação que será autorizada
108123$transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard(
109124 '5448280000000007',
@@ -114,7 +129,7 @@ $transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard(
114129)->capture(false);
115130
116131// Autoriza a transação
117- $transaction = (new eRede($store)) ->create($transaction);
132+ $transaction = $eRedeService ->create($transaction);
118133
119134if ($transaction->getReturnCode() == '00') {
120135 printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
@@ -126,12 +141,6 @@ if ($transaction->getReturnCode() == '00') {
126141
127142``` php
128143<?php
129- // Configuração da loja em modo produção
130- $store = new Store('PV', 'TOKEN', Environment::production());
131-
132- // Configuração da loja em modo sandbox
133- // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());
134-
135144// Transação que será autorizada
136145$transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard(
137146 '5448280000000007',
@@ -145,7 +154,7 @@ $transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard(
145154$transaction->setInstallments(3);
146155
147156// Autoriza a transação
148- $transaction = (new eRede($store)) ->create($transaction);
157+ $transaction = $eRedeService ->create($transaction);
149158
150159if ($transaction->getReturnCode() == '00') {
151160 printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
@@ -156,12 +165,6 @@ if ($transaction->getReturnCode() == '00') {
156165
157166``` php
158167<?php
159- // Configuração da loja em modo produção
160- $store = new Store('PV', 'TOKEN', Environment::production());
161-
162- // Configuração da loja em modo sandbox
163- // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());
164-
165168// Transação que será autorizada
166169$transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard(
167170 '5448280000000007',
@@ -172,7 +175,7 @@ $transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard(
172175)->additional(1234, 56);
173176
174177// Autoriza a transação
175- $transaction = (new eRede($store)) ->create($transaction);
178+ $transaction = $eRedeService ->create($transaction);
176179
177180if ($transaction->getReturnCode() == '00') {
178181 printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
@@ -183,12 +186,6 @@ if ($transaction->getReturnCode() == '00') {
183186
184187``` php
185188<?php
186- // Configuração da loja em modo produção
187- $store = new Store('PV', 'TOKEN', Environment::production());
188-
189- // Configuração da loja em modo sandbox
190- // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());
191-
192189// Transação que será autorizada
193190$transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard(
194191 '5448280000000007',
@@ -207,7 +204,7 @@ $transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard(
207204);
208205
209206// Autoriza a transação
210- $transaction = (new eRede($store)) ->create($transaction);
207+ $transaction = $eRedeService ->create($transaction);
211208
212209if ($transaction->getReturnCode() == '00') {
213210 printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
@@ -219,12 +216,6 @@ if ($transaction->getReturnCode() == '00') {
219216
220217``` php
221218<?php
222- // Configuração da loja em modo produção
223- $store = new Store('PV', 'TOKEN', Environment::production());
224-
225- // Configuração da loja em modo sandbox
226- // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());
227-
228219// Transação que será autorizada
229220$transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard(
230221 '5448280000000007',
@@ -235,7 +226,7 @@ $transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard(
235226)->iata('code123', '250');
236227
237228// Autoriza a transação
238- $transaction = (new eRede($store)) ->create($transaction);
229+ $transaction = $eRedeService ->create($transaction);
239230
240231if ($transaction->getReturnCode() == '00') {
241232 printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
@@ -246,14 +237,8 @@ if ($transaction->getReturnCode() == '00') {
246237
247238``` php
248239<?php
249- // Configuração da loja em modo produção
250- $store = new Store('PV', 'TOKEN', Environment::production());
251-
252- // Configuração da loja em modo sandbox
253- // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());
254-
255240// Transação que será capturada
256- $transaction = (new eRede($store)) ->capture((new Transaction(20.99))->setTid('TID123'));
241+ $transaction = $eRedeService ->capture((new Transaction(20.99))->setTid('TID123'));
257242
258243if ($transaction->getReturnCode() == '00') {
259244 printf("Transação capturada com sucesso; tid=%s\n", $transaction->getTid());
@@ -264,14 +249,8 @@ if ($transaction->getReturnCode() == '00') {
264249
265250``` php
266251<?php
267- // Configuração da loja em modo produção
268- $store = new Store('PV', 'TOKEN', Environment::production());
269-
270- // Configuração da loja em modo sandbox
271- // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());
272-
273252// Transação que será cancelada
274- $transaction = (new eRede($store)) ->cancel((new Transaction(20.99))->setTid('TID123'));
253+ $transaction = $eRedeService ->cancel((new Transaction(20.99))->setTid('TID123'));
275254
276255if ($transaction->getReturnCode() == '359') {
277256 printf("Transação cancelada com sucesso; tid=%s\n", $transaction->getTid());
@@ -282,13 +261,8 @@ if ($transaction->getReturnCode() == '359') {
282261
283262``` php
284263<?php
285- // Configuração da loja em modo produção
286- $store = new Store('PV', 'TOKEN', Environment::production());
287-
288- // Configuração da loja em modo sandbox
289- // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());
290-
291- $transaction = (new eRede($store))->get('TID123');
264+ // Consulta a transação pelo ID
265+ $transaction = $eRedeService->get('TID123');
292266
293267printf("O status atual da autorização é %s\n", $transaction->getAuthorization()->getStatus());
294268```
@@ -297,13 +271,8 @@ printf("O status atual da autorização é %s\n", $transaction->getAuthorization
297271
298272``` php
299273<?php
300- // Configuração da loja em modo produção
301- $store = new Store('PV', 'TOKEN', Environment::production());
302-
303- // Configuração da loja em modo sandbox
304- // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());
305-
306- $transaction = (new eRede($store))->getByReference('pedido123');
274+ // Consulta a transação pela referência
275+ $transaction = $eRedeService->getByReference('pedido123');
307276
308277printf("O status atual da autorização é %s\n", $transaction->getAuthorization()->getStatus());
309278```
@@ -312,13 +281,8 @@ printf("O status atual da autorização é %s\n", $transaction->getAuthorization
312281
313282``` php
314283<?php
315- // Configuração da loja em modo produção
316- $store = new Store('PV', 'TOKEN', Environment::production());
317-
318- // Configuração da loja em modo sandbox
319- // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());
320-
321- $transaction = (new eRede($store))->getRefunds('TID123');
284+ // Consulta os cancelamentos de uma transação
285+ $transaction = $eRedeService->getRefunds('TID123');
322286
323287printf("O status atual da autorização é %s\n", $transaction->getAuthorization()->getStatus());
324288```
@@ -327,12 +291,6 @@ printf("O status atual da autorização é %s\n", $transaction->getAuthorization
327291
328292``` php
329293<?php
330- // Configuração da loja em modo produção
331- $store = new Store('PV', 'TOKEN', Environment::production());
332-
333- // Configuração da loja em modo sandbox
334- // $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());
335-
336294// Configura a transação que será autorizada após a autenticação
337295$transaction = (new Transaction(25, 'pedido' . time()))->debitCard(
338296 '5277696455399733',
@@ -357,7 +315,7 @@ $transaction->threeDSecure(
357315$transaction->addUrl('https://redirecturl.com/3ds/success', Url::THREE_D_SECURE_SUCCESS);
358316$transaction->addUrl('https://redirecturl.com/3ds/failure', Url::THREE_D_SECURE_FAILURE);
359317
360- $transaction = (new eRede($store)) ->create($transaction);
318+ $transaction = $eRedeService ->create($transaction);
361319
362320if ($transaction->getReturnCode() == '220') {
363321 printf("Redirecione o cliente para \"%s\" para autenticação\n", $transaction->getThreeDSecure()->getUrl());
@@ -371,7 +329,7 @@ if ($transaction->getReturnCode() == '220') {
371329// Configura a transação para o PIX e passa a data de expiração
372330$transaction = (new Transaction(200.99, 'pedido' . time()))->createQrCode(new \DateTimeImmutable('+ 1 hour'));
373331
374- $transaction = (new eRede($store)) ->create($transaction);
332+ $transaction = $eRedeService ->create($transaction);
375333
376334if ($transaction->getReturnCode() == '00') {
377335 printf(
@@ -383,6 +341,33 @@ if ($transaction->getReturnCode() == '00') {
383341
384342## Observações
385343
386- - Ao criar uma transação com ` $transaction = (new eRede($store)) ->create($transaction) ` não vai retornar o campo ` authorization ` , para retornar o campo é preciso fazer uma consulta ` $transaction = (new eRede($store)) ->get('TID123') `
344+ - Ao criar uma transação com ` $transaction = $eRedeService ->create($transaction) ` não vai retornar o campo ` authorization ` , para retornar o campo é preciso fazer uma consulta ` $transaction = $eRedeService ->get('TID123') `
387345- O campo ` $transaction->getAuthorizationCode() ` não está retornando nada, use ` $transaction->getBrand()?->getAuthorizationCode() ` ou ` $transaction->getAuthorization()?->getBrand()?->getAuthorizationCode() `
388346- Caso precise acessar o JSON original do response utilize ` $transaction?->getHttpResponse()->getBody() `
347+
348+ ### Gerenciamento de Token OAuth2
349+
350+ O token de autenticação OAuth2 possui um ** tempo de expiração** de 24 minutos. Para otimizar o desempenho e evitar requisições desnecessárias, é recomendado ** salvar e reutilizar o token** enquanto ele estiver válido.
351+
352+ ** Exemplo de implementação:**
353+
354+ ``` php
355+ <?php
356+ $store = new Store('PV', 'TOKEN', Environment::production());
357+ $eRedeService = new eRede($store);
358+
359+ // Faça suas requisições...
360+
361+ // Salve o token para reutilização e salve em um local seguro
362+ $cachedToken = json_encode($eRedeService->getOAuthToken());
363+
364+ // Para reutilizar o token, basta decodificar o JSON e setar no store
365+ $store->setOAuthToken((new OAuthToken())->populate(json_decode($cachedToken)));
366+ $eRedeService = new eRede($store);
367+ ```
368+
369+ ** Recomendações:**
370+
371+ - Armazene o token em cache (Redis, Memcached) ou banco de dados para ambientes de produção
372+ - Sempre verifique a expiração antes de reutilizar o token
373+ - O SDK gerencia automaticamente a renovação quando o token expira
0 commit comments