Class: SuperpayApi::Transacao

Inherits:
Object
  • Object
show all
Includes:
ActiveModel::Validations
Defined in:
lib/superpay_api/transacao.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(campos = {}) ⇒ Transacao

Nova instancia da classe Transacao



137
138
139
140
141
142
143
# File 'lib/superpay_api/transacao.rb', line 137

def initialize(campos = {})
  campos.each do |campo, valor|
    if SuperpayApi::Transacao.public_instance_methods.include? "#{campo}=".to_sym
      send "#{campo}=", valor
    end
  end
end

Instance Attribute Details

#campo_livre1Object

Campo Livre 1 Alfa Numérico - Até 16 caracteres



66
67
68
# File 'lib/superpay_api/transacao.rb', line 66

def campo_livre1
  @campo_livre1
end

#campo_livre2Object

Campo Livre 2 Alfa Numérico - Até 16 caracteres



70
71
72
# File 'lib/superpay_api/transacao.rb', line 70

def campo_livre2
  @campo_livre2
end

#campo_livre3Object

Campo Livre 3 Alfa Numérico - Até 16 caracteres



74
75
76
# File 'lib/superpay_api/transacao.rb', line 74

def campo_livre3
  @campo_livre3
end

#campo_livre4Object

Campo Livre 4 Alfa Numérico - Até 16 caracteres



78
79
80
# File 'lib/superpay_api/transacao.rb', line 78

def campo_livre4
  @campo_livre4
end

#campo_livre5Object

Campo Livre 5 Alfa Numérico - Até 16 caracteres



82
83
84
# File 'lib/superpay_api/transacao.rb', line 82

def campo_livre5
  @campo_livre5
end

#codigo_forma_pagamentoObject

Código da forma de pagamento. Ver tabela “Forma de Pagamento” Simbolo - Valores pré-definidos - Verifique classe SuperpayApi::FormaDePagamento



11
12
13
# File 'lib/superpay_api/transacao.rb', line 11

def codigo_forma_pagamento
  @codigo_forma_pagamento
end

#codigo_segurancaObject

Código de segurança do cartão (campo não é armazenado pelo SuperPay) Numérico - Até 4 caracteres



42
43
44
# File 'lib/superpay_api/transacao.rb', line 42

def codigo_seguranca
  @codigo_seguranca
end

#dados_usuario_transacaoObject

Informações para cobrança e entrega. Informações importantes para análise de fraude SuperpayApi::DadosUsuario



86
87
88
# File 'lib/superpay_api/transacao.rb', line 86

def dados_usuario_transacao
  @dados_usuario_transacao
end

#data_validade_cartaoObject

Data de validade do cartão. Alfa Numérico - Até 7 caracteres - Formato mm/yyyy



46
47
48
# File 'lib/superpay_api/transacao.rb', line 46

def data_validade_cartao
  @data_validade_cartao
end

#ipObject

Número do IP do usuário final/cliente. Alfa Numérico - Até 15 caracteres Formato xxx.xxx.xxx.xxx



62
63
64
# File 'lib/superpay_api/transacao.rb', line 62

def ip
  @ip
end

#itens_do_pedidoObject

Lista com Itens que estão sendo comprados. Informações importantes para análise de fraude e intermediários financeiros SuperpayApi::ItemPedido



90
91
92
# File 'lib/superpay_api/transacao.rb', line 90

def itens_do_pedido
  @itens_do_pedido
end

#nome_titular_cartao_creditoObject

Nome do titular do cartão de crédito (Exatamente como escrito no cartão) Alfa Numérico - Até 16 caracteres



34
35
36
# File 'lib/superpay_api/transacao.rb', line 34

def nome_titular_cartao_credito
  @nome_titular_cartao_credito
end

#numero_cartao_creditoObject

Numero do cartão de crédito, sem espaços ou traços Numérico - Até 22 caracteres



38
39
40
# File 'lib/superpay_api/transacao.rb', line 38

