Uma refatoração da gem de integração para o sistema de pagamentos eRede
O objetivo desta gem é normalizar nomes de campos, permitir o uso de classes do ruby na chamada serviços e mascarar a comunicação com um servidor SOAP (utilizando a gem canned_soap)
Resumo das operações suportadas pelo Redex.
Todas as transações com autorização (captura) automática são suportadas. Apesar de transações de pré-autorização (sem captura) automática serem suportadas, a trasanção de captura ainda não foi desenvolvida.
O cancelamento de transações de crédito são suportadas, mas assim como o serviço SOAP da eRede elas devem ser feitas no mesmo dia da captura. Transações de pré-autorização são suportadas e podem ser canceladas em até 29 dias da pré-autorização, após esse período elas são canceladas automaticamente
Consultas são suportadas.
Transações autenticadas, seja de débito ou crédito, ainda não são suportadas.
Adicione esta linha no seu Gemfile:
gem 'redex'
Então execute:
$ bundle
Para instalar sem o bundle:
$ gem install redex
Todas as requisições suportadas são utilizadas via sua respectiva classe, que ficam dentro do modulo Redex::Request
, elas são inicializadas como um objeto padrão do ruby e são executadas ao chamar o método result
e retornaram objetos do tipo response, que são do módulo Redex::Response
.
Objetos do tipo Request executam o request somente na primeira chamada do método result!
Exemplo de uso:
request = Redex::Request::QueryRequest.new(transaction: 123456789)
response = request.result #Redex::Response::QueryResponse
response.credit_card_authorization_id
Antes de iniciar, é necessário configurar a autorização e a URL do servidor. Esta configuração pode ser sobrescrita em qualquer lugar do seu código.
Redex.configuration do |config|
config.secret_pv = 123456789 # Seu Numero de Filiacao
config.secret_token = "1a2b3c4d5f6f7g8h90" # Sua senha
config.service_url = 'https://scommerce.userede.com.br/example'
end
Por padrão o service_url
vem configurado com o ambiente de testes do eRede.
Requests são feitas utilizando a classe Redex::Request::TransactionRequest
.
Redex | Tipo do Campo | Equivalente SOAP | Observações |
---|---|---|---|
order_id | String | NUMPEDIDO | |
amount | Integer ou Float | TOTAL | |
card_number | Integer ou String | NRCARTAO | |
card_holder_name | String | PORTADOR | |
card_cvv | Integer ou String | CVC2 | |
card_expiration_month | Integer ou String | MÊS | |
card_expiration_year | Integer ou String | ANO | |
installments | Integer ou String | PARCELAS | Padrão: 1 |
recorrence | Boolean | RECORRENTE | Padrão: false |
ORIGEM | Sempre será 01 (eRede) | ||
TRANSACAO | Calculado pela gem |
Após clonar o repositório, execute bin/setup
para instalar as dependências. Para rodar os testes execute rake spec
. Você também pode executar bin/console
para um console interativo.
Para instalar essa gem na sua máquina local execute bundle exec rake install
. Para gerar uma nova versão atualize o arquivo version.rb
e então execute bundle exec rake release
, isto irá criar uma tag do git para a versão, faça o commit e o push do repositório, e então envie o arquivo .gem
para rubygems.org.
Bug reports e pull requests são bem vindos no nosso GitHub at https://github.com/gknedo/redex. Este projeto visa ser um lugar seguro e receptivo para novos colaborados e é esperado que os contribuidores sigam o Código de Conduta.
The gem is available as open source under the terms of the MIT License.