class ProcessingKz::StartTransaction

Attributes

billing_address[R]
currency_code[R]
customer_reference[R]
description[R]
error_description[R]
goods_list[R]
language_code[R]
merchant_id[R]
merchant_local_date_time[R]
order_id[R]
purchaser_email[R]
purchaser_name[R]
purchaser_phone[R]
redirect_url[R]
return_url[R]
success[R]
terminal_id[R]

Public Class Methods

new(args = {}) click to toggle source
# File lib/processing_kz/start_transaction.rb, line 23
def initialize(args = {})
  @merchant_id = args[:merchant_id] || Config.merchant_id
  @currency_code = args[:currency_code] || Config.currency_code
  @language_code = args[:language_code] || Config.language_code
  @terminal_id = args[:terminal_id]
  @order_id = args[:order_id]
  @description = args[:description]
  @purchaser_name = args[:purchaser_name]
  @return_url = args[:return_url]
  @purchaser_email = args[:purchaser_email]
  @purchaser_phone = args[:purchaser_phone]
  @customer_reference = args[:customer_reference]
  self.goods_list = args[:goods_list]
  self.merchant_local_date_time = args[:merchant_local_date_time] || Time.now
  request!
end

Public Instance Methods

goods_list=(goods) click to toggle source
# File lib/processing_kz/start_transaction.rb, line 40
def goods_list=(goods)
  if goods.class == Array
    @goods_list = goods
  else
    @goods_list = [goods]
  end
end
hashed_goods_list() click to toggle source
# File lib/processing_kz/start_transaction.rb, line 61
def hashed_goods_list
  raise NoGoodsError unless goods_list
  hash = []
  goods_list.each { |good| hash << good.to_hash }
  hash
end
merchant_local_date_time=(time) click to toggle source
# File lib/processing_kz/start_transaction.rb, line 48
def merchant_local_date_time=(time)
  @merchant_local_date_time = time.strftime('%d.%m.%Y %H:%M:%S')
end
request!() click to toggle source
# File lib/processing_kz/start_transaction.rb, line 68
def request!
  client = Savon.client(wsdl: Config.wsdl, soap_version: 2, endpoint: Config.host)
  request = client.call(:start_transaction, message: { 
    transaction: {
      merchant_id: merchant_id,
      currency_code: currency_code,
      language_code: language_code,
      order_id: order_id,
      goods_list: hashed_goods_list,
      merchant_local_date_time: merchant_local_date_time,
      return_u_r_l: return_url,
      total_amount: total_amount.to_i
      }
    }
  )
  response(request.body[:start_transaction_response][:return])
end
response(args = {}) click to toggle source
# File lib/processing_kz/start_transaction.rb, line 86
def response(args = {})
  @success = args[:success]
  @redirect_url = args[:redirect_url]
  @error_description = args[:error_description]
  @customer_reference = args[:customer_reference]
end
total_amount() click to toggle source
# File lib/processing_kz/start_transaction.rb, line 52
def total_amount
  raise NoGoodsError unless goods_list
  total = 0
  goods_list.each do |good|
    total += good.amount
  end
  total
end