def numero_cartao_credito
  @numero_cartao_credito
end

#numero_transacaoObject

Código que identifica a transação dentro do SuperPay Numérico - Até 8 dígitos



7
8
9
# File 'lib/superpay_api/transacao.rb', line 7

def numero_transacao
  @numero_transacao
end

#parcelasObject

Quantidade de parcelas da transação. Verificar se forma de pagamento suporta parcelamento Numérico - Até 2 dígitos



30
31
32
# File 'lib/superpay_api/transacao.rb', line 30

def parcelas
  @parcelas
end

#taxa_embarqueObject

Valor da taxa de embarque Sempre enviar o valor sem vírgula ou ponto, os dois últimos dígitos são sempre considerados como centavos. Numérico - Até 10 dígitos



26
27
28
# File 'lib/superpay_api/transacao.rb', line 26

def taxa_embarque
  @taxa_embarque
end

#url_redirecionamento_nao_pagoObject

Para o modelo de pagamento redirect, O SuperPay redirecionará para essa URL em caso de transação *reprovada Alfa Numérico - Até 250 caracteres



58
59
60
# File 'lib/superpay_api/transacao.rb', line 58

def url_redirecionamento_nao_pago
  @url_redirecionamento_nao_pago
end

#url_redirecionamento_pagoObject

Para o modelo de pagamento redirect, O SuperPay redirecionará para essa URL em caso de transação *aprovada Alfa Numérico - Até 250 caracteres



54
55
56
# File 'lib/superpay_api/transacao.rb', line 54

def url_redirecionamento_pago
  @url_redirecionamento_pago
end

#valorObject

Valor da transação Sempre enviar o valor sem vírgula ou ponto, os dois últimos dígitos são sempre considerados como centavos. Numérico - Até 10 dígitos



16
17
18
# File 'lib/superpay_api/transacao.rb', line 16

def valor
  @valor
end

#valor_descontoObject

Valor do desconto da transação Sempre enviar o valor sem vírgula ou ponto, os dois últimos dígitos são sempre considerados como centavos. Numérico - Até 10 dígitos



21
22
23
# File 'lib/superpay_api/transacao.rb', line 21

def valor_desconto
  @valor_desconto
end

#vencimento_boletoObject

Data de validade do boleto. Alfa Numérico - Até 10 caracteres - Formato dd/mm/yyyy



50
51
52
# File 'lib/superpay_api/transacao.rb', line 50

def vencimento_boleto
  @vencimento_boleto
end

Class Method Details

.cancelar_transacao(numero_transacao) ⇒ Object

Função para Cancelar transação numero_transacao => :integer



170
171
172
# File 'lib/superpay_api/transacao.rb', line 170

def self.cancelar_transacao numero_transacao
  self.new.cancelar_transacao numero_transacao
end

.capturar_transacao(numero_transacao) ⇒ Object

Função para Capturar transação numero_transacao => :integer



182
183
184
# File 'lib/superpay_api/transacao.rb', line 182

def self.capturar_transacao numero_transacao
  self.new.capturar_transacao numero_transacao
end

.consulta_transacao(numero_transacao) ⇒ Object

Função para consultar transações numero_transacao => :integer



153
154
155
# File 'lib/superpay_api/transacao.rb', line 153

def self.consulta_transacao numero_transacao
  self.new.consulta_transacao numero_transacao
end

.estorno_de_transacao(numero_transacao, valor_estorno) ⇒ Object

Função para Estorno de transação numero_transacao => :integer valor_estorno => :integer Sempre enviar o valor sem vírgula ou ponto, os dois últimos dígitos são sempre considerados como centavos



198
199
200
# File 'lib/superpay_api/transacao.rb', line 198

def self.estorno_de_transacao numero_transacao, valor_estorno
  self.new.estorno_de_transacao numero_transacao, valor_estorno
end

