Sha256: d70315ee5f487eb653714a7859e0b05d157bac8bc54b73385d9b82ea3ef93b18

Contents?: true

Size: 768 Bytes

Versions: 1

Compression:

Stored size: 768 Bytes

Contents

require 'digest/md5'

module Ipizza::Provider
  class Nordea::AuthenticationRequest < Ipizza::AuthenticationRequest
    
    attr_accessor :params
    attr_accessor :service_url

    def sign(key_path)
      key = File.read(key_path).strip
      params['A01Y_MAC'] = Digest::MD5.hexdigest(mac_data_string(key)).upcase
    end
    
    def request_params
      params.inject(Hash.new) { |h, v| h["A01Y_#{v.first}"] = v.last; h }
    end
    
    private
    
    def mac_data_string(key)
      order = ['ACTION_ID', 'VERS', 'RCVID', 'LANGCODE', 'STAMP', 'IDTYPE', 'RETLINK', 'CANLINK', 'REJLINK', 'KEYVERS', 'ALG']
      
      datastr = order.inject('') do |memo, param|
        memo << params[param].to_s << '&'
      end
      datastr << key << '&'
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ipizza-0.4.0 lib/ipizza/provider/nordea/authentication_request.rb