connect-sdk-ruby 2.13.0 → 2.18.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.
Files changed (27) hide show
  1. checksums.yaml +4 -4
  2. data/connect-sdk-ruby.gemspec +1 -1
  3. data/examples/merchant/payments/get_payment_device_fingerprint_details_example.rb +22 -0
  4. data/examples/merchant/products/create_payment_product_session_example.rb +1 -1
  5. data/lib/ingenico/connect/sdk/communicator.rb +16 -0
  6. data/lib/ingenico/connect/sdk/domain/definitions/additional_order_input_airline_data.rb +9 -0
  7. data/lib/ingenico/connect/sdk/domain/definitions/lodging_charge.rb +46 -0
  8. data/lib/ingenico/connect/sdk/domain/definitions/lodging_data.rb +147 -0
  9. data/lib/ingenico/connect/sdk/domain/definitions/lodging_room.rb +88 -0
  10. data/lib/ingenico/connect/sdk/domain/hostedcheckout/mobile_payment_method_specific_input_hosted_checkout.rb +28 -0
  11. data/lib/ingenico/connect/sdk/domain/hostedcheckout/mobile_payment_product320_specific_input_hosted_checkout.rb +9 -0
  12. data/lib/ingenico/connect/sdk/domain/payment/additional_order_input.rb +20 -0
  13. data/lib/ingenico/connect/sdk/domain/payment/decrypted_payment_data.rb +7 -0
  14. data/lib/ingenico/connect/sdk/domain/payment/device_fingerprint_details.rb +39 -0
  15. data/lib/ingenico/connect/sdk/domain/payment/exemption_output.rb +46 -0
  16. data/lib/ingenico/connect/sdk/domain/payment/g_pay_three_d_secure.rb +62 -0
  17. data/lib/ingenico/connect/sdk/domain/payment/installments.rb +55 -0
  18. data/lib/ingenico/connect/sdk/domain/payment/mobile_payment_method_specific_input.rb +16 -0
  19. data/lib/ingenico/connect/sdk/domain/payment/mobile_payment_product320_specific_input.rb +34 -0
  20. data/lib/ingenico/connect/sdk/domain/payment/three_d_secure_results.rb +9 -0
  21. data/lib/ingenico/connect/sdk/domain/product/payment_product.rb +7 -0
  22. data/lib/ingenico/connect/sdk/domain/product/payment_product_group.rb +7 -0
  23. data/lib/ingenico/connect/sdk/merchant/payments/payments_client.rb +31 -0
  24. data/lib/ingenico/connect/sdk/meta_data_provider.rb +1 -1
  25. data/spec/integration/payment_products_spec.rb +13 -0
  26. data/spec/integration/token_spec.rb +1 -1
  27. metadata +11 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 61e9fff492d85eff48736fa104cf91edeffd109bd9a5a035d04db076e822e21f
4
- data.tar.gz: 237f4cd283409d86a383988e1912ce082a8bfed72bbbce0568b0162afe699550
3
+ metadata.gz: 311b6d715453f16ea35dd6bff6e30759f83c09dc3c438abe8151c89fa4498906
4
+ data.tar.gz: feb2ade22a322ba38a8174fd40f1d647ca50c93b6d3efdacd4663e9b8693277b
5
5
  SHA512:
6
- metadata.gz: cce1aac68f75eaabadb3bf34aec3079306ae1598fe82a2f97ac7b88f92e77bb159b1f126fe29602f1185fa9186b5d1d3e447e72789c94a437aea10ef013896cd
7
- data.tar.gz: e736d979e10ac6877ba01784fc8516340f664a6b7a3a81f0df70a814c1cd3f08f92d475e811dd4f9ff340367f5fa5a38d53353aa0312967654972e89fa096f87
6
+ metadata.gz: 33c4fe24494f2e0ff056fd560aad36ce074487ac812207092fb68ef03ef512916e35ad52ea91762a3f2c64dbaa79ec053452044733c423f13ee159eeef17ab09
7
+ data.tar.gz: d98fa9169a54661d6adefed1b2a9efff4f8b32372e45c519052ab62d49657a88582228e46445278a2c10f3f6905508f9fb46e3c22eedd92e6498df0885464645
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = 'connect-sdk-ruby'
3
- spec.version = '2.13.0'
3
+ spec.version = '2.18.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
+ response = client.merchant('merchantId').payments.devicefingerprint('paymentId')
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
@@ -13,7 +13,7 @@ def example
13
13
  payment_product_session302_specific_input = Product::MobilePaymentProductSession302SpecificInput.new
14
14
  payment_product_session302_specific_input.display_name = 'Ingenico'
15
15
  payment_product_session302_specific_input.domain_name = 'pay1.secured-by-ingenico.com'
16
- payment_product_session302_specific_input.validation_url = 'https://apple-pay-gateway-cert.apple.com/paymentservices/startSession'
16
+ payment_product_session302_specific_input.validation_url = '<VALIDATION URL RECEIVED FROM APPLE>'
17
17
 
18
18
  body = Product::CreatePaymentProductSessionRequest.new
19
19
  body.payment_product_session302_specific_input = payment_product_session302_specific_input
@@ -182,6 +182,10 @@ module Ingenico::Connect::SDK
182
182
  elsif !request_body.nil?
183
183
  request_headers.push(RequestHeader.new('Content-Type', 'application/json'))
184
184
  body = @marshaller.marshal(request_body)
185
+ else
186
+ # Set the content-type, even though there is no body, to prevent the httpClient from
187
+ # adding a content-type header after authentication has been generated.
188
+ request_headers.push(RequestHeader.new('Content-Type', 'text/plain'))
185
189
  end
186
190
 
187
191
  add_generic_headers('POST', uri, request_headers, context)
@@ -227,6 +231,10 @@ module Ingenico::Connect::SDK
227
231
  elsif !request_body.nil?
228
232
  request_headers.push(RequestHeader.new('Content-Type', 'application/json'))
229
233
  body = @marshaller.marshal(request_body)
234
+ else
235
+ # Set the content-type, even though there is no body, to prevent the httpClient from
236
+ # adding a content-type header after authentication has been generated.
237
+ request_headers.push(RequestHeader.new('Content-Type', 'text/plain'))
230
238
  end
231
239
  add_generic_headers('POST', uri, request_headers, context)
232
240
 
@@ -274,6 +282,10 @@ module Ingenico::Connect::SDK
274
282
  elsif !request_body.nil?
275
283
  request_headers.push(RequestHeader.new('Content-Type', 'application/json'))
276
284
  body = @marshaller.marshal(request_body)
285
+ else
286
+ # Set the content-type, even though there is no body, to prevent the httpClient from
287
+ # adding a content-type header after authentication has been generated.
288
+ request_headers.push(RequestHeader.new('Content-Type', 'text/plain'))
277
289
  end
278
290
  add_generic_headers('PUT', uri, request_headers, context)
279
291
 
@@ -318,6 +330,10 @@ module Ingenico::Connect::SDK
318
330
  elsif !request_body.nil?
319
331
  request_headers.push(RequestHeader.new('Content-Type', 'application/json'))
320
332
  body = @marshaller.marshal(request_body)
333
+ else
334
+ # Set the content-type, even though there is no body, to prevent the httpClient from
335
+ # adding a content-type header after authentication has been generated.
336
+ request_headers.push(RequestHeader.new('Content-Type', 'text/plain'))
321
337
  end
322
338
  add_generic_headers('PUT', uri, request_headers, context)
323
339
 
@@ -4,20 +4,25 @@
4
4
  #
5
5
  require 'ingenico/connect/sdk/data_object'
6
6
  require 'ingenico/connect/sdk/domain/definitions/airline_data'
