class OffsitePayments::Integrations::Epay::Helper

Public Class Methods

new(order, merchantnumber, options = {}) click to toggle source
Calls superclass method
# File lib/offsite_payments/integrations/epay.rb, line 16
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

Public Instance Methods

form_fields() click to toggle source
# File lib/offsite_payments/integrations/epay.rb, line 28
def form_fields
  @fields.merge('hash' => generate_md5hash)
end
format_order_number(number) click to toggle source

Limited to 20 digits max

# File lib/offsite_payments/integrations/epay.rb, line 41
def format_order_number(number)
  number.to_s.gsub(/[^\w_]/, '').rjust(4, "0")[0...20]
end
generate_md5hash() click to toggle source
# File lib/offsite_payments/integrations/epay.rb, line 36
def generate_md5hash
  Digest::MD5.hexdigest(generate_md5string)
end
generate_md5string() click to toggle source
# File lib/offsite_payments/integrations/epay.rb, line 32
def generate_md5string
  @fields.sort.each.map { |key, value| key != 'hash' ? value.to_s : ''} * "" + @md5secret
end
md5secret(value) click to toggle source
# File lib/offsite_payments/integrations/epay.rb, line 24
def md5secret(value)
  @md5secret = value
end