direct-sdk-ruby 1.1.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b0f494e82635e11a97d11d7833a987a6078e020e539f785ea99917b21ce1ae29
4
- data.tar.gz: e09ae8174e1ecc15028e8704028ba0f283f22cfb945bac12c863af94709bb233
3
+ metadata.gz: 594e388fe35c2f7bce9555afebbdcfb98592d38cdc1e8e222c67f6e317b93a39
4
+ data.tar.gz: 9f8c21041bc2d15544d78ea1b1854800ef2e41844d279aecc64eebb98ab66cc6
5
5
  SHA512:
6
- metadata.gz: eba84d74314db5a2410a5d94a16bde7c326567ccc1ad556494200277430939e7119dfc4c4dd6f438115b8c3d708251a7a403665c3c6e2baccb6bcdfc98633a28
7
- data.tar.gz: 7936b24acb2d49fe21d2bb90ecd5190a68a478e7aba305b46b7567674cb9cc45a438a2804ffc496a4a82ed094d4334e384c87026961796433b515c07aa3624d8
6
+ metadata.gz: 23d335ce41710fd0f5a9fefb482a13267faf1a032e637ad4208b9240cb6af79bb2c59db91712c416aa51717088a0086c753c48d52eb8aba992ee3b727cb5fa21
7
+ data.tar.gz: ed450311f7a896048342b4dd705e9537162ab46541bc7435db27d369362fdb9e429693299ee4aa3de66247cbee6af0d6bd9b1bdbf3a435613a693268587c1685
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = 'direct-sdk-ruby'
3
- spec.version = '1.1.0'
3
+ spec.version = '1.5.0'
4
4
  spec.authors = ['Ingenico ePayments']
5
5
  spec.email = ['60233882+ingenico-dev-team@users.noreply.github.com']
6
6
  spec.summary = %q{SDK to communicate with the Ingenico ePayments platform using the Ingenico Direct Server API}
@@ -5,6 +5,7 @@
5
5
  require 'ingenico/direct/sdk/data_object'
6
6
  require 'ingenico/direct/sdk/domain/airline_data'
7
7
  require 'ingenico/direct/sdk/domain/loan_recipient'
8
+ require 'ingenico/direct/sdk/domain/lodging_data'
8
9
  require 'ingenico/direct/sdk/domain/order_type_information'
9
10
 
10
11
  module Ingenico::Direct::SDK
@@ -12,10 +13,12 @@ module Ingenico::Direct::SDK
12
13
 
13
14
  # @attr [Ingenico::Direct::SDK::Domain::AirlineData] airline_data
14
15
  # @attr [Ingenico::Direct::SDK::Domain::LoanRecipient] loan_recipient
16
+ # @attr [Ingenico::Direct::SDK::Domain::LodgingData] lodging_data
15
17
  # @attr [Ingenico::Direct::SDK::Domain::OrderTypeInformation] type_information
16
18
  class AdditionalOrderInput < Ingenico::Direct::SDK::DataObject
17
19
  attr_accessor :airline_data
18
20
  attr_accessor :loan_recipient
21
+ attr_accessor :lodging_data
19
22
  attr_accessor :type_information
20
23
 
21
24
  # @return (Hash)
@@ -23,6 +26,7 @@ module Ingenico::Direct::SDK
23
26
  hash = super
24
27
  hash['airlineData'] = @airline_data.to_h if @airline_data
25
28
  hash['loanRecipient'] = @loan_recipient.to_h if @loan_recipient
29
+ hash['lodgingData'] = @lodging_data.to_h if @lodging_data
26
30
  hash['typeInformation'] = @type_information.to_h if @type_information
27
31
  hash
28
32
  end
@@ -37,6 +41,10 @@ module Ingenico::Direct::SDK
37
41
  raise TypeError, "value '%s' is not a Hash" % [hash['loanRecipient']] unless hash['loanRecipient'].is_a? Hash
38
42
  @loan_recipient = Ingenico::Direct::SDK::Domain::LoanRecipient.new_from_hash(hash['loanRecipient'])
39
43
  end
44
+ if hash.key? 'lodgingData'
45
+ raise TypeError, "value '%s' is not a Hash" % [hash['lodgingData']] unless hash['lodgingData'].is_a? Hash
46
+ @lodging_data = Ingenico::Direct::SDK::Domain::LodgingData.new_from_hash(hash['lodgingData'])
47
+ end
40
48
  if hash.key? 'typeInformation'
41
49
  raise TypeError, "value '%s' is not a Hash" % [hash['typeInformation']] unless hash['typeInformation'].is_a? Hash
42
50
  @type_information = Ingenico::Direct::SDK::Domain::OrderTypeInformation.new_from_hash(hash['typeInformation'])
@@ -3,21 +3,25 @@
3
3
  # https://support.direct.ingenico.com/documentation/api/reference/
4
4
  #
5
5
  require 'ingenico/direct/sdk/data_object'
6
+ require 'ingenico/direct/sdk/domain/payment_references'
6
7
 
7
8
  module Ingenico::Direct::SDK
8
9
  module Domain
9
10
 
10
11
  # @attr [Long] amount
11
12
  # @attr [true/false] is_final
13
+ # @attr [Ingenico::Direct::SDK::Domain::PaymentReferences] references
12
14
  class CapturePaymentRequest < Ingenico::Direct::SDK::DataObject
13
15
  attr_accessor :amount
14
16
  attr_accessor :is_final
17
+ attr_accessor :references
15
18
 
