2017 © Pedro Peláez
 

library erede

PHP agnostic implementation for e.Rede RESTful payment processing.

image

filipegar/erede

PHP agnostic implementation for e.Rede RESTful payment processing.

  • Monday, March 26, 2018
  • by filipegar
  • Repository
  • 1 Watchers
  • 0 Stars
  • 22 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 2100 % Grown

The README.md

e.Rede PHP SDK

Esta é uma implementação framework agnostic em PHP dos serviços RESTful do e.Rede da UseRede., (*1)

UseRede (a.k.a Redecard) é uma das adquirentes de cartão de crédito líderes no Brasil., (*2)

Antes de utilizar, tenha certeza de que o produto foi contratado para seu ponto de venda., (*3)

Principais recursos

  • [x] Pagamentos por cartão de crédito.
  • [x] Pagamentos por cartão de débito / autenticação.
  • [x] Cancelamento de autorização / captura.
  • [x] Consulta de transações.

Limitações

Por envolver a interface de usuário da aplicação, o SDK funciona apenas como um framework para criação das transações. Nos casos onde a autorização é direta (sem uso de 3DS), não há limitação; mas nos casos onde é necessário a autenticação, o desenvolvedor deverá utilizar o SDK para gerar a transação e, com o link retornado pela Rede, providenciar o redirecionamento do usuário em sua aplicação., (*4)

Instalando o e.Rede

A melhor forma de instalar este pacote é via Composer., (*5)

Se já possui um arquivo composer.json, basta adicionar a seguinte dependência ao seu projeto:, (*6)

"require": {
    "filipegar/erede": "^1.0"
}

Com a dependência adicionada ao composer.json, basta executar:, (*7)

composer install

Alternativamente, você pode executar diretamente em seu terminal:, (*8)

composer require "filipegar/erede"

Utilizando o SDK

Para criar um pagamento simples com cartão de crédito com o SDK, basta fazer:, (*9)

Criando um pagamento com cartão de crédito

<?php
require 'vendor/autoload.php';

use Filipegar\eRede\Acquirer\Environment;
use Filipegar\eRede\Acquirer\ERedeClient;
use Filipegar\eRede\Acquirer\Transaction;
use Filipegar\eRede\Acquirer\Refund;
use Filipegar\eRede\Acquirer\Url;
use Filipegar\eRede\Merchant;
use Filipegar\eRede\Acquirer\Requests\ERedeErrorException;

//Configure suas credenciais - PV e token
$merchant = new Merchant("PVestabelecimento", "TOKEN");
//Crie seu cliente da SDK
$eRede = new ERedeClient($merchant, Environment::sandbox());
// Crie uma instância de Transaction informando o ID do pedido na loja
$transacao = (new Transaction("IDpedido"))->setCapture(false)->setSoftDescriptor('PEDIDO 12345');
// Crie uma instância de Payment informando o valor do pagamento
$payment = $transacao->payment(123456);
// Crie uma instância de Credit Card utilizando os dados de teste
// disponíveis no manual de integração
$card = $transacao->creditCard('CVV/CVV2')
        ->setCardHolderName('Fulano da Silva')
        ->setCardNumber('0000000000000001')
        ->setExpirationMonth('01')->setExpirationYear('2019');

// Envie o pagamento para a Rede
try {
    // Utilizando o cliente SDK criado com Merchant + Environment
    $transacao = $eRede->authorize($transacao);

    // Com a venda criada na Cielo, já temos o ID do pagamento, TID e demais
    // dados retornados pela Cielo
    $transactionTid = $transacao->getTid();

    // Com o ID do pagamento, podemos fazer sua captura, se ela não tiver sido capturada ainda
    $captura = $eRede->captureTransaction($transactionTid, 123456);

    // E também podemos fazer seu cancelamento, se for o caso
    $refund = (new Refund())->setTid($transactionTid)->setAmount(123456)->url('CALLBACKurl', URL::URL_CALLBACK);
    $refund = $eRede->refundTransaction($refund);
} catch (ERedeErrorException $e) {
    // Em caso de erros de integração, podemos tratar o erro aqui.
    // os códigos de erro estão todos disponíveis no manual de integração.
    $error = $e->getMessage();
    //os erros de transferência do Guzzle estão em getPrevious().
    $erroERede = (string) $e->getPrevious()->getRequest()->getBody();
}
// ...

Criando um pagamento com cartão de débito / autenticada

<?php
require 'vendor/autoload.php';

use Filipegar\eRede\Acquirer\Environment;
use Filipegar\eRede\Acquirer\ERedeClient;
use Filipegar\eRede\Acquirer\Transaction;
use Filipegar\eRede\Acquirer\Url;
use Filipegar\eRede\Acquirer\ThreeDSecure;
use Filipegar\eRede\Merchant;
use Filipegar\eRede\Acquirer\Requests\ERedeErrorException;

