Class: PaymentOnline::Payment

Inherits:
Object
  • Object
show all
Defined in:
lib/paymentonline.rb

Constant Summary collapse

FIELDS =
['card_exp_mon','card_exp_yr','card_num','cust_address','cust_address2','cust_city','cust_country','cust_email','cust_firstname','cust_lastname','cust_username','cust_password','cust_phone','cust_receipt','cust_state','cust_zip','custom_var1','custom_var2','cvv_value','membership_system','mer_id','password','prepaid','response_api','separate_shipping','ship_address','ship_address2','ship_city','ship_country','ship_firstname','ship_lastname','ship_state','ship_zip','shipping_charge','site_id','tax_charge','trans_type','username','www_post','custom_var1','custom_var2','custom_var3','custom_var4','custom_var5','custom_var6']
ITEMFIELDS =
['item_sku','item_desc','item_type','item_price','quantity','recur_bill_amount','bill_cycle','num_cycles','prorate_first_billing','first_billing_date','recur_bill_day']

Instance Method Summary collapse

Constructor Details

#initialize(options = {}, orderinfo = {}) ⇒ Payment

Returns a new instance of Payment.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/paymentonline.rb', line 13

def initialize(options = {},orderinfo = {})
  postarray = []
  @postdata = nil
  @orderitems = []
  @customerdata = []
  @debug = options['debug']
  @debug == true ? @debug = true : @debug = false
  value = nil
  FIELDS.each do |field|
    unless orderinfo[field].nil?
      value = CGI.escape(orderinfo[field].to_s)
      @customerdata << "#{field}=#{value}".to_s
    end
  end
end

Instance Method Details

#additem(item) ⇒ Object



29
30
31
32
33
34
35
36
37
# File 'lib/paymentonline.rb', line 29

def additem(item)
  @oitem = []
  ITEMFIELDS.each do |field|
    item[field] = '' if item[field].nil? 
    puts "#{field}=#{item[field]}" if @debug
    @oitem << item[field]
  end
  @orderitems <<  @oitem.join(';')
end

#submitObject



39
40
41
42
43
44
45
46
47
48
49
# File 'lib/paymentonline.rb', line 39

def submit
  r = {}
  itemlist = CGI.escape(@orderitems.join('|'))
  @postdata = "itemlist=#{itemlist}&"  + @customerdata.join('&')
  puts @postdata if @debug
  site = Net::HTTP.new( 'paygw.sea.paymentonline.com', 443 )
  site.use_ssl = true
  response = site.post('/transact', @postdata)
  (r['response_code'],r['response'],r['response_text'],r['auth_code'],r['avs_result'],r['order_id'],r['trans_id'],r['trans_amount']) = response.body.split(',')
  return response.code,response.message,r
end