connect-sdk-ruby 2.23.0 → 2.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3073d8bb3d244aa1fbafd6c8a322dad3131e37080afcf895b14d475966925c7a
4
- data.tar.gz: 75c7fa6b5f292dc76b7831be4fa2631897859e8bb3e34500bcb91c19060fd049
3
+ metadata.gz: c2798c5d39921f22d03617bb7cf0f0a81699f03213ccea239435b7df0d653622
4
+ data.tar.gz: 65705c989125db972832f10f33ab89fedc60a0a9008bb26a7c906e7f3e48236b
5
5
  SHA512:
6
- metadata.gz: 557e215bb0ab3aa8a9f98a90067175384b6a70e9b364b8e603cd1f01815312a04b2f2416589e7d0b5566b1f38b3bb4d52938dcdac3a99ce909c77258805764b2
7
- data.tar.gz: 99a06d9577a7da4d0cd2ec6d59871f31b0d744d2616157eda738f56a3ed4e3eac376697b4c74fa4c97f4f2c77d9344c1cd4a74c96f7a6a9154f4be0970fbd208
6
+ metadata.gz: 06f8b88f9c280b6ca7126f957ce729fa173996dc217189133e3d33a1ce21e53040739b1cc1622397b101ff2322b5f40d641bf29efbac8df2e1be37208f1a803f
7
+ data.tar.gz: fae6f33f53e2728ada47a8f3963b03936935d427468e511dc7cacb35015b2d29fdbd398f75f576227c58b34bdde28863ed47b820f0be1637b24f04554ee7b3d9
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = 'connect-sdk-ruby'
3
- spec.version = '2.23.0'
3
+ spec.version = '2.27.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}
@@ -0,0 +1,22 @@
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/factory'
6
+
7
+
8
+ def example
9
+ get_client do |client|
10
+ client.merchant('merchantId').hostedcheckouts.delete('hostedCheckoutId')
11
+ end
12
+ end
13
+
14
+ def get_client
15
+ api_key_id = ENV.fetch('connect.api.apiKeyId', 'someKey')
16
+ secret_api_key = ENV.fetch('connect.api.secretApiKey', 'someSecret')
17
+ configuration_file_name = File.join(__FILE__, '..', '..', 'example_configuration.yml')
18
+ yield client = Ingenico::Connect::SDK::Factory.create_client_from_file(configuration_file_name, api_key_id, secret_api_key)
19
+ ensure
20
+ # Free networking resources when done
21
+ client.close unless client.nil?
22
+ end
@@ -9,14 +9,18 @@ module Ingenico::Connect::SDK
9
9
  module Definitions
10
10
 
11
11
  # @attr [String] cvv
12
+ # @attr [String] partial_pin
12
13
  class Card < Ingenico::Connect::SDK::Domain::Definitions::CardWithoutCvv
13
14
 
14
15
  attr_accessor :cvv
15
16
 
17
+ attr_accessor :partial_pin
18
+
16
19
  # @return (Hash)
17
20
  def to_h
18
21
  hash = super
19
22
  hash['cvv'] = @cvv unless @cvv.nil?
23
+ hash['partialPin'] = @partial_pin unless @partial_pin.nil?
20
24
  hash
21
25
  end
22
26
 
@@ -25,6 +29,9 @@ module Ingenico::Connect::SDK
25
29
  if hash.has_key? 'cvv'
26
30
  @cvv = hash['cvv']
27
31
  end
32
+ if hash.has_key? 'partialPin'
33
+ @partial_pin = hash['partialPin']
34
+ end
28
35
  end
29
36
  end
30
37
  end
@@ -5,6 +5,7 @@
5
5
  require 'ingenico/connect/sdk/domain/definitions/fraud_results'
6
6
  require 'ingenico/connect/sdk/domain/definitions/fraud_results_retail_decisions'
7
7
  require 'ingenico/connect/sdk/domain/definitions/fraugster_results'
8
+ require 'ingenico/connect/sdk/domain/definitions/microsoft_fraud_results'
8
9
 
9
10
  module Ingenico::Connect::SDK
10
11
  module Domain
@@ -13,6 +14,7 @@ module Ingenico::Connect::SDK
13
14
  # @attr [String] avs_result
14
15
  # @attr [String] cvv_result
15
16
  # @attr [Ingenico::Connect::SDK::Domain::Definitions::FraugsterResults] fraugster
