checkout_sdk 0.3.2 → 1.0.0.beta.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/.rubocop.yml +31 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/Gemfile +5 -2
- data/LICENSE.md +9 -0
- data/README.md +96 -110
- data/Rakefile +3 -1
- data/lib/checkout_sdk/abstract_checkout_sdk_builder.rb +28 -0
- data/lib/checkout_sdk/api_client.rb +135 -0
- data/lib/checkout_sdk/apm/apm.rb +12 -0
- data/lib/checkout_sdk/apm/ideal/ideal_client.rb +25 -0
- data/lib/checkout_sdk/apm/previous/klarna/credit_session_request.rb +30 -0
- data/lib/checkout_sdk/apm/previous/klarna/klarna.rb +24 -0
- data/lib/checkout_sdk/apm/previous/klarna/klarna_client.rb +55 -0
- data/lib/checkout_sdk/apm/previous/klarna/klarna_product.rb +30 -0
- data/lib/checkout_sdk/apm/previous/klarna/klarna_shipping_info.rb +33 -0
- data/lib/checkout_sdk/apm/previous/klarna/order_capture_request.rb +37 -0
- data/lib/checkout_sdk/apm/previous/sepa/sepa_client.rb +42 -0
- data/lib/checkout_sdk/authorization_type.rb +12 -0
- data/lib/checkout_sdk/checkout_api.rb +51 -0
- data/lib/checkout_sdk/checkout_configuration.rb +22 -0
- data/lib/checkout_sdk/checkout_oauth_sdk_builder.rb +52 -0
- data/lib/checkout_sdk/checkout_sdk_builder.rb +20 -0
- data/lib/checkout_sdk/checkout_static_keys_sdk_builder.rb +23 -0
- data/lib/checkout_sdk/checkout_utils.rb +15 -0
- data/lib/checkout_sdk/client.rb +46 -0
- data/lib/checkout_sdk/common/abstract_file_request.rb +11 -0
- data/lib/checkout_sdk/common/account_holder.rb +44 -0
- data/lib/checkout_sdk/common/account_holder_identification.rb +20 -0
- data/lib/checkout_sdk/common/account_holder_identification_type.rb +13 -0
- data/lib/checkout_sdk/common/account_holder_type.rb +11 -0
- data/lib/checkout_sdk/common/account_type.rb +11 -0
- data/lib/checkout_sdk/common/address.rb +26 -0
- data/lib/checkout_sdk/common/amount_allocations.rb +20 -0
- data/lib/checkout_sdk/common/bank_details.rb +17 -0
- data/lib/checkout_sdk/common/challenge_indicator.rb +12 -0
- data/lib/checkout_sdk/common/commission.rb +14 -0
- data/lib/checkout_sdk/common/common.rb +22 -0
- data/lib/checkout_sdk/common/country.rb +260 -0
- data/lib/checkout_sdk/common/currency.rb +168 -0
- data/lib/checkout_sdk/common/customer_request.rb +26 -0
- data/lib/checkout_sdk/common/file_purpose.rb +9 -0
- data/lib/checkout_sdk/common/file_request.rb +11 -0
- data/lib/checkout_sdk/common/instrument_type.rb +11 -0
- data/lib/checkout_sdk/common/payment_source_type.rb +52 -0
- data/lib/checkout_sdk/common/phone.rb +14 -0
- data/lib/checkout_sdk/common/update_customer_request.rb +14 -0
- data/lib/checkout_sdk/customers/customer_request.rb +26 -0
- data/lib/checkout_sdk/customers/customers.rb +4 -0
- data/lib/checkout_sdk/customers/customers_client.rb +37 -0
- data/lib/checkout_sdk/disputes/dispute_evidence_request.rb +60 -0
- data/lib/checkout_sdk/disputes/dispute_status.rb +19 -0
- data/lib/checkout_sdk/disputes/disputes.rb +6 -0
- data/lib/checkout_sdk/disputes/disputes_client.rb +55 -0
- data/lib/checkout_sdk/disputes/disputes_query_filter.rb +47 -0
- data/lib/checkout_sdk/environment.rb +59 -0
- data/lib/checkout_sdk/error.rb +30 -0
- data/lib/checkout_sdk/forex/forex.rb +4 -0
- data/lib/checkout_sdk/forex/forex_client.rb +21 -0
- data/lib/checkout_sdk/forex/quote_request.rb +23 -0
- data/lib/checkout_sdk/http_metadata.rb +9 -0
- data/lib/checkout_sdk/instruments/create/instrument_bank_account_request.rb +51 -0
- data/lib/checkout_sdk/instruments/create/instrument_request.rb +17 -0
- data/lib/checkout_sdk/instruments/create/instrument_token_request.rb +21 -0
- data/lib/checkout_sdk/instruments/get/bank_account_field_query.rb +14 -0
- data/lib/checkout_sdk/instruments/get/payment_network.rb +14 -0
- data/lib/checkout_sdk/instruments/instruments.rb +15 -0
- data/lib/checkout_sdk/instruments/instruments_client.rb +49 -0
- data/lib/checkout_sdk/instruments/update/update_instrument_bank_account_request.rb +51 -0
- data/lib/checkout_sdk/instruments/update/update_instrument_card_request.rb +27 -0
- data/lib/checkout_sdk/instruments/update/update_instrument_request.rb +17 -0
- data/lib/checkout_sdk/instruments/update/update_instrument_token_request.rb +15 -0
- data/lib/checkout_sdk/json_serializer.rb +54 -0
- data/lib/checkout_sdk/oauth_access_token.rb +27 -0
- data/lib/checkout_sdk/oauth_scopes.rb +41 -0
- data/lib/checkout_sdk/oauth_sdk_credentials.rb +112 -0
- data/lib/checkout_sdk/payments/airline_data.rb +17 -0
- data/lib/checkout_sdk/payments/authorization_request.rb +17 -0
- data/lib/checkout_sdk/payments/authorization_type.rb +11 -0
- data/lib/checkout_sdk/payments/billing_descriptor.rb +17 -0
- data/lib/checkout_sdk/payments/capture_request.rb +41 -0
- data/lib/checkout_sdk/payments/capture_type.rb +10 -0
- data/lib/checkout_sdk/payments/charge_bearer.rb +10 -0
- data/lib/checkout_sdk/payments/d_local_installments.rb +11 -0
- data/lib/checkout_sdk/payments/d_local_processing_settings.rb +17 -0
- data/lib/checkout_sdk/payments/destination/bank_account_destination.rb +42 -0
- data/lib/checkout_sdk/payments/destination/card_destination.rb +24 -0
- data/lib/checkout_sdk/payments/destination/destination.rb +19 -0
- data/lib/checkout_sdk/payments/destination/destination_type.rb +12 -0
- data/lib/checkout_sdk/payments/destination/id_destination.rb +18 -0
- data/lib/checkout_sdk/payments/destination/token_destination.rb +18 -0
- data/lib/checkout_sdk/payments/exemption.rb +17 -0
- data/lib/checkout_sdk/payments/flight_leg_details.rb +35 -0
- data/lib/checkout_sdk/payments/instruction_scheme.rb +11 -0
- data/lib/checkout_sdk/payments/merchant_initiated_reason.rb +12 -0
- data/lib/checkout_sdk/payments/network_token_type.rb +12 -0
- data/lib/checkout_sdk/payments/os_type.rb +10 -0
- data/lib/checkout_sdk/payments/passenger.rb +17 -0
- data/lib/checkout_sdk/payments/passenger_name.rb +11 -0
- data/lib/checkout_sdk/payments/payer.rb +17 -0
- data/lib/checkout_sdk/payments/payment_instruction.rb +32 -0
- data/lib/checkout_sdk/payments/payment_recipient.rb +20 -0
- data/lib/checkout_sdk/payments/payment_request.rb +86 -0
- data/lib/checkout_sdk/payments/payment_type.rb +13 -0
- data/lib/checkout_sdk/payments/payments.rb +82 -0
- data/lib/checkout_sdk/payments/payments_client.rb +86 -0
- data/lib/checkout_sdk/payments/payout_billing_descriptor.rb +11 -0
- data/lib/checkout_sdk/payments/payout_request.rb +38 -0
- data/lib/checkout_sdk/payments/preferred_schema.rb +11 -0
- data/lib/checkout_sdk/payments/processing_settings.rb +80 -0
- data/lib/checkout_sdk/payments/product.rb +47 -0
- data/lib/checkout_sdk/payments/product_type.rb +12 -0
- data/lib/checkout_sdk/payments/refund_request.rb +17 -0
- data/lib/checkout_sdk/payments/risk_request.rb +11 -0
- data/lib/checkout_sdk/payments/sender/corporate_sender.rb +27 -0
- data/lib/checkout_sdk/payments/sender/government_sender.rb +27 -0
- data/lib/checkout_sdk/payments/sender/individual_sender.rb +42 -0
- data/lib/checkout_sdk/payments/sender/instrument_sender.rb +11 -0
- data/lib/checkout_sdk/payments/sender/sender.rb +22 -0
- data/lib/checkout_sdk/payments/sender/sender_type.rb +12 -0
- data/lib/checkout_sdk/payments/sender/source_of_funds.rb +14 -0
- data/lib/checkout_sdk/payments/sender/ticket.rb +23 -0
- data/lib/checkout_sdk/payments/shipping_details.rb +17 -0
- data/lib/checkout_sdk/payments/shipping_preference.rb +11 -0
- data/lib/checkout_sdk/payments/source/apm/after_pay_source.rb +15 -0
- data/lib/checkout_sdk/payments/source/apm/alipay_plus_source.rb +47 -0
- data/lib/checkout_sdk/payments/source/apm/bancontact_source.rb +24 -0
- data/lib/checkout_sdk/payments/source/apm/benefit_source.rb +11 -0
- data/lib/checkout_sdk/payments/source/apm/eps_source.rb +15 -0
- data/lib/checkout_sdk/payments/source/apm/giropay_source.rb +27 -0
- data/lib/checkout_sdk/payments/source/apm/ideal_source.rb +21 -0
- data/lib/checkout_sdk/payments/source/apm/knet_source.rb +36 -0
- data/lib/checkout_sdk/payments/source/apm/mbway_source.rb +11 -0
- data/lib/checkout_sdk/payments/source/apm/multi_banco_source.rb +21 -0
- data/lib/checkout_sdk/payments/source/apm/p24_source.rb +24 -0
- data/lib/checkout_sdk/payments/source/apm/paypal_source.rb +11 -0
- data/lib/checkout_sdk/payments/source/apm/post_finance_source.rb +21 -0
- data/lib/checkout_sdk/payments/source/apm/qpay_source.rb +24 -0
- data/lib/checkout_sdk/payments/source/apm/sofort_source.rb +18 -0
- data/lib/checkout_sdk/payments/source/apm/stcpay_source.rb +11 -0
- data/lib/checkout_sdk/payments/source/apm/tamara_source.rb +15 -0
- data/lib/checkout_sdk/payments/source/apm/we_chat_pay_source.rb +15 -0
- data/lib/checkout_sdk/payments/source/bank_account_source.rb +30 -0
- data/lib/checkout_sdk/payments/source/card_source.rb +39 -0
- data/lib/checkout_sdk/payments/source/currency_account_source.rb +15 -0
- data/lib/checkout_sdk/payments/source/id_source.rb +21 -0
- data/lib/checkout_sdk/payments/source/network_token_source.rb +45 -0
- data/lib/checkout_sdk/payments/source/payment_request_source.rb +18 -0
- data/lib/checkout_sdk/payments/source/payout_request_source.rb +22 -0
- data/lib/checkout_sdk/payments/source/payout_source_type.rb +9 -0
- data/lib/checkout_sdk/payments/source/provider_token_source.rb +21 -0
- data/lib/checkout_sdk/payments/source/token_source.rb +24 -0
- data/lib/checkout_sdk/payments/terminal_type.rb +11 -0
- data/lib/checkout_sdk/payments/three_ds_flow_type.rb +11 -0
- data/lib/checkout_sdk/payments/three_ds_request.rb +56 -0
- data/lib/checkout_sdk/payments/user_action.rb +10 -0
- data/lib/checkout_sdk/payments/void_request.rb +14 -0
- data/lib/checkout_sdk/platform_type.rb +10 -0
- data/lib/checkout_sdk/previous/checkout_api.rb +29 -0
- data/lib/checkout_sdk/previous/checkout_previous_sdk_builder.rb +11 -0
- data/lib/checkout_sdk/previous/checkout_previous_static_keys_sdk_builder.rb +24 -0
- data/lib/checkout_sdk/previous/previous_static_keys_sdk_credentials.rb +38 -0
- data/lib/checkout_sdk/sdk_authorization.rb +25 -0
- data/lib/checkout_sdk/sdk_credentials.rb +12 -0
- data/lib/checkout_sdk/sessions/authentication_method.rb +14 -0
- data/lib/checkout_sdk/sessions/authentication_type.rb +10 -0
- data/lib/checkout_sdk/sessions/card_holder_account_info.rb +32 -0
- data/lib/checkout_sdk/sessions/category.rb +10 -0
- data/lib/checkout_sdk/sessions/channel/app_session.rb +36 -0
- data/lib/checkout_sdk/sessions/channel/browser_session.rb +42 -0
- data/lib/checkout_sdk/sessions/channel/channel_data.rb +19 -0
- data/lib/checkout_sdk/sessions/channel/channel_data_type.rb +10 -0
- data/lib/checkout_sdk/sessions/channel/sdk_ephemeral_public_key.rb +19 -0
- data/lib/checkout_sdk/sessions/channel/sdk_interface_type.rb +11 -0
- data/lib/checkout_sdk/sessions/channel/three_ds_method_completion.rb +11 -0
- data/lib/checkout_sdk/sessions/channel/uie_elements.rb +13 -0
- data/lib/checkout_sdk/sessions/completion/completion_info.rb +19 -0
- data/lib/checkout_sdk/sessions/completion/completion_info_type.rb +10 -0
- data/lib/checkout_sdk/sessions/completion/hosted_completion_info.rb +21 -0
- data/lib/checkout_sdk/sessions/completion/non_hosted_completion_info.rb +15 -0
- data/lib/checkout_sdk/sessions/delivery_timeframe.rb +12 -0
- data/lib/checkout_sdk/sessions/installment.rb +17 -0
- data/lib/checkout_sdk/sessions/merchant_risk_info.rb +23 -0
- data/lib/checkout_sdk/sessions/recurring.rb +14 -0
- data/lib/checkout_sdk/sessions/session_address.rb +11 -0
- data/lib/checkout_sdk/sessions/session_marketplace_data.rb +11 -0
- data/lib/checkout_sdk/sessions/session_request.rb +68 -0
- data/lib/checkout_sdk/sessions/session_secret_credentials.rb +28 -0
- data/lib/checkout_sdk/sessions/session_source_type.rb +12 -0
- data/lib/checkout_sdk/sessions/sessions.rb +47 -0
- data/lib/checkout_sdk/sessions/sessions_billing_descriptor.rb +11 -0
- data/lib/checkout_sdk/sessions/sessions_client.rb +64 -0
- data/lib/checkout_sdk/sessions/shipping_indicator.rb +9 -0
- data/lib/checkout_sdk/sessions/source/card_source.rb +30 -0
- data/lib/checkout_sdk/sessions/source/id_source.rb +15 -0
- data/lib/checkout_sdk/sessions/source/network_token_source.rb +27 -0
- data/lib/checkout_sdk/sessions/source/session_scheme.rb +14 -0
- data/lib/checkout_sdk/sessions/source/session_source.rb +37 -0
- data/lib/checkout_sdk/sessions/source/token_source.rb +18 -0
- data/lib/checkout_sdk/sessions/three_ds_method_completion_request.rb +11 -0
- data/lib/checkout_sdk/sessions/transaction_type.rb +13 -0
- data/lib/checkout_sdk/static_keys_builder.rb +35 -0
- data/lib/checkout_sdk/static_keys_sdk_credentials.rb +35 -0
- data/lib/checkout_sdk/tokens/apple_pay_token_data.rb +20 -0
- data/lib/checkout_sdk/tokens/apple_pay_token_request.rb +15 -0
- data/lib/checkout_sdk/tokens/card_token_request.rb +36 -0
- data/lib/checkout_sdk/tokens/google_pay_token_data.rb +17 -0
- data/lib/checkout_sdk/tokens/google_pay_token_request.rb +15 -0
- data/lib/checkout_sdk/tokens/token_type.rb +11 -0
- data/lib/checkout_sdk/tokens/tokens.rb +10 -0
- data/lib/checkout_sdk/tokens/tokens_client.rb +21 -0
- data/lib/checkout_sdk/tokens/wallet_token_request.rb +19 -0
- data/lib/checkout_sdk/version.rb +3 -1
- data/lib/checkout_sdk.rb +59 -21
- data/sig/checkout_sdk.rbs +4 -0
- metadata +254 -81
- data/.gitignore +0 -11
- data/.travis.yml +0 -7
- data/Gemfile.lock +0 -45
- data/LICENSE +0 -21
- data/bin/console +0 -14
- data/bin/setup +0 -8
- data/checkout_sdk.gemspec +0 -24
- data/documentation/.gitignore +0 -20
- data/documentation/docs/environment.md +0 -26
- data/documentation/docs/getting_started.md +0 -48
- data/documentation/docs/initialize.md +0 -19
- data/documentation/docs/install.md +0 -21
- data/documentation/docs/payments.md +0 -200
- data/documentation/docs/sources.md +0 -53
- data/documentation/docs/tokens.md +0 -88
- data/documentation/docusaurus.config.js +0 -60
- data/documentation/package-lock.json +0 -13511
- data/documentation/package.json +0 -32
- data/documentation/sidebars.js +0 -10
- data/documentation/src/css/custom.css +0 -103
- data/documentation/src/pages/index.js +0 -10
- data/documentation/src/pages/styles.module.css +0 -37
- data/documentation/static/img/favicon.png +0 -0
- data/documentation/static/img/logo.png +0 -0
- data/documentation/static/img/undraw_docusaurus_mountain.svg +0 -170
- data/documentation/static/img/undraw_docusaurus_react.svg +0 -169
- data/documentation/static/img/undraw_docusaurus_tree.svg +0 -1
- data/documentation/yarn.lock +0 -9369
- data/lib/checkout_sdk/api_resource.rb +0 -77
- data/lib/checkout_sdk/configuration.rb +0 -10
- data/lib/checkout_sdk/data/capture_payment.rb +0 -11
- data/lib/checkout_sdk/data/payment_request_source.rb +0 -145
- data/lib/checkout_sdk/data/payment_source.rb +0 -40
- data/lib/checkout_sdk/data/refund_payment.rb +0 -11
- data/lib/checkout_sdk/data/request_token.rb +0 -67
- data/lib/checkout_sdk/data/void_payment.rb +0 -10
- data/spec/checkout_sdk/api_resource_spec.rb +0 -126
- data/spec/checkout_sdk/data/payment_request_source_spec.rb +0 -126
- data/spec/checkout_sdk/data/request_token_spec.rb +0 -107
- data/spec/checkout_sdk_spec.rb +0 -21
- data/spec/spec_helper.rb +0 -32
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
module Previous
|
5
|
+
module Apm
|
6
|
+
module Klarna
|
7
|
+
class KlarnaClient < Client
|
8
|
+
CREDIT_SESSIONS = 'credit-sessions'
|
9
|
+
ORDERS = 'orders'
|
10
|
+
CAPTURES = 'captures'
|
11
|
+
VOIDS = 'voids'
|
12
|
+
private_constant :CREDIT_SESSIONS, :ORDERS, :CAPTURES, :VOIDS
|
13
|
+
|
14
|
+
# @param [ApiClient] api_client
|
15
|
+
# @param [CheckoutConfiguration] configuration
|
16
|
+
def initialize(api_client, configuration)
|
17
|
+
super api_client, configuration, CheckoutSdk::AuthorizationType::SECRET_KEY
|
18
|
+
end
|
19
|
+
|
20
|
+
# @param credit_session_request [CreditSessionRequest]
|
21
|
+
def create_credit_session(credit_session_request)
|
22
|
+
api_client.invoke_post(build_path(base_url, CREDIT_SESSIONS), sdk_authorization, credit_session_request)
|
23
|
+
end
|
24
|
+
|
25
|
+
# @param session_id [String]
|
26
|
+
def get_credit_session(session_id)
|
27
|
+
api_client.invoke_get(build_path(base_url, CREDIT_SESSIONS, session_id), sdk_authorization)
|
28
|
+
end
|
29
|
+
|
30
|
+
# @param payment_id [String]
|
31
|
+
# @param order_capture_request [OrderCaptureRequest]
|
32
|
+
def capture_payment(payment_id, order_capture_request)
|
33
|
+
api_client.invoke_post(build_path(base_url, ORDERS, payment_id, CAPTURES),
|
34
|
+
sdk_authorization,
|
35
|
+
order_capture_request)
|
36
|
+
end
|
37
|
+
|
38
|
+
# @param payment_id [String]
|
39
|
+
# @param void_request [CheckoutSdk::Payments::VoidRequest]
|
40
|
+
def void_payment(payment_id, void_request)
|
41
|
+
api_client.invoke_post(build_path(base_url, ORDERS, payment_id, VOIDS),
|
42
|
+
sdk_authorization,
|
43
|
+
void_request)
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def base_url
|
49
|
+
sandbox? ? 'klarna-external' : 'klarna'
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
module Previous
|
5
|
+
module Apm
|
6
|
+
module Klarna
|
7
|
+
# @!attribute name
|
8
|
+
# @return [String]
|
9
|
+
# @!attribute quantity
|
10
|
+
# @return [Integer]
|
11
|
+
# @!attribute unit_price
|
12
|
+
# @return [Integer]
|
13
|
+
# @!attribute tax_rate
|
14
|
+
# @return [Integer]
|
15
|
+
# @!attribute total_amount
|
16
|
+
# @return [Integer]
|
17
|
+
# @!attribute total_tax_amount
|
18
|
+
# @return [Integer]
|
19
|
+
class KlarnaProduct
|
20
|
+
attr_accessor :name,
|
21
|
+
:quantity,
|
22
|
+
:unit_price,
|
23
|
+
:tax_rate,
|
24
|
+
:total_amount,
|
25
|
+
:total_tax_amount
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
module Previous
|
5
|
+
module Apm
|
6
|
+
module Klarna
|
7
|
+
# @!attribute shipping_company
|
8
|
+
# @return [String]
|
9
|
+
# @!attribute shipping_method
|
10
|
+
# @return [String]
|
11
|
+
# @!attribute tracking_number
|
12
|
+
# @return [String]
|
13
|
+
# @!attribute tracking_uri
|
14
|
+
# @return [String]
|
15
|
+
# @!attribute return_shipping_company
|
16
|
+
# @return [String]
|
17
|
+
# @!attribute return_tracking_number
|
18
|
+
# @return [String]
|
19
|
+
# @!attribute return_tracking_uri
|
20
|
+
# @return [String]
|
21
|
+
class KlarnaShippingInfo
|
22
|
+
attr_accessor :shipping_company,
|
23
|
+
:shipping_method,
|
24
|
+
:tracking_number,
|
25
|
+
:tracking_uri,
|
26
|
+
:return_shipping_company,
|
27
|
+
:return_tracking_number,
|
28
|
+
:return_tracking_uri
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
module Previous
|
5
|
+
module Apm
|
6
|
+
module Klarna
|
7
|
+
# @!attribute type
|
8
|
+
# @return [CheckoutSdk::Common::PaymentSourceType]
|
9
|
+
# @!attribute amount
|
10
|
+
# @return [Integer]
|
11
|
+
# @!attribute reference
|
12
|
+
# @return [String]
|
13
|
+
# @!attribute metadata
|
14
|
+
# @return [Hash(String=>Object)]
|
15
|
+
# @!attribute klarna
|
16
|
+
# @return [Klarna]
|
17
|
+
# @!attribute shipping_info
|
18
|
+
# @return [KlarnaShippingInfo]
|
19
|
+
# @!attribute shipping_delay
|
20
|
+
# @return [Integer]
|
21
|
+
class OrderCaptureRequest
|
22
|
+
attr_reader :type
|
23
|
+
attr_accessor :amount,
|
24
|
+
:reference,
|
25
|
+
:metadata,
|
26
|
+
:klarna,
|
27
|
+
:shipping_info,
|
28
|
+
:shipping_delay
|
29
|
+
|
30
|
+
def initialize
|
31
|
+
@type = CheckoutSdk::Common::PaymentSourceType::KLARNA
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
module Previous
|
5
|
+
module Apm
|
6
|
+
module Sepa
|
7
|
+
class SepaClient < Client
|
8
|
+
SEPA_MANDATES = 'sepa/mandates'
|
9
|
+
PPRO = 'ppro'
|
10
|
+
CANCEL = 'cancel'
|
11
|
+
private_constant :SEPA_MANDATES, :PPRO, :CANCEL
|
12
|
+
|
13
|
+
# @param [ApiClient] api_client
|
14
|
+
# @param [CheckoutConfiguration] configuration
|
15
|
+
def initialize(api_client, configuration)
|
16
|
+
super api_client, configuration, CheckoutSdk::AuthorizationType::SECRET_KEY
|
17
|
+
end
|
18
|
+
|
19
|
+
# @param mandate_id [String]
|
20
|
+
def get_mandate(mandate_id)
|
21
|
+
api_client.invoke_get(build_path(SEPA_MANDATES, mandate_id), sdk_authorization)
|
22
|
+
end
|
23
|
+
|
24
|
+
# @param mandate_id [String]
|
25
|
+
def cancel_mandate(mandate_id)
|
26
|
+
api_client.invoke_post(build_path(SEPA_MANDATES, mandate_id, CANCEL), sdk_authorization)
|
27
|
+
end
|
28
|
+
|
29
|
+
# @param mandate_id [String]
|
30
|
+
def get_mandate_via_ppro(mandate_id)
|
31
|
+
api_client.invoke_get(build_path(PPRO, SEPA_MANDATES, mandate_id), sdk_authorization)
|
32
|
+
end
|
33
|
+
|
34
|
+
# @param mandate_id [String]
|
35
|
+
def cancel_mandate_via_ppro(mandate_id)
|
36
|
+
api_client.invoke_post(build_path(PPRO, SEPA_MANDATES, mandate_id, CANCEL), sdk_authorization)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
module AuthorizationType
|
5
|
+
PUBLIC_KEY = 'PUBLIC_KEY'
|
6
|
+
SECRET_KEY = 'SECRET_KEY'
|
7
|
+
PUBLIC_KEY_OR_OAUTH = 'PUBLIC_KEY_OR_OAUTH'
|
8
|
+
SECRET_KEY_OR_OAUTH = 'SECRET_KEY_OR_OAUTH'
|
9
|
+
OAUTH = 'OAUTH'
|
10
|
+
CUSTOM = 'CUSTOM'
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
# @!attribute customers
|
5
|
+
# @return [CheckoutSdk::Customers::CustomersClient]
|
6
|
+
# @!attribute disputes
|
7
|
+
# @return [CheckoutSdk::Disputes::DisputesClient]
|
8
|
+
# @!attribute forex
|
9
|
+
# @return [CheckoutSdk::Forex::ForexClient]
|
10
|
+
# @!attribute instruments
|
11
|
+
# @return [CheckoutSdk::Instruments::InstrumentsClient]
|
12
|
+
# @!attribute payments
|
13
|
+
# @return [CheckoutSdk::Payments::PaymentsClient]
|
14
|
+
# @!attribute sessions
|
15
|
+
# @return [CheckoutSdk::Sessions::SessionsClient]
|
16
|
+
# @!attribute tokens
|
17
|
+
# @return [CheckoutSdk::Tokens::TokensClient]
|
18
|
+
# @!attribute ideal
|
19
|
+
# @return [CheckoutSdk::Apm::IdealClient]
|
20
|
+
class CheckoutApi
|
21
|
+
attr_reader :customers,
|
22
|
+
:disputes,
|
23
|
+
:forex,
|
24
|
+
:instruments,
|
25
|
+
:payments,
|
26
|
+
:sessions,
|
27
|
+
:tokens,
|
28
|
+
:ideal
|
29
|
+
|
30
|
+
# @param [CheckoutConfiguration] configuration
|
31
|
+
def initialize(configuration)
|
32
|
+
api_client = base_api_client configuration
|
33
|
+
@customers = CheckoutSdk::Customers::CustomersClient.new api_client, configuration
|
34
|
+
@disputes = CheckoutSdk::Disputes::DisputesClient.new api_client, configuration
|
35
|
+
@forex = CheckoutSdk::Forex::ForexClient.new api_client, configuration
|
36
|
+
@instruments = CheckoutSdk::Instruments::InstrumentsClient.new api_client, configuration
|
37
|
+
@payments = CheckoutSdk::Payments::PaymentsClient.new api_client, configuration
|
38
|
+
@sessions = CheckoutSdk::Sessions::SessionsClient.new api_client, configuration
|
39
|
+
@tokens = CheckoutSdk::Tokens::TokensClient.new api_client, configuration
|
40
|
+
@ideal = CheckoutSdk::Apm::IdealClient.new api_client, configuration
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
# @param [CheckoutConfiguration] configuration
|
46
|
+
# @return [ApiClient]
|
47
|
+
def base_api_client(configuration)
|
48
|
+
CheckoutSdk::ApiClient.new configuration, configuration.environment.base_uri
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
# @!attribute credentials
|
5
|
+
# @return [SdkCredentials]
|
6
|
+
# @!attribute environment
|
7
|
+
# @return [Environment]
|
8
|
+
# @!attribute http_client
|
9
|
+
# @return [Object]
|
10
|
+
class CheckoutConfiguration
|
11
|
+
attr_accessor :credentials, :environment, :http_client
|
12
|
+
|
13
|
+
# @param [SdkCredentials] credentials
|
14
|
+
# @param [Environment] environment
|
15
|
+
# @param [Object] http_client
|
16
|
+
def initialize(credentials, environment, http_client)
|
17
|
+
@credentials = credentials
|
18
|
+
@environment = environment
|
19
|
+
@http_client = http_client
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
# @!attribute client_id
|
5
|
+
# @return [String]
|
6
|
+
# @!attribute client_secret
|
7
|
+
# @return [String]
|
8
|
+
# @!attribute authorization_uri
|
9
|
+
# @return [String]
|
10
|
+
# @!attribute scopes
|
11
|
+
# @return [Array(CheckoutSdk::OAuthScopes)]
|
12
|
+
class CheckoutOAuthSdkBuilder < AbstractCheckoutSdkBuilder
|
13
|
+
attr_accessor :client_id,
|
14
|
+
:client_secret,
|
15
|
+
:authorization_uri,
|
16
|
+
:scopes
|
17
|
+
|
18
|
+
# @param [String] client_id
|
19
|
+
# @param [String] client_secret
|
20
|
+
# @return [CheckoutOAuthSdkBuilder]
|
21
|
+
def with_client_credentials(client_id, client_secret)
|
22
|
+
@client_id = client_id
|
23
|
+
@client_secret = client_secret
|
24
|
+
self
|
25
|
+
end
|
26
|
+
|
27
|
+
# @param [String] authorization_uri
|
28
|
+
# @return [CheckoutOAuthSdkBuilder]
|
29
|
+
def with_authorization_uri(authorization_uri)
|
30
|
+
@authorization_uri = authorization_uri
|
31
|
+
self
|
32
|
+
end
|
33
|
+
|
34
|
+
# @param [Array(CheckoutSdk::OAuthScopes)] scopes
|
35
|
+
# @return [CheckoutOAuthSdkBuilder]
|
36
|
+
def with_scopes(scopes)
|
37
|
+
@scopes = scopes
|
38
|
+
self
|
39
|
+
end
|
40
|
+
|
41
|
+
# @return [CheckoutSdk::CheckoutApi]
|
42
|
+
def build
|
43
|
+
CheckoutSdk::CheckoutApi.new(
|
44
|
+
CheckoutConfiguration.new(
|
45
|
+
OAuthSdkCredentials.new(client_id, client_secret, scopes, http_client, environment, authorization_uri),
|
46
|
+
environment,
|
47
|
+
http_client
|
48
|
+
)
|
49
|
+
)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
class CheckoutSdkBuilder
|
5
|
+
# @return [CheckoutSdk::CheckoutStaticKeysSdkBuilder]
|
6
|
+
def static_keys
|
7
|
+
CheckoutSdk::CheckoutStaticKeysSdkBuilder.new
|
8
|
+
end
|
9
|
+
|
10
|
+
# @return [CheckoutSdk::CheckoutOAuthSdkBuilder]
|
11
|
+
def oauth
|
12
|
+
CheckoutSdk::CheckoutOAuthSdkBuilder.new
|
13
|
+
end
|
14
|
+
|
15
|
+
# @return [CheckoutSdk::Previous::CheckoutPreviousSdkBuilder]
|
16
|
+
def previous
|
17
|
+
CheckoutSdk::Previous::CheckoutPreviousSdkBuilder.new
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
class CheckoutStaticKeysSdkBuilder < StaticKeysBuilder
|
5
|
+
SECRET_KEY_PATTERN = '^sk_(sbox_)?[a-z2-7]{26}[a-z2-7*#$=]$'
|
6
|
+
PUBLIC_KEY_PATTERN = '^pk_(sbox_)?[a-z2-7]{26}[a-z2-7*#$=]$'
|
7
|
+
private_constant :SECRET_KEY_PATTERN, :PUBLIC_KEY_PATTERN
|
8
|
+
|
9
|
+
# @return [CheckoutSdk::CheckoutApi]
|
10
|
+
def build
|
11
|
+
@secret_key_pattern = SECRET_KEY_PATTERN
|
12
|
+
@public_key_pattern = PUBLIC_KEY_PATTERN
|
13
|
+
super
|
14
|
+
CheckoutApi.new(
|
15
|
+
CheckoutConfiguration.new(
|
16
|
+
StaticKeysSdkCredentials.new(secret_key, public_key),
|
17
|
+
environment,
|
18
|
+
http_client
|
19
|
+
)
|
20
|
+
)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
class CheckoutUtils
|
5
|
+
# @return [CheckoutSdk::HttpMetadata]
|
6
|
+
def self.map_to_http_metadata(response)
|
7
|
+
metadata = CheckoutSdk::HttpMetadata.new
|
8
|
+
# TODO: convert to hash
|
9
|
+
metadata.headers = response[:headers]
|
10
|
+
metadata.status_code = response[:status]
|
11
|
+
metadata.body = response[:body]
|
12
|
+
metadata
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
# @!attribute api_client
|
5
|
+
# @return [ApiClient]
|
6
|
+
# @!attribute authorization_type
|
7
|
+
# @return [CheckoutConfiguration]
|
8
|
+
# @!attribute configuration
|
9
|
+
# @return [String] {AuthorizationType}
|
10
|
+
class Client
|
11
|
+
attr_reader :api_client,
|
12
|
+
:authorization_type,
|
13
|
+
:configuration
|
14
|
+
protected :api_client, :authorization_type, :configuration
|
15
|
+
|
16
|
+
# @param [CheckoutSdk::ApiClient] api_client
|
17
|
+
# @param [CheckoutConfiguration] configuration
|
18
|
+
# @param [String] authorization_type {AuthorizationType}
|
19
|
+
def initialize(api_client, configuration, authorization_type)
|
20
|
+
@api_client = api_client
|
21
|
+
@authorization_type = authorization_type
|
22
|
+
@configuration = configuration
|
23
|
+
end
|
24
|
+
|
25
|
+
protected
|
26
|
+
|
27
|
+
# @param [Array] args
|
28
|
+
def build_path(*args)
|
29
|
+
args.join('/')
|
30
|
+
end
|
31
|
+
|
32
|
+
# @return [TrueClass, FalseClass]
|
33
|
+
def sandbox?
|
34
|
+
@configuration.environment.is_sandbox
|
35
|
+
end
|
36
|
+
|
37
|
+
# @param [String, nil] authorization_type {AuthorizationType}
|
38
|
+
def sdk_authorization(authorization_type = nil)
|
39
|
+
if authorization_type.nil?
|
40
|
+
configuration.credentials.get_authorization(@authorization_type)
|
41
|
+
else
|
42
|
+
configuration.credentials.get_authorization(authorization_type)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
module Common
|
5
|
+
# @!attribute type
|
6
|
+
# @return [String] {AccountHolderType}
|
7
|
+
# @!attribute first_name
|
8
|
+
# @return [String]
|
9
|
+
# @!attribute last_name
|
10
|
+
# @return [String]
|
11
|
+
# @!attribute company_name
|
12
|
+
# @return [String]
|
13
|
+
# @!attribute tax_id
|
14
|
+
# @return [String]
|
15
|
+
# @!attribute date_of_birth
|
16
|
+
# @return [String]
|
17
|
+
# @!attribute country_of_birth
|
18
|
+
# @return [Country]
|
19
|
+
# @!attribute residential_status
|
20
|
+
# @return [String]
|
21
|
+
# @!attribute billing_address
|
22
|
+
# @return [Address]
|
23
|
+
# @!attribute phone
|
24
|
+
# @return [Phone]
|
25
|
+
# @!attribute identification
|
26
|
+
# @return [AccountHolderIdentification]
|
27
|
+
# @!attribute email
|
28
|
+
# @return [String]
|
29
|
+
class AccountHolder
|
30
|
+
attr_accessor :type,
|
31
|
+
:first_name,
|
32
|
+
:last_name,
|
33
|
+
:company_name,
|
34
|
+
:tax_id,
|
35
|
+
:date_of_birth,
|
36
|
+
:country_of_birth,
|
37
|
+
:residential_status,
|
38
|
+
:billing_address,
|
39
|
+
:phone,
|
40
|
+
:identification,
|
41
|
+
:email
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
module Common
|
5
|
+
# @!attribute type
|
6
|
+
# @return [String] {AccountHolderIdentificationType}
|
7
|
+
# @!attribute number
|
8
|
+
# @return [String]
|
9
|
+
# @!attribute issuing_country
|
10
|
+
# @return [String] {Country}
|
11
|
+
# @!attribute date_of_expiry
|
12
|
+
# @return [String]
|
13
|
+
class AccountHolderIdentification
|
14
|
+
attr_accessor :type,
|
15
|
+
:number,
|
16
|
+
:issuing_country,
|
17
|
+
:date_of_expiry
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
module Common
|
5
|
+
module AccountHolderIdentificationType
|
6
|
+
PASSPORT = 'passport'
|
7
|
+
DRIVING_LICENSE = 'driving_licence'
|
8
|
+
NATIONAL_ID = 'national_id'
|
9
|
+
COMPANY_REGISTRATION = 'company_registration'
|
10
|
+
TAX_ID = 'tax_id'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
module Common
|
5
|
+
# @!attribute address_line1
|
6
|
+
# @return [String]
|
7
|
+
# @!attribute address_line2
|
8
|
+
# @return [String]
|
9
|
+
# @!attribute city
|
10
|
+
# @return [String]
|
11
|
+
# @!attribute state
|
12
|
+
# @return [String]
|
13
|
+
# @!attribute zip
|
14
|
+
# @return [String]
|
15
|
+
# @!attribute country
|
16
|
+
# @return [String]
|
17
|
+
class Address
|
18
|
+
attr_accessor :address_line1,
|
19
|
+
:address_line2,
|
20
|
+
:city,
|
21
|
+
:state,
|
22
|
+
:zip,
|
23
|
+
:country
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
module Common
|
5
|
+
# @!attribute id
|
6
|
+
# @return [String]
|
7
|
+
# @!attribute amount
|
8
|
+
# @return [Integer]
|
9
|
+
# @!attribute reference
|
10
|
+
# @return [String]
|
11
|
+
# @!attribute commission
|
12
|
+
# @return [Commission]
|
13
|
+
class AmountAllocations
|
14
|
+
attr_accessor :id,
|
15
|
+
:amount,
|
16
|
+
:reference,
|
17
|
+
:commission
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
module Common
|
5
|
+
# @!attribute name
|
6
|
+
# @return [String]
|
7
|
+
# @!attribute branch
|
8
|
+
# @return [String]
|
9
|
+
# @!attribute address
|
10
|
+
# @return [Address]
|
11
|
+
class BankDetails
|
12
|
+
attr_accessor :name,
|
13
|
+
:branch,
|
14
|
+
:address
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CheckoutSdk
|
4
|
+
module Common
|
5
|
+
module ChallengeIndicator
|
6
|
+
NO_PREFERENCE = 'no_preference'
|
7
|
+
NO_CHALLENGE_REQUESTED = 'no_challenge_requested'
|
8
|
+
CHALLENGE_REQUESTED = 'challenge_requested'
|
9
|
+
CHALLENGE_REQUESTED_MANDATE = 'challenge_requested_mandate'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|