7
+ require 'ingenico/connect/sdk/domain/definitions/lodging_data'
7
8
 
8
9
  module Ingenico::Connect::SDK
9
10
  module Domain
10
11
  module Definitions
11
12
 
12
13
  # @attr [Ingenico::Connect::SDK::Domain::Definitions::AirlineData] airline_data
14
+ # @attr [Ingenico::Connect::SDK::Domain::Definitions::LodgingData] lodging_data
13
15
  class AdditionalOrderInputAirlineData < Ingenico::Connect::SDK::DataObject
14
16
 
15
17
  attr_accessor :airline_data
16
18
 
19
+ attr_accessor :lodging_data
20
+
17
21
  # @return (Hash)
18
22
  def to_h
19
23
  hash = super
20
24
  hash['airlineData'] = @airline_data.to_h unless @airline_data.nil?
25
+ hash['lodgingData'] = @lodging_data.to_h unless @lodging_data.nil?
21
26
  hash
22
27
  end
23
28
 
@@ -27,6 +32,10 @@ module Ingenico::Connect::SDK
27
32
  raise TypeError, "value '%s' is not a Hash" % [hash['airlineData']] unless hash['airlineData'].is_a? Hash
28
33
  @airline_data = Ingenico::Connect::SDK::Domain::Definitions::AirlineData.new_from_hash(hash['airlineData'])
29
34
  end
35
+ if hash.has_key? 'lodgingData'
36
+ raise TypeError, "value '%s' is not a Hash" % [hash['lodgingData']] unless hash['lodgingData'].is_a? Hash
37
+ @lodging_data = Ingenico::Connect::SDK::Domain::Definitions::LodgingData.new_from_hash(hash['lodgingData'])
38
+ end
30
39
  end
31
40
  end
32
41
  end
@@ -0,0 +1,46 @@
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] charge_amount
12
+ # @attr [String] charge_amount_currency_code
13
+ # @attr [String] charge_type
14
+ class LodgingCharge < Ingenico::Connect::SDK::DataObject
15
+
16
+ attr_accessor :charge_amount
17
+
18
+ attr_accessor :charge_amount_currency_code
19
+
20
+ attr_accessor :charge_type
21
+
22
+ # @return (Hash)
23
+ def to_h
24
+ hash = super
25
+ hash['chargeAmount'] = @charge_amount unless @charge_amount.nil?
26
+ hash['chargeAmountCurrencyCode'] = @charge_amount_currency_code unless @charge_amount_currency_code.nil?
27
+ hash['chargeType'] = @charge_type unless @charge_type.nil?
28
+ hash
29
+ end
30
+
31
+ def from_hash(hash)
32
+ super
33
+ if hash.has_key? 'chargeAmount'
34
+ @charge_amount = hash['chargeAmount']
35
+ end
36
+ if hash.has_key? 'chargeAmountCurrencyCode'
37
+ @charge_amount_currency_code = hash['chargeAmountCurrencyCode']
38
+ end
39
+ if hash.has_key? 'chargeType'
40
+ @charge_type = hash['chargeType']
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,147 @@
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/lodging_charge'
7
+ require 'ingenico/connect/sdk/domain/definitions/lodging_room'
8
+
9
+ module Ingenico::Connect::SDK
10
+ module Domain
11
+ module Definitions
12
+
13
+ # @attr [Array<Ingenico::Connect::SDK::Domain::Definitions::LodgingCharge>] charges
14
+ # @attr [String] check_in_date
15
+ # @attr [String] check_out_date
16
+ # @attr [String] folio_number
17
+ # @attr [true/false] is_confirmed_reservation
18
+ # @attr [true/false] is_facility_fire_safety_conform
19
+ # @attr [true/false] is_no_show
20
+ # @attr [true/false] is_preference_smoking_room
21
+ # @attr [Integer] number_of_adults
22
+ # @attr [Integer] number_of_nights
23
+ # @attr [Integer] number_of_rooms
24
+ # @attr [String] program_code
25
+ # @attr [String] property_customer_service_phone_number
26
+ # @attr [String] property_phone_number
27
+ # @attr [String] renter_name
28
+ # @attr [Array<Ingenico::Connect::SDK::Domain::Definitions::LodgingRoom>] rooms
29
+ class LodgingData < Ingenico::Connect::SDK::DataObject
30
+
31
+ attr_accessor :charges
32
+
33
+ attr_accessor :check_in_date
34
+
35
+ attr_accessor :check_out_date
36
+
37
+ attr_accessor :folio_number
38
+
39
+ attr_accessor :is_confirmed_reservation
40
+
41
+ attr_accessor :is_facility_fire_safety_conform
42
+
43
+ attr_accessor :is_no_show
44
+
45
+ attr_accessor :is_preference_smoking_room
46
+
47
+ attr_accessor :number_of_adults
48
+
49
+ attr_accessor :number_of_nights
50
+
51
+ attr_accessor :number_of_rooms
52
+
53
+ attr_accessor :program_code
54
+
55
+ attr_accessor :property_customer_service_phone_number
56
+
57
+ attr_accessor :property_phone_number
58
+
59
+ attr_accessor :renter_name
60
+
61
+ attr_accessor :rooms
62
+
63
+ # @return (Hash)
64
+ def to_h
65
+ hash = super
66
+ hash['charges'] = @charges.collect{|val| val.to_h} unless @charges.nil?
67
+ hash['checkInDate'] = @check_in_date unless @check_in_date.nil?
68
+ hash['checkOutDate'] = @check_out_date unless @check_out_date.nil?
69
+ hash['folioNumber'] = @folio_number unless @folio_number.nil?
70
+ hash['isConfirmedReservation'] = @is_confirmed_reservation unless @is_confirmed_reservation.nil?
71
+ hash['isFacilityFireSafetyConform'] = @is_facility_fire_safety_conform unless @is_facility_fire_safety_conform.nil?
72
+ hash['isNoShow'] = @is_no_show unless @is_no_show.nil?
73
+ hash['isPreferenceSmokingRoom'] = @is_preference_smoking_room unless @is_preference_smoking_room.nil?
74
+ hash['numberOfAdults'] = @number_of_adults unless @number_of_adults.nil?
75
+ hash['numberOfNights'] = @number_of_nights unless @number_of_nights.nil?
76
+ hash['numberOfRooms'] = @number_of_rooms unless @number_of_rooms.nil?
77
+ hash['programCode'] = @program_code unless @program_code.nil?
78
+ hash['propertyCustomerServicePhoneNumber'] = @property_customer_service_phone_number unless @property_customer_service_phone_number.nil?
79
+ hash['propertyPhoneNumber'] = @property_phone_number unless @property_phone_number.nil?
80
+ hash['renterName'] = @renter_name unless @renter_name.nil?
81
+ hash['rooms'] = @rooms.collect{|val| val.to_h} unless @rooms.nil?
82
+ hash
83
+ end
84
+
85
+ def from_hash(hash)
86
+ super
87
+ if hash.has_key? 'charges'
88
+ raise TypeError, "value '%s' is not an Array" % [hash['charges']] unless hash['charges'].is_a? Array
89
+ @charges = []
90
+ hash['charges'].each do |e|
91
+ @charges << Ingenico::Connect::SDK::Domain::Definitions::LodgingCharge.new_from_hash(e)
92
+ end
93
+ end
94
+ if hash.has_key? 'checkInDate'
95
+ @check_in_date = hash['checkInDate']
96
+ end
97
+ if hash.has_key? 'checkOutDate'
98
+ @check_out_date = hash['checkOutDate']
99
+ end
100
+ if hash.has_key? 'folioNumber'
101
+ @folio_number = hash['folioNumber']
102
+ end
103
+ if hash.has_key? 'isConfirmedReservation'
104
+ @is_confirmed_reservation = hash['isConfirmedReservation']
105
+ end
106
+ if hash.has_key? 'isFacilityFireSafetyConform'
107
+ @is_facility_fire_safety_conform = hash['isFacilityFireSafetyConform']
108
+ end
109
+ if hash.has_key? 'isNoShow'
110
+ @is_no_show = hash['isNoShow']
111
+ end
112
+ if hash.has_key? 'isPreferenceSmokingRoom'
113
+ @is_preference_smoking_room = hash['isPreferenceSmokingRoom']
114
+ end
115
+ if hash.has_key? 'numberOfAdults'
116
+ @number_of_adults = hash['numberOfAdults']
117
+ end
118
+ if hash.has_key? 'numberOfNights'
119
+ @number_of_nights = hash['numberOfNights']
120
+ end
121
+ if hash.has_key? 'numberOfRooms'
122
+ @number_of_rooms = hash['numberOfRooms']
123
+ end
124
+ if hash.has_key? 'programCode'
125
+ @program_code = hash['programCode']
126
+ end
127
+ if hash.has_key? 'propertyCustomerServicePhoneNumber'
128
+ @property_customer_service_phone_number = hash['propertyCustomerServicePhoneNumber']
129
+ end
130
+ if hash.has_key? 'propertyPhoneNumber'
131
+ @property_phone_number = hash['propertyPhoneNumber']
132
+ end
133
+ if hash.has_key? 'renterName'
134
+ @renter_name = hash['renterName']
135
+ end
136
+ if hash.has_key? 'rooms'
137
+ raise TypeError, "value '%s' is not an Array" % [hash['rooms']] unless hash['rooms'].is_a? Array
138
+ @rooms = []
139
+ hash['rooms'].each do |e|
140
+ @rooms << Ingenico::Connect::SDK::Domain::Definitions::LodgingRoom.new_from_hash(e)
141
+ end
142
+ end
143
+ end
144
+ end
145
+ end
146
+ end
147
+ end
@@ -0,0 +1,88 @@
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 [String] daily_room_rate
12
+ # @attr [String] daily_room_rate_currency_code
13
+ # @attr [String] daily_room_tax_amount
14
+ # @attr [String] daily_room_tax_amount_currency_code
15
+ # @attr [Integer] number_of_nights_at_room_rate
16
+ # @attr [String] room_location
17
+ # @attr [String] room_number
18
+ # @attr [String] type_of_bed
19
+ # @attr [String] type_of_room
20
+ class LodgingRoom < Ingenico::Connect::SDK::DataObject
21
+
22
+ attr_accessor :daily_room_rate
23
+
24
+ attr_accessor :daily_room_rate_currency_code
25
+
26
+ attr_accessor :daily_room_tax_amount
27
+
28
+ attr_accessor :daily_room_tax_amount_currency_code
29
+
30
+ attr_accessor :number_of_nights_at_room_rate
31
+
32
+ attr_accessor :room_location
33
+
34
+ attr_accessor :room_number
35
+
36
+ attr_accessor :type_of_bed
37
+
38
+ attr_accessor :type_of_room
39
+
40
+ # @return (Hash)
41
+ def to_h
42
+ hash = super
43
+ hash['dailyRoomRate'] = @daily_room_rate unless @daily_room_rate.nil?
44
+ hash['dailyRoomRateCurrencyCode'] = @daily_room_rate_currency_code unless @daily_room_rate_currency_code.nil?
45
+ hash['dailyRoomTaxAmount'] = @daily_room_tax_amount unless @daily_room_tax_amount.nil?
46
+ hash['dailyRoomTaxAmountCurrencyCode'] = @daily_room_tax_amount_currency_code unless @daily_room_tax_amount_currency_code.nil?
47
+ hash['numberOfNightsAtRoomRate'] = @number_of_nights_at_room_rate unless @number_of_nights_at_room_rate.nil?
48
+ hash['roomLocation'] = @room_location unless @room_location.nil?
49
+ hash['roomNumber'] = @room_number unless @room_number.nil?
50
+ hash['typeOfBed'] = @type_of_bed unless @type_of_bed.nil?
51
+ hash['typeOfRoom'] = @type_of_room unless @type_of_room.nil?
52
+ hash
53
+ end
54
+
55
+ def from_hash(hash)
56
+ super
57
+ if hash.has_key? 'dailyRoomRate'
58
+ @daily_room_rate = hash['dailyRoomRate']
59
+ end
60
+ if hash.has_key? 'dailyRoomRateCurrencyCode'
61
+ @daily_room_rate_currency_code = hash['dailyRoomRateCurrencyCode']
62
+ end
63
+ if hash.has_key? 'dailyRoomTaxAmount'
64
+ @daily_room_tax_amount = hash['dailyRoomTaxAmount']
65
+ end
66
+ if hash.has_key? 'dailyRoomTaxAmountCurrencyCode'
67
+ @daily_room_tax_amount_currency_code = hash['dailyRoomTaxAmountCurrencyCode']
68
+ end
69
+ if hash.has_key? 'numberOfNightsAtRoomRate'
70
+ @number_of_nights_at_room_rate = hash['numberOfNightsAtRoomRate']
71
+ end
72
+ if hash.has_key? 'roomLocation'
73
+ @room_location = hash['roomLocation']
74
+ end
75
+ if hash.has_key? 'roomNumber'
76
+ @room_number = hash['roomNumber']
77
+ end
78
+ if hash.has_key? 'typeOfBed'
79
+ @type_of_bed = hash['typeOfBed']
80
+ end
81
+ if hash.has_key? 'typeOfRoom'
82
+ @type_of_room = hash['typeOfRoom']
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
@@ -10,24 +10,46 @@ module Ingenico::Connect::SDK
10
10
  module Domain
