Class: Aurfy::Configure

Inherits:
Object
  • Object
show all
Defined in:
lib/aurfy/configure.rb

Constant Summary collapse

CREDIT_CARD_ORIGINAL_NAMES =
{ union_pay: "UP", visa: "VISA", jcb: "JCB", master: "MC" }

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(values = {}) ⇒ Configure

Returns a new instance of Configure.



11
12
13
14
15
16
17
18
# File 'lib/aurfy/configure.rb', line 11

def initialize(values = {})
  Configure.keys.each do |key|
    next unless value = (values[key] || default_values[key])
    instance_variable_set(:"@#{key}", value)
  end

  @cardtype = values[:card_type] || cardtype
end

Class Method Details

.keysObject



5
6
7
8
9
# File 'lib/aurfy/configure.rb', line 5

def self.keys
  [:cardnumber, :cardtype, :charset, :cv2, :expirydate, :orderamount, :ordercurrency, :orderdescription, :orderid,
   :ordertime, :merchantid, :signmethod, :trade_certificate, :transtype, :txnremark1, :txnremark2, :version,
   :website]
end

Instance Method Details

#paramsObject



20
21
22
# File 'lib/aurfy/configure.rb', line 20

def params
  sorted_variables.merge(signature: signature)
end

#signature_keyObject



24
25
26
# File 'lib/aurfy/configure.rb', line 24

def signature_key
  sorted_variables.except(:signmethod).to_query + "&#{@trade_certificate}"
end

#sorted_variablesObject



28
29
30
31
# File 'lib/aurfy/configure.rb', line 28

def sorted_variables
  variables = (instance_variables - [:@trade_certificate]).sort
  Hash[variables.map { |v| [v.to_s.sub("@", "").to_sym, instance_variable_get(v)] }]
end