Class: ActiveMerchant::Billing::Integrations::Epay::Helper

Inherits:
Helper
  • Object
show all
Defined in:
lib/active_merchant/billing/integrations/epay/helper.rb

Instance Attribute Summary

Attributes inherited from Helper

#fields

Instance Method Summary collapse

Methods inherited from Helper

#add_field, #add_fields, #add_raw_html_field, #billing_address, #form_method, mapping, #raw_html_fields, #shipping_address, #test?

Constructor Details

#initialize(order, merchantnumber, options = {}) ⇒ Helper

Returns a new instance of Helper.



7
8
9
10
11
12
13
# File 'lib/active_merchant/billing/integrations/epay/helper.rb', line 7

def initialize(order, merchantnumber, options = {})
  super
						add_field('windowstate', 3)
  add_field('language', '0')
  add_field('orderid', format_order_number(order))
						@fields = Hash[@fields.sort]
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class ActiveMerchant::Billing::Integrations::Helper

Instance Method Details

#form_fieldsObject



19
20
21
# File 'lib/active_merchant/billing/integrations/epay/helper.rb', line 19

def form_fields
  @fields.merge('hash' => generate_md5hash)
end

#format_order_number(number) ⇒ Object

Limited to 20 digits max



32
33
34
# File 'lib/active_merchant/billing/integrations/epay/helper.rb', line 32

def format_order_number(number)
  number.to_s.gsub(/[^\w_]/, '').rjust(4, "0")[0...20]
end

#generate_md5hashObject



27
28
29
# File 'lib/active_merchant/billing/integrations/epay/helper.rb', line 27

def generate_md5hash
  Digest::MD5.hexdigest(generate_md5string)
end

#generate_md5stringObject



23
24
25
# File 'lib/active_merchant/billing/integrations/epay/helper.rb', line 23

def generate_md5string
						@fields.sort.each.map { |key, value| key != 'hash' ? value.to_s : ''} * "" + @md5secret
end

#md5secret(value) ⇒ Object



15
16
17
# File 'lib/active_merchant/billing/integrations/epay/helper.rb', line 15

def md5secret(value)
  @md5secret = value
end