Class: AprovaFacil

Inherits:
Object
  • Object
show all
Defined in:
lib/aprova_facil.rb,
lib/aprova_facil/version.rb,
lib/aprova_facil/aprova_facil.rb,
lib/aprova_facil/cartao_credito.rb

Defined Under Namespace

Classes: CartaoCredito, Config, MissingConfigurationException, MissingEnvironmentException

Constant Summary collapse

VERSION =
"1.4.0"
URL =
'https://www.aprovafacil.com/cgi-bin/APFW/'
URL_TEST =
'https://teste.aprovafacil.com/cgi-bin/APFW/'
COMPRAR =
'APC'
CAPTURAR =
'CAP'
CANCELAR =
'CAN'

Instance Method Summary collapse

Instance Method Details

#aprovar(cartao_credito) ⇒ Object



27
28
29
30
31
32
33
34
35
36
# File 'lib/aprova_facil/aprova_facil.rb', line 27

def aprovar(cartao_credito)    
  if cartao_credito.valid?
    request_url = url(COMPRAR)
    request_params = cartao_credito.to_params
    xml_response = commit(request_url, request_params)
    treat_apc_response(xml_response)
  else
    {:aprovada => false, :resultado => cartao_credito.errors.join('\\n')}
  end
end

#cancelar(transacao) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/aprova_facil/aprova_facil.rb', line 59

def cancelar(transacao)
  request_url = url(CANCELAR)
  request_params = {'Transacao' => transacao}
  xml_response = commit(request_url, request_params)
  request_result = {}
  if xml_response
    response = REXML::Document.new(xml_response)
    response.elements.each 'ResultadoCAN' do |resultado|
      resultado.elements.each 'ResultadoSolicitacaoCancelamento' do |resultado|
        request_result[:cancelado] = !resultado.text.match(/Cancelado/).nil? or !resultado.text.match(/Cancelamento/).nil?
        request_result[:resultado] = resultado.text
      end        
      
      resultado.elements.each 'NSUCancelamento' do |nsu_Cancelamento|
        request_result[:nsu_Cancelamento] = !nsu_Cancelamento.text
      end        
    end
  else
    request_result[:cancelado] = false
    request_result[:resultado] = 'Erro ­ Erro desconhecido'
  end
  
  request_result    
end

#capturar(transacao) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/aprova_facil/aprova_facil.rb', line 38

def capturar(transacao)
  request_url = url(CAPTURAR)
  request_params = {'Transacao' => transacao}
  xml_response = commit(request_url, request_params)
  request_result = {}
  if xml_response
    response = REXML::Document.new(xml_response)
    response.elements.each 'ResultadoCAP' do |resultado|
      resultado.elements.each 'ResultadoSolicitacaoConfirmacao' do |resultado|
        request_result[:capturado] = !resultado.text.match(/Confirmado/).nil?
        request_result[:resultado] = resultado.text
      end        
    end
  else
    request_result[:capturado] = false
    request_result[:resultado] = 'Erro ­ Erro desconhecido'
  end
  
  request_result    
end

#recobrar(transacao, valor, parcelas = '01', parcelamento_admin = true) ⇒ Object

Método usado para efetuar cobraças recorrentes



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/aprova_facil/aprova_facil.rb', line 15

def recobrar(transacao, valor, parcelas = '01', parcelamento_admin = true )
  request_url = url(COMPRAR)
  request_params = {
    'TransacaoAnterior' => transacao,
    'ValorDocumento' => valor,
    'QuantidadeParcelas' => '%02d' % parcelas,
    'ParcelamentoAdministrador' => parcelamento_admin ? 'S' : 'N'
  }
  xml_response = commit(request_url, request_params)
  treat_apc_response(xml_response)  
end