11
11
  module Hostedcheckout
12
12
 
13
+ # @attr [String] authorization_mode
14
+ # @attr [String] customer_reference
13
15
  # @attr [Ingenico::Connect::SDK::Domain::Hostedcheckout::MobilePaymentProduct302SpecificInputHostedCheckout] payment_product302_specific_input
14
16
  # @attr [Ingenico::Connect::SDK::Domain::Hostedcheckout::MobilePaymentProduct320SpecificInputHostedCheckout] payment_product320_specific_input
17
+ # @attr [true/false] requires_approval
18
+ # @attr [true/false] skip_fraud_service
15
19
  class MobilePaymentMethodSpecificInputHostedCheckout < Ingenico::Connect::SDK::Domain::Definitions::AbstractPaymentMethodSpecificInput
16
20
 
21
+ attr_accessor :authorization_mode
22
+
23
+ attr_accessor :customer_reference
24
+
17
25
  attr_accessor :payment_product302_specific_input
18
26
 
19
27
  attr_accessor :payment_product320_specific_input
20
28
 
29
+ attr_accessor :requires_approval
30
+
31
+ attr_accessor :skip_fraud_service
32
+
21
33
  # @return (Hash)
22
34
  def to_h
23
35
  hash = super
36
+ hash['authorizationMode'] = @authorization_mode unless @authorization_mode.nil?
37
+ hash['customerReference'] = @customer_reference unless @customer_reference.nil?
24
38
  hash['paymentProduct302SpecificInput'] = @payment_product302_specific_input.to_h unless @payment_product302_specific_input.nil?
25
39
  hash['paymentProduct320SpecificInput'] = @payment_product320_specific_input.to_h unless @payment_product320_specific_input.nil?
40
+ hash['requiresApproval'] = @requires_approval unless @requires_approval.nil?
41
+ hash['skipFraudService'] = @skip_fraud_service unless @skip_fraud_service.nil?
26
42
  hash
27
43
  end
28
44
 
29
45
  def from_hash(hash)
30
46
  super