16
19
  # @return (Hash)
17
20
  def to_h
18
21
  hash = super
19
22
  hash['amount'] = @amount unless @amount.nil?
20
23
  hash['isFinal'] = @is_final unless @is_final.nil?
24
+ hash['references'] = @references.to_h if @references
21
25
  hash
22
26
  end
23
27
 
@@ -25,6 +29,10 @@ module Ingenico::Direct::SDK
25
29
  super
26
30
  @amount = hash['amount'] if hash.key? 'amount'
27
31
  @is_final = hash['isFinal'] if hash.key? 'isFinal'
32
+ if hash.key? 'references'
33
+ raise TypeError, "value '%s' is not a Hash" % [hash['references']] unless hash['references'].is_a? Hash
34
+ @references = Ingenico::Direct::SDK::Domain::PaymentReferences.new_from_hash(hash['references'])
35
+ end
28
36
  end
29
37
  end
30
38
  end
@@ -7,15 +7,18 @@ require 'ingenico/direct/sdk/data_object'
7
7
  module Ingenico::Direct::SDK
8
8
  module Domain
9
9
 
10
+ # @attr [String] bin
10
11
  # @attr [String] card_number
11
12
  # @attr [String] expiry_date
12
13
  class CardEssentials < Ingenico::Direct::SDK::DataObject
14
+ attr_accessor :bin
13
15
  attr_accessor :card_number
14
16
  attr_accessor :expiry_date
15
17
 
16
18
  # @return (Hash)
17
19
  def to_h
18
20
  hash = super
21
+ hash['bin'] = @bin unless @bin.nil?
19
22
  hash['cardNumber'] = @card_number unless @card_number.nil?
20
23
  hash['expiryDate'] = @expiry_date unless @expiry_date.nil?
21
24
  hash
@@ -23,6 +26,7 @@ module Ingenico::Direct::SDK
23
26
 
24
27
  def from_hash(hash)
25
28
  super
29
+ @bin = hash['bin'] if hash.key? 'bin'
26
30
  @card_number = hash['cardNumber'] if hash.key? 'cardNumber'
27
31
  @expiry_date = hash['expiryDate'] if hash.key? 'expiryDate'
28
32
  end
@@ -0,0 +1,35 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+ require 'ingenico/direct/sdk/domain/payment_context'
7
+
8
+ module Ingenico::Direct::SDK
9
+ module Domain
10
+
11
+ # @attr [String] bin
12
+ # @attr [Ingenico::Direct::SDK::Domain::PaymentContext] payment_context
13
+ class GetIINDetailsRequest < Ingenico::Direct::SDK::DataObject
14
+ attr_accessor :bin
15
+ attr_accessor :payment_context
16
+
17
+ # @return (Hash)
18
+ def to_h
19
+ hash = super
20
+ hash['bin'] = @bin unless @bin.nil?
21
+ hash['paymentContext'] = @payment_context.to_h if @payment_context
22
+ hash
23
+ end
24
+
25
+ def from_hash(hash)
26
+ super
27
+ @bin = hash['bin'] if hash.key? 'bin'
28
+ if hash.key? 'paymentContext'
29
+ raise TypeError, "value '%s' is not a Hash" % [hash['paymentContext']] unless hash['paymentContext'].is_a? Hash
30
+ @payment_context = Ingenico::Direct::SDK::Domain::PaymentContext.new_from_hash(hash['paymentContext'])
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,46 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+ require 'ingenico/direct/sdk/domain/iin_detail'
7
+
8
+ module Ingenico::Direct::SDK
9
+ module Domain
10
+
11
+ # @attr [Array<Ingenico::Direct::SDK::Domain::IINDetail>] co_brands
12
+ # @attr [String] country_code
13
+ # @attr [true/false] is_allowed_in_context
14
+ # @attr [Integer] payment_product_id
15
+ class GetIINDetailsResponse < Ingenico::Direct::SDK::DataObject
16
+ attr_accessor :co_brands
17
+ attr_accessor :country_code
18
+ attr_accessor :is_allowed_in_context
19
+ attr_accessor :payment_product_id
20
+
21
+ # @return (Hash)
22
+ def to_h
23
+ hash = super
24
+ hash['coBrands'] = @co_brands.collect(&:to_h) if @co_brands
25
+ hash['countryCode'] = @country_code unless @country_code.nil?
26
+ hash['isAllowedInContext'] = @is_allowed_in_context unless @is_allowed_in_context.nil?
27
+ hash['paymentProductId'] = @payment_product_id unless @payment_product_id.nil?
28
+ hash
29
+ end
30
+
31
+ def from_hash(hash)
32
+ super
33
+ if hash.key? 'coBrands'
34
+ raise TypeError, "value '%s' is not an Array" % [hash['coBrands']] unless hash['coBrands'].is_a? Array
35
+ @co_brands = []
36
+ hash['coBrands'].each do |e|
37
+ @co_brands << Ingenico::Direct::SDK::Domain::IINDetail.new_from_hash(e)
38
+ end
39
+ end
40
+ @country_code = hash['countryCode'] if hash.key? 'countryCode'
41
+ @is_allowed_in_context = hash['isAllowedInContext'] if hash.key? 'isAllowedInContext'
42
+ @payment_product_id = hash['paymentProductId'] if hash.key? 'paymentProductId'
43
+ end
44
+ end
45
+ end
46
+ end
@@ -3,26 +3,25 @@
3
3
  # https://support.direct.ingenico.com/documentation/api/reference/
