Sha256: 038dfb9fb2635df59270391555b8cfe0ed3ada02dc24f5eee2b4fb9cea3a1e94

Contents?: true

Size: 684 Bytes

Versions: 4

Compression:

Stored size: 684 Bytes

Contents

require 'digest/md5'

module Ipizza::Provider
  class Nordea::PaymentRequest < Ipizza::PaymentRequest
    
    attr_accessor :params
    attr_accessor :service_url
    
    def sign(key_path)
      key = File.read(key_path).strip
      self.params['MAC'] = Digest::MD5.hexdigest(mac_data_string(key)).upcase
    end
    
    def request_params
      params
    end
    
    private
    
    def mac_data_string(key)
      order = %w(VERSION STAMP RCV_ID AMOUNT REF DATE CUR)
      
      datastr = order.inject('') do |memo, param|
        memo << params[param].to_s
        memo << '&'
        memo
      end
      datastr << key
      datastr << '&'
      datastr
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ipizza-2.2.0 lib/ipizza/provider/nordea/payment_request.rb
ipizza-2.1.0 lib/ipizza/provider/nordea/payment_request.rb
ipizza-2.0.1 lib/ipizza/provider/nordea/payment_request.rb
ipizza-2.0.0 lib/ipizza/provider/nordea/payment_request.rb