Class: ProcessingKz::CompleteTransaction

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args = {}) ⇒ CompleteTransaction

Returns a new instance of CompleteTransaction.



12
13
14
15
16
17
18
19
# File 'lib/processing_kz/complete_transaction.rb', line 12

def initialize(args= {})
  @merchant_id = args[:merchant_id] || Config.merchant_id
  @customer_reference = args[:customer_reference]
  @transaction_success = args[:transaction_success]
  @override_amount = args[:override_amount]
  @goods_list = args[:goods_list]
  request!
end

Instance Attribute Details

#customer_referenceObject (readonly)

Returns the value of attribute customer_reference.



5
6
7
# File 'lib/processing_kz/complete_transaction.rb', line 5

def customer_reference
  @customer_reference
end

#goods_listObject (readonly)

Returns the value of attribute goods_list.



5
6
7
# File 'lib/processing_kz/complete_transaction.rb', line 5

def goods_list
  @goods_list
end

#merchant_idObject (readonly)

Returns the value of attribute merchant_id.



5
6
7
# File 'lib/processing_kz/complete_transaction.rb', line 5

def merchant_id
  @merchant_id
end

#override_amountObject (readonly)

Returns the value of attribute override_amount.



5
6
7
# File 'lib/processing_kz/complete_transaction.rb', line 5

def override_amount
  @override_amount
end

#successObject (readonly)

Returns the value of attribute success.



5
6
7
# File 'lib/processing_kz/complete_transaction.rb', line 5

def success
  @success
end

#transaction_successObject (readonly)

Returns the value of attribute transaction_success.



5
6
7
# File 'lib/processing_kz/complete_transaction.rb', line 5

def transaction_success
  @transaction_success
end

Instance Method Details

#hashed_goods_listObject



30
31
32
33
34
35
36
# File 'lib/processing_kz/complete_transaction.rb', line 30

def hashed_goods_list
  hash = []
  goods_list.each do |good|
    hash << good.to_hash
  end
  hash
end

#request!Object



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

def request!
  client = Savon.client(wsdl: Config.wsdl, endpoint: Config.host)
  response = client.call(:complete_transaction, message: { 
    merchant_id: merchant_id,
    reference_nr: customer_reference,
    transaction_success: transaction_success,
    override_amount: override_amount,
    goods_list: goods_list
    }
  )
  response(response.body[:complete_transaction_response][:return])
end

#response(success) ⇒ Object



51
52
53
# File 'lib/processing_kz/complete_transaction.rb', line 51

def response(success)
  @success = success
end

#total_amountObject

Raises:



21
22
23
24
25
26
27
28
# File 'lib/processing_kz/complete_transaction.rb', line 21

def total_amount
  raise NoGoodsError unless goods_list
  total = 0
  goods_list.each do |good|
    total += good.amount
  end
  total
end