.localizar_pela_campainha(notificacao = {}) ⇒ Object

Função para Localizar transação pela campainha notificacao => Hash



210
211
212
# File 'lib/superpay_api/transacao.rb', line 210

def self.localizar_pela_campainha notificacao = {}
  self.new.localizar_pela_campainha notificacao
end

Instance Method Details

#cancelar_transacao(numero_transacao) ⇒ Object

Função para Cancelar transação numero_transacao => :integer



164
165
166
# File 'lib/superpay_api/transacao.rb', line 164

def cancelar_transacao numero_transacao
  web_service.cancelar_transacao numero_transacao
end

#capturar_transacao(numero_transacao) ⇒ Object

Função para Capturar transação numero_transacao => :integer



176
177
178
# File 'lib/superpay_api/transacao.rb', line 176

def capturar_transacao numero_transacao
  web_service.capturar_transacao numero_transacao
end

#consulta_transacao(numero_transacao) ⇒ Object

Função para consultar transações numero_transacao => :integer



147
148
149
# File 'lib/superpay_api/transacao.rb', line 147

def consulta_transacao numero_transacao
  web_service.consulta_transacao_completa numero_transacao
end

#enviar_pagamentoObject

Função para realizar o pagamento de transações



158
159
160
# File 'lib/superpay_api/transacao.rb', line 158

def enviar_pagamento
  web_service.pagamento_transacao_completa self
end

#estorno_de_transacao(numero_transacao, valor_estorno) ⇒ Object

Função para Estorno de transação numero_transacao => :integer valor_estorno => :integer Sempre enviar o valor sem vírgula ou ponto, os dois últimos dígitos são sempre considerados como centavos



190
191
192
# File 'lib/superpay_api/transacao.rb', line 190

def estorno_de_transacao numero_transacao, valor_estorno
  web_service.estorno_de_transacao numero_transacao, valor_estorno
end

#localizar_pela_campainha(notificacao = {}) ⇒ Object

Função para Localizar transação pela campainha notificacao => Hash



204
205
206
# File 'lib/superpay_api/transacao.rb', line 204

def localizar_pela_campainha notificacao = {}
  consulta_transacao notificacao[:numero_transacao]
end

#to_requestObject

Montar o Hash da transação no padrão utilizado pelo SuperPay



215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
# File 'lib/superpay_api/transacao.rb', line 215

def to_request
  transacao = {
    numero_transacao:               self.numero_transacao,
    "IP" =>                         self.ip,
    codigo_forma_pagamento:         self.codigo_forma_pagamento,
    valor:                          self.valor,
    valor_desconto:                 self.valor_desconto,
    taxa_embarque:                  self.taxa_embarque,
    parcelas:                       self.parcelas,
    nome_titular_cartao_credito:    self.nome_titular_cartao_credito,
    numero_cartao_credito:          self.numero_cartao_credito,
    codigo_seguranca:               self.codigo_seguranca,
    data_validade_cartao:           self.data_validade_cartao,
    vencimento_boleto:              self.vencimento_boleto,
    url_redirecionamento_pago:      self.url_redirecionamento_pago,
    url_redirecionamento_nao_pago:  self.url_redirecionamento_nao_pago,
    campo_livre1:                   self.campo_livre1,
    campo_livre2:                   self.campo_livre2,
    campo_livre3:                   self.campo_livre3,
    campo_livre4:                   self.campo_livre4,
    campo_livre5:                   self.campo_livre5,
  }

  # Adicionar os parâmetros de configurações
  transacao.merge! SuperpayApi.configuracoes_to_request

  # Adicionar dados do usuário
  transacao[:dados_usuario_transacao] = self.dados_usuario_transacao.to_request unless self.dados_usuario_transacao.blank?

  # Adicionar itens do pedido
  transacao[:itens_do_pedido] = self.itens_do_pedido.collect{ |i| i.to_request } unless self.itens_do_pedido.blank?

  return transacao
end