class Oschadbank::Response

Public Class Methods

new(client, params) click to toggle source
# File lib/oschadbank/response.rb, line 5
def initialize(client, params)
  @client = client
  @params = params

  check_required!
  check_signature!
end

Public Instance Methods

amount() click to toggle source
# File lib/oschadbank/response.rb, line 53
def amount
  @params['Amount'] && @params['Amount'].to_f
end
auth?() click to toggle source
# File lib/oschadbank/response.rb, line 21
def auth?
  request_type == :auth
end
auth_code() click to toggle source
# File lib/oschadbank/response.rb, line 65
def auth_code
  @params['AuthCode']
end
charge?() click to toggle source
# File lib/oschadbank/response.rb, line 25
def charge?
  request_type == :charge
end
currency() click to toggle source
# File lib/oschadbank/response.rb, line 49
def currency
  @params['Currency']
end
int_ref() click to toggle source
# File lib/oschadbank/response.rb, line 61
def int_ref
  @params['Int_Ref']
end
order_id() click to toggle source
# File lib/oschadbank/response.rb, line 45
def order_id
  @params['Order']
end
pre_auth?() click to toggle source
# File lib/oschadbank/response.rb, line 17
def pre_auth?
  request_type == :pre_auth
end
refund?() click to toggle source
# File lib/oschadbank/response.rb, line 29
def refund?
  request_type == :refund
end
request_type() click to toggle source
# File lib/oschadbank/response.rb, line 13
def request_type
  TR_TYPE.invert[@params['TRTYPE'].to_s]
end
rrn() click to toggle source
# File lib/oschadbank/response.rb, line 57
def rrn
  @params['RRN']
end
status_code() click to toggle source
# File lib/oschadbank/response.rb, line 37
def status_code
  rc_code
end
status_message() click to toggle source
# File lib/oschadbank/response.rb, line 41
def status_message
  "#{result_message} (#{rc_message})"
end
success?() click to toggle source
# File lib/oschadbank/response.rb, line 33
def success?
  RESULT_SUCCESS.include?(result_code) && RC_SUCCESS.include?(rc_code)
end

Private Instance Methods

check_required!() click to toggle source
# File lib/oschadbank/response.rb, line 71
def check_required!
  required_params = %w(Order Result RC TRTYPE P_SIGN)
  required_params.each do |param|
    raise ParamRequired.new(param) if @params[param].to_s.empty?
  end
end
check_signature!() click to toggle source
# File lib/oschadbank/response.rb, line 78
def check_signature!
  params = @params.dup
  signature = params.delete('P_SIGN')

  valid_signature = MacBuilder.new(:response, @client.mac_key, params).build

  raise InvalidSignature unless signature.downcase == valid_signature
end
rc_code() click to toggle source
# File lib/oschadbank/response.rb, line 91
def rc_code
  @params['RC'].to_s
end
rc_message() click to toggle source
# File lib/oschadbank/response.rb, line 99
def rc_message
  RC_MESSAGES[rc_code]
end
result_code() click to toggle source
# File lib/oschadbank/response.rb, line 87
def result_code
  @params['Result'].to_s
end
result_message() click to toggle source
# File lib/oschadbank/response.rb, line 95
def result_message
  RESULT_MESSAGES[result_code]
end