17
+ # @attr [Ingenico::Connect::SDK::Domain::Definitions::MicrosoftFraudResults] microsoft_fraud_protection
16
18
  # @attr [Ingenico::Connect::SDK::Domain::Definitions::FraudResultsRetailDecisions] retail_decisions
17
19
  class CardFraudResults < Ingenico::Connect::SDK::Domain::Definitions::FraudResults
18
20
 
@@ -22,6 +24,8 @@ module Ingenico::Connect::SDK
22
24
 
23
25
  attr_accessor :fraugster
24
26
 
27
+ attr_accessor :microsoft_fraud_protection
28
+
25
29
  attr_accessor :retail_decisions
26
30
 
27
31
  # @return (Hash)
@@ -30,6 +34,7 @@ module Ingenico::Connect::SDK
30
34
  hash['avsResult'] = @avs_result unless @avs_result.nil?
31
35
  hash['cvvResult'] = @cvv_result unless @cvv_result.nil?
32
36
  hash['fraugster'] = @fraugster.to_h unless @fraugster.nil?
37
+ hash['microsoftFraudProtection'] = @microsoft_fraud_protection.to_h unless @microsoft_fraud_protection.nil?
33
38
  hash['retailDecisions'] = @retail_decisions.to_h unless @retail_decisions.nil?
34
39
  hash
35
40
  end
@@ -46,6 +51,10 @@ module Ingenico::Connect::SDK
46
51
  raise TypeError, "value '%s' is not a Hash" % [hash['fraugster']] unless hash['fraugster'].is_a? Hash
47
52
  @fraugster = Ingenico::Connect::SDK::Domain::Definitions::FraugsterResults.new_from_hash(hash['fraugster'])
48
53
  end
54
+ if hash.has_key? 'microsoftFraudProtection'
55
+ raise TypeError, "value '%s' is not a Hash" % [hash['microsoftFraudProtection']] unless hash['microsoftFraudProtection'].is_a? Hash
56
+ @microsoft_fraud_protection = Ingenico::Connect::SDK::Domain::Definitions::MicrosoftFraudResults.new_from_hash(hash['microsoftFraudProtection'])
57
+ end
49
58
  if hash.has_key? 'retailDecisions'
50
59
  raise TypeError, "value '%s' is not a Hash" % [hash['retailDecisions']] unless hash['retailDecisions'].is_a? Hash
51
60
  @retail_decisions = Ingenico::Connect::SDK::Domain::Definitions::FraudResultsRetailDecisions.new_from_hash(hash['retailDecisions'])
@@ -0,0 +1,32 @@
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 Definitions
10
+
11
+ # @attr [Integer] fraud_score
12
+ class MicrosoftFraudResults < Ingenico::Connect::SDK::DataObject
13
+
14
+ attr_accessor :fraud_score
15
+
16
+ # @return (Hash)
17
+ def to_h
18
+ hash = super
19
+ hash['fraudScore'] = @fraud_score unless @fraud_score.nil?
20
+ hash
21
+ end
22
+
23
+ def from_hash(hash)
24
+ super
25
+ if hash.has_key? 'fraudScore'
26
+ @fraud_score = hash['fraudScore']
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -19,6 +19,7 @@ module Ingenico::Connect::SDK
19
19
  # @attr [Ingenico::Connect::SDK::Domain::Payment::ThreeDSecureData] prior_three_d_secure_data
20
20
  # @attr [Ingenico::Connect::SDK::Domain::Payment::SdkDataInput] sdk_data
21
21
  # @attr [true/false] skip_authentication
22
+ # @attr [String] transaction_risk_level
22
23
  class AbstractThreeDSecure < Ingenico::Connect::SDK::DataObject
23
24
 
24
25
  attr_accessor :authentication_amount
@@ -37,6 +38,8 @@ module Ingenico::Connect::SDK
37
38
 
38
39
  attr_accessor :skip_authentication
39
40
 
41
+ attr_accessor :transaction_risk_level
42
+
40
43
  # @return (Hash)
41
44
  def to_h
42
45
  hash = super
@@ -48,6 +51,7 @@ module Ingenico::Connect::SDK
48
51
  hash['priorThreeDSecureData'] = @prior_three_d_secure_data.to_h unless @prior_three_d_secure_data.nil?
49
52
  hash['sdkData'] = @sdk_data.to_h unless @sdk_data.nil?
50
53
  hash['skipAuthentication'] = @skip_authentication unless @skip_authentication.nil?
