connect-sdk-ruby 1.6.0 → 1.7.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 +4 -4
- data/connect-sdk-ruby.gemspec +1 -1
- data/examples/merchant/payments/complete_payment_example.rb +38 -0
- data/examples/merchant/payments/get_third_party_status_example.rb +22 -0
- data/examples/merchant/products/get_payment_product_example.rb +1 -0
- data/lib/ingenico/connect/sdk/domain/metadata/shopping_cart_extension.rb +8 -4
- data/lib/ingenico/connect/sdk/domain/payment/complete_payment_card_payment_method_specific_input.rb +35 -0
- data/lib/ingenico/connect/sdk/domain/payment/complete_payment_request.rb +35 -0
- data/lib/ingenico/connect/sdk/domain/payment/complete_payment_response.rb +15 -0
- data/lib/ingenico/connect/sdk/domain/payment/merchant_action.rb +14 -0
- data/lib/ingenico/connect/sdk/domain/payment/third_party_status_response.rb +31 -0
- data/lib/ingenico/connect/sdk/endpoint_configuration.rb +6 -5
- data/lib/ingenico/connect/sdk/merchant/payments/payments_client.rb +69 -1
- data/lib/ingenico/connect/sdk/merchant/products/get_product_params.rb +4 -0
- data/lib/ingenico/connect/sdk/meta_data_provider.rb +1 -1
- data/spec/lib/communicator_configuration_spec.rb +3 -1
- data/spec/lib/meta_data_provider_spec.rb +22 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 85c0d7f702a3ef4aa7a1bf4e2c83ebc9c2199aaa
|
4
|
+
data.tar.gz: 88edb5adb9229f3036aa266fdd9f7fa66269d0f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 09402138eb1e17e54f88208f7d5ea73defd4ec165fa56708e198b786d25b3007ca1f70dde785fe6358c7821455aba3a0419ec9c944d9faadf2abe72270e55cac
|
7
|
+
data.tar.gz: 8de8c3c286df14bc037b046abe1158eb634ac31583dad110360d958269143106b0befadaae812baeac504c00130445a6d9ec9b264d44a764c715358e3173f9e0
|
data/connect-sdk-ruby.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = 'connect-sdk-ruby'
|
3
|
-
spec.version = '1.
|
3
|
+
spec.version = '1.7.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 GlobalCollect platform using the Ingenico Connect Server API}
|
@@ -0,0 +1,38 @@
|
|
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
|
+
require 'ingenico/connect/sdk/domain/definitions/card_without_cvv'
|
7
|
+
require 'ingenico/connect/sdk/domain/payment/complete_payment_card_payment_method_specific_input'
|
8
|
+
require 'ingenico/connect/sdk/domain/payment/complete_payment_request'
|
9
|
+
|
10
|
+
Definitions = Ingenico::Connect::SDK::Domain::Definitions
|
11
|
+
Payment = Ingenico::Connect::SDK::Domain::Payment
|
12
|
+
|
13
|
+
def example
|
14
|
+
get_client do |client|
|
15
|
+
card = Definitions::CardWithoutCvv.new
|
16
|
+
card.card_number = '67030000000000003'
|
17
|
+
card.cardholder_name = 'Wile E. Coyote'
|
18
|
+
card.expiry_date = '1220'
|
19
|
+
|
20
|
+
card_payment_method_specific_input = Payment::CompletePaymentCardPaymentMethodSpecificInput.new
|
21
|
+
card_payment_method_specific_input.card = card
|
22
|
+
|
23
|
+
body = Payment::CompletePaymentRequest.new
|
24
|
+
body.card_payment_method_specific_input = card_payment_method_specific_input
|
25
|
+
|
26
|
+
response = client.merchant('merchantId').payments().complete('paymentId', body)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def get_client
|
31
|
+
api_key_id = ENV.fetch('connect.api.apiKeyId', 'someKey')
|
32
|
+
secret_api_key = ENV.fetch('connect.api.secretApiKey', 'someSecret')
|
33
|
+
configuration_file_name = File.join(__FILE__, '..', '..', 'example_configuration.yml')
|
34
|
+
yield client = Ingenico::Connect::SDK::Factory.create_client_from_file(configuration_file_name, api_key_id, secret_api_key)
|
35
|
+
ensure
|
36
|
+
# Free networking resources when done
|
37
|
+
client.close unless client.nil?
|
38
|
+
end
|
@@ -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().third_party_status('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
|
@@ -4,7 +4,7 @@ module Ingenico::Connect::SDK::Domain::Metadata
|
|
4
4
|
|
5
5
|
# Represents metadata part of shopping carts.
|
6
6
|
class ShoppingCartExtension < Ingenico::Connect::SDK::DataObject
|
7
|
-
def initialize(creator, name, version)
|
7
|
+
def initialize(creator, name, version, extension_id=nil)
|
8
8
|
raise ArgumentError.new if creator.nil? or creator.strip.empty?
|
9
9
|
raise ArgumentError.new if name.nil? or name.strip.empty?
|
10
10
|
raise ArgumentError.new if version.nil? or version.to_s.strip.empty?
|
@@ -12,10 +12,11 @@ module Ingenico::Connect::SDK::Domain::Metadata
|
|
12
12
|
@creator = creator
|
13
13
|
@name = name
|
14
14
|
@version = version.to_s
|
15
|
+
@extension_id = extension_id
|
15
16
|
end
|
16
17
|
|
17
18
|
# Constructs a new ShoppingCartExtension from parameter hash
|
18
|
-
# the hash should contain a _creator_, _name_ and
|
19
|
+
# the hash should contain a _creator_, _name_, _version_ and _extensionId_
|
19
20
|
#--
|
20
21
|
# Overridden so ShoppingCartExtension can retain mandatory default arguments
|
21
22
|
#++
|
@@ -23,7 +24,8 @@ module Ingenico::Connect::SDK::Domain::Metadata
|
|
23
24
|
creator = hash['creator'] if hash.has_key?('creator')
|
24
25
|
name = hash['name'] if hash.has_key?('name')
|
25
26
|
version = hash['version'] if hash.has_key?('version')
|
26
|
-
|
27
|
+
extension_id = hash['extensionId'] if hash.has_key?('extensionId')
|
28
|
+
self.new(creator, name, version, extension_id)
|
27
29
|
end
|
28
30
|
|
29
31
|
# Converts the shopping cart metadata to a hash
|
@@ -32,6 +34,7 @@ module Ingenico::Connect::SDK::Domain::Metadata
|
|
32
34
|
add_to_hash(hash, 'creator', @creator)
|
33
35
|
add_to_hash(hash, 'name', @name)
|
34
36
|
add_to_hash(hash, 'version', @version)
|
37
|
+
add_to_hash(hash, 'extensionId', @extension_id)
|
35
38
|
hash
|
36
39
|
end
|
37
40
|
|
@@ -41,8 +44,9 @@ module Ingenico::Connect::SDK::Domain::Metadata
|
|
41
44
|
@creator = hash['creator'] if hash.has_key?('creator')
|
42
45
|
@name = hash['name'] if hash.has_key?('name')
|
43
46
|
@version = hash['version'] if hash.has_key?('version')
|
47
|
+
@extension_id = hash['extensionId'] if hash.has_key?('extensionId')
|
44
48
|
end
|
45
49
|
|
46
|
-
attr_reader :creator, :name, :version
|
50
|
+
attr_reader :creator, :name, :version, :extension_id
|
47
51
|
end
|
48
52
|
end
|
data/lib/ingenico/connect/sdk/domain/payment/complete_payment_card_payment_method_specific_input.rb
ADDED
@@ -0,0 +1,35 @@
|
|
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/card_without_cvv'
|
7
|
+
|
8
|
+
module Ingenico::Connect::SDK
|
9
|
+
module Domain
|
10
|
+
module Payment
|
11
|
+
|
12
|
+
class CompletePaymentCardPaymentMethodSpecificInput < Ingenico::Connect::SDK::DataObject
|
13
|
+
|
14
|
+
# {Ingenico::Connect::SDK::Domain::Definitions::CardWithoutCvv}
|
15
|
+
attr_accessor :card
|
16
|
+
|
17
|
+
def to_h
|
18
|
+
hash = super
|
19
|
+
add_to_hash(hash, 'card', @card)
|
20
|
+
hash
|
21
|
+
end
|
22
|
+
|
23
|
+
def from_hash(hash)
|
24
|
+
super
|
25
|
+
if hash.has_key?('card')
|
26
|
+
if !(hash['card'].is_a? Hash)
|
27
|
+
raise TypeError, "value '%s' is not a Hash" % [hash['card']]
|
28
|
+
end
|
29
|
+
@card = Ingenico::Connect::SDK::Domain::Definitions::CardWithoutCvv.new_from_hash(hash['card'])
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,35 @@
|
|
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/complete_payment_card_payment_method_specific_input'
|
7
|
+
|
8
|
+
module Ingenico::Connect::SDK
|
9
|
+
module Domain
|
10
|
+
module Payment
|
11
|
+
|
12
|
+
class CompletePaymentRequest < Ingenico::Connect::SDK::DataObject
|
13
|
+
|
14
|
+
# {Ingenico::Connect::SDK::Domain::Payment::CompletePaymentCardPaymentMethodSpecificInput}
|
15
|
+
attr_accessor :card_payment_method_specific_input
|
16
|
+
|
17
|
+
def to_h
|
18
|
+
hash = super
|
19
|
+
add_to_hash(hash, 'cardPaymentMethodSpecificInput', @card_payment_method_specific_input)
|
20
|
+
hash
|
21
|
+
end
|
22
|
+
|
23
|
+
def from_hash(hash)
|
24
|
+
super
|
25
|
+
if hash.has_key?('cardPaymentMethodSpecificInput')
|
26
|
+
if !(hash['cardPaymentMethodSpecificInput'].is_a? Hash)
|
27
|
+
raise TypeError, "value '%s' is not a Hash" % [hash['cardPaymentMethodSpecificInput']]
|
28
|
+
end
|
29
|
+
@card_payment_method_specific_input = Ingenico::Connect::SDK::Domain::Payment::CompletePaymentCardPaymentMethodSpecificInput.new_from_hash(hash['cardPaymentMethodSpecificInput'])
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -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/create_payment_result'
|
6
|
+
|
7
|
+
module Ingenico::Connect::SDK
|
8
|
+
module Domain
|
9
|
+
module Payment
|
10
|
+
|
11
|
+
class CompletePaymentResponse < Ingenico::Connect::SDK::Domain::Payment::CreatePaymentResult
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -5,6 +5,7 @@
|
|
5
5
|
require 'ingenico/connect/sdk/data_object'
|
6
6
|
require 'ingenico/connect/sdk/domain/definitions/key_value_pair'
|
7
7
|
require 'ingenico/connect/sdk/domain/payment/redirect_data'
|
8
|
+
require 'ingenico/connect/sdk/domain/product/payment_product_field'
|
8
9
|
|
9
10
|
module Ingenico::Connect::SDK
|
10
11
|
module Domain
|
@@ -15,6 +16,9 @@ module Ingenico::Connect::SDK
|
|
15
16
|
# String
|
16
17
|
attr_accessor :action_type
|
17
18
|
|
19
|
+
# Array of {Ingenico::Connect::SDK::Domain::Product::PaymentProductField}
|
20
|
+
attr_accessor :form_fields
|
21
|
+
|
18
22
|
# {Ingenico::Connect::SDK::Domain::Payment::RedirectData}
|
19
23
|
attr_accessor :redirect_data
|
20
24
|
|
@@ -27,6 +31,7 @@ module Ingenico::Connect::SDK
|
|
27
31
|
def to_h
|
28
32
|
hash = super
|
29
33
|
add_to_hash(hash, 'actionType', @action_type)
|
34
|
+
add_to_hash(hash, 'formFields', @form_fields)
|
30
35
|
add_to_hash(hash, 'redirectData', @redirect_data)
|
31
36
|
add_to_hash(hash, 'renderingData', @rendering_data)
|
32
37
|
add_to_hash(hash, 'showData', @show_data)
|
@@ -38,6 +43,15 @@ module Ingenico::Connect::SDK
|
|
38
43
|
if hash.has_key?('actionType')
|
39
44
|
@action_type = hash['actionType']
|
40
45
|
end
|
46
|
+
if hash.has_key?('formFields')
|
47
|
+
if !(hash['formFields'].is_a? Array)
|
48
|
+
raise TypeError, "value '%s' is not an Array" % [hash['formFields']]
|
49
|
+
end
|
50
|
+
@form_fields = []
|
51
|
+
hash['formFields'].each do |e|
|
52
|
+
@form_fields << Ingenico::Connect::SDK::Domain::Product::PaymentProductField.new_from_hash(e)
|
53
|
+
end
|
54
|
+
end
|
41
55
|
if hash.has_key?('redirectData')
|
42
56
|
if !(hash['redirectData'].is_a? Hash)
|
43
57
|
raise TypeError, "value '%s' is not a Hash" % [hash['redirectData']]
|
@@ -0,0 +1,31 @@
|
|
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
|
+
class ThirdPartyStatusResponse < Ingenico::Connect::SDK::DataObject
|
12
|
+
|
13
|
+
# String
|
14
|
+
attr_accessor :third_party_status
|
15
|
+
|
16
|
+
def to_h
|
17
|
+
hash = super
|
18
|
+
add_to_hash(hash, 'thirdPartyStatus', @third_party_status)
|
19
|
+
hash
|
20
|
+
end
|
21
|
+
|
22
|
+
def from_hash(hash)
|
23
|
+
super
|
24
|
+
if hash.has_key?('thirdPartyStatus')
|
25
|
+
@third_party_status = hash['thirdPartyStatus']
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -103,13 +103,14 @@ module Ingenico::Connect::SDK
|
|
103
103
|
end
|
104
104
|
|
105
105
|
def get_shopping_cart_extension(properties, prefix)
|
106
|
-
creator= properties[prefix + '.shoppingCartExtension.creator']
|
107
|
-
name= properties[prefix + '.shoppingCartExtension.name']
|
108
|
-
version= properties[prefix + '.shoppingCartExtension.version']
|
109
|
-
|
106
|
+
creator = properties[prefix + '.shoppingCartExtension.creator']
|
107
|
+
name = properties[prefix + '.shoppingCartExtension.name']
|
108
|
+
version = properties[prefix + '.shoppingCartExtension.version']
|
109
|
+
extension_id = properties[prefix + '.shoppingCartExtension.extensionId']
|
110
|
+
if creator.nil? && name.nil? && version.nil? && extension_id.nil?
|
110
111
|
nil
|
111
112
|
else
|
112
|
-
Domain::Metadata::ShoppingCartExtension.new(creator, name, version)
|
113
|
+
Domain::Metadata::ShoppingCartExtension.new(creator, name, version, extension_id)
|
113
114
|
end
|
114
115
|
end
|
115
116
|
|
@@ -9,10 +9,12 @@ require 'ingenico/connect/sdk/domain/capture/captures_response'
|
|
9
9
|
require 'ingenico/connect/sdk/domain/errors/error_response'
|
10
10
|
require 'ingenico/connect/sdk/domain/payment/cancel_approval_payment_response'
|
11
11
|
require 'ingenico/connect/sdk/domain/payment/cancel_payment_response'
|
12
|
+
require 'ingenico/connect/sdk/domain/payment/complete_payment_response'
|
12
13
|
require 'ingenico/connect/sdk/domain/payment/create_payment_response'
|
13
14
|
require 'ingenico/connect/sdk/domain/payment/payment_approval_response'
|
14
15
|
require 'ingenico/connect/sdk/domain/payment/payment_error_response'
|
15
16
|
require 'ingenico/connect/sdk/domain/payment/payment_response'
|
17
|
+
require 'ingenico/connect/sdk/domain/payment/third_party_status_response'
|
16
18
|
require 'ingenico/connect/sdk/domain/refund/refund_error_response'
|
17
19
|
require 'ingenico/connect/sdk/domain/refund/refund_response'
|
18
20
|
require 'ingenico/connect/sdk/domain/token/create_token_response'
|
@@ -199,6 +201,72 @@ module Ingenico::Connect::SDK
|
|
199
201
|
raise create_exception(e.status_code, e.body, error_object, context)
|
200
202
|
end
|
201
203
|
|
204
|
+
# Resource /{{merchantId}}/payments/{{paymentId}}/complete
|
205
|
+
#
|
206
|
+
# {https://epayments-api.developer-ingenico.com/s2sapi/v1/en_US/ruby/payments/complete.html Complete payment}
|
207
|
+
# payment_id:: String
|
208
|
+
# body:: {Ingenico::Connect::SDK::Domain::Payment::CompletePaymentRequest}
|
209
|
+
# context:: {Ingenico::Connect::SDK::CallContext}
|
210
|
+
# Returns:: {Ingenico::Connect::SDK::Domain::Payment::CompletePaymentResponse}
|
211
|
+
# Raises:: {Ingenico::Connect::SDK::ValidationException} if the request was not correct and couldn't be processed (HTTP status code 400)
|
212
|
+
# Raises:: {Ingenico::Connect::SDK::AuthorizationException} if the request was not allowed (HTTP status code 403)
|
213
|
+
# Raises:: {Ingenico::Connect::SDK::IdempotenceException} if an idempotent request caused a conflict (HTTP status code 409)
|
214
|
+
# Raises:: {Ingenico::Connect::SDK::ReferenceException} if an object was attempted to be referenced that doesn't exist or has been removed,
|
215
|
+
# or there was a conflict (HTTP status code 404, 409 or 410)
|
216
|
+
# Raises:: {Ingenico::Connect::SDK::GlobalCollectException} if something went wrong at the GlobalCollect platform,
|
217
|
+
# the GlobalCollect platform was unable to process a message from a downstream partner/acquirer,
|
218
|
+
# or the service that you're trying to reach is temporary unavailable (HTTP status code 500, 502 or 503)
|
219
|
+
# Raises:: {Ingenico::Connect::SDK::ApiException} if the GlobalCollect platform returned any other error
|
220
|
+
def complete(payment_id, body, context=nil)
|
221
|
+
path_context = {
|
222
|
+
'paymentId' => payment_id,
|
223
|
+
}
|
224
|
+
uri = instantiate_uri('/{apiVersion}/{merchantId}/payments/{paymentId}/complete', path_context)
|
225
|
+
return @communicator.post(
|
226
|
+
uri,
|
227
|
+
client_headers,
|
228
|
+
nil,
|
229
|
+
body,
|
230
|
+
Ingenico::Connect::SDK::Domain::Payment::CompletePaymentResponse,
|
231
|
+
context)
|
232
|
+
rescue ResponseException => e
|
233
|
+
error_type = Ingenico::Connect::SDK::Domain::Errors::ErrorResponse
|
234
|
+
error_object = @communicator.marshaller.unmarshal(e.body, error_type)
|
235
|
+
raise create_exception(e.status_code, e.body, error_object, context)
|
236
|
+
end
|
237
|
+
|
238
|
+
# Resource /{{merchantId}}/payments/{{paymentId}}/thirdpartystatus
|
239
|
+
#
|
240
|
+
# {https://epayments-api.developer-ingenico.com/s2sapi/v1/en_US/ruby/payments/thirdPartyStatus.html Third party status poll}
|
241
|
+
# payment_id:: String
|
242
|
+
# context:: {Ingenico::Connect::SDK::CallContext}
|
243
|
+
# Returns:: {Ingenico::Connect::SDK::Domain::Payment::ThirdPartyStatusResponse}
|
244
|
+
# Raises:: {Ingenico::Connect::SDK::ValidationException} if the request was not correct and couldn't be processed (HTTP status code 400)
|
245
|
+
# Raises:: {Ingenico::Connect::SDK::AuthorizationException} if the request was not allowed (HTTP status code 403)
|
246
|
+
# Raises:: {Ingenico::Connect::SDK::IdempotenceException} if an idempotent request caused a conflict (HTTP status code 409)
|
247
|
+
# Raises:: {Ingenico::Connect::SDK::ReferenceException} if an object was attempted to be referenced that doesn't exist or has been removed,
|
248
|
+
# or there was a conflict (HTTP status code 404, 409 or 410)
|
249
|
+
# Raises:: {Ingenico::Connect::SDK::GlobalCollectException} if something went wrong at the GlobalCollect platform,
|
250
|
+
# the GlobalCollect platform was unable to process a message from a downstream partner/acquirer,
|
251
|
+
# or the service that you're trying to reach is temporary unavailable (HTTP status code 500, 502 or 503)
|
252
|
+
# Raises:: {Ingenico::Connect::SDK::ApiException} if the GlobalCollect platform returned any other error
|
253
|
+
def third_party_status(payment_id, context=nil)
|
254
|
+
path_context = {
|
255
|
+
'paymentId' => payment_id,
|
256
|
+
}
|
257
|
+
uri = instantiate_uri('/{apiVersion}/{merchantId}/payments/{paymentId}/thirdpartystatus', path_context)
|
258
|
+
return @communicator.get(
|
259
|
+
uri,
|
260
|
+
client_headers,
|
261
|
+
nil,
|
262
|
+
Ingenico::Connect::SDK::Domain::Payment::ThirdPartyStatusResponse,
|
263
|
+
context)
|
264
|
+
rescue ResponseException => e
|
265
|
+
error_type = Ingenico::Connect::SDK::Domain::Errors::ErrorResponse
|
266
|
+
error_object = @communicator.marshaller.unmarshal(e.body, error_type)
|
267
|
+
raise create_exception(e.status_code, e.body, error_object, context)
|
268
|
+
end
|
269
|
+
|
202
270
|
# Resource /{{merchantId}}/payments/{{paymentId}}/cancel
|
203
271
|
#
|
204
272
|
# {https://epayments-api.developer-ingenico.com/s2sapi/v1/en_US/ruby/payments/cancel.html Cancel payment}
|
@@ -234,7 +302,7 @@ module Ingenico::Connect::SDK
|
|
234
302
|
|
235
303
|
# Resource /{{merchantId}}/payments/{{paymentId}}/cancelapproval
|
236
304
|
#
|
237
|
-
# {https://epayments-api.developer-ingenico.com/s2sapi/v1/en_US/ruby/payments/cancelapproval.html Undo capture payment
|
305
|
+
# {https://epayments-api.developer-ingenico.com/s2sapi/v1/en_US/ruby/payments/cancelapproval.html Undo capture payment}
|
238
306
|
# payment_id:: String
|
239
307
|
# context:: {Ingenico::Connect::SDK::CallContext}
|
240
308
|
# Returns:: {Ingenico::Connect::SDK::Domain::Payment::CancelApprovalPaymentResponse}
|
@@ -29,6 +29,9 @@ module Ingenico::Connect::SDK
|
|
29
29
|
# Array of String
|
30
30
|
attr_accessor :hide
|
31
31
|
|
32
|
+
# true/false
|
33
|
+
attr_accessor :force_basic_flow
|
34
|
+
|
32
35
|
# Adds the parameter _value_ to the _hide_ Array
|
33
36
|
def add_hide(value)
|
34
37
|
unless @hide
|
@@ -46,6 +49,7 @@ module Ingenico::Connect::SDK
|
|
46
49
|
add_parameter(result, 'amount', @amount)
|
47
50
|
add_parameter(result, 'isRecurring', @is_recurring)
|
48
51
|
add_parameter(result, 'hide', @hide)
|
52
|
+
add_parameter(result, 'forceBasicFlow', @force_basic_flow)
|
49
53
|
result
|
50
54
|
end
|
51
55
|
end
|
@@ -5,7 +5,7 @@ module Ingenico::Connect::SDK
|
|
5
5
|
|
6
6
|
# Manages metadata about the server using the SDK
|
7
7
|
class MetaDataProvider
|
8
|
-
@@SDK_VERSION = '1.
|
8
|
+
@@SDK_VERSION = '1.7.0'
|
9
9
|
@@SERVER_META_INFO_HEADER = 'X-GCS-ServerMetaInfo'
|
10
10
|
@@PROHIBITED_HEADERS = [@@SERVER_META_INFO_HEADER, 'X-GCS-Idempotence-Key',
|
11
11
|
'Date', 'Content-Type', 'Authorization'].sort!.freeze
|
@@ -157,7 +157,8 @@ describe 'CommunicatorConfiguration' do
|
|
157
157
|
connect.api.integrator: Ingenico.Integrator
|
158
158
|
connect.api.shoppingCartExtension.creator: Ingenico.Creator
|
159
159
|
connect.api.shoppingCartExtension.name: Ingenico.ShoppingCarts
|
160
|
-
connect.api.shoppingCartExtension.version: 1.0
|
160
|
+
connect.api.shoppingCartExtension.version: 1.0
|
161
|
+
connect.api.shoppingCartExtension.extensionId: ExtensionId'
|
161
162
|
config = YAML.load(yaml)
|
162
163
|
|
163
164
|
communicator_config = CommunicatorConfiguration.new(properties: config)
|
@@ -175,5 +176,6 @@ describe 'CommunicatorConfiguration' do
|
|
175
176
|
expect(communicator_config.shopping_cart_extension.creator).to eq('Ingenico.Creator')
|
176
177
|
expect(communicator_config.shopping_cart_extension.name).to eq('Ingenico.ShoppingCarts')
|
177
178
|
expect(communicator_config.shopping_cart_extension.version).to eq('1.0')
|
179
|
+
expect(communicator_config.shopping_cart_extension.extension_id).to eq('ExtensionId')
|
178
180
|
end
|
179
181
|
end
|
@@ -8,6 +8,27 @@ describe 'MetaDataProvider' do
|
|
8
8
|
RequestHeader ||= Ingenico::Connect::SDK::RequestHeader
|
9
9
|
|
10
10
|
it 'can give meta_data_headers with a full shopping cart' do
|
11
|
+
shopping_cart_extension = Ingenico::Connect::SDK::Domain::Metadata::ShoppingCartExtension.new('Ingenico.creator', 'Extension', '1.0', 'ExtensionId')
|
12
|
+
meta_data_provider = MetaDataProvider.new('Ingenico', shopping_cart_extension: shopping_cart_extension)
|
13
|
+
|
14
|
+
request_headers = meta_data_provider.meta_data_headers
|
15
|
+
expect(request_headers.length).to eq(1)
|
16
|
+
expect(request_headers.length).to eq(1)
|
17
|
+
|
18
|
+
# Server meta info is stored in json format and encoded using utf-8 and base64
|
19
|
+
server_meta_info_json = Base64.strict_decode64(request_headers[0].value).force_encoding('utf-8')
|
20
|
+
server_meta_info = Ingenico::Connect::SDK::DefaultImpl::DefaultMarshaller.INSTANCE.unmarshal(server_meta_info_json, MetaDataProvider::ServerMetaInfo)
|
21
|
+
|
22
|
+
expect(server_meta_info.platform_identifier).to eq(meta_data_provider.send(:get_platform_identifier))
|
23
|
+
expect(server_meta_info.sdk_identifier).to eq(meta_data_provider.send(:get_sdk_identifier))
|
24
|
+
expect(server_meta_info.sdk_creator).to eq('Ingenico')
|
25
|
+
expect(server_meta_info.shopping_cart_extension.creator).to eq(shopping_cart_extension.creator)
|
26
|
+
expect(server_meta_info.shopping_cart_extension.name).to eq(shopping_cart_extension.name)
|
27
|
+
expect(server_meta_info.shopping_cart_extension.version).to eq(shopping_cart_extension.version)
|
28
|
+
expect(server_meta_info.shopping_cart_extension.extension_id).to eq(shopping_cart_extension.extension_id)
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'can give meta_data_headers with a full shopping cart without an extension id' do
|
11
32
|
shopping_cart_extension = Ingenico::Connect::SDK::Domain::Metadata::ShoppingCartExtension.new('Ingenico.creator', 'Extension', '1.0')
|
12
33
|
meta_data_provider = MetaDataProvider.new('Ingenico', shopping_cart_extension: shopping_cart_extension)
|
13
34
|
|
@@ -25,6 +46,7 @@ describe 'MetaDataProvider' do
|
|
25
46
|
expect(server_meta_info.shopping_cart_extension.creator).to eq(shopping_cart_extension.creator)
|
26
47
|
expect(server_meta_info.shopping_cart_extension.name).to eq(shopping_cart_extension.name)
|
27
48
|
expect(server_meta_info.shopping_cart_extension.version).to eq(shopping_cart_extension.version)
|
49
|
+
expect(server_meta_info.shopping_cart_extension.extension_id).to eq(shopping_cart_extension.extension_id)
|
28
50
|
end
|
29
51
|
|
30
52
|
it 'provides a server_meta_info header when no additional headers are provided' do
|
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: 1.
|
4
|
+
version: 1.7.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: 2017-
|
11
|
+
date: 2017-08-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httpclient
|
@@ -115,9 +115,11 @@ files:
|
|
115
115
|
- examples/merchant/payments/cancel_approval_payment_example.rb
|
116
116
|
- examples/merchant/payments/cancel_payment_example.rb
|
117
117
|
- examples/merchant/payments/capture_payment_example.rb
|
118
|
+
- examples/merchant/payments/complete_payment_example.rb
|
118
119
|
- examples/merchant/payments/create_payment_example.rb
|
119
120
|
- examples/merchant/payments/get_payment_captures_example.rb
|
120
121
|
- examples/merchant/payments/get_payment_example.rb
|
122
|
+
- examples/merchant/payments/get_third_party_status_example.rb
|
121
123
|
- examples/merchant/payments/process_challenged_payment_example.rb
|
122
124
|
- examples/merchant/payments/refund_payment_example.rb
|
123
125
|
- examples/merchant/payments/tokenize_payment_example.rb
|
@@ -240,6 +242,9 @@ files:
|
|
240
242
|
- lib/ingenico/connect/sdk/domain/payment/cash_payment_method_specific_output.rb
|
241
243
|
- lib/ingenico/connect/sdk/domain/payment/cash_payment_product1503_specific_input.rb
|
242
244
|
- lib/ingenico/connect/sdk/domain/payment/cash_payment_product1504_specific_input.rb
|
245
|
+
- lib/ingenico/connect/sdk/domain/payment/complete_payment_card_payment_method_specific_input.rb
|
246
|
+
- lib/ingenico/connect/sdk/domain/payment/complete_payment_request.rb
|
247
|
+
- lib/ingenico/connect/sdk/domain/payment/complete_payment_response.rb
|
243
248
|
- lib/ingenico/connect/sdk/domain/payment/contact_details.rb
|
244
249
|
- lib/ingenico/connect/sdk/domain/payment/create_payment_request.rb
|
245
250
|
- lib/ingenico/connect/sdk/domain/payment/create_payment_response.rb
|
@@ -301,6 +306,7 @@ files:
|
|
301
306
|
- lib/ingenico/connect/sdk/domain/payment/sepa_direct_debit_payment_method_specific_input.rb
|
302
307
|
- lib/ingenico/connect/sdk/domain/payment/sepa_direct_debit_payment_method_specific_output.rb
|
303
308
|
- lib/ingenico/connect/sdk/domain/payment/shopping_cart.rb
|
309
|
+
- lib/ingenico/connect/sdk/domain/payment/third_party_status_response.rb
|
304
310
|
- lib/ingenico/connect/sdk/domain/payment/three_d_secure_results.rb
|
305
311
|
- lib/ingenico/connect/sdk/domain/payment/tokenize_payment_request.rb
|
306
312
|
- lib/ingenico/connect/sdk/domain/payout/abstract_payout_method_specific_input.rb
|