47
+ if hash.has_key? 'authorizationMode'
48
+ @authorization_mode = hash['authorizationMode']
49
+ end
50
+ if hash.has_key? 'customerReference'
51
+ @customer_reference = hash['customerReference']
52
+ end
31
53
  if hash.has_key? 'paymentProduct302SpecificInput'
32
54
  raise TypeError, "value '%s' is not a Hash" % [hash['paymentProduct302SpecificInput']] unless hash['paymentProduct302SpecificInput'].is_a? Hash
33
55
  @payment_product302_specific_input = Ingenico::Connect::SDK::Domain::Hostedcheckout::MobilePaymentProduct302SpecificInputHostedCheckout.new_from_hash(hash['paymentProduct302SpecificInput'])
@@ -36,6 +58,12 @@ module Ingenico::Connect::SDK
36
58
  raise TypeError, "value '%s' is not a Hash" % [hash['paymentProduct320SpecificInput']] unless hash['paymentProduct320SpecificInput'].is_a? Hash
37
59
  @payment_product320_specific_input = Ingenico::Connect::SDK::Domain::Hostedcheckout::MobilePaymentProduct320SpecificInputHostedCheckout.new_from_hash(hash['paymentProduct320SpecificInput'])
38
60
  end
61
+ if hash.has_key? 'requiresApproval'
62
+ @requires_approval = hash['requiresApproval']
63
+ end
64
+ if hash.has_key? 'skipFraudService'
65
+ @skip_fraud_service = hash['skipFraudService']
66
+ end
39
67
  end
40
68
  end
41
69
  end
@@ -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/payment/g_pay_three_d_secure'
6
7
 
7
8
  module Ingenico::Connect::SDK
8
9
  module Domain
@@ -10,17 +11,21 @@ module Ingenico::Connect::SDK
10
11
 
11
12
  # @attr [String] merchant_name
12
13
  # @attr [String] merchant_origin
14
+ # @attr [Ingenico::Connect::SDK::Domain::Payment::GPayThreeDSecure] three_d_secure
13
15
  class MobilePaymentProduct320SpecificInputHostedCheckout < Ingenico::Connect::SDK::DataObject
14
16
 
15
17
  attr_accessor :merchant_name
16
18
 
17
19
  attr_accessor :merchant_origin
18
20
 
21
+ attr_accessor :three_d_secure
22
+
19
23
  # @return (Hash)
20
24
  def to_h
21
25
  hash = super
22
26
  hash['merchantName'] = @merchant_name unless @merchant_name.nil?
23
27
  hash['merchantOrigin'] = @merchant_origin unless @merchant_origin.nil?
28
+ hash['threeDSecure'] = @three_d_secure.to_h unless @three_d_secure.nil?
24
29
  hash
25
30
  end
26
31
 
@@ -32,6 +37,10 @@ module Ingenico::Connect::SDK
32
37
  if hash.has_key? 'merchantOrigin'
33
38
  @merchant_origin = hash['merchantOrigin']
34
39
  end
40
+ if hash.has_key? 'threeDSecure'
41
+ raise TypeError, "value '%s' is not a Hash" % [hash['threeDSecure']] unless hash['threeDSecure'].is_a? Hash
42
+ @three_d_secure = Ingenico::Connect::SDK::Domain::Payment::GPayThreeDSecure.new_from_hash(hash['threeDSecure'])
43
+ end
35
44
  end
36
45
  end
37
46
  end
@@ -4,6 +4,8 @@
4
4
  #
5
5
  require 'ingenico/connect/sdk/data_object'
6
6
  require 'ingenico/connect/sdk/domain/definitions/airline_data'
7
+ require 'ingenico/connect/sdk/domain/definitions/lodging_data'
8
+ require 'ingenico/connect/sdk/domain/payment/installments'
7
9
  require 'ingenico/connect/sdk/domain/payment/level3_summary_data'
8
10
  require 'ingenico/connect/sdk/domain/payment/loan_recipient'
9
11
  require 'ingenico/connect/sdk/domain/payment/order_type_information'
@@ -13,8 +15,10 @@ module Ingenico::Connect::SDK
13
15
  module Payment
14
16
 
15
17
  # @attr [Ingenico::Connect::SDK::Domain::Definitions::AirlineData] airline_data
18
+ # @attr [Ingenico::Connect::SDK::Domain::Payment::Installments] installments
16
19
  # @attr [Ingenico::Connect::SDK::Domain::Payment::Level3SummaryData] level3_summary_data
17
20
  # @attr [Ingenico::Connect::SDK::Domain::Payment::LoanRecipient] loan_recipient
21
+ # @attr [Ingenico::Connect::SDK::Domain::Definitions::LodgingData] lodging_data
18
22
  # @attr [Integer] number_of_installments
19
23
  # @attr [String] order_date
20
24
  # @attr [Ingenico::Connect::SDK::Domain::Payment::OrderTypeInformation] type_information
@@ -22,12 +26,18 @@ module Ingenico::Connect::SDK
22
26
 
23
27
  attr_accessor :airline_data
24
28
 
29
+ attr_accessor :installments
30
+
25
31
  #
26
32
  # @deprecated Use Order.shoppingCart.amountBreakdown instead
27
33
  attr_accessor :level3_summary_data
28
34
 
29
35
  attr_accessor :loan_recipient
30
36
 
37
+ attr_accessor :lodging_data
38
+
39
+ #
40
+ # @deprecated Use installments.numberOfInstallments instead
31
41
  attr_accessor :number_of_installments
32
42
 
33
43
  attr_accessor :order_date
@@ -38,8 +48,10 @@ module Ingenico::Connect::SDK
38
48
  def to_h
39
49
  hash = super
40
50
  hash['airlineData'] = @airline_data.to_h unless @airline_data.nil?
51
+ hash['installments'] = @installments.to_h unless @installments.nil?
41
52
  hash['level3SummaryData'] = @level3_summary_data.to_h unless @level3_summary_data.nil?
42
53
  hash['loanRecipient'] = @loan_recipient.to_h unless @loan_recipient.nil?
54
+ hash['lodgingData'] = @lodging_data.to_h unless @lodging_data.nil?
43
55
  hash['numberOfInstallments'] = @number_of_installments unless @number_of_installments.nil?
44
56
  hash['orderDate'] = @order_date unless @order_date.nil?
45
57
  hash['typeInformation'] = @type_information.to_h unless @type_information.nil?
@@ -52,6 +64,10 @@ module Ingenico::Connect::SDK
52
64
  raise TypeError, "value '%s' is not a Hash" % [hash['airlineData']] unless hash['airlineData'].is_a? Hash
53
65
  @airline_data = Ingenico::Connect::SDK::Domain::Definitions::AirlineData.new_from_hash(hash['airlineData'])
54
66
  end
67
+ if hash.has_key? 'installments'
68
+ raise TypeError, "value '%s' is not a Hash" % [hash['installments']] unless hash['installments'].is_a? Hash
69
+ @installments = Ingenico::Connect::SDK::Domain::Payment::Installments.new_from_hash(hash['installments'])
70
+ end
55
71
  if hash.has_key? 'level3SummaryData'
56
72
  raise TypeError, "value '%s' is not a Hash" % [hash['level3SummaryData']] unless hash['level3SummaryData'].is_a? Hash
57
73
  @level3_summary_data = Ingenico::Connect::SDK::Domain::Payment::Level3SummaryData.new_from_hash(hash['level3SummaryData'])
@@ -60,6 +76,10 @@ module Ingenico::Connect::SDK
60
76
  raise TypeError, "value '%s' is not a Hash" % [hash['loanRecipient']] unless hash['loanRecipient'].is_a? Hash