4
4
  #
5
5
  require 'ingenico/direct/sdk/data_object'
6
- require 'ingenico/direct/sdk/domain/card_payment_method_specific_input_for_hosted_checkout'
7
6
  require 'ingenico/direct/sdk/domain/payment_product_filters_hosted_checkout'
8
7
 
9
8
  module Ingenico::Direct::SDK
10
9
  module Domain
11
10
 
12
- # @attr [Ingenico::Direct::SDK::Domain::CardPaymentMethodSpecificInputForHostedCheckout] card_payment_method_specific_input
13
11
  # @attr [true/false] is_recurring
14
12
  # @attr [String] locale
15
13
  # @attr [Ingenico::Direct::SDK::Domain::PaymentProductFiltersHostedCheckout] payment_product_filters
16
14
  # @attr [String] return_url
15
+ # @attr [Integer] session_timeout
17
16
  # @attr [true/false] show_result_page
18
17
  # @attr [String] tokens
19
18
  # @attr [String] variant
20
19
  class HostedCheckoutSpecificInput < Ingenico::Direct::SDK::DataObject
21
- attr_accessor :card_payment_method_specific_input
22
20
  attr_accessor :is_recurring
23
21
  attr_accessor :locale
24
22
  attr_accessor :payment_product_filters
25
23
  attr_accessor :return_url
24
+ attr_accessor :session_timeout
26
25
  attr_accessor :show_result_page
27
26
  attr_accessor :tokens
28
27
  attr_accessor :variant
@@ -30,11 +29,11 @@ module Ingenico::Direct::SDK
30
29
  # @return (Hash)
31
30
  def to_h
32
31
  hash = super
33
- hash['cardPaymentMethodSpecificInput'] = @card_payment_method_specific_input.to_h if @card_payment_method_specific_input
34
32
  hash['isRecurring'] = @is_recurring unless @is_recurring.nil?
35
33
  hash['locale'] = @locale unless @locale.nil?
36
34
  hash['paymentProductFilters'] = @payment_product_filters.to_h if @payment_product_filters
37
35
  hash['returnUrl'] = @return_url unless @return_url.nil?
36
+ hash['sessionTimeout'] = @session_timeout unless @session_timeout.nil?
38
37
  hash['showResultPage'] = @show_result_page unless @show_result_page.nil?
39
38
  hash['tokens'] = @tokens unless @tokens.nil?
40
39
  hash['variant'] = @variant unless @variant.nil?
@@ -43,10 +42,6 @@ module Ingenico::Direct::SDK
43
42
 
44
43
  def from_hash(hash)
45
44
  super
46
- if hash.key? 'cardPaymentMethodSpecificInput'
47
- raise TypeError, "value '%s' is not a Hash" % [hash['cardPaymentMethodSpecificInput']] unless hash['cardPaymentMethodSpecificInput'].is_a? Hash
48
- @card_payment_method_specific_input = Ingenico::Direct::SDK::Domain::CardPaymentMethodSpecificInputForHostedCheckout.new_from_hash(hash['cardPaymentMethodSpecificInput'])
49
- end
50
45
  @is_recurring = hash['isRecurring'] if hash.key? 'isRecurring'
51
46
  @locale = hash['locale'] if hash.key? 'locale'
52
47
  if hash.key? 'paymentProductFilters'
@@ -54,6 +49,7 @@ module Ingenico::Direct::SDK
54
49
  @payment_product_filters = Ingenico::Direct::SDK::Domain::PaymentProductFiltersHostedCheckout.new_from_hash(hash['paymentProductFilters'])
55
50
  end
56
51
  @return_url = hash['returnUrl'] if hash.key? 'returnUrl'
52
+ @session_timeout = hash['sessionTimeout'] if hash.key? 'sessionTimeout'
57
53
  @show_result_page = hash['showResultPage'] if hash.key? 'showResultPage'
58
54
  @tokens = hash['tokens'] if hash.key? 'tokens'
59
55
  @variant = hash['variant'] if hash.key? 'variant'
@@ -0,0 +1,31 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+
7
+ module Ingenico::Direct::SDK
8
+ module Domain
9
+
10
+ # @attr [true/false] is_allowed_in_context
11
+ # @attr [Integer] payment_product_id
12
+ class IINDetail < Ingenico::Direct::SDK::DataObject
13
+ attr_accessor :is_allowed_in_context
14
+ attr_accessor :payment_product_id
15
+
16
+ # @return (Hash)
17
+ def to_h
18
+ hash = super
19
+ hash['isAllowedInContext'] = @is_allowed_in_context unless @is_allowed_in_context.nil?
20
+ hash['paymentProductId'] = @payment_product_id unless @payment_product_id.nil?
21
+ hash
22
+ end
23
+
24
+ def from_hash(hash)
25
+ super
26
+ @is_allowed_in_context = hash['isAllowedInContext'] if hash.key? 'isAllowedInContext'
27
+ @payment_product_id = hash['paymentProductId'] if hash.key? 'paymentProductId'
28
+ end
29
+ end
30
+ end
31
+ end
@@ -7,20 +7,20 @@ require 'ingenico/direct/sdk/data_object'
7
7
  module Ingenico::Direct::SDK
8
8
  module Domain
9
9
 
10
- # @attr [true/false] group_cards
11
- class CardPaymentMethodSpecificInputForHostedCheckout < Ingenico::Direct::SDK::DataObject
12
- attr_accessor :group_cards
10
+ # @attr [String] check_in_date
11
+ class LodgingData < Ingenico::Direct::SDK::DataObject
12
+ attr_accessor :check_in_date
13
13
 
