Module: Paymob

Defined in:
lib/paymob.rb,
lib/paymob/version.rb

Constant Summary collapse

FILTERED_KEYS =
['c_pan_U', 'c_holder_name_U', 'c_expiry_mm_U',
'c_expiry_yy_U', 'c_cvv_U']
VERSION =
"0.1.1"

Class Method Summary collapse

Class Method Details

.calc_secure_hash(key, data) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/paymob.rb', line 7

def Paymob.calc_secure_hash(key, data)
  digest = ::OpenSSL::Digest.new('sha256')
  sorted = data.keys.sort.reject { |e| FILTERED_KEYS.include?(e.to_s) }
  data_str = sorted.reduce('') do |memo, key|
    unless data[key].nil?
      memo + data[key].to_s
    else
      memo
    end
  end
  ::OpenSSL::HMAC.hexdigest(digest, key, data_str)
end