61
77
  @loan_recipient = Ingenico::Connect::SDK::Domain::Payment::LoanRecipient.new_from_hash(hash['loanRecipient'])
62
78
  end
79
+ if hash.has_key? 'lodgingData'
80
+ raise TypeError, "value '%s' is not a Hash" % [hash['lodgingData']] unless hash['lodgingData'].is_a? Hash
81
+ @lodging_data = Ingenico::Connect::SDK::Domain::Definitions::LodgingData.new_from_hash(hash['lodgingData'])
82
+ end
63
83
  if hash.has_key? 'numberOfInstallments'
64
84
  @number_of_installments = hash['numberOfInstallments']
65
85
  end
@@ -8,6 +8,7 @@ module Ingenico::Connect::SDK
8
8
  module Domain
9
9
  module Payment
10
10
 
11
+ # @attr [String] auth_method
11
12
  # @attr [String] cardholder_name
12
13
  # @attr [String] cryptogram
13
14
  # @attr [String] dpan
@@ -17,6 +18,8 @@ module Ingenico::Connect::SDK
17
18
  # @attr [String] payment_method
18
19
  class DecryptedPaymentData < Ingenico::Connect::SDK::DataObject
19
20
 
21
+ attr_accessor :auth_method
22
+
20
23
  attr_accessor :cardholder_name
21
24
 
22
25
  attr_accessor :cryptogram
@@ -34,6 +37,7 @@ module Ingenico::Connect::SDK
34
37
  # @return (Hash)
35
38
  def to_h
36
39
  hash = super
40
+ hash['authMethod'] = @auth_method unless @auth_method.nil?
37
41
  hash['cardholderName'] = @cardholder_name unless @cardholder_name.nil?
38
42
  hash['cryptogram'] = @cryptogram unless @cryptogram.nil?
39
43
  hash['dpan'] = @dpan unless @dpan.nil?
@@ -46,6 +50,9 @@ module Ingenico::Connect::SDK
46
50
 
47
51
  def from_hash(hash)
48
52
  super
53
+ if hash.has_key? 'authMethod'
54
+ @auth_method = hash['authMethod']
55
+ end
49
56
  if hash.has_key? 'cardholderName'
50
57
  @cardholder_name = hash['cardholderName']
51
58
  end
@@ -0,0 +1,39 @@
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] payment_id
12
+ # @attr [String] raw_device_fingerprint_output
13
+ class DeviceFingerprintDetails < Ingenico::Connect::SDK::DataObject
14
+
15
+ attr_accessor :payment_id
16
+
17
+ attr_accessor :raw_device_fingerprint_output
18
+
19
+ # @return (Hash)
20
+ def to_h
21
+ hash = super
22
+ hash['paymentId'] = @payment_id unless @payment_id.nil?
23
+ hash['rawDeviceFingerprintOutput'] = @raw_device_fingerprint_output unless @raw_device_fingerprint_output.nil?
24
+ hash
25
+ end
26
+
27
+ def from_hash(hash)
28
+ super
29
+ if hash.has_key? 'paymentId'
30
+ @payment_id = hash['paymentId']
31
+ end
32
+ if hash.has_key? 'rawDeviceFingerprintOutput'
33
+ @raw_device_fingerprint_output = hash['rawDeviceFingerprintOutput']
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,46 @@
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] exemption_raised
12
+ # @attr [String] exemption_rejection_reason
13
+ # @attr [String] exemption_request
14
+ class ExemptionOutput < Ingenico::Connect::SDK::DataObject
15
+
16
+ attr_accessor :exemption_raised
17
+
18
+ attr_accessor :exemption_rejection_reason
19
+
20
+ attr_accessor :exemption_request
21
+
22
+ # @return (Hash)
23
+ def to_h
24
+ hash = super
25
+ hash['exemptionRaised'] = @exemption_raised unless @exemption_raised.nil?
26
+ hash['exemptionRejectionReason'] = @exemption_rejection_reason unless @exemption_rejection_reason.nil?
27
+ hash['exemptionRequest'] = @exemption_request unless @exemption_request.nil?
28
+ hash
29
+ end
30
+
31
+ def from_hash(hash)
32
+ super
33
+ if hash.has_key? 'exemptionRaised'
34
+ @exemption_raised = hash['exemptionRaised']
35
+ end
36
+ if hash.has_key? 'exemptionRejectionReason'
37
+ @exemption_rejection_reason = hash['exemptionRejectionReason']
38
+ end
39
+ if hash.has_key? 'exemptionRequest'
40
+ @exemption_request = hash['exemptionRequest']
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,62 @@
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/payment/redirection_data'
7
+
8
+ module Ingenico::Connect::SDK
9
+ module Domain
10
+ module Payment
11
+
12
+ # @attr [String] challenge_canvas_size
13
+ # @attr [String] challenge_indicator
14
+ # @attr [String] exemption_request
15
+ # @attr [Ingenico::Connect::SDK::Domain::Payment::RedirectionData] redirection_data
16
+ # @attr [true/false] skip_authentication
17
+ class GPayThreeDSecure < Ingenico::Connect::SDK::DataObject
18
+
19
+ attr_accessor :challenge_canvas_size
20
+
21
+ attr_accessor :challenge_indicator
22
+
23
+ attr_accessor :exemption_request
24
+
25
+ attr_accessor :redirection_data
26
+
27
+ attr_accessor :skip_authentication
28
+
29
+ # @return (Hash)
30
+ def to_h
31
+ hash = super
32
+ hash['challengeCanvasSize'] = @challenge_canvas_size unless @challenge_canvas_size.nil?
33
+ hash['challengeIndicator'] = @challenge_indicator unless @challenge_indicator.nil?
34
+ hash['exemptionRequest'] = @exemption_request unless @exemption_request.nil?
35
+ hash['redirectionData'] = @redirection_data.to_h unless @redirection_data.nil?
36
+ hash['skipAuthentication'] = @skip_authentication unless @skip_authentication.nil?
37
+ hash
38
+ end
39
+
40
+ def from_hash(hash)
41
+ super
42
+ if hash.has_key? 'challengeCanvasSize'
43
+ @challenge_canvas_size = hash['challengeCanvasSize']
44
+ end
45
+ if hash.has_key? 'challengeIndicator'
46
+ @challenge_indicator = hash['challengeIndicator']
47
+ end
48
+ if hash.has_key? 'exemptionRequest'
49
+ @exemption_request = hash['exemptionRequest']
50
+ end
51
+ if hash.has_key? 'redirectionData'
52
+ raise TypeError, "value '%s' is not a Hash" % [hash['redirectionData']] unless hash['redirectionData'].is_a? Hash
53
+ @redirection_data = Ingenico::Connect::SDK::Domain::Payment::RedirectionData.new_from_hash(hash['redirectionData'])
54
+ end
55
+ if hash.has_key? 'skipAuthentication'
56
+ @skip_authentication = hash['skipAuthentication']
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,55 @@
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/amount_of_money'
7
+
8
+ module Ingenico::Connect::SDK
9
+ module Domain
10
+ module Payment
11
+
12
+ # @attr [Ingenico::Connect::SDK::Domain::Definitions::AmountOfMoney] amount_of_money_per_installment
13
+ # @attr [String] frequency_of_installments
14
+ # @attr [String] interest_rate
15
+ # @attr [Integer] number_of_installments
16
+ class Installments < Ingenico::Connect::SDK::DataObject
17
+
18
+ attr_accessor :amount_of_money_per_installment
19
+
20
+ attr_accessor :frequency_of_installments
21
+
22
+ attr_accessor :interest_rate
23
+
24
+ attr_accessor :number_of_installments
25
+
26
+ # @return (Hash)
27
+ def to_h
28
+ hash = super
29
+ hash['amountOfMoneyPerInstallment'] = @amount_of_money_per_installment.to_h unless @amount_of_money_per_installment.nil?
30
+ hash['frequencyOfInstallments'] = @frequency_of_installments unless @frequency_of_installments.nil?
31
+ hash['interestRate'] = @interest_rate unless @interest_rate.nil?
32
+ hash['numberOfInstallments'] = @number_of_installments unless @number_of_installments.nil?
33
+ hash
34
+ end
35
+
36
+ def from_hash(hash)
37
+ super
38
+ if hash.has_key? 'amountOfMoneyPerInstallment'
39
+ raise TypeError, "value '%s' is not a Hash" % [hash['amountOfMoneyPerInstallment']] unless hash['amountOfMoneyPerInstallment'].is_a? Hash
40
+ @amount_of_money_per_installment = Ingenico::Connect::SDK::Domain::Definitions::AmountOfMoney.new_from_hash(hash['amountOfMoneyPerInstallment'])
41
+ end
42
+ if hash.has_key? 'frequencyOfInstallments'
43
+ @frequency_of_installments = hash['frequencyOfInstallments']
44
+ end
45
+ if hash.has_key? 'interestRate'
46
+ @interest_rate = hash['interestRate']
47
+ end
48
+ if hash.has_key? 'numberOfInstallments'
49
+ @number_of_installments = hash['numberOfInstallments']
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -4,24 +4,31 @@
4
4
  #
