class OffsitePayments::Integrations::Maksuturva::Helper

Public Class Methods

new(order, account, options = {}) click to toggle source
Calls superclass method
# File lib/offsite_payments/integrations/maksuturva.rb, line 80
def initialize(order, account, options = {})
  md5secret options.delete(:credential2)
  super
  add_field("pmt_action", "NEW_PAYMENT_EXTENDED")
  add_field("pmt_version", "0004")
  add_field("pmt_sellerid", account)
  add_field("pmt_hashversion", "MD5")
end

Public Instance Methods

form_fields() click to toggle source
# File lib/offsite_payments/integrations/maksuturva.rb, line 93
def form_fields
  @fields.merge("pmt_hash" => generate_md5string)
end
generate_md5string() click to toggle source
# File lib/offsite_payments/integrations/maksuturva.rb, line 97
def generate_md5string
  fields = [@fields["pmt_action"], @fields["pmt_version"]]
  fields += [@fields["pmt_selleriban"]] unless @fields["pmt_selleriban"].nil?
  fields += [@fields["pmt_id"], @fields["pmt_orderid"], @fields["pmt_reference"], @fields["pmt_duedate"],
  @fields["pmt_amount"], @fields["pmt_currency"], @fields["pmt_okreturn"], @fields["pmt_errorreturn"], @fields["pmt_cancelreturn"],
  @fields["pmt_delayedpayreturn"], @fields["pmt_escrow"], @fields["pmt_escrowchangeallowed"]]

  fields += [@fields["pmt_invoicefromseller"]] unless @fields["pmt_invoicefromseller"].nil?
  fields += [@fields["pmt_paymentmethod"]] unless @fields["pmt_paymentmethod"].nil?
  fields += [@fields["pmt_buyeridentificationcode"]] unless @fields["pmt_buyeridentificationcode"].nil?


  fields += [@fields["pmt_buyername"], @fields["pmt_buyeraddress"], @fields["pmt_buyerpostalcode"], @fields["pmt_buyercity"],
  @fields["pmt_buyercountry"], @fields["pmt_deliveryname"], @fields["pmt_deliveryaddress"], @fields["pmt_deliverypostalcode"], @fields["pmt_deliverycity"],
  @fields["pmt_deliverycountry"], @fields["pmt_sellercosts"]]

  (1..@fields["pmt_rows"].to_i).each do |i|
    fields += [@fields["pmt_row_name#{i}"], @fields["pmt_row_desc#{i}"], @fields["pmt_row_quantity#{i}"]]
    fields += [@fields["pmt_row_articlenr#{i}"]] unless @fields["pmt_row_articlenr#{i}"].nil?
    fields += [@fields["pmt_row_unit#{i}"]] unless @fields["pmt_row_unit#{i}"].nil?
    fields += [@fields["pmt_row_deliverydate#{i}"]]
    fields += [@fields["pmt_row_price_gross#{i}"]] unless @fields["pmt_row_price_gross#{i}"].nil?
    fields += [@fields["pmt_row_price_net#{i}"]] unless @fields["pmt_row_price_net#{i}"].nil?
    fields += [@fields["pmt_row_vat#{i}"], @fields["pmt_row_discountpercentage#{i}"], @fields["pmt_row_type#{i}"]]
  end
  fields += [@md5secret]
  fields = fields.join("&") + "&"
  Digest::MD5.hexdigest(fields).upcase
end
md5secret(value) click to toggle source
# File lib/offsite_payments/integrations/maksuturva.rb, line 89
def md5secret(value)
  @md5secret = value
end