connect-sdk-ruby 2.6.0 → 2.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (22) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/connect-sdk-ruby.gemspec +2 -2
  4. data/examples/merchant/payments/create_payment_example.rb +5 -0
  5. data/lib/ingenico/connect/sdk/domain/capture/capture_output.rb +7 -0
  6. data/lib/ingenico/connect/sdk/domain/payment/abstract_three_d_secure.rb +9 -0
  7. data/lib/ingenico/connect/sdk/domain/payment/external_cardholder_authentication_data.rb +23 -0
  8. data/lib/ingenico/connect/sdk/domain/payment/payment_output.rb +7 -0
  9. data/lib/ingenico/connect/sdk/domain/payment/payment_product806_specific_output.rb +43 -0
  10. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_method_specific_output.rb +9 -0
  11. data/lib/ingenico/connect/sdk/domain/payment/refund_cash_method_specific_output.rb +15 -0
  12. data/lib/ingenico/connect/sdk/domain/payment/refund_method_specific_output.rb +7 -0
  13. data/lib/ingenico/connect/sdk/domain/payment/refund_output.rb +9 -0
  14. data/lib/ingenico/connect/sdk/domain/payment/three_d_secure_results.rb +30 -0
  15. data/lib/ingenico/connect/sdk/domain/payment/trustly_bank_account.rb +53 -0
  16. data/lib/ingenico/connect/sdk/domain/product/payment_product_field_validators.rb +8 -0
  17. data/lib/ingenico/connect/sdk/domain/token/create_token_request.rb +7 -0
  18. data/lib/ingenico/connect/sdk/logging/logging_util.rb +1 -1
  19. data/lib/ingenico/connect/sdk/meta_data_provider.rb +1 -1
  20. data/spec/fixtures/resources/logging/bodyWithObjectObfuscated.json +2 -2
  21. data/spec/fixtures/resources/logging/bodyWithObjectOriginal.json +1 -1
  22. metadata +13 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8094a6597c4cc5142282eabc7d7d3cdfdd63b69bbfbe1240e262be443f7e5ab9
4
- data.tar.gz: 00b05237c065262e96b3c78c9438a98cb6a7efb7e9146395fe5f535b79c41e23
3
+ metadata.gz: 45e301d026b1906a8bb9b5a9cf14440815455f73fb3399fd09aa320388f14a60
4
+ data.tar.gz: a6a6ded0b1a7c20950de11162c37139aca5ea79fe7ea42bf2718fe5ce4c72285
5
5
  SHA512:
6
- metadata.gz: 0d7efbc5741777936ac414b4a3c03508f30a97838efb5dc2241667ac6ffba56978bc6334b7eea88b84a1a3aace9141bd4aab94dcc8c92c0ba879409400fddd1f
7
- data.tar.gz: 0f28f33c0d7cb4ad9b87dbb34e220f58794b7a07fca9a1f7d38f97cb39d14d33a5bbcec75243b36a0fd3d0fa08c1eafa03b7b02520010f124731263b377348a9
6
+ metadata.gz: 5add257b03f0a0829d1df6ccec58605005b786996a7d0cba4527d9118b197b8d2989fecdaf26c85e139ec45f7af2b124f48f638b937f509b81fb719baa7e7521
7
+ data.tar.gz: 389c4a23edbce02f8f1d76d373bd127fa6f177a33dc8e7e6f5009bcf1afff65b846985e6bbb500155fce727193d503fa954fef50fb58d33c4360dc562aa991b9
data/README.md CHANGED
@@ -91,7 +91,7 @@ In addition, to run the proxy integration tests, the proxy URI, username and pas
91
91
 
92
92
  In order to run the unit and integration tests, some additional dependencies are required:
93
93
 