5
5
  require 'ingenico/connect/sdk/domain/definitions/abstract_payment_method_specific_input'
6
6
  require 'ingenico/connect/sdk/domain/payment/decrypted_payment_data'
7
+ require 'ingenico/connect/sdk/domain/payment/mobile_payment_product320_specific_input'
7
8
 
8
9
  module Ingenico::Connect::SDK
9
10
  module Domain
10
11
  module Payment
11
12
 
12
13
  # @attr [String] authorization_mode
14
+ # @attr [String] customer_reference
13
15
  # @attr [Ingenico::Connect::SDK::Domain::Payment::DecryptedPaymentData] decrypted_payment_data
14
16
  # @attr [String] encrypted_payment_data
17
+ # @attr [Ingenico::Connect::SDK::Domain::Payment::MobilePaymentProduct320SpecificInput] payment_product320_specific_input
15
18
  # @attr [true/false] requires_approval
16
19
  # @attr [true/false] skip_fraud_service
17
20
  class MobilePaymentMethodSpecificInput < Ingenico::Connect::SDK::Domain::Definitions::AbstractPaymentMethodSpecificInput
18
21
 
19
22
  attr_accessor :authorization_mode
20
23
 
24
+ attr_accessor :customer_reference
25
+
21
26
  attr_accessor :decrypted_payment_data
22
27
 
23
28
  attr_accessor :encrypted_payment_data
24
29
 
30
+ attr_accessor :payment_product320_specific_input
31
+
25
32
  attr_accessor :requires_approval
26
33
 
27
34
  attr_accessor :skip_fraud_service
@@ -30,8 +37,10 @@ module Ingenico::Connect::SDK
30
37
  def to_h
31
38
  hash = super
32
39
  hash['authorizationMode'] = @authorization_mode unless @authorization_mode.nil?
40
+ hash['customerReference'] = @customer_reference unless @customer_reference.nil?
33
41
  hash['decryptedPaymentData'] = @decrypted_payment_data.to_h unless @decrypted_payment_data.nil?
34
42
  hash['encryptedPaymentData'] = @encrypted_payment_data unless @encrypted_payment_data.nil?
43
+ hash['paymentProduct320SpecificInput'] = @payment_product320_specific_input.to_h unless @payment_product320_specific_input.nil?
35
44
  hash['requiresApproval'] = @requires_approval unless @requires_approval.nil?
36
45
  hash['skipFraudService'] = @skip_fraud_service unless @skip_fraud_service.nil?
37
46
  hash
@@ -42,6 +51,9 @@ module Ingenico::Connect::SDK
42
51
  if hash.has_key? 'authorizationMode'
43
52
  @authorization_mode = hash['authorizationMode']
44
53
  end
54
+ if hash.has_key? 'customerReference'
55
+ @customer_reference = hash['customerReference']
56
+ end
45
57
  if hash.has_key? 'decryptedPaymentData'
46
58
  raise TypeError, "value '%s' is not a Hash" % [hash['decryptedPaymentData']] unless hash['decryptedPaymentData'].is_a? Hash
47
59
  @decrypted_payment_data = Ingenico::Connect::SDK::Domain::Payment::DecryptedPaymentData.new_from_hash(hash['decryptedPaymentData'])
@@ -49,6 +61,10 @@ module Ingenico::Connect::SDK
49
61
  if hash.has_key? 'encryptedPaymentData'
50
62
  @encrypted_payment_data = hash['encryptedPaymentData']
51
63
  end
64
+ if hash.has_key? 'paymentProduct320SpecificInput'
65
+ raise TypeError, "value '%s' is not a Hash" % [hash['paymentProduct320SpecificInput']] unless hash['paymentProduct320SpecificInput'].is_a? Hash
66
+ @payment_product320_specific_input = Ingenico::Connect::SDK::Domain::Payment::MobilePaymentProduct320SpecificInput.new_from_hash(hash['paymentProduct320SpecificInput'])
67
+ end
52
68
  if hash.has_key? 'requiresApproval'
53
69
  @requires_approval = hash['requiresApproval']
54
70
  end
@@ -0,0 +1,34 @@
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/payment/g_pay_three_d_secure'
7
+
8
+ module Ingenico::Connect::SDK
9
+ module Domain
10
+ module Payment
11
+
12
+ # @attr [Ingenico::Connect::SDK::Domain::Payment::GPayThreeDSecure] three_d_secure
13
+ class MobilePaymentProduct320SpecificInput < Ingenico::Connect::SDK::DataObject
14
+
15
+ attr_accessor :three_d_secure
16
+
17
+ # @return (Hash)
18
+ def to_h
19
+ hash = super
20
+ hash['threeDSecure'] = @three_d_secure.to_h unless @three_d_secure.nil?
21
+ hash
22
+ end
23
+
24
+ def from_hash(hash)
25
+ super
26
+ if hash.has_key? 'threeDSecure'
27
+ raise TypeError, "value '%s' is not a Hash" % [hash['threeDSecure']] unless hash['threeDSecure'].is_a? Hash
28
+ @three_d_secure = Ingenico::Connect::SDK::Domain::Payment::GPayThreeDSecure.new_from_hash(hash['threeDSecure'])
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -4,6 +4,7 @@
4
4
  #
5
5
  require 'ingenico/connect/sdk/data_object'
6
6
  require 'ingenico/connect/sdk/domain/definitions/amount_of_money'
7
+ require 'ingenico/connect/sdk/domain/payment/exemption_output'
7
8
  require 'ingenico/connect/sdk/domain/payment/sdk_data_output'
8
9
  require 'ingenico/connect/sdk/domain/payment/three_d_secure_data'
9
10
 
@@ -17,6 +18,7 @@ module Ingenico::Connect::SDK
17
18
  # @attr [String] cavv
18
19
  # @attr [String] directory_server_transaction_id
19
20
  # @attr [String] eci
21
+ # @attr [Ingenico::Connect::SDK::Domain::Payment::ExemptionOutput] exemption_output
20
22
  # @attr [Integer] scheme_risk_score
21
23
  # @attr [Ingenico::Connect::SDK::Domain::Payment::SdkDataOutput] sdk_data
22
24
  # @attr [Ingenico::Connect::SDK::Domain::Payment::ThreeDSecureData] three_d_secure_data
@@ -37,6 +39,8 @@ module Ingenico::Connect::SDK
37
39
 
