PHP code example of iappapedroza / erede-php-v2

1. Go to this page and download the library: Download iappapedroza/erede-php-v2 library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

iappapedroza / erede-php-v2 example snippets


// Produção
$store = new Store('SEU_PV', 'SEU_TOKEN', Environment::production());

// Sandbox
$store = new Store('SEU_PV', 'SEU_TOKEN', Environment::sandbox());

use ItsTecnologiaErede\Service\GuzzleOAuthService;

$store   = new Store('SEU_PV', 'SEU_TOKEN', Environment::production());
$eRede   = new eRede($store, logger: null, oauthService: new GuzzleOAuthService($store));

$transaction = (new Transaction(20.99, 'pedido' . time()))
    ->creditCard('5448280000000007', '235', '12', '2030', 'John Snow');

$transaction = $eRede->create($transaction);

use ItsTecnologiaErede\Service\OAuthServiceInterface;

class MeuOAuthService implements OAuthServiceInterface
{
    public function __construct(private readonly Store $store) {}

    public function getAccessToken(): string
    {
        // sua lógica de obtenção/cache de token
    }
}

$eRede = new eRede($store, oauthService: new MeuOAuthService($store));

> use ItsTecnologiaErede\Store;
> use ItsTecnologiaErede\Environment;
> use ItsTecnologiaErede\Transaction;
> use ItsTecnologiaErede\eRede;
> // demais classes conforme necessário: SubMerchant, Device, Url, etc.
> 


// Configuração da loja em modo produção
$store = new Store('PV', 'TOKEN', Environment::production());

// Configuração da loja em modo sandbox
// $store = new Store('PV', 'TOKEN', Environment::sandbox());

// Transação que será autorizada
$transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard(
    '5448280000000007',
    '235',
    '12',
    '2030',
    'John Snow'
);

// Autoriza a transação
$transaction = (new eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '00') {
    printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
}


// Configuração da loja em modo produção
$store = new Store('PV', 'TOKEN', Environment::production());

// Configuração da loja em modo sandbox
// $store = new Store('PV', 'TOKEN', Environment::sandbox());

// Transação que será autorizada
$transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard(
    '5448280000000007',
    '235',
    '12',
    '2030',
    'John Snow'
)->capture(false);

// Autoriza a transação
$transaction = (new eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '00') {
    printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
}
//...


// Configuração da loja em modo produção
$store = new Store('PV', 'TOKEN', Environment::production());

// Configuração da loja em modo sandbox
// $store = new Store('PV', 'TOKEN', Environment::sandbox());

// Transação que será autorizada
$transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard(
    '5448280000000007',
    '235',
    '12',
    '2030',
    'John Snow'
);

// Configuração de parcelamento
$transaction->setInstallments(3);

// Autoriza a transação
$transaction = (new eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '00') {
    printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
}


// Configuração da loja em modo produção
$store = new Store('PV', 'TOKEN', Environment::production());

// Configuração da loja em modo sandbox
// $store = new Store('PV', 'TOKEN', Environment::sandbox());

// Transação que será autorizada
$transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard(
    '5448280000000007',
    '235',
    '12',
    '2030',
    'John Snow'
)->additional(1234, 56);

// Autoriza a transação
$transaction = (new eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '00') {
    printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
}


// Configuração da loja em modo produção
$store = new Store('PV', 'TOKEN', Environment::production());

// Configuração da loja em modo sandbox
// $store = new Store('PV', 'TOKEN', Environment::sandbox());

// Transação que será autorizada
$transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard(
    '5448280000000007',
    '235',
    '12',
    '2030',
    'John Snow'
)->mcc(
    'LOJADOZE',
    '22349202212',
    new SubMerchant(
       '1234',
       'São Paulo',
       'Brasil'
    )
);

// Autoriza a transação
$transaction = (new eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '00') {
    printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
}
//...


// Configuração da loja em modo produção
$store = new Store('PV', 'TOKEN', Environment::production());

// Configuração da loja em modo sandbox
// $store = new Store('PV', 'TOKEN', Environment::sandbox());

// Transação que será autorizada
$transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard(
    '5448280000000007',
    '235',
    '12',
    '2030',
    'John Snow'
)->iata('code123', '250');

// Autoriza a transação
$transaction = (new eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '00') {
    printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
}


// Configuração da loja em modo produção
$store = new Store('PV', 'TOKEN', Environment::production());

// Configuração da loja em modo sandbox
// $store = new Store('PV', 'TOKEN', Environment::sandbox());

// Transação que será capturada
$transaction =  (new eRede($store))->capture((new Transaction(20.99))->setTid('TID123'));

if ($transaction->getReturnCode() == '00') {
    printf("Transação capturada com sucesso; tid=%s\n", $transaction->getTid());
}