94
- * [rake](https://ruby.github.io/rake/) 10.4 or higher
94
+ * [rake](https://ruby.github.io/rake/) 12.3.3 or higher
95
95
  * [rspec](https://github.com/rspec/rspec) 3.5 or higher
96
96
  * [webmock](https://github.com/bblimke/webmock) 2.1 or higher
97
97
  * [sinatra](https://github.com/sinatra/sinatra) 1.4 or higher
@@ -126,7 +126,7 @@ The following commands can now be executed from the root directory of the SDK fo
126
126
 
127
127
  Documentation can be generated with YARD. YARD can be installed as a gem. The gems required to generate documentation are:
128
128
 
129
- * [rake](https://ruby.github.io/rake/) 10.4 or higher
129
+ * [rake](https://ruby.github.io/rake/) 12.3.3 or higher
130
130
  * [yard](https://github.com/lsegal/yard) 0.9.5 or higher
131
131
 
132
132
  They can be installed using the following command:
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = 'connect-sdk-ruby'
3
- spec.version = '2.6.0'
3
+ spec.version = '2.11.0'
4
4
  spec.authors = ['Ingenico ePayments']
5
5
  spec.email = ['github@epay.ingenico.com']
6
6
  spec.summary = %q{SDK to communicate with the Ingenico ePayments platform using the Ingenico Connect Server API}
@@ -24,6 +24,6 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency 'rspec', '~> 3.5'
25
25
  spec.add_development_dependency 'webmock', '~> 2.1'
26
26
  spec.add_development_dependency 'sinatra', '~> 1.4'
27
- spec.add_development_dependency 'rake', '~> 10.4'
27
+ spec.add_development_dependency 'rake', '~> 12.3', '>= 12.3.3'
28
28
  # spec.metadata['yard.run'] = 'yri' # compiles yard doc on install
29
29
  end
@@ -39,10 +39,15 @@ def example
39
39
  card.cvv = '123'
40
40
  card.expiry_date = '1220'
41
41
 
42
+ authentication_amount = Definitions::AmountOfMoney.new
43
+ authentication_amount.amount = 2980
44
+ authentication_amount.currency_code = 'EUR'
45
+
42
46
  redirection_data = Payment::RedirectionData.new
43
47
  redirection_data.return_url = 'https://hostname.myownwebsite.url'
44
48
 
45
49
  three_d_secure = Payment::ThreeDSecure.new
50
+ three_d_secure.authentication_amount = authentication_amount
46
51
  three_d_secure.authentication_flow = 'browser'
47
52
  three_d_secure.challenge_canvas_size = '600x400'
48
53
  three_d_secure.challenge_indicator = 'challenge-requested'
@@ -28,6 +28,7 @@ module Ingenico::Connect::SDK
28
28
  # @attr [Ingenico::Connect::SDK::Domain::Payment::MobilePaymentMethodSpecificOutput] mobile_payment_method_specific_output
29
29
  # @attr [String] payment_method
30
30
  # @attr [Ingenico::Connect::SDK::Domain::Payment::RedirectPaymentMethodSpecificOutput] redirect_payment_method_specific_output
31
+ # @attr [String] reversal_reason
31
32
  # @attr [Ingenico::Connect::SDK::Domain::Payment::SepaDirectDebitPaymentMethodSpecificOutput] sepa_direct_debit_payment_method_specific_output
32
33
  class CaptureOutput < Ingenico::Connect::SDK::Domain::Payment::OrderOutput
33
34
 
@@ -53,6 +54,8 @@ module Ingenico::Connect::SDK
53
54
 
54
55
  attr_accessor :redirect_payment_method_specific_output
55
56
 
57
+ attr_accessor :reversal_reason
58
+
56
59
  attr_accessor :sepa_direct_debit_payment_method_specific_output
57
60
 
58
61
  # @return (Hash)
@@ -69,6 +72,7 @@ module Ingenico::Connect::SDK
69
72
  hash['mobilePaymentMethodSpecificOutput'] = @mobile_payment_method_specific_output.to_h unless @mobile_payment_method_specific_output.nil?
70
73
  hash['paymentMethod'] = @payment_method unless @payment_method.nil?
71
74
  hash['redirectPaymentMethodSpecificOutput'] = @redirect_payment_method_specific_output.to_h unless @redirect_payment_method_specific_output.nil?
75
+ hash['reversalReason'] = @reversal_reason unless @reversal_reason.nil?
72
76
  hash['sepaDirectDebitPaymentMethodSpecificOutput'] = @sepa_direct_debit_payment_method_specific_output.to_h unless @sepa_direct_debit_payment_method_specific_output.nil?
73
77
  hash
74
78
  end
@@ -116,6 +120,9 @@ module Ingenico::Connect::SDK
116
120
  raise TypeError, "value '%s' is not a Hash" % [hash['redirectPaymentMethodSpecificOutput']] unless hash['redirectPaymentMethodSpecificOutput'].is_a? Hash
117
121
  @redirect_payment_method_specific_output = Ingenico::Connect::SDK::Domain::Payment::RedirectPaymentMethodSpecificOutput.new_from_hash(hash['redirectPaymentMethodSpecificOutput'])
118
122
  end
123
+ if hash.has_key? 'reversalReason'
124
+ @reversal_reason = hash['reversalReason']
125
+ end
119
126
  if hash.has_key? 'sepaDirectDebitPaymentMethodSpecificOutput'
120
127
  raise TypeError, "value '%s' is not a Hash" % [hash['sepaDirectDebitPaymentMethodSpecificOutput']] unless hash['sepaDirectDebitPaymentMethodSpecificOutput'].is_a? Hash
121
128
  @sepa_direct_debit_payment_method_specific_output = Ingenico::Connect::SDK::Domain::Payment::SepaDirectDebitPaymentMethodSpecificOutput.new_from_hash(hash['sepaDirectDebitPaymentMethodSpecificOutput'])
@@ -3,6 +3,7 @@
3
3
  # https://epayments-api.developer-ingenico.com/s2sapi/v1/
4
4
  #
5
5
  require 'ingenico/connect/sdk/data_object'
6
+ require 'ingenico/connect/sdk/domain/definitions/amount_of_money'
6
7
  require 'ingenico/connect/sdk/domain/payment/sdk_data_input'
7
8
  require 'ingenico/connect/sdk/domain/payment/three_d_secure_data'
8
9
 
@@ -10,6 +11,7 @@ module Ingenico::Connect::SDK
10
11
  module Domain
11
12
  module Payment
12
13
 
14
+ # @attr [Ingenico::Connect::SDK::Domain::Definitions::AmountOfMoney] authentication_amount
13
15
  # @attr [String] authentication_flow
14
16
  # @attr [String] challenge_canvas_size
15
17
  # @attr [String] challenge_indicator
@@ -19,6 +21,8 @@ module Ingenico::Connect::SDK
19
21
  # @attr [true/false] skip_authentication
20
22
  class AbstractThreeDSecure < Ingenico::Connect::SDK::DataObject
21
23
 
24
+ attr_accessor :authentication_amount
25
+
22
26
  attr_accessor :authentication_flow
23
27
 
24
28
  attr_accessor :challenge_canvas_size
@@ -36,6 +40,7 @@ module Ingenico::Connect::SDK
36
40
  # @return (Hash)
37
41
  def to_h
38
42
  hash = super
43
+ hash['authenticationAmount'] = @authentication_amount.to_h unless @authentication_amount.nil?
39
44
  hash['authenticationFlow'] = @authentication_flow unless @authentication_flow.nil?
40
45
  hash['challengeCanvasSize'] = @challenge_canvas_size unless @challenge_canvas_size.nil?
41
46
  hash['challengeIndicator'] = @challenge_indicator unless @challenge_indicator.nil?
@@ -48,6 +53,10 @@ module Ingenico::Connect::SDK
48
53
 
49
54
  def from_hash(hash)
50
55
  super
56
+ if hash.has_key? 'authenticationAmount'
57
+ raise TypeError, "value '%s' is not a Hash" % [hash['authenticationAmount']] unless hash['authenticationAmount'].is_a? Hash
58
+ @authentication_amount = Ingenico::Connect::SDK::Domain::Definitions::AmountOfMoney.new_from_hash(hash['authenticationAmount'])
59
+ end
51
60
  if hash.has_key? 'authenticationFlow'
52
61
  @authentication_flow = hash['authenticationFlow']
53
62
  end
@@ -8,16 +8,23 @@ module Ingenico::Connect::SDK
8
8
  module Domain
9
9
  module Payment
10
10
 
11
+ # @attr [String] acs_transaction_id
12
+ # @attr [String] applied_exemption
11
13
  # @attr [String] cavv
12
14
  # @attr [String] cavv_algorithm
13
15
  # @attr [String] directory_server_transaction_id
14
16
  # @attr [Integer] eci
17
+ # @attr [Integer] scheme_risk_score
15
18
  # @attr [String] three_d_secure_version
16
19
  # @attr [String] three_d_server_transaction_id
17
20
  # @attr [String] validation_result
18
21
  # @attr [String] xid
19
22
  class ExternalCardholderAuthenticationData < Ingenico::Connect::SDK::DataObject
20
23
 
24
+ attr_accessor :acs_transaction_id
25
+
26
+ attr_accessor :applied_exemption
27
+
21
28
  attr_accessor :cavv
22
29
 
23
30
  attr_accessor :cavv_algorithm
@@ -26,8 +33,12 @@ module Ingenico::Connect::SDK
26
33
 
27
34
  attr_accessor :eci
28
35
 
36
+ attr_accessor :scheme_risk_score
37
+
29
38
  attr_accessor :three_d_secure_version
30
39
 
40
+ #
41
+ # @deprecated No replacement
31
42
  attr_accessor :three_d_server_transaction_id
32
43
 
33
44
  attr_accessor :validation_result
@@ -37,10 +48,13 @@ module Ingenico::Connect::SDK
37
48
  # @return (Hash)
38
49
  def to_h
39
50
  hash = super
51
+ hash['acsTransactionId'] = @acs_transaction_id unless @acs_transaction_id.nil?
52
+ hash['appliedExemption'] = @applied_exemption unless @applied_exemption.nil?
40
53
  hash['cavv'] = @cavv unless @cavv.nil?
41
54
  hash['cavvAlgorithm'] = @cavv_algorithm unless @cavv_algorithm.nil?
42
55
  hash['directoryServerTransactionId'] = @directory_server_transaction_id unless @directory_server_transaction_id.nil?
43
56
  hash['eci'] = @eci unless @eci.nil?
57
+ hash['schemeRiskScore'] = @scheme_risk_score unless @scheme_risk_score.nil?
44
58
  hash['threeDSecureVersion'] = @three_d_secure_version unless @three_d_secure_version.nil?
45
59
  hash['threeDServerTransactionId'] = @three_d_server_transaction_id unless @three_d_server_transaction_id.nil?
46
60
  hash['validationResult'] = @validation_result unless @validation_result.nil?
@@ -50,6 +64,12 @@ module Ingenico::Connect::SDK
50
64
 
51
65
  def from_hash(hash)
52
66
  super
67
+ if hash.has_key? 'acsTransactionId'
68
+ @acs_transaction_id = hash['acsTransactionId']
69
+ end
70
+ if hash.has_key? 'appliedExemption'
71
+ @applied_exemption = hash['appliedExemption']
72
+ end
53
73
  if hash.has_key? 'cavv'
54
74
  @cavv = hash['cavv']
55
75
  end
@@ -62,6 +82,9 @@ module Ingenico::Connect::SDK
62
82
  if hash.has_key? 'eci'
63
83
  @eci = hash['eci']
64
84
  end
85
+ if hash.has_key? 'schemeRiskScore'
86
+ @scheme_risk_score = hash['schemeRiskScore']
87
+ end
65
88
  if hash.has_key? 'threeDSecureVersion'
66
89
  @three_d_secure_version = hash['threeDSecureVersion']
67
90
  end
@@ -28,6 +28,7 @@ module Ingenico::Connect::SDK
28
28
  # @attr [Ingenico::Connect::SDK::Domain::Payment::MobilePaymentMethodSpecificOutput] mobile_payment_method_specific_output
29
29
  # @attr [String] payment_method
30
30
  # @attr [Ingenico::Connect::SDK::Domain::Payment::RedirectPaymentMethodSpecificOutput] redirect_payment_method_specific_output
31
+ # @attr [String] reversal_reason
31
32
  # @attr [Ingenico::Connect::SDK::Domain::Payment::SepaDirectDebitPaymentMethodSpecificOutput] sepa_direct_debit_payment_method_specific_output
32
33
  class PaymentOutput < Ingenico::Connect::SDK::Domain::Payment::OrderOutput
33
34
 
@@ -53,6 +54,8 @@ module Ingenico::Connect::SDK
53
54
 
54
55
  attr_accessor :redirect_payment_method_specific_output
55
56
 
57
+ attr_accessor :reversal_reason
58
+
56
59
  attr_accessor :sepa_direct_debit_payment_method_specific_output
57
60
 
58
61
  # @return (Hash)
@@ -69,6 +72,7 @@ module Ingenico::Connect::SDK
69
72
  hash['mobilePaymentMethodSpecificOutput'] = @mobile_payment_method_specific_output.to_h unless @mobile_payment_method_specific_output.nil?
70
73
  hash['paymentMethod'] = @payment_method unless @payment_method.nil?
71
74
  hash['redirectPaymentMethodSpecificOutput'] = @redirect_payment_method_specific_output.to_h unless @redirect_payment_method_specific_output.nil?
75
+ hash['reversalReason'] = @reversal_reason unless @reversal_reason.nil?
72
76
  hash['sepaDirectDebitPaymentMethodSpecificOutput'] = @sepa_direct_debit_payment_method_specific_output.to_h unless @sepa_direct_debit_payment_method_specific_output.nil?
73
77
  hash
74
78
  end
@@ -116,6 +120,9 @@ module Ingenico::Connect::SDK
116
120
  raise TypeError, "value '%s' is not a Hash" % [hash['redirectPaymentMethodSpecificOutput']] unless hash['redirectPaymentMethodSpecificOutput'].is_a? Hash
117
121
  @redirect_payment_method_specific_output = Ingenico::Connect::SDK::Domain::Payment::RedirectPaymentMethodSpecificOutput.new_from_hash(hash['redirectPaymentMethodSpecificOutput'])
118
122
  end
123
+ if hash.has_key? 'reversalReason'
124
+ @reversal_reason = hash['reversalReason']
125
+ end
119
126
  if hash.has_key? 'sepaDirectDebitPaymentMethodSpecificOutput'
120
127
  raise TypeError, "value '%s' is not a Hash" % [hash['sepaDirectDebitPaymentMethodSpecificOutput']] unless hash['sepaDirectDebitPaymentMethodSpecificOutput'].is_a? Hash
121
128
  @sepa_direct_debit_payment_method_specific_output = Ingenico::Connect::SDK::Domain::Payment::SepaDirectDebitPaymentMethodSpecificOutput.new_from_hash(hash['sepaDirectDebitPaymentMethodSpecificOutput'])
@@ -0,0 +1,43 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://epayments-api.developer-ingenico.com/s2sapi/v1/
4
+ #
5
+ require 'ingenico/connect/sdk/data_object'
6
+ require 'ingenico/connect/sdk/domain/definitions/address'
7
+ require 'ingenico/connect/sdk/domain/payment/trustly_bank_account'
8
+
9
+ module Ingenico::Connect::SDK
10
+ module Domain
11
+ module Payment
12
+
13
+ # @attr [Ingenico::Connect::SDK::Domain::Definitions::Address] billing_address
14
+ # @attr [Ingenico::Connect::SDK::Domain::Payment::TrustlyBankAccount] customer_account
15
+ class PaymentProduct806SpecificOutput < Ingenico::Connect::SDK::DataObject
16
+
17
+ attr_accessor :billing_address
18
+
19
+ attr_accessor :customer_account
20
+
21
+ # @return (Hash)
22
+ def to_h
23
+ hash = super
24
+ hash['billingAddress'] = @billing_address.to_h unless @billing_address.nil?
25
+ hash['customerAccount'] = @customer_account.to_h unless @customer_account.nil?
26
+ hash
27
+ end
28
+
29
+ def from_hash(hash)
30
+ super
31
+ if hash.has_key? 'billingAddress'
32
+ raise TypeError, "value '%s' is not a Hash" % [hash['billingAddress']] unless hash['billingAddress'].is_a? Hash
33
+ @billing_address = Ingenico::Connect::SDK::Domain::Definitions::Address.new_from_hash(hash['billingAddress'])
34
+ end
35
+ if hash.has_key? 'customerAccount'
36
+ raise TypeError, "value '%s' is not a Hash" % [hash['customerAccount']] unless hash['customerAccount'].is_a? Hash
37
+ @customer_account = Ingenico::Connect::SDK::Domain::Payment::TrustlyBankAccount.new_from_hash(hash['customerAccount'])
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -6,6 +6,7 @@ require 'ingenico/connect/sdk/domain/definitions/bank_account_iban'
6
6
  require 'ingenico/connect/sdk/domain/definitions/fraud_results'
7
7
  require 'ingenico/connect/sdk/domain/payment/abstract_payment_method_specific_output'
8
8
  require 'ingenico/connect/sdk/domain/payment/payment_product3201_specific_output'
9
+ require 'ingenico/connect/sdk/domain/payment/payment_product806_specific_output'
9
10
  require 'ingenico/connect/sdk/domain/payment/payment_product836_specific_output'
10
11
  require 'ingenico/connect/sdk/domain/payment/payment_product840_specific_output'
11
12
 
@@ -16,6 +17,7 @@ module Ingenico::Connect::SDK
16
17
  # @attr [Ingenico::Connect::SDK::Domain::Definitions::BankAccountIban] bank_account_iban
17
18
  # @attr [Ingenico::Connect::SDK::Domain::Definitions::FraudResults] fraud_results
18
19
  # @attr [Ingenico::Connect::SDK::Domain::Payment::PaymentProduct3201SpecificOutput] payment_product3201_specific_output
20
+ # @attr [Ingenico::Connect::SDK::Domain::Payment::PaymentProduct806SpecificOutput] payment_product806_specific_output
19
21
  # @attr [Ingenico::Connect::SDK::Domain::Payment::PaymentProduct836SpecificOutput] payment_product836_specific_output
20
22
  # @attr [Ingenico::Connect::SDK::Domain::Payment::PaymentProduct840SpecificOutput] payment_product840_specific_output
21
23
  # @attr [String] token
@@ -27,6 +29,8 @@ module Ingenico::Connect::SDK
27
29
 
28
30
  attr_accessor :payment_product3201_specific_output
29
31
 
32
+ attr_accessor :payment_product806_specific_output
33
+
30
34
  attr_accessor :payment_product836_specific_output
31
35
 
32
36
  attr_accessor :payment_product840_specific_output
@@ -39,6 +43,7 @@ module Ingenico::Connect::SDK
39
43
  hash['bankAccountIban'] = @bank_account_iban.to_h unless @bank_account_iban.nil?
40
44
  hash['fraudResults'] = @fraud_results.to_h unless @fraud_results.nil?
41
45
  hash['paymentProduct3201SpecificOutput'] = @payment_product3201_specific_output.to_h unless @payment_product3201_specific_output.nil?
46
+ hash['paymentProduct806SpecificOutput'] = @payment_product806_specific_output.to_h unless @payment_product806_specific_output.nil?
42
47
  hash['paymentProduct836SpecificOutput'] = @payment_product836_specific_output.to_h unless @payment_product836_specific_output.nil?
43
48
  hash['paymentProduct840SpecificOutput'] = @payment_product840_specific_output.to_h unless @payment_product840_specific_output.nil?
44
49
  hash['token'] = @token unless @token.nil?
@@ -59,6 +64,10 @@ module Ingenico::Connect::SDK
59
64
  raise TypeError, "value '%s' is not a Hash" % [hash['paymentProduct3201SpecificOutput']] unless hash['paymentProduct3201SpecificOutput'].is_a? Hash
60
65
  @payment_product3201_specific_output = Ingenico::Connect::SDK::Domain::Payment::PaymentProduct3201SpecificOutput.new_from_hash(hash['paymentProduct3201SpecificOutput'])
61
66
  end
67
+ if hash.has_key? 'paymentProduct806SpecificOutput'
68
+ raise TypeError, "value '%s' is not a Hash" % [hash['paymentProduct806SpecificOutput']] unless hash['paymentProduct806SpecificOutput'].is_a? Hash
69
+ @payment_product806_specific_output = Ingenico::Connect::SDK::Domain::Payment::PaymentProduct806SpecificOutput.new_from_hash(hash['paymentProduct806SpecificOutput'])
70
+ end
62
71
  if hash.has_key? 'paymentProduct836SpecificOutput'
63
72
  raise TypeError, "value '%s' is not a Hash" % [hash['paymentProduct836SpecificOutput']] unless hash['paymentProduct836SpecificOutput'].is_a? Hash
64
73
  @payment_product836_specific_output = Ingenico::Connect::SDK::Domain::Payment::PaymentProduct836SpecificOutput.new_from_hash(hash['paymentProduct836SpecificOutput'])
@@ -0,0 +1,15 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://epayments-api.developer-ingenico.com/s2sapi/v1/
4
+ #
5
+ require 'ingenico/connect/sdk/domain/payment/refund_method_specific_output'
6
+
7
+ module Ingenico::Connect::SDK
8
+ module Domain
9
+ module Payment
10
+
11
+ class RefundCashMethodSpecificOutput < Ingenico::Connect::SDK::Domain::Payment::RefundMethodSpecificOutput
12
+ end
13
+ end
14
+ end
15
+ end
@@ -8,10 +8,13 @@ module Ingenico::Connect::SDK
8
8
  module Domain
9
9
  module Payment
10
10
 
11
+ # @attr [Integer] refund_product_id
11
12
  # @attr [Integer] total_amount_paid
12
13
  # @attr [Integer] total_amount_refunded
13
14
  class RefundMethodSpecificOutput < Ingenico::Connect::SDK::DataObject
14
15
 
16
+ attr_accessor :refund_product_id
17
+
15
18
  attr_accessor :total_amount_paid
16
19
 
17
20
  attr_accessor :total_amount_refunded
@@ -19,6 +22,7 @@ module Ingenico::Connect::SDK
19
22
  # @return (Hash)
20
23
  def to_h
21
24
  hash = super
25
+ hash['refundProductId'] = @refund_product_id unless @refund_product_id.nil?
22
26
  hash['totalAmountPaid'] = @total_amount_paid unless @total_amount_paid.nil?
23
27
  hash['totalAmountRefunded'] = @total_amount_refunded unless @total_amount_refunded.nil?
24
28
  hash
@@ -26,6 +30,9 @@ module Ingenico::Connect::SDK
26
30
 
27
31
  def from_hash(hash)
28
32
  super
33
+ if hash.has_key? 'refundProductId'
34
+ @refund_product_id = hash['refundProductId']
35
+ end
29
36
  if hash.has_key? 'totalAmountPaid'
30
37
  @total_amount_paid = hash['totalAmountPaid']
31
38
  end
@@ -5,6 +5,7 @@
5
5
  require 'ingenico/connect/sdk/domain/payment/order_output'
6
6
  require 'ingenico/connect/sdk/domain/payment/refund_bank_method_specific_output'
7
7
  require 'ingenico/connect/sdk/domain/payment/refund_card_method_specific_output'
8
+ require 'ingenico/connect/sdk/domain/payment/refund_cash_method_specific_output'
8
9
  require 'ingenico/connect/sdk/domain/payment/refund_e_invoice_method_specific_output'
9
10
  require 'ingenico/connect/sdk/domain/payment/refund_e_wallet_method_specific_output'
10
11
  require 'ingenico/connect/sdk/domain/payment/refund_mobile_method_specific_output'
@@ -16,6 +17,7 @@ module Ingenico::Connect::SDK
16
17
  # @attr [Integer] amount_paid
17
18
  # @attr [Ingenico::Connect::SDK::Domain::Payment::RefundBankMethodSpecificOutput] bank_refund_method_specific_output
18
19
  # @attr [Ingenico::Connect::SDK::Domain::Payment::RefundCardMethodSpecificOutput] card_refund_method_specific_output
20
+ # @attr [Ingenico::Connect::SDK::Domain::Payment::RefundCashMethodSpecificOutput] cash_refund_method_specific_output
19
21
  # @attr [Ingenico::Connect::SDK::Domain::Payment::RefundEInvoiceMethodSpecificOutput] e_invoice_refund_method_specific_output
20
22
  # @attr [Ingenico::Connect::SDK::Domain::Payment::RefundEWalletMethodSpecificOutput] e_wallet_refund_method_specific_output
21
23
  # @attr [Ingenico::Connect::SDK::Domain::Payment::RefundMobileMethodSpecificOutput] mobile_refund_method_specific_output
@@ -28,6 +30,8 @@ module Ingenico::Connect::SDK
28
30
 
29
31
  attr_accessor :card_refund_method_specific_output
30
32
 
33
+ attr_accessor :cash_refund_method_specific_output
34
+
31
35
  attr_accessor :e_invoice_refund_method_specific_output
32
36
 
33
37
  attr_accessor :e_wallet_refund_method_specific_output
@@ -42,6 +46,7 @@ module Ingenico::Connect::SDK
42
46
  hash['amountPaid'] = @amount_paid unless @amount_paid.nil?
43
47
  hash['bankRefundMethodSpecificOutput'] = @bank_refund_method_specific_output.to_h unless @bank_refund_method_specific_output.nil?
44
48
  hash['cardRefundMethodSpecificOutput'] = @card_refund_method_specific_output.to_h unless @card_refund_method_specific_output.nil?
49
+ hash['cashRefundMethodSpecificOutput'] = @cash_refund_method_specific_output.to_h unless @cash_refund_method_specific_output.nil?
45
50
  hash['eInvoiceRefundMethodSpecificOutput'] = @e_invoice_refund_method_specific_output.to_h unless @e_invoice_refund_method_specific_output.nil?
46
51
  hash['eWalletRefundMethodSpecificOutput'] = @e_wallet_refund_method_specific_output.to_h unless @e_wallet_refund_method_specific_output.nil?
47
52
  hash['mobileRefundMethodSpecificOutput'] = @mobile_refund_method_specific_output.to_h unless @mobile_refund_method_specific_output.nil?
@@ -62,6 +67,10 @@ module Ingenico::Connect::SDK
62
67
  raise TypeError, "value '%s' is not a Hash" % [hash['cardRefundMethodSpecificOutput']] unless hash['cardRefundMethodSpecificOutput'].is_a? Hash
63
68
  @card_refund_method_specific_output = Ingenico::Connect::SDK::Domain::Payment::RefundCardMethodSpecificOutput.new_from_hash(hash['cardRefundMethodSpecificOutput'])
64
69
  end
70
+ if hash.has_key? 'cashRefundMethodSpecificOutput'
71
+ raise TypeError, "value '%s' is not a Hash" % [hash['cashRefundMethodSpecificOutput']] unless hash['cashRefundMethodSpecificOutput'].is_a? Hash
72
+ @cash_refund_method_specific_output = Ingenico::Connect::SDK::Domain::Payment::RefundCashMethodSpecificOutput.new_from_hash(hash['cashRefundMethodSpecificOutput'])
73
+ end
65
74
  if hash.has_key? 'eInvoiceRefundMethodSpecificOutput'
66
75
  raise TypeError, "value '%s' is not a Hash" % [hash['eInvoiceRefundMethodSpecificOutput']] unless hash['eInvoiceRefundMethodSpecificOutput'].is_a? Hash
67
76
  @e_invoice_refund_method_specific_output = Ingenico::Connect::SDK::Domain::Payment::RefundEInvoiceMethodSpecificOutput.new_from_hash(hash['eInvoiceRefundMethodSpecificOutput'])
@@ -3,6 +3,7 @@
3
3
  # https://epayments-api.developer-ingenico.com/s2sapi/v1/
4
4
  #
5
5
  require 'ingenico/connect/sdk/data_object'
6
+ require 'ingenico/connect/sdk/domain/definitions/amount_of_money'
6
7
  require 'ingenico/connect/sdk/domain/payment/sdk_data_output'
7
8
  require 'ingenico/connect/sdk/domain/payment/three_d_secure_data'
8
9
 
@@ -10,9 +11,13 @@ module Ingenico::Connect::SDK
10
11
  module Domain
11
12
  module Payment
12
13
 
14
+ # @attr [String] acs_transaction_id
15
+ # @attr [String] applied_exemption
16
+ # @attr [Ingenico::Connect::SDK::Domain::Definitions::AmountOfMoney] authentication_amount
13
17
  # @attr [String] cavv
14
18
  # @attr [String] directory_server_transaction_id
15
19
  # @attr [String] eci
20
+ # @attr [Integer] scheme_risk_score
16
21
  # @attr [Ingenico::Connect::SDK::Domain::Payment::SdkDataOutput] sdk_data
17
22
  # @attr [Ingenico::Connect::SDK::Domain::Payment::ThreeDSecureData] three_d_secure_data
18
23
  # @attr [String] three_d_secure_version
@@ -20,12 +25,20 @@ module Ingenico::Connect::SDK
20
25
  # @attr [String] xid
21
26
  class ThreeDSecureResults < Ingenico::Connect::SDK::DataObject
22
27
 
28
+ attr_accessor :acs_transaction_id
29
+
30
+ attr_accessor :applied_exemption
31
+
32
+ attr_accessor :authentication_amount
33
+
23
34
  attr_accessor :cavv
24
35
 
25
36
  attr_accessor :directory_server_transaction_id
26
37
 
27
38
  attr_accessor :eci
28
39
 
40
+ attr_accessor :scheme_risk_score
41
+
29
42
  attr_accessor :sdk_data
30
43
 
31
44
  attr_accessor :three_d_secure_data
@@ -39,9 +52,13 @@ module Ingenico::Connect::SDK
39
52
  # @return (Hash)
40
53
  def to_h
41
54
  hash = super
55
+ hash['acsTransactionId'] = @acs_transaction_id unless @acs_transaction_id.nil?
56
+ hash['appliedExemption'] = @applied_exemption unless @applied_exemption.nil?
57
+ hash['authenticationAmount'] = @authentication_amount.to_h unless @authentication_amount.nil?
42
58
  hash['cavv'] = @cavv unless @cavv.nil?
43
59
  hash['directoryServerTransactionId'] = @directory_server_transaction_id unless @directory_server_transaction_id.nil?
44
60
  hash['eci'] = @eci unless @eci.nil?
61
+ hash['schemeRiskScore'] = @scheme_risk_score unless @scheme_risk_score.nil?
45
62
  hash['sdkData'] = @sdk_data.to_h unless @sdk_data.nil?
46
63
  hash['threeDSecureData'] = @three_d_secure_data.to_h unless @three_d_secure_data.nil?
47
64
  hash['threeDSecureVersion'] = @three_d_secure_version unless @three_d_secure_version.nil?
@@ -52,6 +69,16 @@ module Ingenico::Connect::SDK
52
69
 
53
70
  def from_hash(hash)
54
71
  super
72
+ if hash.has_key? 'acsTransactionId'
73
+ @acs_transaction_id = hash['acsTransactionId']
74
+ end
75
+ if hash.has_key? 'appliedExemption'
76
+ @applied_exemption = hash['appliedExemption']
77
+ end
78
+ if hash.has_key? 'authenticationAmount'
79
+ raise TypeError, "value '%s' is not a Hash" % [hash['authenticationAmount']] unless hash['authenticationAmount'].is_a? Hash
80
+ @authentication_amount = Ingenico::Connect::SDK::Domain::Definitions::AmountOfMoney.new_from_hash(hash['authenticationAmount'])
81
+ end
55
82
  if hash.has_key? 'cavv'
56
83
  @cavv = hash['cavv']
57
84
  end
@@ -61,6 +88,9 @@ module Ingenico::Connect::SDK
61
88
  if hash.has_key? 'eci'
62
89
  @eci = hash['eci']
63
90
  end
91
+ if hash.has_key? 'schemeRiskScore'
92
+ @scheme_risk_score = hash['schemeRiskScore']
93
+ end
64
94
  if hash.has_key? 'sdkData'
65
95
  raise TypeError, "value '%s' is not a Hash" % [hash['sdkData']] unless hash['sdkData'].is_a? Hash
66
96
  @sdk_data = Ingenico::Connect::SDK::Domain::Payment::SdkDataOutput.new_from_hash(hash['sdkData'])
@@ -0,0 +1,53 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://epayments-api.developer-ingenico.com/s2sapi/v1/
4
+ #
5
+ require 'ingenico/connect/sdk/data_object'
6
+
7
+ module Ingenico::Connect::SDK
8
+ module Domain
9
+ module Payment
10
+
11
+ # @attr [String] account_last_digits
12
+ # @attr [String] bank_name
13
+ # @attr [String] clearinghouse
14
+ # @attr [String] person_identification_number
15
+ class TrustlyBankAccount < Ingenico::Connect::SDK::DataObject
16
+
17
+ attr_accessor :account_last_digits
18
+
19
+ attr_accessor :bank_name
20
+
21
+ attr_accessor :clearinghouse
22
+
23
+ attr_accessor :person_identification_number
24
+
25
+ # @return (Hash)
26
+ def to_h
27
+ hash = super
28
+ hash['accountLastDigits'] = @account_last_digits unless @account_last_digits.nil?
29
+ hash['bankName'] = @bank_name unless @bank_name.nil?
30
+ hash['clearinghouse'] = @clearinghouse unless @clearinghouse.nil?
31
+ hash['personIdentificationNumber'] = @person_identification_number unless @person_identification_number.nil?
32
+ hash
33
+ end
34
+
35
+ def from_hash(hash)
36
+ super
37
+ if hash.has_key? 'accountLastDigits'
38
+ @account_last_digits = hash['accountLastDigits']
39
+ end
40
+ if hash.has_key? 'bankName'
41
+ @bank_name = hash['bankName']
42
+ end
43
+ if hash.has_key? 'clearinghouse'
44
+ @clearinghouse = hash['clearinghouse']
45
+ end
46
+ if hash.has_key? 'personIdentificationNumber'
47
+ @person_identification_number = hash['personIdentificationNumber']
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -23,6 +23,7 @@ module Ingenico::Connect::SDK
23
23
  # @attr [Ingenico::Connect::SDK::Domain::Product::EmptyValidator] luhn
24
24
  # @attr [Ingenico::Connect::SDK::Domain::Product::RangeValidator] range
25
25
  # @attr [Ingenico::Connect::SDK::Domain::Product::RegularExpressionValidator] regular_expression
26
+ # @attr [Ingenico::Connect::SDK::Domain::Product::EmptyValidator] resident_id_number
26
27
  # @attr [Ingenico::Connect::SDK::Domain::Product::EmptyValidator] terms_and_conditions
27
28
  class PaymentProductFieldValidators < Ingenico::Connect::SDK::DataObject
28
29
 
@@ -44,6 +45,8 @@ module Ingenico::Connect::SDK
44
45
 
45
46
  attr_accessor :regular_expression
46
47
 
48
+ attr_accessor :resident_id_number
49
+
47
50
  attr_accessor :terms_and_conditions
48
51
 
49
52
  # @return (Hash)
@@ -58,6 +61,7 @@ module Ingenico::Connect::SDK
58
61
  hash['luhn'] = @luhn.to_h unless @luhn.nil?
59
62
  hash['range'] = @range.to_h unless @range.nil?
60
63
  hash['regularExpression'] = @regular_expression.to_h unless @regular_expression.nil?
64
+ hash['residentIdNumber'] = @resident_id_number.to_h unless @resident_id_number.nil?
61
65
  hash['termsAndConditions'] = @terms_and_conditions.to_h unless @terms_and_conditions.nil?
62
66
  hash
63
67
  end
@@ -100,6 +104,10 @@ module Ingenico::Connect::SDK
100
104
  raise TypeError, "value '%s' is not a Hash" % [hash['regularExpression']] unless hash['regularExpression'].is_a? Hash
101
105
  @regular_expression = Ingenico::Connect::SDK::Domain::Product::RegularExpressionValidator.new_from_hash(hash['regularExpression'])
102
106
  end
107
+ if hash.has_key? 'residentIdNumber'
108
+ raise TypeError, "value '%s' is not a Hash" % [hash['residentIdNumber']] unless hash['residentIdNumber'].is_a? Hash
109
+ @resident_id_number = Ingenico::Connect::SDK::Domain::Product::EmptyValidator.new_from_hash(hash['residentIdNumber'])
110
+ end
103
111
  if hash.has_key? 'termsAndConditions'
104
112
  raise TypeError, "value '%s' is not a Hash" % [hash['termsAndConditions']] unless hash['termsAndConditions'].is_a? Hash
105
113
  @terms_and_conditions = Ingenico::Connect::SDK::Domain::Product::EmptyValidator.new_from_hash(hash['termsAndConditions'])
@@ -14,6 +14,7 @@ module Ingenico::Connect::SDK
14
14
 
15
15
  # @attr [Ingenico::Connect::SDK::Domain::Token::TokenCard] card
16
16
  # @attr [Ingenico::Connect::SDK::Domain::Token::TokenEWallet] e_wallet
17
+ # @attr [String] encrypted_customer_input
17
18
  # @attr [Ingenico::Connect::SDK::Domain::Token::TokenNonSepaDirectDebit] non_sepa_direct_debit
18
19
  # @attr [Integer] payment_product_id
19
20
  # @attr [Ingenico::Connect::SDK::Domain::Token::TokenSepaDirectDebitWithoutCreditor] sepa_direct_debit
@@ -23,6 +24,8 @@ module Ingenico::Connect::SDK
23
24
 
24
25
  attr_accessor :e_wallet
25
26
 
27
+ attr_accessor :encrypted_customer_input
28
+
26
29
  attr_accessor :non_sepa_direct_debit
27
30
 
28
31
  attr_accessor :payment_product_id
@@ -34,6 +37,7 @@ module Ingenico::Connect::SDK
34
37
  hash = super
35
38
  hash['card'] = @card.to_h unless @card.nil?
36
39
  hash['eWallet'] = @e_wallet.to_h unless @e_wallet.nil?
40
+ hash['encryptedCustomerInput'] = @encrypted_customer_input unless @encrypted_customer_input.nil?
37
41
  hash['nonSepaDirectDebit'] = @non_sepa_direct_debit.to_h unless @non_sepa_direct_debit.nil?
38
42
  hash['paymentProductId'] = @payment_product_id unless @payment_product_id.nil?
39
43
  hash['sepaDirectDebit'] = @sepa_direct_debit.to_h unless @sepa_direct_debit.nil?
@@ -50,6 +54,9 @@ module Ingenico::Connect::SDK
50
54
  raise TypeError, "value '%s' is not a Hash" % [hash['eWallet']] unless hash['eWallet'].is_a? Hash
51
55
  @e_wallet = Ingenico::Connect::SDK::Domain::Token::TokenEWallet.new_from_hash(hash['eWallet'])
52
56
  end
57
+ if hash.has_key? 'encryptedCustomerInput'
58
+ @encrypted_customer_input = hash['encryptedCustomerInput']
59
+ end
53
60
  if hash.has_key? 'nonSepaDirectDebit'
54
61
  raise TypeError, "value '%s' is not a Hash" % [hash['nonSepaDirectDebit']] unless hash['nonSepaDirectDebit'].is_a? Hash
55
62
  @non_sepa_direct_debit = Ingenico::Connect::SDK::Domain::Token::TokenNonSepaDirectDebit.new_from_hash(hash['nonSepaDirectDebit'])
@@ -206,7 +206,7 @@ module Ingenico::Connect::SDK
206
206
  # the value. What this does not allow currently is having values end
207
207
  # with a \ (which would be escaped to \\).
208
208
  regex = pn.inject("([\"'])(") { |r, p| "#{r}#{Regexp.quote(p)}|"}.chop <<
209
- ")\\1\\s*:\\s*(?:([\"'])(.*?)(?<!\\\\)\\3|([^\"'\\s\\[\\{]\\S*))"
209
+ ")\\1\\s*:\\s*(?:([\"'])(.*?)(?<!\\\\)\\3|([^\"'\\s\\[\\{]((?!,)\\S)*))"
210
210
  /#{regex}/m # dotall mode
211
211
  end
212
212
 
@@ -7,7 +7,7 @@ module Ingenico::Connect::SDK
7
7
  #
8
8
  # @attr_reader [Array<Ingenico::Connect::SDK::RequestHeader>] meta_data_headers List of headers that should be used in all requests.
9
9
  class MetaDataProvider
10
- @@SDK_VERSION = '2.6.0'
10
+ @@SDK_VERSION = '2.11.0'
11
11
  @@SERVER_META_INFO_HEADER = 'X-GCS-ServerMetaInfo'
12
12
  @@PROHIBITED_HEADERS = [@@SERVER_META_INFO_HEADER, 'X-GCS-Idempotence-Key',
13
13
  'Date', 'Content-Type', 'Authorization'].sort!.freeze
@@ -1,5 +1,5 @@
1
1
  {
2
- "value": *****
2
+ "value": ****,
3
3
  "value": {
4
4
  }
5
- }
5
+ }
@@ -2,4 +2,4 @@
2
2
  "value": true,
3
3
  "value": {
4
4
  }
5
- }
5
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: connect-sdk-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0
4
+ version: 2.11.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: 2020-02-20 00:00:00.000000000 Z
11
+ date: 2020-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -100,14 +100,20 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '10.4'
103
+ version: '12.3'
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 12.3.3
104
107
  type: :development
105
108
  prerelease: false
106
109
  version_requirements: !ruby/object:Gem::Requirement
107
110
  requirements:
108
111
  - - "~>"
109
112
  - !ruby/object:Gem::Version
110
- version: '10.4'
113
+ version: '12.3'
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: 12.3.3
111
117
  description: SDK to communicate with the Ingenico ePayments platform using the Ingenico
112
118
  Connect Server API
113
119
  email:
@@ -387,6 +393,7 @@ files:
387
393
  - lib/ingenico/connect/sdk/domain/payment/payment_output.rb
388
394
  - lib/ingenico/connect/sdk/domain/payment/payment_product3201_specific_output.rb
389
395
  - lib/ingenico/connect/sdk/domain/payment/payment_product771_specific_output.rb
396
+ - lib/ingenico/connect/sdk/domain/payment/payment_product806_specific_output.rb
390
397
  - lib/ingenico/connect/sdk/domain/payment/payment_product836_specific_output.rb
391
398
  - lib/ingenico/connect/sdk/domain/payment/payment_product840_customer_account.rb
392
399
  - lib/ingenico/connect/sdk/domain/payment/payment_product840_specific_output.rb
@@ -412,6 +419,7 @@ files:
412
419
  - lib/ingenico/connect/sdk/domain/payment/redirection_data.rb
413
420
  - lib/ingenico/connect/sdk/domain/payment/refund_bank_method_specific_output.rb
414
421
  - lib/ingenico/connect/sdk/domain/payment/refund_card_method_specific_output.rb
422
+ - lib/ingenico/connect/sdk/domain/payment/refund_cash_method_specific_output.rb
415
423
  - lib/ingenico/connect/sdk/domain/payment/refund_e_invoice_method_specific_output.rb
416
424
  - lib/ingenico/connect/sdk/domain/payment/refund_e_wallet_method_specific_output.rb
417
425
  - lib/ingenico/connect/sdk/domain/payment/refund_method_specific_output.rb
@@ -436,6 +444,7 @@ files:
436
444
  - lib/ingenico/connect/sdk/domain/payment/three_d_secure_data.rb
437
445
  - lib/ingenico/connect/sdk/domain/payment/three_d_secure_results.rb
438
446
  - lib/ingenico/connect/sdk/domain/payment/tokenize_payment_request.rb
447
+ - lib/ingenico/connect/sdk/domain/payment/trustly_bank_account.rb
439
448
  - lib/ingenico/connect/sdk/domain/payout/abstract_payout_method_specific_input.rb
440
449
  - lib/ingenico/connect/sdk/domain/payout/approve_payout_request.rb
441
450
  - lib/ingenico/connect/sdk/domain/payout/bank_transfer_payout_method_specific_input.rb