38
40
  attr_accessor :eci
39
41
 
42
+ attr_accessor :exemption_output
43
+
40
44
  attr_accessor :scheme_risk_score
41
45
 
42
46
  attr_accessor :sdk_data
@@ -58,6 +62,7 @@ module Ingenico::Connect::SDK
58
62
  hash['cavv'] = @cavv unless @cavv.nil?
59
63
  hash['directoryServerTransactionId'] = @directory_server_transaction_id unless @directory_server_transaction_id.nil?
60
64
  hash['eci'] = @eci unless @eci.nil?
65
+ hash['exemptionOutput'] = @exemption_output.to_h unless @exemption_output.nil?
61
66
  hash['schemeRiskScore'] = @scheme_risk_score unless @scheme_risk_score.nil?
62
67
  hash['sdkData'] = @sdk_data.to_h unless @sdk_data.nil?
63
68
  hash['threeDSecureData'] = @three_d_secure_data.to_h unless @three_d_secure_data.nil?
@@ -88,6 +93,10 @@ module Ingenico::Connect::SDK
88
93
  if hash.has_key? 'eci'
89
94
  @eci = hash['eci']
90
95
  end
96
+ if hash.has_key? 'exemptionOutput'
97
+ raise TypeError, "value '%s' is not a Hash" % [hash['exemptionOutput']] unless hash['exemptionOutput'].is_a? Hash
98
+ @exemption_output = Ingenico::Connect::SDK::Domain::Payment::ExemptionOutput.new_from_hash(hash['exemptionOutput'])
99
+ end
91
100
  if hash.has_key? 'schemeRiskScore'
92
101
  @scheme_risk_score = hash['schemeRiskScore']
93
102
  end
@@ -16,6 +16,7 @@ module Ingenico::Connect::SDK
16
16
  module Product
17
17
 
18
18
  # @attr [Array<Ingenico::Connect::SDK::Domain::Product::AccountOnFile>] accounts_on_file
19
+ # @attr [String] acquirer_country
19
20
  # @attr [true/false] allows_installments
20
21
  # @attr [true/false] allows_recurring
21
22
  # @attr [true/false] allows_tokenization
@@ -41,6 +42,8 @@ module Ingenico::Connect::SDK
41
42
 
42
43
  attr_accessor :accounts_on_file
43
44
 
45
+ attr_accessor :acquirer_country
46
+
44
47
  attr_accessor :allows_installments
45
48
 
46
49
  attr_accessor :allows_recurring
@@ -87,6 +90,7 @@ module Ingenico::Connect::SDK
87
90
  def to_h
88
91
  hash = super
89
92
  hash['accountsOnFile'] = @accounts_on_file.collect{|val| val.to_h} unless @accounts_on_file.nil?
93
+ hash['acquirerCountry'] = @acquirer_country unless @acquirer_country.nil?
90
94
  hash['allowsInstallments'] = @allows_installments unless @allows_installments.nil?
91
95
  hash['allowsRecurring'] = @allows_recurring unless @allows_recurring.nil?
92
96
  hash['allowsTokenization'] = @allows_tokenization unless @allows_tokenization.nil?
@@ -120,6 +124,9 @@ module Ingenico::Connect::SDK
120
124
  @accounts_on_file << Ingenico::Connect::SDK::Domain::Product::AccountOnFile.new_from_hash(e)
121
125
  end
122
126
  end
127
+ if hash.has_key? 'acquirerCountry'
128
+ @acquirer_country = hash['acquirerCountry']
129
+ end
123
130
  if hash.has_key? 'allowsInstallments'
124
131
  @allows_installments = hash['allowsInstallments']
125
132
  end
@@ -12,6 +12,7 @@ module Ingenico::Connect::SDK
12
12
  module Product
13
13
 
14
14
  # @attr [Array<Ingenico::Connect::SDK::Domain::Product::AccountOnFile>] accounts_on_file
15
+ # @attr [true/false] allows_installments
15
16
  # @attr [true/false] device_fingerprint_enabled
16
17
  # @attr [Ingenico::Connect::SDK::Domain::Product::PaymentProductDisplayHints] display_hints
17
18
  # @attr [Array<Ingenico::Connect::SDK::Domain::Product::PaymentProductField>] fields
@@ -20,6 +21,8 @@ module Ingenico::Connect::SDK
20
21
 
21
22
  attr_accessor :accounts_on_file
22
23
 
24
+ attr_accessor :allows_installments
25
+
23
26
  attr_accessor :device_fingerprint_enabled
24
27
 
25
28
  attr_accessor :display_hints
@@ -32,6 +35,7 @@ module Ingenico::Connect::SDK
32
35
  def to_h
33
36
  hash = super
34
37
  hash['accountsOnFile'] = @accounts_on_file.collect{|val| val.to_h} unless @accounts_on_file.nil?
38
+ hash['allowsInstallments'] = @allows_installments unless @allows_installments.nil?
35
39
  hash['deviceFingerprintEnabled'] = @device_fingerprint_enabled unless @device_fingerprint_enabled.nil?
36
40
  hash['displayHints'] = @display_hints.to_h unless @display_hints.nil?
37
41
  hash['fields'] = @fields.collect{|val| val.to_h} unless @fields.nil?
@@ -48,6 +52,9 @@ module Ingenico::Connect::SDK
48
52
  @accounts_on_file << Ingenico::Connect::SDK::Domain::Product::AccountOnFile.new_from_hash(e)
49
53
  end
50
54
  end
55
+ if hash.has_key? 'allowsInstallments'
56
+ @allows_installments = hash['allowsInstallments']
57
+ end
51
58
  if hash.has_key? 'deviceFingerprintEnabled'
52
59
  @device_fingerprint_enabled = hash['deviceFingerprintEnabled']
53
60
  end
@@ -13,6 +13,7 @@ require 'ingenico/connect/sdk/domain/payment/cancel_approval_payment_response'
13
13
  require 'ingenico/connect/sdk/domain/payment/cancel_payment_response'
14
14
  require 'ingenico/connect/sdk/domain/payment/complete_payment_response'
15
15
  require 'ingenico/connect/sdk/domain/payment/create_payment_response'
16
+ require 'ingenico/connect/sdk/domain/payment/device_fingerprint_details'
16
17
  require 'ingenico/connect/sdk/domain/payment/find_payments_response'
17
18
  require 'ingenico/connect/sdk/domain/payment/payment_approval_response'
18
19
  require 'ingenico/connect/sdk/domain/payment/payment_error_response'
@@ -527,6 +528,36 @@ module Ingenico::Connect::SDK
527
528
  error_object = @communicator.marshaller.unmarshal(e.body, error_type)
528
529
  raise create_exception(e.status_code, e.body, error_object, context)
529
530
  end