54
+ hash['transactionRiskLevel'] = @transaction_risk_level unless @transaction_risk_level.nil?
51
55
  hash
52
56
  end
53
57
 
@@ -80,6 +84,9 @@ module Ingenico::Connect::SDK
80
84
  if hash.has_key? 'skipAuthentication'
81
85
  @skip_authentication = hash['skipAuthentication']
82
86
  end
87
+ if hash.has_key? 'transactionRiskLevel'
88
+ @transaction_risk_level = hash['transactionRiskLevel']
89
+ end
83
90
  end
84
91
  end
85
92
  end
@@ -8,10 +8,13 @@ module Ingenico::Connect::SDK
8
8
  module Domain
9
9
  module Payment
10
10
 
11
+ # @attr [String] data
11
12
  # @attr [String] method
12
13
  # @attr [String] utc_timestamp
13
14
  class CustomerAccountAuthentication < Ingenico::Connect::SDK::DataObject
14
15
 
16
+ attr_accessor :data
17
+
15
18
  attr_accessor :method
16
19
 
17
20
  attr_accessor :utc_timestamp
@@ -19,6 +22,7 @@ module Ingenico::Connect::SDK
19
22
  # @return (Hash)
20
23
  def to_h
21
24
  hash = super
25
+ hash['data'] = @data unless @data.nil?
22
26
  hash['method'] = @method unless @method.nil?
23
27
  hash['utcTimestamp'] = @utc_timestamp unless @utc_timestamp.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? 'data'
34
+ @data = hash['data']
35
+ end
29
36
  if hash.has_key? 'method'
30
37
  @method = hash['method']
31
38
  end
@@ -8,43 +8,36 @@ module Ingenico::Connect::SDK
8
8
  module Domain
9
9
  module Payment
10
10
 
11
+ # @attr [String] display_name
11
12
  # @attr [String] integration_type
12
- # @attr [String] merchant_name
13
- # @attr [String] transaction_note
14
- # @attr [String] vpa
13
+ # @attr [String] virtual_payment_address
15
14
  class RedirectPaymentProduct4101SpecificInput < Ingenico::Connect::SDK::DataObject
16
15
 
17
- attr_accessor :integration_type
18
-
19
- attr_accessor :merchant_name
16
+ attr_accessor :display_name
20
17
 
21
- attr_accessor :transaction_note
18
+ attr_accessor :integration_type
22
19
 
23
- attr_accessor :vpa
20
+ attr_accessor :virtual_payment_address
24
21
 
25
22
  # @return (Hash)
26
23
  def to_h
27
24
  hash = super
25
+ hash['displayName'] = @display_name unless @display_name.nil?
28
26
  hash['integrationType'] = @integration_type unless @integration_type.nil?
29
- hash['merchantName'] = @merchant_name unless @merchant_name.nil?
30
- hash['transactionNote'] = @transaction_note unless @transaction_note.nil?
31
- hash['vpa'] = @vpa unless @vpa.nil?
27
+ hash['virtualPaymentAddress'] = @virtual_payment_address unless @virtual_payment_address.nil?
32
28
  hash
33
29
  end
34
30
 
35
31
  def from_hash(hash)
36
32
  super
33
+ if hash.has_key? 'displayName'
34
+ @display_name = hash['displayName']
35
+ end
37
36
  if hash.has_key? 'integrationType'
38
37
  @integration_type = hash['integrationType']
39
38
  end
40
- if hash.has_key? 'merchantName'
41
- @merchant_name = hash['merchantName']
42
- end
43
- if hash.has_key? 'transactionNote'
44
- @transaction_note = hash['transactionNote']
45
- end
46
- if hash.has_key? 'vpa'
47
- @vpa = hash['vpa']
39
+ if hash.has_key? 'virtualPaymentAddress'
40
+ @virtual_payment_address = hash['virtualPaymentAddress']
48
41
  end
49
42
  end
50
43
  end
@@ -78,6 +78,35 @@ module Ingenico::Connect::SDK
78
78
  error_object = @communicator.marshaller.unmarshal(e.body, error_type)
79
79
  raise create_exception(e.status_code, e.body, error_object, context)
80
80
  end