14
14
  # @return (Hash)
15
15
  def to_h
16
16
  hash = super
17
- hash['groupCards'] = @group_cards unless @group_cards.nil?
17
+ hash['checkInDate'] = @check_in_date unless @check_in_date.nil?
18
18
  hash
19
19
  end
20
20
 
21
21
  def from_hash(hash)
22
22
  super
23
- @group_cards = hash['groupCards'] if hash.key? 'groupCards'
23
+ @check_in_date = hash['checkInDate'] if hash.key? 'checkInDate'
24
24
  end
25
25
  end
26
26
  end
@@ -0,0 +1,59 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+ require 'ingenico/direct/sdk/domain/amount_of_money'
7
+ require 'ingenico/direct/sdk/domain/payment_references'
8
+ require 'ingenico/direct/sdk/domain/payment_status_output'
9
+
10
+ module Ingenico::Direct::SDK
11
+ module Domain
12
+
13
+ # @attr [Ingenico::Direct::SDK::Domain::AmountOfMoney] amount_of_money
14
+ # @attr [String] id
15
+ # @attr [String] payment_method
16
+ # @attr [Ingenico::Direct::SDK::Domain::PaymentReferences] references
17
+ # @attr [String] status
18
+ # @attr [Ingenico::Direct::SDK::Domain::PaymentStatusOutput] status_output
19
+ class OperationOutput < Ingenico::Direct::SDK::DataObject
20
+ attr_accessor :amount_of_money
21
+ attr_accessor :id
22
+ attr_accessor :payment_method
23
+ attr_accessor :references
24
+ attr_accessor :status
25
+ attr_accessor :status_output
26
+
27
+ # @return (Hash)
28
+ def to_h
29
+ hash = super
30
+ hash['amountOfMoney'] = @amount_of_money.to_h if @amount_of_money
31
+ hash['id'] = @id unless @id.nil?
32
+ hash['paymentMethod'] = @payment_method unless @payment_method.nil?
33
+ hash['references'] = @references.to_h if @references
34
+ hash['status'] = @status unless @status.nil?
35
+ hash['statusOutput'] = @status_output.to_h if @status_output
36
+ hash
37
+ end
38
+
39
+ def from_hash(hash)
40
+ super
41
+ if hash.key? 'amountOfMoney'
42
+ raise TypeError, "value '%s' is not a Hash" % [hash['amountOfMoney']] unless hash['amountOfMoney'].is_a? Hash
43
+ @amount_of_money = Ingenico::Direct::SDK::Domain::AmountOfMoney.new_from_hash(hash['amountOfMoney'])
44
+ end
45
+ @id = hash['id'] if hash.key? 'id'
46
+ @payment_method = hash['paymentMethod'] if hash.key? 'paymentMethod'
47
+ if hash.key? 'references'
48
+ raise TypeError, "value '%s' is not a Hash" % [hash['references']] unless hash['references'].is_a? Hash
49
+ @references = Ingenico::Direct::SDK::Domain::PaymentReferences.new_from_hash(hash['references'])
50
+ end
51
+ @status = hash['status'] if hash.key? 'status'
52
+ if hash.key? 'statusOutput'
53
+ raise TypeError, "value '%s' is not a Hash" % [hash['statusOutput']] unless hash['statusOutput'].is_a? Hash
54
+ @status_output = Ingenico::Direct::SDK::Domain::PaymentStatusOutput.new_from_hash(hash['statusOutput'])
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,39 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+ require 'ingenico/direct/sdk/domain/amount_of_money'
7
+
8
+ module Ingenico::Direct::SDK
9
+ module Domain
10
+
11
+ # @attr [Ingenico::Direct::SDK::Domain::AmountOfMoney] amount_of_money
12
+ # @attr [String] country_code
13
+ # @attr [true/false] is_recurring
14
+ class PaymentContext < Ingenico::Direct::SDK::DataObject
15
+ attr_accessor :amount_of_money
16
+ attr_accessor :country_code
17
+ attr_accessor :is_recurring
18
+
19
+ # @return (Hash)
20
+ def to_h
21
+ hash = super
22
+ hash['amountOfMoney'] = @amount_of_money.to_h if @amount_of_money
23
+ hash['countryCode'] = @country_code unless @country_code.nil?
24
+ hash['isRecurring'] = @is_recurring unless @is_recurring.nil?
25
+ hash
26
+ end
27
+
28
+ def from_hash(hash)
29
+ super
30
+ if hash.key? 'amountOfMoney'
31
+ raise TypeError, "value '%s' is not a Hash" % [hash['amountOfMoney']] unless hash['amountOfMoney'].is_a? Hash
32
+ @amount_of_money = Ingenico::Direct::SDK::Domain::AmountOfMoney.new_from_hash(hash['amountOfMoney'])
33
+ end
34
+ @country_code = hash['countryCode'] if hash.key? 'countryCode'
35
+ @is_recurring = hash['isRecurring'] if hash.key? 'isRecurring'
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,66 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+ require 'ingenico/direct/sdk/domain/hosted_checkout_specific_output'
7
+ require 'ingenico/direct/sdk/domain/operation_output'
8
+ require 'ingenico/direct/sdk/domain/payment_output'
9
+ require 'ingenico/direct/sdk/domain/payment_status_output'
10
+
11
+ module Ingenico::Direct::SDK
12
+ module Domain
13
+
14
+ # @attr [Array<Ingenico::Direct::SDK::Domain::OperationOutput>] operations
15
+ # @attr [Ingenico::Direct::SDK::Domain::HostedCheckoutSpecificOutput] hosted_checkout_specific_output
16
+ # @attr [String] id
17
+ # @attr [Ingenico::Direct::SDK::Domain::PaymentOutput] payment_output
18
+ # @attr [String] status
19
+ # @attr [Ingenico::Direct::SDK::Domain::PaymentStatusOutput] status_output
20
+ class PaymentDetailsResponse < Ingenico::Direct::SDK::DataObject
21
+ attr_accessor :operations
22
+ attr_accessor :hosted_checkout_specific_output
23
+ attr_accessor :id
24
+ attr_accessor :payment_output
25
+ attr_accessor :status
26
+ attr_accessor :status_output
27
+
28
+ # @return (Hash)
29
+ def to_h
30
+ hash = super
31
+ hash['Operations'] = @operations.collect(&:to_h) if @operations
32
+ hash['hostedCheckoutSpecificOutput'] = @hosted_checkout_specific_output.to_h if @hosted_checkout_specific_output
33
+ hash['id'] = @id unless @id.nil?
34
+ hash['paymentOutput'] = @payment_output.to_h if @payment_output
35
+ hash['status'] = @status unless @status.nil?
36
+ hash['statusOutput'] = @status_output.to_h if @status_output
37
+ hash
38
+ end
39
+
40
+ def from_hash(hash)
41
+ super
42
+ if hash.key? 'Operations'
43
+ raise TypeError, "value '%s' is not an Array" % [hash['Operations']] unless hash['Operations'].is_a? Array
44
+ @operations = []
45
+ hash['Operations'].each do |e|
46
+ @operations << Ingenico::Direct::SDK::Domain::OperationOutput.new_from_hash(e)
47
+ end
48
+ end
49
+ if hash.key? 'hostedCheckoutSpecificOutput'
50
+ raise TypeError, "value '%s' is not a Hash" % [hash['hostedCheckoutSpecificOutput']] unless hash['hostedCheckoutSpecificOutput'].is_a? Hash
51
+ @hosted_checkout_specific_output = Ingenico::Direct::SDK::Domain::HostedCheckoutSpecificOutput.new_from_hash(hash['hostedCheckoutSpecificOutput'])
52
+ end
53
+ @id = hash['id'] if hash.key? 'id'
54
+ if hash.key? 'paymentOutput'
55
+ raise TypeError, "value '%s' is not a Hash" % [hash['paymentOutput']] unless hash['paymentOutput'].is_a? Hash
56
+ @payment_output = Ingenico::Direct::SDK::Domain::PaymentOutput.new_from_hash(hash['paymentOutput'])
57
+ end
58
+ @status = hash['status'] if hash.key? 'status'
59
+ if hash.key? 'statusOutput'
60
+ raise TypeError, "value '%s' is not a Hash" % [hash['statusOutput']] unless hash['statusOutput'].is_a? Hash
61
+ @status_output = Ingenico::Direct::SDK::Domain::PaymentStatusOutput.new_from_hash(hash['statusOutput'])
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -16,6 +16,7 @@ module Ingenico::Direct::SDK
16
16
  # @attr [true/false] allows_recurring
