class BanorteTransaction

Attributes

_original_post[RW]
amount[RW]
authnum[RW]
card_number[RW]
card_type[RW]
cvv[RW]
e[RW]
error_code[RW]
exp_date[RW]
issuing_bank[RW]
message[RW]
order_id[RW]
time_in[RW]
time_out[RW]
transaction_status[RW]
transaction_type[RW]

Public Class Methods

from_post(post) click to toggle source
# File lib/banorte_payworks/banorte_transaction.rb, line 7
def self.from_post(post)
  #TODO this big huge method needs to be abstracted to an a class and we need to cas the proper primitive types
  parsed_post = CGI::parse(post)
  create_with_properties self do |transaction|
    transaction._original_post = post
    transaction.error_code = parsed_post['CcErrCode'][0]
    transaction.message = parsed_post['Text'][0]
    transaction.authnum = parsed_post['AuthCode'][0]
    transaction.order_id = parsed_post['OrderId'][0]
    transaction.amount = parsed_post['Total'][0]
    transaction.time_in = parsed_post['TimeIn'][0]
    transaction.time_out = parsed_post['TimeOut'][0]

    transaction.e = [parsed_post['E1'][0],
                  parsed_post['E2'][0],
                  parsed_post['E3'][0]]

    transaction.card_type = parsed_post['CardType'][0]
    transaction.issuing_bank = parsed_post['IssuingBank'][0]
    transaction.transaction_type = parsed_post['TransType'][0]
    transaction.transaction_status = parsed_post['TransStat'][0]

    transaction.card_number = parsed_post['Number'][0]
  end
end

Private Class Methods

create_with_properties(clazz) { |instance| ... } click to toggle source
# File lib/banorte_payworks/banorte_transaction.rb, line 42
def self.create_with_properties(clazz, &block)
  instance = clazz.new
  yield instance
  instance
end

Public Instance Methods

valid?() click to toggle source
# File lib/banorte_payworks/banorte_transaction.rb, line 33
def valid?
  error_code.eql? '1'
end
validate!() click to toggle source
# File lib/banorte_payworks/banorte_transaction.rb, line 37
def validate!
  raise BpayworksException.new("Error::#{error_code}: #{message}") unless valid?
end