Class: ActiveMerchant::Billing::Integrations::TwoCheckout::Helper

Inherits:
Helper
  • Object
show all
Defined in:
lib/active_merchant/billing/integrations/two_checkout/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_fields, #form_method, mapping, #raw_html_fields, #shipping_address, #test?

Constructor Details

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

Returns a new instance of Helper.



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

def initialize(order, , options = {})
  super
  add_field('fixed', 'Y')

  if ActiveMerchant::Billing::Base.integration_mode == :test || options[:test]
    add_field('demo', 'Y')
  end
end

Dynamic Method Handling

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

Instance Method Details

#auto_settle(params = {}) ⇒ Object

Uses Third Party Cart parameter set to pass in lineitem details. (sales settle automatically)



75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/active_merchant/billing/integrations/two_checkout/helper.rb', line 75

def auto_settle(params = {})
  add_field('id_type', '1')
  (max_existing_line_item_id = form_fields.keys.map do |key|
    i = key.to_s[/^c_prod_(\d+)/, 1]
    (i && i.to_i)
  end.compact.max || 0)

  line_item_id = max_existing_line_item_id + 1
  params.each do |key, value|
    add_field("c_#{key}_#{line_item_id}", value)
  end
end

#customer(params = {}) ⇒ Object



52
53
54
55
56
# File 'lib/active_merchant/billing/integrations/two_checkout/helper.rb', line 52

def customer(params = {})
  add_field(mappings[:customer][:email], params[:email])
  add_field(mappings[:customer][:phone], params[:phone])
  add_field('card_holder_name', "#{params[:first_name]} #{params[:last_name]}")
end

#line_item(params = {}) ⇒ Object

Uses Pass Through Product Parameters to pass in lineitems. (must mark tangible sales as shipped to settle the transaction)



60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/active_merchant/billing/integrations/two_checkout/helper.rb', line 60

def line_item(params = {})
  add_field('mode', '2CO')
  (max_existing_line_item_id = form_fields.keys.map do |key|
    i = key.to_s[/^li_(\d+)_/, 1]
    (i && i.to_i)
  end.compact.max || 0)

  line_item_id = max_existing_line_item_id + 1
  params.each do |key, value|
    add_field("li_#{line_item_id}_#{key}", value)
  end
end