17
17
  # @attr [true/false] allows_tokenization
18
18
  # @attr [Ingenico::Direct::SDK::Domain::PaymentProductDisplayHints] display_hints
19
+ # @attr [Array<Ingenico::Direct::SDK::Domain::PaymentProductDisplayHints>] display_hints_list
19
20
  # @attr [Array<Ingenico::Direct::SDK::Domain::PaymentProductField>] fields
20
21
  # @attr [Integer] id
21
22
  # @attr [String] payment_method
@@ -28,6 +29,7 @@ module Ingenico::Direct::SDK
28
29
  attr_accessor :allows_recurring
29
30
  attr_accessor :allows_tokenization
30
31
  attr_accessor :display_hints
32
+ attr_accessor :display_hints_list
31
33
  attr_accessor :fields
32
34
  attr_accessor :id
33
35
  attr_accessor :payment_method
@@ -43,6 +45,7 @@ module Ingenico::Direct::SDK
43
45
  hash['allowsRecurring'] = @allows_recurring unless @allows_recurring.nil?
44
46
  hash['allowsTokenization'] = @allows_tokenization unless @allows_tokenization.nil?
45
47
  hash['displayHints'] = @display_hints.to_h if @display_hints
48
+ hash['displayHintsList'] = @display_hints_list.collect(&:to_h) if @display_hints_list
46
49
  hash['fields'] = @fields.collect(&:to_h) if @fields
47
50
  hash['id'] = @id unless @id.nil?
48
51
  hash['paymentMethod'] = @payment_method unless @payment_method.nil?
@@ -68,6 +71,13 @@ module Ingenico::Direct::SDK
68
71
  raise TypeError, "value '%s' is not a Hash" % [hash['displayHints']] unless hash['displayHints'].is_a? Hash
69
72
  @display_hints = Ingenico::Direct::SDK::Domain::PaymentProductDisplayHints.new_from_hash(hash['displayHints'])
70
73
  end
74
+ if hash.key? 'displayHintsList'
75
+ raise TypeError, "value '%s' is not an Array" % [hash['displayHintsList']] unless hash['displayHintsList'].is_a? Array
76
+ @display_hints_list = []
77
+ hash['displayHintsList'].each do |e|
78
+ @display_hints_list << Ingenico::Direct::SDK::Domain::PaymentProductDisplayHints.new_from_hash(e)
79
+ end
80
+ end
71
81
  if hash.key? 'fields'
