Parent

Included Modules

Class/Module Index [+]

Quicksearch

ActiveMerchant::Billing::Integrations::Valitor::Helper

Public Class Methods

new(order, account, options={}) click to toggle source
# File lib/active_merchant/billing/integrations/valitor/helper.rb, line 12
def initialize(order, account, options={})
  options[:currency] ||= 'ISK'
  super
  add_field 'Adeinsheimild', '0'
  add_field 'KaupandaUpplysingar', '0'
  add_field 'SlokkvaHaus', '0'
  @security_number = options[:credential2]
  @amount          = options[:amount]
  @order           = order
end

Public Instance Methods

authorize_only() click to toggle source
# File lib/active_merchant/billing/integrations/valitor/helper.rb, line 36
def authorize_only
  add_field 'Adeinsheimild', '1'
end
collect_customer_info() click to toggle source
# File lib/active_merchant/billing/integrations/valitor/helper.rb, line 40
def collect_customer_info
  add_field 'KaupandaUpplysingar', '1'
end
form_fields() click to toggle source
# File lib/active_merchant/billing/integrations/valitor/helper.rb, line 73
def form_fields
  product(1, :amount => @amount, :description => @order) if Array(@products).empty?
  @fields[mappings[:success_text]] ||= DEFAULT_SUCCESS_TEXT
  @fields.merge('RafraenUndirskrift' => signature)
end
format_amount(amount) click to toggle source
# File lib/active_merchant/billing/integrations/valitor/helper.rb, line 79
def format_amount(amount)
  amount.to_f.round
end
hide_header() click to toggle source
# File lib/active_merchant/billing/integrations/valitor/helper.rb, line 44
def hide_header
  add_field 'SlokkvaHaus', '1'
end
product(id, options={}) click to toggle source
# File lib/active_merchant/billing/integrations/valitor/helper.rb, line 48
def product(id, options={})
  raise ArgumentError, "Product id #{id} is not an integer between 1 and 500" unless id.to_i > 0 && id.to_i <= 500
  requires!(options, :amount, :description)
  options.assert_valid_keys([:description, :quantity, :amount, :discount])

  add_field("Vara_#{id}_Verd", format_amount(options[:amount]))
  add_field("Vara_#{id}_Fjoldi", options[:quantity] || "1")
  
  add_field("Vara_#{id}_Lysing", options[:description]) if options[:description]
  add_field("Vara_#{id}_Afslattur", options[:discount] || '0')
  
  @products ||= []
  @products << id.to_i
end
signature() click to toggle source
# File lib/active_merchant/billing/integrations/valitor/helper.rb, line 63
def signature
  raise ArgumentError, "Security number not set" unless @security_number
  parts = [@security_number, @fields['Adeinsheimild']]
  @products.sort.uniq.each do |id|
    parts.concat(["Vara_#{id}_Fjoldi", "Vara_#{id}_Verd", "Vara_#{id}_Afslattur"].collect{|e| @fields[e]})
  end if @products
  parts.concat(%(VefverslunID Tilvisunarnumer SlodTokstAdGjaldfaera SlodTokstAdGjaldfaeraServerSide Gjaldmidill).collect{|e| @fields[e]})
  Digest::MD5.hexdigest(parts.compact.join(''))
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.