//Configure suas credenciais - PV e token
$merchant = new Merchant("PVestabelecimento", "TOKEN");
//Crie seu cliente da SDK
$eRede = new ERedeClient($merchant, Environment::sandbox());
// Crie uma instância de Transaction informando o ID do pedido na loja
$transacao = (new Transaction("IDpedido"))->setCapture(false)->setSoftDescriptor('PEDIDO 12345');
// Crie uma instância de Payment informando o valor do pagamento
$payment = $transacao->payment(123456);
// Crie uma instância de Credit Card utilizando os dados de teste
// disponíveis no manual de integração
$card = $transacao->debitCard('CVV/CVV2')
        ->setCardHolderName('Fulano da Silva')
        ->setCardNumber('0000000000000001')
        ->setExpirationMonth('01')->setExpirationYear('2019');

// Obrigatório utilizar 3DS - 3D Secure - transação autenticada
$threeD = $transacao->threeDSecure(ThreeDSecure::MPI_EREDE, ThreeDSecure::FAILURE_DECLINE)->setUserAgent('USER_AGENT_string');
// Defina as URLs para redirecionar seu cliente de volta para seu site.
$transacao->url('https://teste.com.br/erede/sucesso', Url::URL_SUCCESS)->url('https://teste.com.br/erede/falha', Url::URL_FAILURE);

// Envie o pagamento para a Rede
try {
    // Utilizando o cliente SDK criado com Merchant + Environment
    $transacao = $eRede->authorize($transacao);

    // Redirecione o usuário de sua aplicação para a URL de autenticação.
    $transacao->getThreeDSecure()->getRedirectUrl();

} catch (ERedeErrorException $e) {
    // Em caso de erros de integração, podemos tratar o erro aqui.
    // os códigos de erro estão todos disponíveis no manual de integração.
    $error = $e->getMessage();
    //os erros de transferência do Guzzle estão em getPrevious().
    $erroERede = (string) $e->getPrevious()->getRequest()->getBody();
}
// ...

Note que o e.Rede não gera um TID, NSU ou Authorization Code para as transações autenticadas que não foram concluídas. No Sandbox não foi possível consultar estas transações nem mesmo com o referenceId da loja. Por isto, o objeto Transaction devolvido na resposta do método authorize conterá apenas o link para redirecionamento, status da solicitação (220) e a data/hora da solicitação., (*10)

Consultando uma transação

```php <?php require 'vendor/autoload.php';, (*11)

use Filipegar\eRede\Acquirer\Environment; use Filipegar\eRede\Acquirer\ERedeClient; use Filipegar\eRede\Merchant; use Filipegar\eRede\Acquirer\Requests\ERedeErrorException;, (*12)

//Configure suas credenciais - PV e token $merchant = new Merchant("PVestabelecimento", "TOKEN"); //Crie seu cliente da SDK $eRede = new ERedeClient($merchant, Environment::sandbox());, (*13)

// Consulta de status da transação try { $query = $eRede->queryTransaction('TIDcom20digitos'); // Ou ainda via Referencia da loja $query = $eRede->queryTransactionReference('Reference');, (*14)

 // Consulte os dados da transação via getTransaction()
 $nsu = $query->getTransaction()->getNsu();
 $cardBin = $query->getTransaction()->getCard()->getCardBin();
 $amount = $query->getTransaction()->getPayment()->getAmount();

 // Consulte os dados da captura
 $nsuCaptura = $query->getCapture()->nsu;

 // Ou consulte os dados de qualquer cancelamento
 $refundId = $query->getRefunds()[0]->getRefundId();

} catch (ERedeErrorException $e) { // Em caso de erros de integração, podemos tratar o erro aqui. // os códigos de erro estão todos disponíveis no manual de integração. $error = $e->getMessage(); //os erros de transferência do Guzzle estão em getPrevious(). $erroERede = (string) $e->getPrevious()->getRequest()->getBody(); } // ... ```, (*15)

## Cartões para testes, (*16)

Os cartões de teste estão disponíveis da documentação do e.Rede neste link., (*17)

Clique em Cadastre-se para obter seu token e número de PV para testar este SDK., (*18)

## Documentação do e.Rede, (*19)

A documentação do e.Rede está disponível no site da Rede neste link., (*20)

Se você encontrar um comportamento diferente do documentado, por favor, reporte um issue para verificação., (*21)

## Licença, (*22)

Este pacote de código aberto segue os termos do MIT license., (*23)

The Versions

26/03 2018

dev-master

9999999-dev

PHP agnostic implementation for e.Rede RESTful payment processing.

  Sources   Download

MIT

The Requires

 

by Filipe Garcia

framework rest agnostic redecard erede userede e.rede credit card brazil

26/03 2018

1.0

1.0.0.0

PHP agnostic implementation for e.Rede RESTful payment processing.

  Sources   Download

MIT

The Requires

 

by Filipe Garcia

framework rest agnostic redecard erede userede e.rede credit card brazil