connect-sdk-ruby 2.23.0 → 2.27.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: 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