531
+
532
+ # Resource /!{merchantId}/payments/!{paymentId}/devicefingerprint - {https://epayments-api.developer-ingenico.com/s2sapi/v1/en_US/ruby/payments/devicefingerprint.html Get Device Fingerprint details}
533
+ # @param payment_id [String]
534
+ # @param context [Ingenico::Connect::SDK::CallContext]
535
+ # @return [Ingenico::Connect::SDK::Domain::Payment::DeviceFingerprintDetails]
536
+ # @raise [Ingenico::Connect::SDK::ValidationException] if the request was not correct and couldn't be processed (HTTP status code 400)
537
+ # @raise [Ingenico::Connect::SDK::AuthorizationException] if the request was not allowed (HTTP status code 403)
538
+ # @raise [Ingenico::Connect::SDK::IdempotenceException] if an idempotent request caused a conflict (HTTP status code 409)
539
+ # @raise [Ingenico::Connect::SDK::ReferenceException] if an object was attempted to be referenced that doesn't exist or has been removed,
540
+ # or there was a conflict (HTTP status code 404, 409 or 410)
541
+ # @raise [Ingenico::Connect::SDK::GlobalCollectException] if something went wrong at the Ingenico ePayments platform,
542
+ # the Ingenico ePayments platform was unable to process a message from a downstream partner/acquirer,
543
+ # or the service that you're trying to reach is temporary unavailable (HTTP status code 500, 502 or 503)
544
+ # @raise [Ingenico::Connect::SDK::ApiException]if the Ingenico ePayments platform returned any other error
545
+ def devicefingerprint(payment_id, context=nil)
546
+ path_context = {
547
+ 'paymentId'.freeze => payment_id,
548
+ }
549
+ uri = instantiate_uri('/v1/{merchantId}/payments/{paymentId}/devicefingerprint', path_context)
550
+ return @communicator.get(
551
+ uri,
552
+ client_headers,
553
+ nil,
554
+ Ingenico::Connect::SDK::Domain::Payment::DeviceFingerprintDetails,
555
+ context)
556
+ rescue ResponseException => e
557
+ error_type = Ingenico::Connect::SDK::Domain::Errors::ErrorResponse
558
+ error_object = @communicator.marshaller.unmarshal(e.body, error_type)
559
+ raise create_exception(e.status_code, e.body, error_object, context)
560
+ end
530
561
  end
531
562
  end
532
563
  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.13.0'
10
+ @@SDK_VERSION = '2.18.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
@@ -2,6 +2,7 @@ require 'spec_helper'
2
2
  require 'integration_setup'
3
3
  require 'webmock/rspec'
4
4
  require 'ingenico/connect/sdk/merchant/products/directory_params'
5
+ require 'ingenico/connect/sdk/merchant/products/find_products_params'
5
6
 
6
7
  describe 'PaymentProducts' do
7
8
 
@@ -10,6 +11,18 @@ describe 'PaymentProducts' do
10
11
 
11
12
  it 'can be accessed' do
12
13
 
14
+ params = Ingenico::Connect::SDK::Merchant::Products::FindProductsParams.new
15
+ params.country_code = 'NL'
16
+ params.currency_code = 'EUR'
17
+
18
+ Integration.init_client(false) do |client|
19
+ response = client.merchant(Integration::MERCHANT_ID).products.find(params)
20
+ expect(response.payment_products.length).to be > 0
21
+ end
22
+ end
23
+
24
+ it 'has directories that can be accessed' do
25
+
13
26
  params = Ingenico::Connect::SDK::Merchant::Products::DirectoryParams.new
14
27
  params.country_code = 'NL'
15
28
  params.currency_code = 'EUR'
@@ -23,7 +23,7 @@ describe 'token' do
23
23
  card_without_ccv.cardholder_name = 'Jan'
24
24
  card_without_ccv.issue_number = '12'
25
25
  card_without_ccv.card_number = '4567350000427977'
26
- card_without_ccv.expiry_date = '0820'
26
+ card_without_ccv.expiry_date = '1225'
27
27
  card_data = Ingenico::Connect::SDK::Domain::Token::TokenCardData.new
28
28
  card_data.card_without_cvv = card_without_ccv
29
29
  card = Ingenico::Connect::SDK::Domain::Token::TokenCard.new
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.13.0
4
+ version: 2.18.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-07-24 00:00:00.000000000 Z
11
+ date: 2020-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -153,6 +153,7 @@ files:
153
153
  - examples/merchant/payments/create_payment_example.rb
154
154
  - examples/merchant/payments/find_payments_example.rb
155
155
  - examples/merchant/payments/get_payment_captures_example.rb
156
+ - examples/merchant/payments/get_payment_device_fingerprint_details_example.rb
156
157
  - examples/merchant/payments/get_payment_disputes_example.rb
157
158
  - examples/merchant/payments/get_payment_example.rb
158
159
  - examples/merchant/payments/get_refunds_example.rb
@@ -245,6 +246,9 @@ files:
245
246
  - lib/ingenico/connect/sdk/domain/definitions/fraugster_results.rb
246
247
  - lib/ingenico/connect/sdk/domain/definitions/in_auth.rb
247
248
  - lib/ingenico/connect/sdk/domain/definitions/key_value_pair.rb
249
+ - lib/ingenico/connect/sdk/domain/definitions/lodging_charge.rb
250
+ - lib/ingenico/connect/sdk/domain/definitions/lodging_data.rb
251
+ - lib/ingenico/connect/sdk/domain/definitions/lodging_room.rb
248
252
  - lib/ingenico/connect/sdk/domain/definitions/order_status_output.rb
249
253
  - lib/ingenico/connect/sdk/domain/definitions/payment_product_filter.rb
250
254
  - lib/ingenico/connect/sdk/domain/definitions/personal_name_base.rb
@@ -351,16 +355,20 @@ files:
351
355
  - lib/ingenico/connect/sdk/domain/payment/customer_device.rb
352
356
  - lib/ingenico/connect/sdk/domain/payment/customer_payment_activity.rb
353
357
  - lib/ingenico/connect/sdk/domain/payment/decrypted_payment_data.rb
358
+ - lib/ingenico/connect/sdk/domain/payment/device_fingerprint_details.rb
354
359
  - lib/ingenico/connect/sdk/domain/payment/device_render_options.rb
355
360
  - lib/ingenico/connect/sdk/domain/payment/e_invoice_payment_method_specific_input.rb
356
361
  - lib/ingenico/connect/sdk/domain/payment/e_invoice_payment_method_specific_input_base.rb
357
362
  - lib/ingenico/connect/sdk/domain/payment/e_invoice_payment_method_specific_output.rb
358
363
  - lib/ingenico/connect/sdk/domain/payment/e_invoice_payment_product9000_specific_input.rb
359
364
  - lib/ingenico/connect/sdk/domain/payment/e_invoice_payment_product9000_specific_output.rb
365
+ - lib/ingenico/connect/sdk/domain/payment/exemption_output.rb
360
366
  - lib/ingenico/connect/sdk/domain/payment/external_cardholder_authentication_data.rb
361
367
  - lib/ingenico/connect/sdk/domain/payment/find_payments_response.rb
368
+ - lib/ingenico/connect/sdk/domain/payment/g_pay_three_d_secure.rb
362
369
  - lib/ingenico/connect/sdk/domain/payment/gift_card_purchase.rb
363
370
  - lib/ingenico/connect/sdk/domain/payment/hosted_checkout_specific_output.rb
371
+ - lib/ingenico/connect/sdk/domain/payment/installments.rb
364
372
  - lib/ingenico/connect/sdk/domain/payment/invoice_payment_method_specific_input.rb
365
373
  - lib/ingenico/connect/sdk/domain/payment/invoice_payment_method_specific_output.rb
366
374
  - lib/ingenico/connect/sdk/domain/payment/level3_summary_data.rb
@@ -373,6 +381,7 @@ files:
373
381
  - lib/ingenico/connect/sdk/domain/payment/mobile_payment_data.rb
374
382
  - lib/ingenico/connect/sdk/domain/payment/mobile_payment_method_specific_input.rb
375
383
  - lib/ingenico/connect/sdk/domain/payment/mobile_payment_method_specific_output.rb
384
+ - lib/ingenico/connect/sdk/domain/payment/mobile_payment_product320_specific_input.rb
376
385
  - lib/ingenico/connect/sdk/domain/payment/mobile_three_d_secure_challenge_parameters.rb
377
386
  - lib/ingenico/connect/sdk/domain/payment/non_sepa_direct_debit_payment_method_specific_input.rb
378
387
  - lib/ingenico/connect/sdk/domain/payment/non_sepa_direct_debit_payment_method_specific_output.rb