direct-sdk-ruby 1.0.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 +7 -0
- data/Gemfile +2 -0
- data/LICENSE.txt +22 -0
- data/README.md +141 -0
- data/Rakefile +34 -0
- data/direct-sdk-ruby.gemspec +28 -0
- data/lib/ingenico/direct/sdk.rb +26 -0
- data/lib/ingenico/direct/sdk/api_exception.rb +42 -0
- data/lib/ingenico/direct/sdk/api_resource.rb +115 -0
- data/lib/ingenico/direct/sdk/authenticator.rb +16 -0
- data/lib/ingenico/direct/sdk/authorization_exception.rb +13 -0
- data/lib/ingenico/direct/sdk/call_context.rb +26 -0
- data/lib/ingenico/direct/sdk/client.rb +85 -0
- data/lib/ingenico/direct/sdk/communication_exception.rb +16 -0
- data/lib/ingenico/direct/sdk/communicator.rb +301 -0
- data/lib/ingenico/direct/sdk/communicator_configuration.rb +59 -0
- data/lib/ingenico/direct/sdk/connection.rb +41 -0
- data/lib/ingenico/direct/sdk/data_object.rb +32 -0
- data/lib/ingenico/direct/sdk/declined_payment_exception.rb +30 -0
- data/lib/ingenico/direct/sdk/declined_payout_exception.rb +32 -0
- data/lib/ingenico/direct/sdk/declined_refund_exception.rb +32 -0
- data/lib/ingenico/direct/sdk/declined_transaction_exception.rb +16 -0
- data/lib/ingenico/direct/sdk/defaultimpl.rb +6 -0
- data/lib/ingenico/direct/sdk/defaultimpl/authorization_type.rb +24 -0
- data/lib/ingenico/direct/sdk/defaultimpl/default_authenticator.rb +108 -0
- data/lib/ingenico/direct/sdk/defaultimpl/default_connection.rb +293 -0
- data/lib/ingenico/direct/sdk/defaultimpl/default_marshaller.rb +32 -0
- data/lib/ingenico/direct/sdk/direct_exception.rb +15 -0
- data/lib/ingenico/direct/sdk/domain/account_on_file.rb +50 -0
- data/lib/ingenico/direct/sdk/domain/account_on_file_attribute.rb +39 -0
- data/lib/ingenico/direct/sdk/domain/account_on_file_display_hints.rb +38 -0
- data/lib/ingenico/direct/sdk/domain/additional_order_input.rb +47 -0
- data/lib/ingenico/direct/sdk/domain/address.rb +51 -0
- data/lib/ingenico/direct/sdk/domain/address_personal.rb +59 -0
- data/lib/ingenico/direct/sdk/domain/airline_data.rb +129 -0
- data/lib/ingenico/direct/sdk/domain/airline_flight_leg.rb +99 -0
- data/lib/ingenico/direct/sdk/domain/airline_passenger.rb +39 -0
- data/lib/ingenico/direct/sdk/domain/amount_breakdown.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/amount_of_money.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/api_error.rb +47 -0
- data/lib/ingenico/direct/sdk/domain/browser_data.rb +39 -0
- data/lib/ingenico/direct/sdk/domain/cancel_payment_response.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/capture.rb +47 -0
- data/lib/ingenico/direct/sdk/domain/capture_output.rb +79 -0
- data/lib/ingenico/direct/sdk/domain/capture_payment_request.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/capture_response.rb +47 -0
- data/lib/ingenico/direct/sdk/domain/capture_status_output.rb +27 -0
- data/lib/ingenico/direct/sdk/domain/captures_response.rb +34 -0
- data/lib/ingenico/direct/sdk/domain/card.rb +39 -0
- data/lib/ingenico/direct/sdk/domain/card_essentials.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/card_fraud_results.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/card_payment_method_specific_input.rb +95 -0
- data/lib/ingenico/direct/sdk/domain/card_payment_method_specific_input_base.rb +79 -0
- data/lib/ingenico/direct/sdk/domain/card_payment_method_specific_output.rb +67 -0
- data/lib/ingenico/direct/sdk/domain/card_payout_method_specific_input.rb +39 -0
- data/lib/ingenico/direct/sdk/domain/card_recurrence_details.rb +27 -0
- data/lib/ingenico/direct/sdk/domain/card_without_cvv.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/company_information.rb +27 -0
- data/lib/ingenico/direct/sdk/domain/complete_payment_card_payment_method_specific_input.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/complete_payment_request.rb +39 -0
- data/lib/ingenico/direct/sdk/domain/complete_payment_response.rb +47 -0
- data/lib/ingenico/direct/sdk/domain/contact_details.rb +43 -0
- data/lib/ingenico/direct/sdk/domain/create_hosted_checkout_request.rb +63 -0
- data/lib/ingenico/direct/sdk/domain/create_hosted_checkout_response.rb +49 -0
- data/lib/ingenico/direct/sdk/domain/create_hosted_tokenization_request.rb +39 -0
- data/lib/ingenico/direct/sdk/domain/create_hosted_tokenization_response.rb +41 -0
- data/lib/ingenico/direct/sdk/domain/create_payment_request.rb +67 -0
- data/lib/ingenico/direct/sdk/domain/create_payment_response.rb +47 -0
- data/lib/ingenico/direct/sdk/domain/create_payout_request.rb +47 -0
- data/lib/ingenico/direct/sdk/domain/create_token_request.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/created_payment_output.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/created_token_response.rb +51 -0
- data/lib/ingenico/direct/sdk/domain/customer.rb +87 -0
- data/lib/ingenico/direct/sdk/domain/customer_account.rb +71 -0
- data/lib/ingenico/direct/sdk/domain/customer_account_authentication.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/customer_device.rb +51 -0
- data/lib/ingenico/direct/sdk/domain/customer_payment_activity.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/customer_token.rb +47 -0
- data/lib/ingenico/direct/sdk/domain/decrypted_payment_data.rb +43 -0
- data/lib/ingenico/direct/sdk/domain/directory_entry.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/empty_validator.rb +13 -0
- data/lib/ingenico/direct/sdk/domain/error_response.rb +38 -0
- data/lib/ingenico/direct/sdk/domain/external_cardholder_authentication_data.rb +59 -0
- data/lib/ingenico/direct/sdk/domain/external_token_linked.rb +27 -0
- data/lib/ingenico/direct/sdk/domain/fixed_list_validator.rb +33 -0
- data/lib/ingenico/direct/sdk/domain/fraud_fields.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/fraud_results.rb +27 -0
- data/lib/ingenico/direct/sdk/domain/g_pay_three_d_secure.rb +47 -0
- data/lib/ingenico/direct/sdk/domain/get_hosted_checkout_response.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/get_hosted_tokenization_response.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/get_payment_product_groups_response.rb +34 -0
- data/lib/ingenico/direct/sdk/domain/get_payment_products_response.rb +34 -0
- data/lib/ingenico/direct/sdk/domain/gift_card_purchase.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/hosted_checkout_specific_input.rb +55 -0
- data/lib/ingenico/direct/sdk/domain/hosted_checkout_specific_output.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/label_template_element.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/length_validator.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/line_item.rb +47 -0
- data/lib/ingenico/direct/sdk/domain/line_item_invoice_data.rb +27 -0
- data/lib/ingenico/direct/sdk/domain/loan_recipient.rb +43 -0
- data/lib/ingenico/direct/sdk/domain/merchant_action.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/mobile_payment_data.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/mobile_payment_method_specific_input.rb +63 -0
- data/lib/ingenico/direct/sdk/domain/mobile_payment_method_specific_output.rb +59 -0
- data/lib/ingenico/direct/sdk/domain/mobile_payment_product320_specific_input.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/order.rb +71 -0
- data/lib/ingenico/direct/sdk/domain/order_line_details.rb +55 -0
- data/lib/ingenico/direct/sdk/domain/order_references.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/order_status_output.rb +50 -0
- data/lib/ingenico/direct/sdk/domain/order_type_information.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/payment_account_on_file.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/payment_creation_output.rb +39 -0
- data/lib/ingenico/direct/sdk/domain/payment_error_response.rb +46 -0
- data/lib/ingenico/direct/sdk/domain/payment_output.rb +79 -0
- data/lib/ingenico/direct/sdk/domain/payment_product.rb +77 -0
- data/lib/ingenico/direct/sdk/domain/payment_product5100_specific_input.rb +27 -0
- data/lib/ingenico/direct/sdk/domain/payment_product5402_specific_output.rb +27 -0
- data/lib/ingenico/direct/sdk/domain/payment_product5500_specific_output.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/payment_product771_specific_output.rb +13 -0
- data/lib/ingenico/direct/sdk/domain/payment_product840_customer_account.rb +55 -0
- data/lib/ingenico/direct/sdk/domain/payment_product840_specific_output.rb +54 -0
- data/lib/ingenico/direct/sdk/domain/payment_product_display_hints.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/payment_product_field.rb +47 -0
- data/lib/ingenico/direct/sdk/domain/payment_product_field_data_restrictions.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/payment_product_field_display_element.rb +39 -0
- data/lib/ingenico/direct/sdk/domain/payment_product_field_display_hints.rb +71 -0
- data/lib/ingenico/direct/sdk/domain/payment_product_field_form_element.rb +38 -0
- data/lib/ingenico/direct/sdk/domain/payment_product_field_tooltip.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/payment_product_field_validators.rb +91 -0
- data/lib/ingenico/direct/sdk/domain/payment_product_filter.rb +43 -0
- data/lib/ingenico/direct/sdk/domain/payment_product_filters_hosted_checkout.rb +38 -0
- data/lib/ingenico/direct/sdk/domain/payment_product_group.rb +43 -0
- data/lib/ingenico/direct/sdk/domain/payment_product_networks_response.rb +33 -0
- data/lib/ingenico/direct/sdk/domain/payment_references.rb +27 -0
- data/lib/ingenico/direct/sdk/domain/payment_response.rb +55 -0
- data/lib/ingenico/direct/sdk/domain/payment_status_output.rb +58 -0
- data/lib/ingenico/direct/sdk/domain/payout_error_response.rb +46 -0
- data/lib/ingenico/direct/sdk/domain/payout_output.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/payout_response.rb +47 -0
- data/lib/ingenico/direct/sdk/domain/payout_result.rb +47 -0
- data/lib/ingenico/direct/sdk/domain/payout_status_output.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/personal_information.rb +39 -0
- data/lib/ingenico/direct/sdk/domain/personal_information_token.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/personal_name.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/personal_name_token.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/product_directory.rb +34 -0
- data/lib/ingenico/direct/sdk/domain/protection_eligibility.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/range_validator.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/redirect_data.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/redirect_payment_method_specific_input.rb +67 -0
- data/lib/ingenico/direct/sdk/domain/redirect_payment_method_specific_output.rb +67 -0
- data/lib/ingenico/direct/sdk/domain/redirect_payment_product809_specific_input.rb +27 -0
- data/lib/ingenico/direct/sdk/domain/redirect_payment_product840_specific_input.rb +27 -0
- data/lib/ingenico/direct/sdk/domain/redirection_data.rb +27 -0
- data/lib/ingenico/direct/sdk/domain/refund_card_method_specific_output.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/refund_e_wallet_method_specific_output.rb +39 -0
- data/lib/ingenico/direct/sdk/domain/refund_error_response.rb +46 -0
- data/lib/ingenico/direct/sdk/domain/refund_mobile_method_specific_output.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/refund_output.rb +79 -0
- data/lib/ingenico/direct/sdk/domain/refund_payment_product840_customer_account.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/refund_payment_product840_specific_output.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/refund_redirect_method_specific_output.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/refund_request.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/refund_response.rb +47 -0
- data/lib/ingenico/direct/sdk/domain/refunds_response.rb +34 -0
- data/lib/ingenico/direct/sdk/domain/regular_expression_validator.rb +27 -0
- data/lib/ingenico/direct/sdk/domain/sepa_direct_debit_payment_method_specific_output.rb +43 -0
- data/lib/ingenico/direct/sdk/domain/session_request.rb +33 -0
- data/lib/ingenico/direct/sdk/domain/session_response.rb +49 -0
- data/lib/ingenico/direct/sdk/domain/shipping.rb +51 -0
- data/lib/ingenico/direct/sdk/domain/shopping_cart.rb +65 -0
- data/lib/ingenico/direct/sdk/domain/shopping_cart_extension.rb +52 -0
- data/lib/ingenico/direct/sdk/domain/test_connection.rb +27 -0
- data/lib/ingenico/direct/sdk/domain/three_d_secure.rb +63 -0
- data/lib/ingenico/direct/sdk/domain/three_d_secure_base.rb +47 -0
- data/lib/ingenico/direct/sdk/domain/three_d_secure_data.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/three_d_secure_results.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/token_card.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/token_card_data.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/token_card_specific_input.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/token_data.rb +31 -0
- data/lib/ingenico/direct/sdk/domain/token_e_wallet.rb +35 -0
- data/lib/ingenico/direct/sdk/domain/token_response.rb +55 -0
- data/lib/ingenico/direct/sdk/domain/value_mapping_element.rb +38 -0
- data/lib/ingenico/direct/sdk/endpoint_configuration.rb +127 -0
- data/lib/ingenico/direct/sdk/exceptions.rb +8 -0
- data/lib/ingenico/direct/sdk/factory.rb +136 -0
- data/lib/ingenico/direct/sdk/idempotence_exception.rb +24 -0
- data/lib/ingenico/direct/sdk/logging.rb +10 -0
- data/lib/ingenico/direct/sdk/logging/communicator_logger.rb +22 -0
- data/lib/ingenico/direct/sdk/logging/log_message_builder.rb +56 -0
- data/lib/ingenico/direct/sdk/logging/logging_capable.rb +19 -0
- data/lib/ingenico/direct/sdk/logging/logging_util.rb +271 -0
- data/lib/ingenico/direct/sdk/logging/request_log_message_builder.rb +39 -0
- data/lib/ingenico/direct/sdk/logging/response_log_message_builder.rb +34 -0
- data/lib/ingenico/direct/sdk/logging/ruby_communicator_logger.rb +57 -0
- data/lib/ingenico/direct/sdk/logging/stdout_communicator_logger.rb +34 -0
- data/lib/ingenico/direct/sdk/marshaller.rb +24 -0
- data/lib/ingenico/direct/sdk/marshaller_syntax_exception.rb +6 -0
- data/lib/ingenico/direct/sdk/merchant/hostedcheckout/hosted_checkout_client.rb +87 -0
- data/lib/ingenico/direct/sdk/merchant/hostedtokenization/hosted_tokenization_client.rb +87 -0
- data/lib/ingenico/direct/sdk/merchant/merchant_client.rb +83 -0
- data/lib/ingenico/direct/sdk/merchant/payments/payments_client.rb +291 -0
- data/lib/ingenico/direct/sdk/merchant/payouts/payouts_client.rb +87 -0
- data/lib/ingenico/direct/sdk/merchant/productgroups/get_product_group_params.rb +58 -0
- data/lib/ingenico/direct/sdk/merchant/productgroups/get_product_groups_params.rb +58 -0
- data/lib/ingenico/direct/sdk/merchant/productgroups/product_groups_client.rb +88 -0
- data/lib/ingenico/direct/sdk/merchant/products/get_payment_product_networks_params.rb +39 -0
- data/lib/ingenico/direct/sdk/merchant/products/get_payment_product_params.rb +58 -0
- data/lib/ingenico/direct/sdk/merchant/products/get_payment_products_params.rb +58 -0
- data/lib/ingenico/direct/sdk/merchant/products/get_product_directory_params.rb +31 -0
- data/lib/ingenico/direct/sdk/merchant/products/products_client.rb +156 -0
- data/lib/ingenico/direct/sdk/merchant/services/services_client.rb +52 -0
- data/lib/ingenico/direct/sdk/merchant/sessions/sessions_client.rb +55 -0
- data/lib/ingenico/direct/sdk/merchant/tokens/tokens_client.rb +117 -0
- data/lib/ingenico/direct/sdk/meta_data_provider.rb +150 -0
- data/lib/ingenico/direct/sdk/modules.rb +71 -0
- data/lib/ingenico/direct/sdk/not_found_exception.rb +16 -0
- data/lib/ingenico/direct/sdk/param_request.rb +11 -0
- data/lib/ingenico/direct/sdk/pooled_connection.rb +21 -0
- data/lib/ingenico/direct/sdk/proxy_configuration.rb +74 -0
- data/lib/ingenico/direct/sdk/reference_exception.rb +14 -0
- data/lib/ingenico/direct/sdk/request_header.rb +50 -0
- data/lib/ingenico/direct/sdk/request_param.rb +23 -0
- data/lib/ingenico/direct/sdk/response_exception.rb +47 -0
- data/lib/ingenico/direct/sdk/response_header.rb +42 -0
- data/lib/ingenico/direct/sdk/validation_exception.rb +14 -0
- data/lib/ingenico/direct/sdk/webhooks.rb +11 -0
- data/lib/ingenico/direct/sdk/webhooks/api_version_mismatch_exception.rb +20 -0
- data/lib/ingenico/direct/sdk/webhooks/in_memory_secret_key_store.rb +56 -0
- data/lib/ingenico/direct/sdk/webhooks/secret_key_not_available_exception.rb +17 -0
- data/lib/ingenico/direct/sdk/webhooks/secret_key_store.rb +16 -0
- data/lib/ingenico/direct/sdk/webhooks/signature_validation_exception.rb +19 -0
- data/lib/ingenico/direct/sdk/webhooks/webhooks.rb +22 -0
- data/lib/ingenico/direct/sdk/webhooks/webhooks_event.rb +58 -0
- data/lib/ingenico/direct/sdk/webhooks/webhooks_helper.rb +99 -0
- data/lib/ingenico/direct/sdk/webhooks/webhooks_helper_builder.rb +25 -0
- metadata +385 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module Ingenico::Direct::SDK
|
|
2
|
+
module Logging
|
|
3
|
+
|
|
4
|
+
# Class that converts data about a request into a properly formatted log message.
|
|
5
|
+
# Formats request id, http method, uri, headers and body into a helpful message.
|
|
6
|
+
class RequestLogMessageBuilder < Ingenico::Direct::SDK::Logging::LogMessageBuilder
|
|
7
|
+
|
|
8
|
+
def initialize(request_id, method, uri)
|
|
9
|
+
super(request_id)
|
|
10
|
+
@method = method
|
|
11
|
+
@uri = uri
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Constructs and returns a log message based on the request data. The log message is a string.
|
|
15
|
+
def get_message
|
|
16
|
+
@body ?
|
|
17
|
+
sprintf(MSG_TEMPLATE_WITH_BODY, @request_id, empty_if_null(@method),
|
|
18
|
+
format_uri, @headers, empty_if_null(@content_type), @body) :
|
|
19
|
+
sprintf(MSG_TEMPLATE_WITHOUT_BODY, @request_id, empty_if_null(@method), format_uri, @headers)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
|
|
24
|
+
MSG_TEMPLATE_WITHOUT_BODY = "Outgoing request (requestId=\"%s\"):\n"\
|
|
25
|
+
" method: \"%s\"\n"\
|
|
26
|
+
" uri: \"%s\"\n"\
|
|
27
|
+
" headers: \"%s\"".freeze
|
|
28
|
+
MSG_TEMPLATE_WITH_BODY = "#{MSG_TEMPLATE_WITHOUT_BODY}\n"\
|
|
29
|
+
" content-type: \"%s\"\n"\
|
|
30
|
+
" body: \"%s\"".freeze
|
|
31
|
+
|
|
32
|
+
def format_uri
|
|
33
|
+
return '' unless @uri && @uri.path
|
|
34
|
+
return @uri.path unless @uri.query
|
|
35
|
+
"#{@uri.path}?#{@uri.query}"
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
module Ingenico::Direct::SDK
|
|
2
|
+
module Logging
|
|
3
|
+
|
|
4
|
+
class ResponseLogMessageBuilder < LogMessageBuilder
|
|
5
|
+
|
|
6
|
+
# Class that converts data about a response into a properly formatted log message.
|
|
7
|
+
# Formats request id, status code, headers, body and time between request and response into a helpful message.
|
|
8
|
+
#
|
|
9
|
+
# @param request_id [String] identifier of the request corresponding to this response.
|
|
10
|
+
# @param status_code [Integer] HTTP status code of the response.
|
|
11
|
+
# @param duration [Float] time elapsed between request and response.
|
|
12
|
+
def initialize(request_id, status_code, duration = -1)
|
|
13
|
+
super(request_id)
|
|
14
|
+
@status_code = status_code
|
|
15
|
+
@duration = duration
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Constructs and returns a log message based on the request data. The log message is a string.
|
|
19
|
+
def get_message
|
|
20
|
+
msg_template = "Incoming response (requestId=\"%s\"#{(@duration.positive?) ? ", %.3f ms" : ""}):\n" +
|
|
21
|
+
" status-code: \"%s\"\n" +
|
|
22
|
+
" headers: \"%s\"\n" +
|
|
23
|
+
" content-type: \"%s\"\n" +
|
|
24
|
+
" body: \"%s\""
|
|
25
|
+
|
|
26
|
+
@duration.positive? ?
|
|
27
|
+
sprintf(msg_template, @request_id, @duration, @status_code, @headers,
|
|
28
|
+
empty_if_null(@content_type), empty_if_null(@body)) :
|
|
29
|
+
sprintf(msg_template, @request_id, @status_code, @headers,
|
|
30
|
+
empty_if_null(@content_type), empty_if_null(@body))
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
require 'English'
|
|
2
|
+
|
|
3
|
+
module Ingenico::Direct::SDK
|
|
4
|
+
module Logging
|
|
5
|
+
|
|
6
|
+
# Logging class that Logs messages and errors to a logger.
|
|
7
|
+
# Errors can be logged at a separate level compared to regular messages.
|
|
8
|
+
class RubyCommunicatorLogger < CommunicatorLogger
|
|
9
|
+
|
|
10
|
+
# Creates a new RubyCommunicatorLogger instance.
|
|
11
|
+
#
|
|
12
|
+
# @param logger [Logger] the logger to log messages to. Messages to log will be provided using logger#log(message level, message)
|
|
13
|
+
# @param log_level [String] log level to use for non-error messages.
|
|
14
|
+
# @param error_level [String] error logging level to use.
|
|
15
|
+
def initialize(logger, log_level, error_level = false)
|
|
16
|
+
# implement the interface
|
|
17
|
+
error_level ||= log_level
|
|
18
|
+
raise ArgumentError unless logger
|
|
19
|
+
raise ArgumentError unless log_level
|
|
20
|
+
raise ArgumentError unless error_level
|
|
21
|
+
|
|
22
|
+
@logger = logger
|
|
23
|
+
@log_level = log_level
|
|
24
|
+
@errorLevel = error_level
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Logs a single error or non-error message to the logger.
|
|
28
|
+
def log(msg, thrown = nil)
|
|
29
|
+
# use Ruby Logger
|
|
30
|
+
if thrown
|
|
31
|
+
@logger.log(@errorLevel) { msg + $RS + thrown.to_s + $RS + thrown.backtrace.join($RS) }
|
|
32
|
+
else
|
|
33
|
+
@logger.log(@log_level, msg)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Opens or creates a new file in write-only mode with _filename_.
|
|
38
|
+
def self.create_logfile(filename)
|
|
39
|
+
logdev = begin
|
|
40
|
+
open(filename, (File::WRONLY | File::APPEND | File::CREAT | File::EXCL))
|
|
41
|
+
rescue Errno::EEXIST
|
|
42
|
+
# file is created by another process
|
|
43
|
+
open_logfile(filename)
|
|
44
|
+
end
|
|
45
|
+
logdev.sync = true
|
|
46
|
+
logdev
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Opens or creates a new file in write-only mode with _filename_.
|
|
50
|
+
def self.open_logfile(filename)
|
|
51
|
+
open(filename, (File::WRONLY | File::APPEND))
|
|
52
|
+
rescue Errno::ENOENT
|
|
53
|
+
create_logfile(filename)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require 'English'
|
|
2
|
+
require 'singleton'
|
|
3
|
+
|
|
4
|
+
module Ingenico::Direct::SDK
|
|
5
|
+
module Logging
|
|
6
|
+
|
|
7
|
+
# {Ingenico::Direct::SDK::Logging::CommunicatorLogger} that logs the messages to $stdout.
|
|
8
|
+
class StdoutCommunicatorLogger < CommunicatorLogger
|
|
9
|
+
include Singleton
|
|
10
|
+
|
|
11
|
+
def initialize
|
|
12
|
+
# implement the interface
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# NOTE: this alias is needed to not break existing method calls depending on old interface
|
|
16
|
+
class << self
|
|
17
|
+
alias_method :INSTANCE, :instance
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Logs a single error or non-error message to $stdout.
|
|
21
|
+
def log(msg, thrown = nil)
|
|
22
|
+
$stdout.puts get_date_prefix + msg
|
|
23
|
+
$stdout.puts thrown.to_s if thrown
|
|
24
|
+
$stdout.puts thrown.backtrace.join($RS) if thrown
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
|
|
29
|
+
def get_date_prefix
|
|
30
|
+
Time.now.strftime("%Y-%m-%dT%H:%M:%S ")
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Ingenico::Direct::SDK
|
|
2
|
+
|
|
3
|
+
# Class responsible for marshalling and unmarshalling objects to and from JSON
|
|
4
|
+
class Marshaller
|
|
5
|
+
|
|
6
|
+
# Marshals _request_object_ to JSON format by calling #to_h on it.
|
|
7
|
+
#
|
|
8
|
+
# @param request_object [Ingenico::Direct::SDK::DataObject] the object to format
|
|
9
|
+
# @return [String] _request_object_ converted to JSON
|
|
10
|
+
def marshal(request_object)
|
|
11
|
+
raise NotImplementedError
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Unmarshals a JSON string into an object of type _type_.
|
|
15
|
+
# The new object is initialized by calling .new_from_hash with contents of the JSON as a Hash object.
|
|
16
|
+
#
|
|
17
|
+
# @param response_json [String] The JSON to unmarshal
|
|
18
|
+
# @param type [Type] The class of the object that will be instantiated using _type.new_from_hash_
|
|
19
|
+
# @return The JSON unmarshalled to the given type
|
|
20
|
+
def unmarshal(response_json, type)
|
|
21
|
+
raise NotImplementedError
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
#
|
|
2
|
+
# This class was auto-generated from the API references found at
|
|
3
|
+
# https://support.direct.ingenico.com/documentation/api/reference/
|
|
4
|
+
#
|
|
5
|
+
require 'ingenico/direct/sdk/api_resource'
|
|
6
|
+
require 'ingenico/direct/sdk/response_exception'
|
|
7
|
+
require 'ingenico/direct/sdk/domain/create_hosted_checkout_request'
|
|
8
|
+
require 'ingenico/direct/sdk/domain/create_hosted_checkout_response'
|
|
9
|
+
require 'ingenico/direct/sdk/domain/error_response'
|
|
10
|
+
require 'ingenico/direct/sdk/domain/get_hosted_checkout_response'
|
|
11
|
+
|
|
12
|
+
module Ingenico::Direct::SDK
|
|
13
|
+
module Merchant
|
|
14
|
+
module HostedCheckout
|
|
15
|
+
|
|
16
|
+
# HostedCheckout client. Thread-safe.
|
|
17
|
+
class HostedCheckoutClient < Ingenico::Direct::SDK::ApiResource
|
|
18
|
+
|
|
19
|
+
# @param parent [Ingenico::Direct::SDK::ApiResource]
|
|
20
|
+
# @param path_context [Hash, nil]
|
|
21
|
+
def initialize(parent, path_context = nil)
|
|
22
|
+
super(parent, path_context)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Resource /v2/!{merchantId}/hostedcheckouts - {https://support.direct.ingenico.com/documentation/api/reference#operation/CreateHostedCheckoutApi Create hosted checkout}
|
|
26
|
+
# @param body [Ingenico::Direct::SDK::Domain::CreateHostedCheckoutRequest]
|
|
27
|
+
# @param context [Ingenico::Direct::SDK::CallContext]
|
|
28
|
+
# @return [Ingenico::Direct::SDK::Domain::CreateHostedCheckoutResponse]
|
|
29
|
+
# @raise [Ingenico::Direct::SDK::ValidationException] if the request was not correct and couldn't be processed (HTTP status code 400)
|
|
30
|
+
# @raise [Ingenico::Direct::SDK::AuthorizationException] if the request was not allowed (HTTP status code 403)
|
|
31
|
+
# @raise [Ingenico::Direct::SDK::IdempotenceException] if an idempotent request caused a conflict (HTTP status code 409)
|
|
32
|
+
# @raise [Ingenico::Direct::SDK::ReferenceException] if an object was attempted to be referenced that doesn't exist or has been removed,
|
|
33
|
+
# or there was a conflict (HTTP status code 404, 409 or 410)
|
|
34
|
+
# @raise [Ingenico::Direct::SDK::GlobalCollectException] if something went wrong at the Ingenico ePayments platform,
|
|
35
|
+
# the Ingenico ePayments platform was unable to process a message from a downstream partner/acquirer,
|
|
36
|
+
# or the service that you're trying to reach is temporary unavailable (HTTP status code 500, 502 or 503)
|
|
37
|
+
# @raise [Ingenico::Direct::SDK::ApiException]if the Ingenico ePayments platform returned any other error
|
|
38
|
+
def create_hosted_checkout(body, context = nil)
|
|
39
|
+
uri = instantiate_uri('/v2/{merchantId}/hostedcheckouts')
|
|
40
|
+
@communicator.post(
|
|
41
|
+
uri,
|
|
42
|
+
client_headers,
|
|
43
|
+
nil,
|
|
44
|
+
body,
|
|
45
|
+
Ingenico::Direct::SDK::Domain::CreateHostedCheckoutResponse,
|
|
46
|
+
context
|
|
47
|
+
)
|
|
48
|
+
rescue ResponseException => e
|
|
49
|
+
error_type = Ingenico::Direct::SDK::Domain::ErrorResponse
|
|
50
|
+
error_object = @communicator.marshaller.unmarshal(e.body, error_type)
|
|
51
|
+
raise create_exception(e.status_code, e.body, error_object, context)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Resource /v2/!{merchantId}/hostedcheckouts/!{hostedCheckoutId} - {https://support.direct.ingenico.com/documentation/api/reference#operation/GetHostedCheckoutApi Get hosted checkout status}
|
|
55
|
+
# @param hosted_checkout_id [String]
|
|
56
|
+
# @param context [Ingenico::Direct::SDK::CallContext]
|
|
57
|
+
# @return [Ingenico::Direct::SDK::Domain::GetHostedCheckoutResponse]
|
|
58
|
+
# @raise [Ingenico::Direct::SDK::ValidationException] if the request was not correct and couldn't be processed (HTTP status code 400)
|
|
59
|
+
# @raise [Ingenico::Direct::SDK::AuthorizationException] if the request was not allowed (HTTP status code 403)
|
|
60
|
+
# @raise [Ingenico::Direct::SDK::IdempotenceException] if an idempotent request caused a conflict (HTTP status code 409)
|
|
61
|
+
# @raise [Ingenico::Direct::SDK::ReferenceException] if an object was attempted to be referenced that doesn't exist or has been removed,
|
|
62
|
+
# or there was a conflict (HTTP status code 404, 409 or 410)
|
|
63
|
+
# @raise [Ingenico::Direct::SDK::GlobalCollectException] if something went wrong at the Ingenico ePayments platform,
|
|
64
|
+
# the Ingenico ePayments platform was unable to process a message from a downstream partner/acquirer,
|
|
65
|
+
# or the service that you're trying to reach is temporary unavailable (HTTP status code 500, 502 or 503)
|
|
66
|
+
# @raise [Ingenico::Direct::SDK::ApiException]if the Ingenico ePayments platform returned any other error
|
|
67
|
+
def get_hosted_checkout(hosted_checkout_id, context = nil)
|
|
68
|
+
path_context = {
|
|
69
|
+
'hostedCheckoutId'.freeze => hosted_checkout_id,
|
|
70
|
+
}
|
|
71
|
+
uri = instantiate_uri('/v2/{merchantId}/hostedcheckouts/{hostedCheckoutId}', path_context)
|
|
72
|
+
@communicator.get(
|
|
73
|
+
uri,
|
|
74
|
+
client_headers,
|
|
75
|
+
nil,
|
|
76
|
+
Ingenico::Direct::SDK::Domain::GetHostedCheckoutResponse,
|
|
77
|
+
context
|
|
78
|
+
)
|
|
79
|
+
rescue ResponseException => e
|
|
80
|
+
error_type = Ingenico::Direct::SDK::Domain::ErrorResponse
|
|
81
|
+
error_object = @communicator.marshaller.unmarshal(e.body, error_type)
|
|
82
|
+
raise create_exception(e.status_code, e.body, error_object, context)
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
#
|
|
2
|
+
# This class was auto-generated from the API references found at
|
|
3
|
+
# https://support.direct.ingenico.com/documentation/api/reference/
|
|
4
|
+
#
|
|
5
|
+
require 'ingenico/direct/sdk/api_resource'
|
|
6
|
+
require 'ingenico/direct/sdk/response_exception'
|
|
7
|
+
require 'ingenico/direct/sdk/domain/create_hosted_tokenization_request'
|
|
8
|
+
require 'ingenico/direct/sdk/domain/create_hosted_tokenization_response'
|
|
9
|
+
require 'ingenico/direct/sdk/domain/error_response'
|
|
10
|
+
require 'ingenico/direct/sdk/domain/get_hosted_tokenization_response'
|
|
11
|
+
|
|
12
|
+
module Ingenico::Direct::SDK
|
|
13
|
+
module Merchant
|
|
14
|
+
module HostedTokenization
|
|
15
|
+
|
|
16
|
+
# HostedTokenization client. Thread-safe.
|
|
17
|
+
class HostedTokenizationClient < Ingenico::Direct::SDK::ApiResource
|
|
18
|
+
|
|
19
|
+
# @param parent [Ingenico::Direct::SDK::ApiResource]
|
|
20
|
+
# @param path_context [Hash, nil]
|
|
21
|
+
def initialize(parent, path_context = nil)
|
|
22
|
+
super(parent, path_context)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Resource /v2/!{merchantId}/hostedtokenizations - {https://support.direct.ingenico.com/documentation/api/reference#operation/CreateHostedTokenizationApi Create hosted tokenization session}
|
|
26
|
+
# @param body [Ingenico::Direct::SDK::Domain::CreateHostedTokenizationRequest]
|
|
27
|
+
# @param context [Ingenico::Direct::SDK::CallContext]
|
|
28
|
+
# @return [Ingenico::Direct::SDK::Domain::CreateHostedTokenizationResponse]
|
|
29
|
+
# @raise [Ingenico::Direct::SDK::ValidationException] if the request was not correct and couldn't be processed (HTTP status code 400)
|
|
30
|
+
# @raise [Ingenico::Direct::SDK::AuthorizationException] if the request was not allowed (HTTP status code 403)
|
|
31
|
+
# @raise [Ingenico::Direct::SDK::IdempotenceException] if an idempotent request caused a conflict (HTTP status code 409)
|
|
32
|
+
# @raise [Ingenico::Direct::SDK::ReferenceException] if an object was attempted to be referenced that doesn't exist or has been removed,
|
|
33
|
+
# or there was a conflict (HTTP status code 404, 409 or 410)
|
|
34
|
+
# @raise [Ingenico::Direct::SDK::GlobalCollectException] if something went wrong at the Ingenico ePayments platform,
|
|
35
|
+
# the Ingenico ePayments platform was unable to process a message from a downstream partner/acquirer,
|
|
36
|
+
# or the service that you're trying to reach is temporary unavailable (HTTP status code 500, 502 or 503)
|
|
37
|
+
# @raise [Ingenico::Direct::SDK::ApiException]if the Ingenico ePayments platform returned any other error
|
|
38
|
+
def create_hosted_tokenization(body, context = nil)
|
|
39
|
+
uri = instantiate_uri('/v2/{merchantId}/hostedtokenizations')
|
|
40
|
+
@communicator.post(
|
|
41
|
+
uri,
|
|
42
|
+
client_headers,
|
|
43
|
+
nil,
|
|
44
|
+
body,
|
|
45
|
+
Ingenico::Direct::SDK::Domain::CreateHostedTokenizationResponse,
|
|
46
|
+
context
|
|
47
|
+
)
|
|
48
|
+
rescue ResponseException => e
|
|
49
|
+
error_type = Ingenico::Direct::SDK::Domain::ErrorResponse
|
|
50
|
+
error_object = @communicator.marshaller.unmarshal(e.body, error_type)
|
|
51
|
+
raise create_exception(e.status_code, e.body, error_object, context)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Resource /v2/!{merchantId}/hostedtokenizations/!{hostedTokenizationId} - {https://support.direct.ingenico.com/documentation/api/reference#operation/GetHostedTokenizationApi Get hosted tokenization session}
|
|
55
|
+
# @param hosted_tokenization_id [String]
|
|
56
|
+
# @param context [Ingenico::Direct::SDK::CallContext]
|
|
57
|
+
# @return [Ingenico::Direct::SDK::Domain::GetHostedTokenizationResponse]
|
|
58
|
+
# @raise [Ingenico::Direct::SDK::ValidationException] if the request was not correct and couldn't be processed (HTTP status code 400)
|
|
59
|
+
# @raise [Ingenico::Direct::SDK::AuthorizationException] if the request was not allowed (HTTP status code 403)
|
|
60
|
+
# @raise [Ingenico::Direct::SDK::IdempotenceException] if an idempotent request caused a conflict (HTTP status code 409)
|
|
61
|
+
# @raise [Ingenico::Direct::SDK::ReferenceException] if an object was attempted to be referenced that doesn't exist or has been removed,
|
|
62
|
+
# or there was a conflict (HTTP status code 404, 409 or 410)
|
|
63
|
+
# @raise [Ingenico::Direct::SDK::GlobalCollectException] if something went wrong at the Ingenico ePayments platform,
|
|
64
|
+
# the Ingenico ePayments platform was unable to process a message from a downstream partner/acquirer,
|
|
65
|
+
# or the service that you're trying to reach is temporary unavailable (HTTP status code 500, 502 or 503)
|
|
66
|
+
# @raise [Ingenico::Direct::SDK::ApiException]if the Ingenico ePayments platform returned any other error
|
|
67
|
+
def get_hosted_tokenization(hosted_tokenization_id, context = nil)
|
|
68
|
+
path_context = {
|
|
69
|
+
'hostedTokenizationId'.freeze => hosted_tokenization_id,
|
|
70
|
+
}
|
|
71
|
+
uri = instantiate_uri('/v2/{merchantId}/hostedtokenizations/{hostedTokenizationId}', path_context)
|
|
72
|
+
@communicator.get(
|
|
73
|
+
uri,
|
|
74
|
+
client_headers,
|
|
75
|
+
nil,
|
|
76
|
+
Ingenico::Direct::SDK::Domain::GetHostedTokenizationResponse,
|
|
77
|
+
context
|
|
78
|
+
)
|
|
79
|
+
rescue ResponseException => e
|
|
80
|
+
error_type = Ingenico::Direct::SDK::Domain::ErrorResponse
|
|
81
|
+
error_object = @communicator.marshaller.unmarshal(e.body, error_type)
|
|
82
|
+
raise create_exception(e.status_code, e.body, error_object, context)
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#
|
|
2
|
+
# This class was auto-generated from the API references found at
|
|
3
|
+
# https://support.direct.ingenico.com/documentation/api/reference/
|
|
4
|
+
#
|
|
5
|
+
require 'ingenico/direct/sdk/api_resource'
|
|
6
|
+
require 'ingenico/direct/sdk/merchant/hostedcheckout/hosted_checkout_client'
|
|
7
|
+
require 'ingenico/direct/sdk/merchant/hostedtokenization/hosted_tokenization_client'
|
|
8
|
+
require 'ingenico/direct/sdk/merchant/payments/payments_client'
|
|
9
|
+
require 'ingenico/direct/sdk/merchant/payouts/payouts_client'
|
|
10
|
+
require 'ingenico/direct/sdk/merchant/productgroups/product_groups_client'
|
|
11
|
+
require 'ingenico/direct/sdk/merchant/products/products_client'
|
|
12
|
+
require 'ingenico/direct/sdk/merchant/services/services_client'
|
|
13
|
+
require 'ingenico/direct/sdk/merchant/sessions/sessions_client'
|
|
14
|
+
require 'ingenico/direct/sdk/merchant/tokens/tokens_client'
|
|
15
|
+
|
|
16
|
+
module Ingenico::Direct::SDK
|
|
17
|
+
module Merchant
|
|
18
|
+
|
|
19
|
+
# Merchant client. Thread-safe.
|
|
20
|
+
class MerchantClient < Ingenico::Direct::SDK::ApiResource
|
|
21
|
+
|
|
22
|
+
# @param parent [Ingenico::Direct::SDK::ApiResource]
|
|
23
|
+
# @param path_context [Hash, nil]
|
|
24
|
+
def initialize(parent, path_context = nil)
|
|
25
|
+
super(parent, path_context)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Resource /v2/!{merchantId}/products
|
|
29
|
+
# @return [Ingenico::Direct::SDK::Merchant::Products::ProductsClient]
|
|
30
|
+
def products
|
|
31
|
+
Ingenico::Direct::SDK::Merchant::Products::ProductsClient.new(self, nil)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Resource /v2/!{merchantId}/sessions
|
|
35
|
+
# @return [Ingenico::Direct::SDK::Merchant::Sessions::SessionsClient]
|
|
36
|
+
def sessions
|
|
37
|
+
Ingenico::Direct::SDK::Merchant::Sessions::SessionsClient.new(self, nil)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Resource /v2/!{merchantId}/payouts
|
|
41
|
+
# @return [Ingenico::Direct::SDK::Merchant::Payouts::PayoutsClient]
|
|
42
|
+
def payouts
|
|
43
|
+
Ingenico::Direct::SDK::Merchant::Payouts::PayoutsClient.new(self, nil)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Resource /v2/!{merchantId}/payments
|
|
47
|
+
# @return [Ingenico::Direct::SDK::Merchant::Payments::PaymentsClient]
|
|
48
|
+
def payments
|
|
49
|
+
Ingenico::Direct::SDK::Merchant::Payments::PaymentsClient.new(self, nil)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Resource /v2/!{merchantId}/services/testconnection
|
|
53
|
+
# @return [Ingenico::Direct::SDK::Merchant::Services::ServicesClient]
|
|
54
|
+
def services
|
|
55
|
+
Ingenico::Direct::SDK::Merchant::Services::ServicesClient.new(self, nil)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Resource /v2/!{merchantId}/productgroups
|
|
59
|
+
# @return [Ingenico::Direct::SDK::Merchant::ProductGroups::ProductGroupsClient]
|
|
60
|
+
def product_groups
|
|
61
|
+
Ingenico::Direct::SDK::Merchant::ProductGroups::ProductGroupsClient.new(self, nil)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Resource /v2/!{merchantId}/hostedtokenizations
|
|
65
|
+
# @return [Ingenico::Direct::SDK::Merchant::HostedTokenization::HostedTokenizationClient]
|
|
66
|
+
def hosted_tokenization
|
|
67
|
+
Ingenico::Direct::SDK::Merchant::HostedTokenization::HostedTokenizationClient.new(self, nil)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# Resource /v2/!{merchantId}/tokens
|
|
71
|
+
# @return [Ingenico::Direct::SDK::Merchant::Tokens::TokensClient]
|
|
72
|
+
def tokens
|
|
73
|
+
Ingenico::Direct::SDK::Merchant::Tokens::TokensClient.new(self, nil)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
# Resource /v2/!{merchantId}/hostedcheckouts
|
|
77
|
+
# @return [Ingenico::Direct::SDK::Merchant::HostedCheckout::HostedCheckoutClient]
|
|
78
|
+
def hosted_checkout
|
|
79
|
+
Ingenico::Direct::SDK::Merchant::HostedCheckout::HostedCheckoutClient.new(self, nil)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|