72
82
  raise TypeError, "value '%s' is not an Array" % [hash['fields']] unless hash['fields'].is_a? Array
73
83
  @fields = []
@@ -7,19 +7,23 @@ require 'ingenico/direct/sdk/data_object'
7
7
  module Ingenico::Direct::SDK
8
8
  module Domain
9
9
 
10
+ # @attr [String] gateway
10
11
  # @attr [Array<String>] networks
11
12
  class PaymentProduct320SpecificData < Ingenico::Direct::SDK::DataObject
13
+ attr_accessor :gateway
12
14
  attr_accessor :networks
13
15
 
14
16
  # @return (Hash)
15
17
  def to_h
16
18
  hash = super
19
+ hash['gateway'] = @gateway unless @gateway.nil?
17
20
  hash['networks'] = @networks unless @networks.nil?
18
21
  hash
19
22
  end
20
23
 
21
24
  def from_hash(hash)
22
25
  super
26
+ @gateway = hash['gateway'] if hash.key? 'gateway'
23
27
  if hash.key? 'networks'
24
28
  raise TypeError, "value '%s' is not an Array" % [hash['networks']] unless hash['networks'].is_a? Array
25
29
  @networks = []
@@ -11,10 +11,12 @@ module Ingenico::Direct::SDK
11
11
 
12
12
  # @attr [Ingenico::Direct::SDK::Domain::AccountOnFile] account_on_file
13
13
  # @attr [Ingenico::Direct::SDK::Domain::PaymentProductDisplayHints] display_hints
14
+ # @attr [Array<Ingenico::Direct::SDK::Domain::PaymentProductDisplayHints>] display_hints_list
14
15
  # @attr [String] id
15
16
  class PaymentProductGroup < Ingenico::Direct::SDK::DataObject
16
17
  attr_accessor :account_on_file
17
18
  attr_accessor :display_hints
19
+ attr_accessor :display_hints_list
18
20
  attr_accessor :id
19
21
 
20
22
  # @return (Hash)
@@ -22,6 +24,7 @@ module Ingenico::Direct::SDK
22
24
  hash = super
23
25
  hash['accountOnFile'] = @account_on_file.to_h if @account_on_file
24
26
  hash['displayHints'] = @display_hints.to_h if @display_hints
27
+ hash['displayHintsList'] = @display_hints_list.collect(&:to_h) if @display_hints_list
25
28
  hash['id'] = @id unless @id.nil?
26
29
  hash
27
30
  end
@@ -36,6 +39,13 @@ module Ingenico::Direct::SDK
36
39
  raise TypeError, "value '%s' is not a Hash" % [hash['displayHints']] unless hash['displayHints'].is_a? Hash
37
40
  @display_hints = Ingenico::Direct::SDK::Domain::PaymentProductDisplayHints.new_from_hash(hash['displayHints'])
38
41
  end
42
+ if hash.key? 'displayHintsList'
43
+ raise TypeError, "value '%s' is not an Array" % [hash['displayHintsList']] unless hash['displayHintsList'].is_a? Array
44
+ @display_hints_list = []
45
+ hash['displayHintsList'].each do |e|
46
+ @display_hints_list << Ingenico::Direct::SDK::Domain::PaymentProductDisplayHints.new_from_hash(e)
47
+ end
48
+ end
39
49
  @id = hash['id'] if hash.key? 'id'
40
50
  end
41
51
  end
@@ -4,18 +4,22 @@
4
4
  #
5
5
  require 'ingenico/direct/sdk/data_object'
6
6
  require 'ingenico/direct/sdk/domain/amount_of_money'
7
+ require 'ingenico/direct/sdk/domain/payment_references'
7
8
 
8
9
  module Ingenico::Direct::SDK
9
10
  module Domain
10
11
 
11
12
  # @attr [Ingenico::Direct::SDK::Domain::AmountOfMoney] amount_of_money
13
+ # @attr [Ingenico::Direct::SDK::Domain::PaymentReferences] references
12
14
  class RefundRequest < Ingenico::Direct::SDK::DataObject
13
15
  attr_accessor :amount_of_money
16
+ attr_accessor :references
14
17
 
15
18
  # @return (Hash)
16
19
  def to_h
17
20
  hash = super
18
21
  hash['amountOfMoney'] = @amount_of_money.to_h if @amount_of_money
22
+ hash['references'] = @references.to_h if @references
19
23
  hash
20
24
  end
21
25
 
@@ -25,6 +29,10 @@ module Ingenico::Direct::SDK
25
29
  raise TypeError, "value '%s' is not a Hash" % [hash['amountOfMoney']] unless hash['amountOfMoney'].is_a? Hash
26
30
  @amount_of_money = Ingenico::Direct::SDK::Domain::AmountOfMoney.new_from_hash(hash['amountOfMoney'])
27
31
  end
32
+ if hash.key? 'references'
33
+ raise TypeError, "value '%s' is not a Hash" % [hash['references']] unless hash['references'].is_a? Hash
34
+ @references = Ingenico::Direct::SDK::Domain::PaymentReferences.new_from_hash(hash['references'])
35
+ end
28
36
  end
29
37
  end
30
38
  end
@@ -49,7 +49,7 @@ module Ingenico::Direct::SDK
49
49
  Ingenico::Direct::SDK::Merchant::Payments::PaymentsClient.new(self, nil)