81
+
82
+ # Resource /!{merchantId}/hostedcheckouts/!{hostedCheckoutId} - {https://epayments-api.developer-ingenico.com/s2sapi/v1/en_US/ruby/hostedcheckouts/delete.html Delete hosted checkout}
83
+ # @param hosted_checkout_id [String]
84
+ # @param context [Ingenico::Connect::SDK::CallContext]
85
+ # @raise [Ingenico::Connect::SDK::ValidationException] if the request was not correct and couldn't be processed (HTTP status code 400)
86
+ # @raise [Ingenico::Connect::SDK::AuthorizationException] if the request was not allowed (HTTP status code 403)
87
+ # @raise [Ingenico::Connect::SDK::IdempotenceException] if an idempotent request caused a conflict (HTTP status code 409)
88
+ # @raise [Ingenico::Connect::SDK::ReferenceException] if an object was attempted to be referenced that doesn't exist or has been removed,
89
+ # or there was a conflict (HTTP status code 404, 409 or 410)
90
+ # @raise [Ingenico::Connect::SDK::GlobalCollectException] if something went wrong at the Ingenico ePayments platform,
91
+ # the Ingenico ePayments platform was unable to process a message from a downstream partner/acquirer,
92
+ # or the service that you're trying to reach is temporary unavailable (HTTP status code 500, 502 or 503)
93
+ # @raise [Ingenico::Connect::SDK::ApiException]if the Ingenico ePayments platform returned any other error
94
+ def delete(hosted_checkout_id, context=nil)
95
+ path_context = {
96
+ 'hostedCheckoutId'.freeze => hosted_checkout_id,
97
+ }
98
+ uri = instantiate_uri('/v1/{merchantId}/hostedcheckouts/{hostedCheckoutId}', path_context)
99
+ return @communicator.delete(
100
+ uri,
101
+ client_headers,
102
+ nil,
103
+ nil,
104
+ context)
105
+ rescue ResponseException => e
106
+ error_type = Ingenico::Connect::SDK::Domain::Errors::ErrorResponse
107
+ error_object = @communicator.marshaller.unmarshal(e.body, error_type)
108
+ raise create_exception(e.status_code, e.body, error_object, context)
109
+ end
81
110
  end
82
111
  end
83
112
  end
@@ -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.23.0'
10
+ @@SDK_VERSION = '2.27.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
@@ -47,11 +47,10 @@ module Ingenico::Connect::SDK
47
47
  if value.nil? || value.empty?
48
48
  return value
49
49
  end
50
- # Replace all sequences of whitespace*-linebreak-whitespace* into a single linebreak-space
51
- # This will ensure that:
52
- # - no line ends with whitespace, because this causes authentication failures
53
- # - each line starts with a single whitespace, so it is a valid header value
54
- value.gsub(/[\s&&[^\r\n]]*(\r?\n)[\s&&[^\r\n]]*/, '\1 ')
50
+ # Replace all sequences of linebreak-whitespace* with a single linebreak-space
51
+ # This matches the normalization done by DefaultAuthenticator, and ensures that multiline headers
52
+ # will not cause authentication failures
53
+ value.gsub(/\r?\n[\s&&[^\r\n]]*/, ' ')
55
54
  end
56
55
  end
57
56
  end
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.23.0
4
+ version: 2.27.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-07-20 00:00:00.000000000 Z
11
+ date: 2021-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -135,6 +135,7 @@ files:
135
135
  - examples/merchant/example_configuration.yml
136
136
  - examples/merchant/files/get_file_example.rb
137
137
  - examples/merchant/hostedcheckouts/create_hosted_checkout_example.rb
138
+ - examples/merchant/hostedcheckouts/delete_hosted_checkout_example.rb
138
139
  - examples/merchant/hostedcheckouts/get_hosted_checkout_example.rb
139
140
  - examples/merchant/hostedmandatemanagements/create_hosted_mandate_management_example.rb
140
141
  - examples/merchant/hostedmandatemanagements/get_hosted_mandate_management_example.rb
@@ -249,6 +250,7 @@ files:
249
250
  - lib/ingenico/connect/sdk/domain/definitions/lodging_charge.rb
250
251
  - lib/ingenico/connect/sdk/domain/definitions/lodging_data.rb
251
252
  - lib/ingenico/connect/sdk/domain/definitions/lodging_room.rb
253
+ - lib/ingenico/connect/sdk/domain/definitions/microsoft_fraud_results.rb
252
254
  - lib/ingenico/connect/sdk/domain/definitions/order_status_output.rb
253
255
  - lib/ingenico/connect/sdk/domain/definitions/payment_product_filter.rb
254
256
  - lib/ingenico/connect/sdk/domain/definitions/personal_name_base.rb