// Configuração da loja em modo produção
$store = new Store('PV', 'TOKEN', Environment::production());

// Configuração da loja em modo sandbox
// $store = new Store('PV', 'TOKEN', Environment::sandbox());

// Transação que será cancelada
$transaction = (new eRede($store))->cancel((new Transaction(20.99))->setTid('TID123'));

if ($transaction->getReturnCode() == '359') {
    printf("Transação cancelada com sucesso; tid=%s\n", $transaction->getTid());
}


// Configuração da loja em modo produção
$store = new Store('PV', 'TOKEN', Environment::production());

// Configuração da loja em modo sandbox
// $store = new Store('PV', 'TOKEN', Environment::sandbox());

$transaction = (new eRede($store))->get('TID123');

printf("O status atual da autorização é %s\n", $transaction->getAuthorization()->getStatus());


// Configuração da loja em modo produção
$store = new Store('PV', 'TOKEN', Environment::production());

// Configuração da loja em modo sandbox
// $store = new Store('PV', 'TOKEN', Environment::sandbox());

$transaction = (new eRede($store))->getByReference('pedido123');

printf("O status atual da autorização é %s\n", $transaction->getAuthorization()->getStatus());


// Configuração da loja em modo produção
$store = new Store('PV', 'TOKEN', Environment::production());

// Configuração da loja em modo sandbox
// $store = new Store('PV', 'TOKEN', Environment::sandbox());

$transaction = (new eRede($store))->getRefunds('TID123');

printf("O status atual da autorização é %s\n", $transaction->getAuthorization()->getStatus());


// Configuração da loja em modo produção
$store = new Store('PV', 'TOKEN', Environment::production());

// Configuração da loja em modo sandbox
// $store = new Store('PV', 'TOKEN', Environment::sandbox());

// Configura a transação que será autorizada após a autenticação
$transaction = (new Transaction(25, 'pedido' . time()))->debitCard(
    '5277696455399733',
    '123',
    '01',
    '2030',
    'John Snow'
);

// Configura o 3dSecure para autenticação
$transaction->threeDSecure(
    new Device(
        ColorDepth: 1,
        DeviceType3ds: 'BROWSER',
        JavaEnabled: false,
        Language: 'BR',
        ScreenHeight: 500,
        ScreenWidth: 500,
        TimeZoneOffset: 3
    )
);
$transaction->addUrl('https://redirecturl.com/3ds/success', Url::THREE_D_SECURE_SUCCESS);
$transaction->addUrl('https://redirecturl.com/3ds/failure', Url::THREE_D_SECURE_FAILURE);

$transaction = (new eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '220') {
    printf("Redirecione o cliente para \"%s\" para autenticação\n", $transaction->getThreeDSecure()->getUrl());
}


$store = new Store('PV', 'TOKEN', Environment::production());

$transaction = (new Transaction(20.99, 'pedido' . time()))
    ->setCardToken('TOKEN_DO_COFRE')                // token armazenado no cofre Rede
    ->setTokenCryptogram('CRIPTOGRAMA_BASE64');      // opcional — para network tokens de bandeira

// Informe apenas os dados necessários (CVV+vencimento ainda exigidos pela bandeira)
$transaction->creditCard(null, '235', '12', '2030', 'John Snow');

$transaction = (new eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '00') {
    printf("Transação aprovada com token; tid=%s\n", $transaction->getTid());
}


$store = new Store('PV', 'TOKEN', Environment::production());

// Primeira cobrança
$transaction = (new Transaction(20.99, 'pedido' . time()))
    ->creditCard('5448280000000007', '235', '12', '2030', 'John Snow')
    ->capture();

$transaction = (new eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '00') {
    // Guarde o transactionLinkId para as cobranças subsequentes
    $linkId = $transaction->getTransactionLinkId();
    printf("tid=%s | transactionLinkId=%s\n", $transaction->getTid(), $linkId);
}

// Cobrança subsequente — informe o transactionLinkId da transação original
$recurrentTransaction = (new Transaction(20.99, 'pedido' . time()))
    ->setTransactionLinkId($linkId)
    ->creditCard('5448280000000007', '235', '12', '2030', 'John Snow')
    ->capture();

$recurrentTransaction = (new eRede($store))->create($recurrentTransaction);


$store = new Store('PV', 'TOKEN', Environment::production());

$transaction = (new eRede($store))->get('TID123');

$brand = $transaction->getBrand();

if ($brand !== null) {
    printf("Bandeira:              %s\n", $brand->getName());
    printf("Código autorização:    %s\n", $brand->getAuthorizationCode());
    printf("Merchant Advice Code:  %s\n", $brand->getMerchantAdviceCode());
    printf("Brand TID:             %s\n", $brand->getBrandTid());
    printf("Transaction Link ID:   %s\n", $brand->getTransactionLinkId());
}

composer