50
50
  end
51
51
 
52
- # Resource /v2/!{merchantId}/services/testconnection
52
+ # Resource /v2/!{merchantId}/services
53
53
  # @return [Ingenico::Direct::SDK::Merchant::Services::ServicesClient]
54
54
  def services
55
55
  Ingenico::Direct::SDK::Merchant::Services::ServicesClient.new(self, nil)
@@ -13,6 +13,7 @@ require 'ingenico/direct/sdk/domain/complete_payment_response'
13
13
  require 'ingenico/direct/sdk/domain/create_payment_request'
14
14
  require 'ingenico/direct/sdk/domain/create_payment_response'
15
15
  require 'ingenico/direct/sdk/domain/error_response'
16
+ require 'ingenico/direct/sdk/domain/payment_details_response'
16
17
  require 'ingenico/direct/sdk/domain/payment_error_response'
17
18
  require 'ingenico/direct/sdk/domain/payment_response'
18
19
  require 'ingenico/direct/sdk/domain/refund_error_response'
@@ -255,6 +256,37 @@ module Ingenico::Direct::SDK
255
256
  raise create_exception(e.status_code, e.body, error_object, context)
256
257
  end
257
258
 
259
+ # Resource /v2/!{merchantId}/payments/!{paymentId}/details - {https://support.direct.ingenico.com/documentation/api/reference#operation/GetPaymentDetailsApi Get payment details}
260
+ # @param payment_id [String]
261
+ # @param context [Ingenico::Direct::SDK::CallContext]
262
+ # @return [Ingenico::Direct::SDK::Domain::PaymentDetailsResponse]
263
+ # @raise [Ingenico::Direct::SDK::ValidationException] if the request was not correct and couldn't be processed (HTTP status code 400)
264
+ # @raise [Ingenico::Direct::SDK::AuthorizationException] if the request was not allowed (HTTP status code 403)
265
+ # @raise [Ingenico::Direct::SDK::IdempotenceException] if an idempotent request caused a conflict (HTTP status code 409)
266
+ # @raise [Ingenico::Direct::SDK::ReferenceException] if an object was attempted to be referenced that doesn't exist or has been removed,
267
+ # or there was a conflict (HTTP status code 404, 409 or 410)
268
+ # @raise [Ingenico::Direct::SDK::GlobalCollectException] if something went wrong at the Ingenico ePayments platform,
269
+ # the Ingenico ePayments platform was unable to process a message from a downstream partner/acquirer,
270
+ # or the service that you're trying to reach is temporary unavailable (HTTP status code 500, 502 or 503)
271
+ # @raise [Ingenico::Direct::SDK::ApiException]if the Ingenico ePayments platform returned any other error
272
+ def get_payment_details(payment_id, context = nil)
273
+ path_context = {
274
+ 'paymentId'.freeze => payment_id,
275
+ }
276
+ uri = instantiate_uri('/v2/{merchantId}/payments/{paymentId}/details', path_context)
277
+ @communicator.get(
278
+ uri,
279
+ client_headers,
280
+ nil,
281
+ Ingenico::Direct::SDK::Domain::PaymentDetailsResponse,
282
+ context
283
+ )
284
+ rescue ResponseException => e
285
+ error_type = Ingenico::Direct::SDK::Domain::ErrorResponse
286
+ error_object = @communicator.marshaller.unmarshal(e.body, error_type)
287
+ raise create_exception(e.status_code, e.body, error_object, context)
288
+ end
289
+
258
290
  # Resource /v2/!{merchantId}/payments/!{paymentId}/refunds - {https://support.direct.ingenico.com/documentation/api/reference#operation/GetRefundsApi Get Refunds Api}
259
291
  # @param payment_id [String]
260
292
  # @param context [Ingenico::Direct::SDK::CallContext]
@@ -5,6 +5,8 @@
5
5
  require 'ingenico/direct/sdk/api_resource'
6
6
  require 'ingenico/direct/sdk/response_exception'
7
7
  require 'ingenico/direct/sdk/domain/error_response'
8
+ require 'ingenico/direct/sdk/domain/get_iin_details_request'
9
+ require 'ingenico/direct/sdk/domain/get_iin_details_response'
8
10
  require 'ingenico/direct/sdk/domain/test_connection'
9
11
 
10
12
  module Ingenico::Direct::SDK
@@ -46,6 +48,35 @@ module Ingenico::Direct::SDK
46
48
  error_object = @communicator.marshaller.unmarshal(e.body, error_type)
47
49
  raise create_exception(e.status_code, e.body, error_object, context)
48
50
  end
51
+
52
+ # Resource /v2/!{merchantId}/services/getIINdetails - {https://support.direct.ingenico.com/documentation/api/reference#operation/GetIINDetailsApi Get IIN details}
53
+ # @param body [Ingenico::Direct::SDK::Domain::GetIINDetailsRequest]
54
+ # @param context [Ingenico::Direct::SDK::CallContext]
55
+ # @return [Ingenico::Direct::SDK::Domain::GetIINDetailsResponse]
56
+ # @raise [Ingenico::Direct::SDK::ValidationException] if the request was not correct and couldn't be processed (HTTP status code 400)
57
+ # @raise [Ingenico::Direct::SDK::AuthorizationException] if the request was not allowed (HTTP status code 403)
58
+ # @raise [Ingenico::Direct::SDK::IdempotenceException] if an idempotent request caused a conflict (HTTP status code 409)
59
+ # @raise [Ingenico::Direct::SDK::ReferenceException] if an object was attempted to be referenced that doesn't exist or has been removed,
60
+ # or there was a conflict (HTTP status code 404, 409 or 410)
61
+ # @raise [Ingenico::Direct::SDK::GlobalCollectException] if something went wrong at the Ingenico ePayments platform,
62
+ # the Ingenico ePayments platform was unable to process a message from a downstream partner/acquirer,
63
+ # or the service that you're trying to reach is temporary unavailable (HTTP status code 500, 502 or 503)
64
+ # @raise [Ingenico::Direct::SDK::ApiException]if the Ingenico ePayments platform returned any other error
65
+ def get_iin_details(body, context = nil)
66
+ uri = instantiate_uri('/v2/{merchantId}/services/getIINdetails')
67
+ @communicator.post(
68
+ uri,
69
+ client_headers,
70
+ nil,
71
+ body,
72
+ Ingenico::Direct::SDK::Domain::GetIINDetailsResponse,
73
+ context
74
+ )
75
+ rescue ResponseException => e
76
+ error_type = Ingenico::Direct::SDK::Domain::ErrorResponse
77
+ error_object = @communicator.marshaller.unmarshal(e.body, error_type)
78
+ raise create_exception(e.status_code, e.body, error_object, context)
79
+ end
49
80
  end
50
81
  end
51
82
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: direct-sdk-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ingenico ePayments
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-07 00:00:00.000000000 Z
11
+ date: 2021-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -174,7 +174,6 @@ files:
174
174
  - lib/ingenico/direct/sdk/domain/card_fraud_results.rb
175
175
  - lib/ingenico/direct/sdk/domain/card_payment_method_specific_input.rb
176
176
  - lib/ingenico/direct/sdk/domain/card_payment_method_specific_input_base.rb
177
- - lib/ingenico/direct/sdk/domain/card_payment_method_specific_input_for_hosted_checkout.rb
178
177
  - lib/ingenico/direct/sdk/domain/card_payment_method_specific_output.rb
179
178
  - lib/ingenico/direct/sdk/domain/card_payout_method_specific_input.rb
180
179
  - lib/ingenico/direct/sdk/domain/card_recurrence_details.rb
@@ -212,29 +211,36 @@ files:
212
211
  - lib/ingenico/direct/sdk/domain/g_pay_three_d_secure.rb
213
212
  - lib/ingenico/direct/sdk/domain/get_hosted_checkout_response.rb
214
213
  - lib/ingenico/direct/sdk/domain/get_hosted_tokenization_response.rb
214
+ - lib/ingenico/direct/sdk/domain/get_iin_details_request.rb
215
+ - lib/ingenico/direct/sdk/domain/get_iin_details_response.rb
215
216
  - lib/ingenico/direct/sdk/domain/get_payment_product_groups_response.rb
216
217
  - lib/ingenico/direct/sdk/domain/get_payment_products_response.rb
217
218
  - lib/ingenico/direct/sdk/domain/gift_card_purchase.rb
218
219
  - lib/ingenico/direct/sdk/domain/hosted_checkout_specific_input.rb
219
220
  - lib/ingenico/direct/sdk/domain/hosted_checkout_specific_output.rb
221
+ - lib/ingenico/direct/sdk/domain/iin_detail.rb
220
222
  - lib/ingenico/direct/sdk/domain/label_template_element.rb
221
223
  - lib/ingenico/direct/sdk/domain/length_validator.rb
222
224
  - lib/ingenico/direct/sdk/domain/line_item.rb
223
225
  - lib/ingenico/direct/sdk/domain/line_item_invoice_data.rb
224
226
  - lib/ingenico/direct/sdk/domain/loan_recipient.rb
227
+ - lib/ingenico/direct/sdk/domain/lodging_data.rb
225
228
  - lib/ingenico/direct/sdk/domain/merchant_action.rb
226
229
  - lib/ingenico/direct/sdk/domain/mobile_payment_data.rb
227
230
  - lib/ingenico/direct/sdk/domain/mobile_payment_method_hosted_checkout_specific_input.rb
228
231
  - lib/ingenico/direct/sdk/domain/mobile_payment_method_specific_input.rb
229
232
  - lib/ingenico/direct/sdk/domain/mobile_payment_method_specific_output.rb
230
233
  - lib/ingenico/direct/sdk/domain/mobile_payment_product320_specific_input.rb
234
+ - lib/ingenico/direct/sdk/domain/operation_output.rb
231
235
  - lib/ingenico/direct/sdk/domain/order.rb
232
236
  - lib/ingenico/direct/sdk/domain/order_line_details.rb
233
237
  - lib/ingenico/direct/sdk/domain/order_references.rb
234
238
  - lib/ingenico/direct/sdk/domain/order_status_output.rb
235
239
  - lib/ingenico/direct/sdk/domain/order_type_information.rb
236
240
  - lib/ingenico/direct/sdk/domain/payment_account_on_file.rb
241
+ - lib/ingenico/direct/sdk/domain/payment_context.rb
237
242
  - lib/ingenico/direct/sdk/domain/payment_creation_output.rb
243
+ - lib/ingenico/direct/sdk/domain/payment_details_response.rb
238
244
  - lib/ingenico/direct/sdk/domain/payment_error_response.rb
239
245
  - lib/ingenico/direct/sdk/domain/payment_output.rb
240
246
  - lib/ingenico/direct/sdk/domain/payment_product.rb