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.
Files changed (257) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +31 -0
  3. data/CODE_OF_CONDUCT.md +84 -0
  4. data/Gemfile +5 -2
  5. data/LICENSE.md +9 -0
  6. data/README.md +96 -110
  7. data/Rakefile +3 -1
  8. data/lib/checkout_sdk/abstract_checkout_sdk_builder.rb +28 -0
  9. data/lib/checkout_sdk/api_client.rb +135 -0
  10. data/lib/checkout_sdk/apm/apm.rb +12 -0
  11. data/lib/checkout_sdk/apm/ideal/ideal_client.rb +25 -0
  12. data/lib/checkout_sdk/apm/previous/klarna/credit_session_request.rb +30 -0
  13. data/lib/checkout_sdk/apm/previous/klarna/klarna.rb +24 -0
  14. data/lib/checkout_sdk/apm/previous/klarna/klarna_client.rb +55 -0
  15. data/lib/checkout_sdk/apm/previous/klarna/klarna_product.rb +30 -0
  16. data/lib/checkout_sdk/apm/previous/klarna/klarna_shipping_info.rb +33 -0
  17. data/lib/checkout_sdk/apm/previous/klarna/order_capture_request.rb +37 -0
  18. data/lib/checkout_sdk/apm/previous/sepa/sepa_client.rb +42 -0
  19. data/lib/checkout_sdk/authorization_type.rb +12 -0
  20. data/lib/checkout_sdk/checkout_api.rb +51 -0
  21. data/lib/checkout_sdk/checkout_configuration.rb +22 -0
  22. data/lib/checkout_sdk/checkout_oauth_sdk_builder.rb +52 -0
  23. data/lib/checkout_sdk/checkout_sdk_builder.rb +20 -0
  24. data/lib/checkout_sdk/checkout_static_keys_sdk_builder.rb +23 -0
  25. data/lib/checkout_sdk/checkout_utils.rb +15 -0
  26. data/lib/checkout_sdk/client.rb +46 -0
  27. data/lib/checkout_sdk/common/abstract_file_request.rb +11 -0
  28. data/lib/checkout_sdk/common/account_holder.rb +44 -0
  29. data/lib/checkout_sdk/common/account_holder_identification.rb +20 -0
  30. data/lib/checkout_sdk/common/account_holder_identification_type.rb +13 -0
  31. data/lib/checkout_sdk/common/account_holder_type.rb +11 -0
  32. data/lib/checkout_sdk/common/account_type.rb +11 -0
  33. data/lib/checkout_sdk/common/address.rb +26 -0
  34. data/lib/checkout_sdk/common/amount_allocations.rb +20 -0
  35. data/lib/checkout_sdk/common/bank_details.rb +17 -0
  36. data/lib/checkout_sdk/common/challenge_indicator.rb +12 -0
  37. data/lib/checkout_sdk/common/commission.rb +14 -0
  38. data/lib/checkout_sdk/common/common.rb +22 -0
  39. data/lib/checkout_sdk/common/country.rb +260 -0
  40. data/lib/checkout_sdk/common/currency.rb +168 -0
  41. data/lib/checkout_sdk/common/customer_request.rb +26 -0
  42. data/lib/checkout_sdk/common/file_purpose.rb +9 -0
  43. data/lib/checkout_sdk/common/file_request.rb +11 -0
  44. data/lib/checkout_sdk/common/instrument_type.rb +11 -0
  45. data/lib/checkout_sdk/common/payment_source_type.rb +52 -0
  46. data/lib/checkout_sdk/common/phone.rb +14 -0
  47. data/lib/checkout_sdk/common/update_customer_request.rb +14 -0
  48. data/lib/checkout_sdk/customers/customer_request.rb +26 -0
  49. data/lib/checkout_sdk/customers/customers.rb +4 -0
  50. data/lib/checkout_sdk/customers/customers_client.rb +37 -0
  51. data/lib/checkout_sdk/disputes/dispute_evidence_request.rb +60 -0
  52. data/lib/checkout_sdk/disputes/dispute_status.rb +19 -0
  53. data/lib/checkout_sdk/disputes/disputes.rb +6 -0
  54. data/lib/checkout_sdk/disputes/disputes_client.rb +55 -0
  55. data/lib/checkout_sdk/disputes/disputes_query_filter.rb +47 -0
  56. data/lib/checkout_sdk/environment.rb +59 -0
  57. data/lib/checkout_sdk/error.rb +30 -0
  58. data/lib/checkout_sdk/forex/forex.rb +4 -0
  59. data/lib/checkout_sdk/forex/forex_client.rb +21 -0
  60. data/lib/checkout_sdk/forex/quote_request.rb +23 -0
  61. data/lib/checkout_sdk/http_metadata.rb +9 -0
  62. data/lib/checkout_sdk/instruments/create/instrument_bank_account_request.rb +51 -0
  63. data/lib/checkout_sdk/instruments/create/instrument_request.rb +17 -0
  64. data/lib/checkout_sdk/instruments/create/instrument_token_request.rb +21 -0
  65. data/lib/checkout_sdk/instruments/get/bank_account_field_query.rb +14 -0
  66. data/lib/checkout_sdk/instruments/get/payment_network.rb +14 -0
  67. data/lib/checkout_sdk/instruments/instruments.rb +15 -0
  68. data/lib/checkout_sdk/instruments/instruments_client.rb +49 -0
  69. data/lib/checkout_sdk/instruments/update/update_instrument_bank_account_request.rb +51 -0
  70. data/lib/checkout_sdk/instruments/update/update_instrument_card_request.rb +27 -0
  71. data/lib/checkout_sdk/instruments/update/update_instrument_request.rb +17 -0
  72. data/lib/checkout_sdk/instruments/update/update_instrument_token_request.rb +15 -0
  73. data/lib/checkout_sdk/json_serializer.rb +54 -0
  74. data/lib/checkout_sdk/oauth_access_token.rb +27 -0
  75. data/lib/checkout_sdk/oauth_scopes.rb +41 -0
  76. data/lib/checkout_sdk/oauth_sdk_credentials.rb +112 -0
  77. data/lib/checkout_sdk/payments/airline_data.rb +17 -0
  78. data/lib/checkout_sdk/payments/authorization_request.rb +17 -0
  79. data/lib/checkout_sdk/payments/authorization_type.rb +11 -0
  80. data/lib/checkout_sdk/payments/billing_descriptor.rb +17 -0
  81. data/lib/checkout_sdk/payments/capture_request.rb +41 -0
  82. data/lib/checkout_sdk/payments/capture_type.rb +10 -0
  83. data/lib/checkout_sdk/payments/charge_bearer.rb +10 -0
  84. data/lib/checkout_sdk/payments/d_local_installments.rb +11 -0
  85. data/lib/checkout_sdk/payments/d_local_processing_settings.rb +17 -0
  86. data/lib/checkout_sdk/payments/destination/bank_account_destination.rb +42 -0
  87. data/lib/checkout_sdk/payments/destination/card_destination.rb +24 -0
  88. data/lib/checkout_sdk/payments/destination/destination.rb +19 -0
  89. data/lib/checkout_sdk/payments/destination/destination_type.rb +12 -0
  90. data/lib/checkout_sdk/payments/destination/id_destination.rb +18 -0
  91. data/lib/checkout_sdk/payments/destination/token_destination.rb +18 -0
  92. data/lib/checkout_sdk/payments/exemption.rb +17 -0
  93. data/lib/checkout_sdk/payments/flight_leg_details.rb +35 -0
  94. data/lib/checkout_sdk/payments/instruction_scheme.rb +11 -0
  95. data/lib/checkout_sdk/payments/merchant_initiated_reason.rb +12 -0
  96. data/lib/checkout_sdk/payments/network_token_type.rb +12 -0
  97. data/lib/checkout_sdk/payments/os_type.rb +10 -0
  98. data/lib/checkout_sdk/payments/passenger.rb +17 -0
  99. data/lib/checkout_sdk/payments/passenger_name.rb +11 -0
  100. data/lib/checkout_sdk/payments/payer.rb +17 -0
  101. data/lib/checkout_sdk/payments/payment_instruction.rb +32 -0
  102. data/lib/checkout_sdk/payments/payment_recipient.rb +20 -0
  103. data/lib/checkout_sdk/payments/payment_request.rb +86 -0
  104. data/lib/checkout_sdk/payments/payment_type.rb +13 -0
  105. data/lib/checkout_sdk/payments/payments.rb +82 -0
  106. data/lib/checkout_sdk/payments/payments_client.rb +86 -0
  107. data/lib/checkout_sdk/payments/payout_billing_descriptor.rb +11 -0
  108. data/lib/checkout_sdk/payments/payout_request.rb +38 -0
  109. data/lib/checkout_sdk/payments/preferred_schema.rb +11 -0
  110. data/lib/checkout_sdk/payments/processing_settings.rb +80 -0
  111. data/lib/checkout_sdk/payments/product.rb +47 -0
  112. data/lib/checkout_sdk/payments/product_type.rb +12 -0
  113. data/lib/checkout_sdk/payments/refund_request.rb +17 -0
  114. data/lib/checkout_sdk/payments/risk_request.rb +11 -0
  115. data/lib/checkout_sdk/payments/sender/corporate_sender.rb +27 -0
  116. data/lib/checkout_sdk/payments/sender/government_sender.rb +27 -0
  117. data/lib/checkout_sdk/payments/sender/individual_sender.rb +42 -0
  118. data/lib/checkout_sdk/payments/sender/instrument_sender.rb +11 -0
  119. data/lib/checkout_sdk/payments/sender/sender.rb +22 -0
  120. data/lib/checkout_sdk/payments/sender/sender_type.rb +12 -0
  121. data/lib/checkout_sdk/payments/sender/source_of_funds.rb +14 -0
  122. data/lib/checkout_sdk/payments/sender/ticket.rb +23 -0
  123. data/lib/checkout_sdk/payments/shipping_details.rb +17 -0
  124. data/lib/checkout_sdk/payments/shipping_preference.rb +11 -0
  125. data/lib/checkout_sdk/payments/source/apm/after_pay_source.rb +15 -0
  126. data/lib/checkout_sdk/payments/source/apm/alipay_plus_source.rb +47 -0
  127. data/lib/checkout_sdk/payments/source/apm/bancontact_source.rb +24 -0
  128. data/lib/checkout_sdk/payments/source/apm/benefit_source.rb +11 -0
  129. data/lib/checkout_sdk/payments/source/apm/eps_source.rb +15 -0
  130. data/lib/checkout_sdk/payments/source/apm/giropay_source.rb +27 -0
  131. data/lib/checkout_sdk/payments/source/apm/ideal_source.rb +21 -0
  132. data/lib/checkout_sdk/payments/source/apm/knet_source.rb +36 -0
  133. data/lib/checkout_sdk/payments/source/apm/mbway_source.rb +11 -0
  134. data/lib/checkout_sdk/payments/source/apm/multi_banco_source.rb +21 -0
  135. data/lib/checkout_sdk/payments/source/apm/p24_source.rb +24 -0
  136. data/lib/checkout_sdk/payments/source/apm/paypal_source.rb +11 -0
  137. data/lib/checkout_sdk/payments/source/apm/post_finance_source.rb +21 -0
  138. data/lib/checkout_sdk/payments/source/apm/qpay_source.rb +24 -0
  139. data/lib/checkout_sdk/payments/source/apm/sofort_source.rb +18 -0
  140. data/lib/checkout_sdk/payments/source/apm/stcpay_source.rb +11 -0
  141. data/lib/checkout_sdk/payments/source/apm/tamara_source.rb +15 -0
  142. data/lib/checkout_sdk/payments/source/apm/we_chat_pay_source.rb +15 -0
  143. data/lib/checkout_sdk/payments/source/bank_account_source.rb +30 -0
  144. data/lib/checkout_sdk/payments/source/card_source.rb +39 -0
  145. data/lib/checkout_sdk/payments/source/currency_account_source.rb +15 -0
  146. data/lib/checkout_sdk/payments/source/id_source.rb +21 -0
  147. data/lib/checkout_sdk/payments/source/network_token_source.rb +45 -0
  148. data/lib/checkout_sdk/payments/source/payment_request_source.rb +18 -0
  149. data/lib/checkout_sdk/payments/source/payout_request_source.rb +22 -0
  150. data/lib/checkout_sdk/payments/source/payout_source_type.rb +9 -0
  151. data/lib/checkout_sdk/payments/source/provider_token_source.rb +21 -0
  152. data/lib/checkout_sdk/payments/source/token_source.rb +24 -0
  153. data/lib/checkout_sdk/payments/terminal_type.rb +11 -0
  154. data/lib/checkout_sdk/payments/three_ds_flow_type.rb +11 -0
  155. data/lib/checkout_sdk/payments/three_ds_request.rb +56 -0
  156. data/lib/checkout_sdk/payments/user_action.rb +10 -0
  157. data/lib/checkout_sdk/payments/void_request.rb +14 -0
  158. data/lib/checkout_sdk/platform_type.rb +10 -0
  159. data/lib/checkout_sdk/previous/checkout_api.rb +29 -0
  160. data/lib/checkout_sdk/previous/checkout_previous_sdk_builder.rb +11 -0
  161. data/lib/checkout_sdk/previous/checkout_previous_static_keys_sdk_builder.rb +24 -0
  162. data/lib/checkout_sdk/previous/previous_static_keys_sdk_credentials.rb +38 -0
  163. data/lib/checkout_sdk/sdk_authorization.rb +25 -0
  164. data/lib/checkout_sdk/sdk_credentials.rb +12 -0
  165. data/lib/checkout_sdk/sessions/authentication_method.rb +14 -0
  166. data/lib/checkout_sdk/sessions/authentication_type.rb +10 -0
  167. data/lib/checkout_sdk/sessions/card_holder_account_info.rb +32 -0
  168. data/lib/checkout_sdk/sessions/category.rb +10 -0
  169. data/lib/checkout_sdk/sessions/channel/app_session.rb +36 -0
  170. data/lib/checkout_sdk/sessions/channel/browser_session.rb +42 -0
  171. data/lib/checkout_sdk/sessions/channel/channel_data.rb +19 -0
  172. data/lib/checkout_sdk/sessions/channel/channel_data_type.rb +10 -0
  173. data/lib/checkout_sdk/sessions/channel/sdk_ephemeral_public_key.rb +19 -0
  174. data/lib/checkout_sdk/sessions/channel/sdk_interface_type.rb +11 -0
  175. data/lib/checkout_sdk/sessions/channel/three_ds_method_completion.rb +11 -0
  176. data/lib/checkout_sdk/sessions/channel/uie_elements.rb +13 -0
  177. data/lib/checkout_sdk/sessions/completion/completion_info.rb +19 -0
  178. data/lib/checkout_sdk/sessions/completion/completion_info_type.rb +10 -0
  179. data/lib/checkout_sdk/sessions/completion/hosted_completion_info.rb +21 -0
  180. data/lib/checkout_sdk/sessions/completion/non_hosted_completion_info.rb +15 -0
  181. data/lib/checkout_sdk/sessions/delivery_timeframe.rb +12 -0
  182. data/lib/checkout_sdk/sessions/installment.rb +17 -0
  183. data/lib/checkout_sdk/sessions/merchant_risk_info.rb +23 -0
  184. data/lib/checkout_sdk/sessions/recurring.rb +14 -0
  185. data/lib/checkout_sdk/sessions/session_address.rb +11 -0
  186. data/lib/checkout_sdk/sessions/session_marketplace_data.rb +11 -0
  187. data/lib/checkout_sdk/sessions/session_request.rb +68 -0
  188. data/lib/checkout_sdk/sessions/session_secret_credentials.rb +28 -0
  189. data/lib/checkout_sdk/sessions/session_source_type.rb +12 -0
  190. data/lib/checkout_sdk/sessions/sessions.rb +47 -0
  191. data/lib/checkout_sdk/sessions/sessions_billing_descriptor.rb +11 -0
  192. data/lib/checkout_sdk/sessions/sessions_client.rb +64 -0
  193. data/lib/checkout_sdk/sessions/shipping_indicator.rb +9 -0
  194. data/lib/checkout_sdk/sessions/source/card_source.rb +30 -0
  195. data/lib/checkout_sdk/sessions/source/id_source.rb +15 -0
  196. data/lib/checkout_sdk/sessions/source/network_token_source.rb +27 -0
  197. data/lib/checkout_sdk/sessions/source/session_scheme.rb +14 -0
  198. data/lib/checkout_sdk/sessions/source/session_source.rb +37 -0
  199. data/lib/checkout_sdk/sessions/source/token_source.rb +18 -0
  200. data/lib/checkout_sdk/sessions/three_ds_method_completion_request.rb +11 -0
  201. data/lib/checkout_sdk/sessions/transaction_type.rb +13 -0
  202. data/lib/checkout_sdk/static_keys_builder.rb +35 -0
  203. data/lib/checkout_sdk/static_keys_sdk_credentials.rb +35 -0
  204. data/lib/checkout_sdk/tokens/apple_pay_token_data.rb +20 -0
  205. data/lib/checkout_sdk/tokens/apple_pay_token_request.rb +15 -0
  206. data/lib/checkout_sdk/tokens/card_token_request.rb +36 -0
  207. data/lib/checkout_sdk/tokens/google_pay_token_data.rb +17 -0
  208. data/lib/checkout_sdk/tokens/google_pay_token_request.rb +15 -0
  209. data/lib/checkout_sdk/tokens/token_type.rb +11 -0
  210. data/lib/checkout_sdk/tokens/tokens.rb +10 -0
  211. data/lib/checkout_sdk/tokens/tokens_client.rb +21 -0
  212. data/lib/checkout_sdk/tokens/wallet_token_request.rb +19 -0
  213. data/lib/checkout_sdk/version.rb +3 -1
  214. data/lib/checkout_sdk.rb +59 -21
  215. data/sig/checkout_sdk.rbs +4 -0
  216. metadata +254 -81
  217. data/.gitignore +0 -11
  218. data/.travis.yml +0 -7
  219. data/Gemfile.lock +0 -45
  220. data/LICENSE +0 -21
  221. data/bin/console +0 -14
  222. data/bin/setup +0 -8
  223. data/checkout_sdk.gemspec +0 -24
  224. data/documentation/.gitignore +0 -20
  225. data/documentation/docs/environment.md +0 -26
  226. data/documentation/docs/getting_started.md +0 -48
  227. data/documentation/docs/initialize.md +0 -19
  228. data/documentation/docs/install.md +0 -21
  229. data/documentation/docs/payments.md +0 -200
  230. data/documentation/docs/sources.md +0 -53
  231. data/documentation/docs/tokens.md +0 -88
  232. data/documentation/docusaurus.config.js +0 -60
  233. data/documentation/package-lock.json +0 -13511
  234. data/documentation/package.json +0 -32
  235. data/documentation/sidebars.js +0 -10
  236. data/documentation/src/css/custom.css +0 -103
  237. data/documentation/src/pages/index.js +0 -10
  238. data/documentation/src/pages/styles.module.css +0 -37
  239. data/documentation/static/img/favicon.png +0 -0
  240. data/documentation/static/img/logo.png +0 -0
  241. data/documentation/static/img/undraw_docusaurus_mountain.svg +0 -170
  242. data/documentation/static/img/undraw_docusaurus_react.svg +0 -169
  243. data/documentation/static/img/undraw_docusaurus_tree.svg +0 -1
  244. data/documentation/yarn.lock +0 -9369
  245. data/lib/checkout_sdk/api_resource.rb +0 -77
  246. data/lib/checkout_sdk/configuration.rb +0 -10
  247. data/lib/checkout_sdk/data/capture_payment.rb +0 -11
  248. data/lib/checkout_sdk/data/payment_request_source.rb +0 -145
  249. data/lib/checkout_sdk/data/payment_source.rb +0 -40
  250. data/lib/checkout_sdk/data/refund_payment.rb +0 -11
  251. data/lib/checkout_sdk/data/request_token.rb +0 -67
  252. data/lib/checkout_sdk/data/void_payment.rb +0 -10
  253. data/spec/checkout_sdk/api_resource_spec.rb +0 -126
  254. data/spec/checkout_sdk/data/payment_request_source_spec.rb +0 -126
  255. data/spec/checkout_sdk/data/request_token_spec.rb +0 -107
  256. data/spec/checkout_sdk_spec.rb +0 -21
  257. data/spec/spec_helper.rb +0 -32
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Payments
5
+ # @!attribute type
6
+ # @return [String] {CheckoutSdk::Common::PaymentSourceType}
7
+ class PaymentRequestSource
8
+ attr_reader :type
9
+
10
+ protected
11
+
12
+ # @param [String] type {CheckoutSdk::Common::PaymentSourceType}
13
+ def initialize(type)
14
+ @type = type
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Payments
5
+ # @!attribute type
6
+ # @return [String] {PayoutSourceType}
7
+ # @!attribute amount
8
+ # @return [String]
9
+ class PayoutRequestSource
10
+ attr_accessor :type,
11
+ :amount
12
+
13
+ protected
14
+
15
+ # @abstract
16
+ # @param [String] type {PayoutSourceType}
17
+ def initialize(type)
18
+ @type = type
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Payments
5
+ module PayoutSourceType
6
+ CURRENCY_ACCOUNT = 'currency_account'
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Payments
5
+ # @!attribute payment_method
6
+ # @return [String]
7
+ # @!attribute token
8
+ # @return [String]
9
+ # @!attribute account_holder
10
+ # @return [CheckoutSdk::Common::AccountHolder]
11
+ class ProviderTokenSource < PaymentRequestSource
12
+ attr_accessor :payment_method,
13
+ :token,
14
+ :account_holder
15
+
16
+ def initialize
17
+ super CheckoutSdk::Common::PaymentSourceType::PROVIDER_TOKEN
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Payments
5
+ # @!attribute token
6
+ # @return [String]
7
+ # @!attribute billing_address
8
+ # @return [CheckoutSdk::Common::Address]
9
+ # @!attribute phone
10
+ # @return [CheckoutSdk::Common::Phone]
11
+ # @!attribute store_for_future_use
12
+ # @return [TrueClass, FalseClass]
13
+ class TokenSource < PaymentRequestSource
14
+ attr_accessor :token,
15
+ :billing_address,
16
+ :phone,
17
+ :store_for_future_use
18
+
19
+ def initialize
20
+ super CheckoutSdk::Common::PaymentSourceType::TOKEN
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Payments
5
+ module TerminalType
6
+ APP = 'APP'
7
+ WAP = 'WAP'
8
+ WEB = 'WEB'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Payments
5
+ module ThreeDSFlowType
6
+ CHALLENGED = 'challenged'
7
+ FRICTIONLESS = 'frictionless'
8
+ FRICTIONLESS_DELEGATED = 'frictionless_delegated'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Payments
5
+ # @!attribute enabled
6
+ # @return [TrueClass, FalseClass]
7
+ # @!attribute attempt_n3d
8
+ # @return [TrueClass, FalseClass]
9
+ # @!attribute eci
10
+ # @return [String]
11
+ # @!attribute cryptogram
12
+ # @return [String]
13
+ # @!attribute xid
14
+ # @return [String]
15
+ # @!attribute version
16
+ # @return [String]
17
+ # @!attribute exemption
18
+ # @return [String] {Exemption}
19
+ # @!attribute challenge_indicator
20
+ # @return [String] {ChallengeIndicator}
21
+ # @!attribute status
22
+ # @return [String]
23
+ # @!attribute authentication_date
24
+ # @return [Time]
25
+ # @!attribute authentication_amount
26
+ # @return [Integer]
27
+ # @!attribute flow_type
28
+ # @return [String] {ThreeDSFlowType}
29
+ # @!attribute status_reason_code
30
+ # @return [String]
31
+ # @!attribute challenge_cancel_reason
32
+ # @return [String]
33
+ # @!attribute score
34
+ # @return [String]
35
+ # @!attribute cryptogram_algorithm
36
+ # @return [String]
37
+ class ThreeDSRequest
38
+ attr_accessor :enabled,
39
+ :attempt_n3d,
40
+ :eci,
41
+ :cryptogram,
42
+ :xid,
43
+ :version,
44
+ :exemption,
45
+ :challenge_indicator,
46
+ :status,
47
+ :authentication_date,
48
+ :authentication_amount,
49
+ :flow_type,
50
+ :status_reason_code,
51
+ :challenge_cancel_reason,
52
+ :score,
53
+ :cryptogram_algorithm
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Payments
5
+ module UserAction
6
+ PAY_NOW = 'PAY_NOW'
7
+ CONTINUE = 'CONTINUE'
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Payments
5
+ # @!attribute reference
6
+ # @return [String]
7
+ # @!attribute metadata
8
+ # @return [Hash{String => Object}]
9
+ class VoidRequest
10
+ attr_accessor :reference,
11
+ :metadata
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module PlatformType
5
+ PREVIOUS = 'PREVIOUS'
6
+ DEFAULT = 'DEFAULT'
7
+ OAUTH = 'OAUTH'
8
+ CUSTOM = 'CUSTOM'
9
+ end
10
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Previous
5
+ # @!attribute klarna
6
+ # @return [CheckoutSdk::Previous::Apm::Klarna::KlarnaClient]
7
+ # @!attribute sepa
8
+ # @return [CheckoutSdk::Previous::Apm::Sepa::SepaClient]
9
+ class CheckoutApi
10
+ attr_reader :klarna,
11
+ :sepa
12
+
13
+ # @param [CheckoutConfiguration] configuration
14
+ def initialize(configuration)
15
+ api_client = base_api_client configuration
16
+ @klarna = CheckoutSdk::Previous::Apm::Klarna::KlarnaClient.new api_client, configuration
17
+ @sepa = CheckoutSdk::Previous::Apm::Sepa::SepaClient.new api_client, configuration
18
+ end
19
+
20
+ private
21
+
22
+ # @param [CheckoutConfiguration] configuration
23
+ # @return [ApiClient]
24
+ def base_api_client(configuration)
25
+ CheckoutSdk::ApiClient.new configuration, configuration.environment.base_uri
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Previous
5
+ class CheckoutPreviousSdkBuilder
6
+ def static_keys
7
+ CheckoutPreviousStaticKeysSdkBuilder.new
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Previous
5
+ class CheckoutPreviousStaticKeysSdkBuilder < StaticKeysBuilder
6
+ SECRET_KEY_PATTERN = '^sk_(test_)?(\\w{8})-(\\w{4})-(\\w{4})-(\\w{4})-(\\w{12})$'
7
+ PUBLIC_KEY_PATTERN = '^pk_(test_)?(\\w{8})-(\\w{4})-(\\w{4})-(\\w{4})-(\\w{12})$'
8
+ private_constant :SECRET_KEY_PATTERN, :PUBLIC_KEY_PATTERN
9
+
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
+ PreviousStaticKeysSdkCredentials.new(secret_key, public_key),
17
+ environment,
18
+ http_client
19
+ )
20
+ )
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Previous
5
+ # @!attribute secret_key
6
+ # @return [String]
7
+ # @!attribute public_key
8
+ # @return [String]
9
+ class PreviousStaticKeysSdkCredentials < SdkCredentials
10
+ attr_reader :secret_key, :public_key
11
+
12
+ # @param [String] secret_key
13
+ # @param [String] public_key
14
+ # @return [PreviousStaticKeysSdkCredentials]
15
+ def initialize(secret_key, public_key)
16
+ @secret_key = secret_key
17
+ @public_key = public_key
18
+ end
19
+
20
+ # @param [String] authorization_type
21
+ # @return [CheckoutSdk::SdkAuthorization]
22
+ def get_authorization(authorization_type)
23
+ case authorization_type
24
+ when AuthorizationType::SECRET_KEY, AuthorizationType::SECRET_KEY_OR_OAUTH
25
+ raise CheckoutAuthorizationException.invalid_key AuthorizationType::SECRET_KEY if secret_key.nil?
26
+
27
+ SdkAuthorization.new(PlatformType::PREVIOUS, @secret_key)
28
+ when AuthorizationType::PUBLIC_KEY, AuthorizationType::PUBLIC_KEY_OR_OAUTH
29
+ raise CheckoutAuthorizationException.invalid_key AuthorizationType::PUBLIC_KEY if public_key.nil?
30
+
31
+ SdkAuthorization.new(PlatformType::PREVIOUS, @public_key)
32
+ else
33
+ raise CheckoutAuthorizationException.invalid_authorization authorization_type
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ class SdkAuthorization
5
+ attr_accessor :platform_type, :credential
6
+
7
+ # @param [String] platform_type {PlatformType}
8
+ # @param [String] credential
9
+ def initialize(platform_type, credential)
10
+ @platform_type = platform_type
11
+ @credential = credential
12
+ end
13
+
14
+ def authorization_header
15
+ case @platform_type
16
+ when PlatformType::PREVIOUS, PlatformType::CUSTOM
17
+ @credential
18
+ when PlatformType::DEFAULT, PlatformType::OAUTH
19
+ "Bearer #{@credential}"
20
+ else
21
+ raise CheckoutAuthorizationException, 'Invalid platform type'
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ class SdkCredentials
5
+ protected
6
+
7
+ # @abstract
8
+ def get_authorization(authorization_type)
9
+ raise NotImplementedError, 'Implement this method in a child class'
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Sessions
5
+ module AuthenticationMethod
6
+ NO_AUTHENTICATION = 'no_authentication'
7
+ OWN_CREDENTIALS = 'own_credentials'
8
+ FEDERATED_ID = 'federated_id'
9
+ ISSUER_CREDENTIALS = 'issuer_credentials'
10
+ THIRD_PARTY_AUTHENTICATION = 'third_party_authentication'
11
+ FIDO = 'fido'
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Sessions
5
+ module AuthenticationType
6
+ REGULAR = 'regular'
7
+ RECURRING = 'recurring'
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Sessions
5
+ # @!attribute purchase_count
6
+ # @return [Integer]
7
+ # @!attribute account_age
8
+ # @return [String]
9
+ # @!attribute add_card_attempts
10
+ # @return [Integer]
11
+ # @!attribute shipping_address_age
12
+ # @return [String]
13
+ # @!attribute account_name_matches_shipping_name
14
+ # @return [TrueClass, FalseClass]
15
+ # @!attribute suspicious_account_activity
16
+ # @return [TrueClass, FalseClass]
17
+ # @!attribute transactions_today
18
+ # @return [Integer]
19
+ # @!attribute authentication_method
20
+ # @return [String] {AuthenticationMethod}
21
+ class CardHolderAccountInfo
22
+ attr_accessor :purchase_count,
23
+ :account_age,
24
+ :add_card_attempts,
25
+ :shipping_address_age,
26
+ :account_name_matches_shipping_name,
27
+ :suspicious_account_activity,
28
+ :transactions_today,
29
+ :authentication_method
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Sessions
5
+ module Category
6
+ PAYMENT = 'payment'
7
+ NON_PAYMENT = 'nonPayment'
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Sessions
5
+ # @!attribute sdk_app_id
6
+ # @return [String]
7
+ # @!attribute sdk_max_timeout
8
+ # @return [Integer]
9
+ # @!attribute sdk_ephem_pub_key
10
+ # @return [SdkEphemeralPublicKey]
11
+ # @!attribute sdk_reference_number
12
+ # @return [String]
13
+ # @!attribute sdk_encrypted_data
14
+ # @return [String]
15
+ # @!attribute sdk_transaction_id
16
+ # @return [String]
17
+ # @!attribute sdk_interface_type
18
+ # @return [String] {SdkInterfaceType}
19
+ # @!attribute sdk_ui_elements
20
+ # @return [Array(UIElements)]
21
+ class AppSession < ChannelData
22
+ attr_accessor :sdk_app_id,
23
+ :sdk_max_timeout,
24
+ :sdk_ephem_pub_key,
25
+ :sdk_reference_number,
26
+ :sdk_encrypted_data,
27
+ :sdk_transaction_id,
28
+ :sdk_interface_type,
29
+ :sdk_ui_elements
30
+
31
+ def initialize
32
+ super ChannelDataType::APP
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Sessions
5
+ # @!attribute three_ds_method_completion
6
+ # @return [String] {ThreeDsMethodCompletion}
7
+ # @!attribute accept_header
8
+ # @return [String]
9
+ # @!attribute java_enabled
10
+ # @return [TrueClass, FalseClass]
11
+ # @!attribute language
12
+ # @return [String]
13
+ # @!attribute color_depth
14
+ # @return [String]
15
+ # @!attribute screen_height
16
+ # @return [String]
17
+ # @!attribute screen_width
18
+ # @return [String]
19
+ # @!attribute timezone
20
+ # @return [String]
21
+ # @!attribute user_agent
22
+ # @return [String]
23
+ # @!attribute ip_address
24
+ # @return [String]
25
+ class BrowserSession < ChannelData
26
+ attr_accessor :three_ds_method_completion,
27
+ :accept_header,
28
+ :java_enabled,
29
+ :language,
30
+ :color_depth,
31
+ :screen_height,
32
+ :screen_width,
33
+ :timezone,
34
+ :user_agent,
35
+ :ip_address
36
+
37
+ def initialize
38
+ super ChannelDataType::BROWSER
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Sessions
5
+ # @!attribute channel
6
+ # @return [String] {ChannelDataType}
7
+ class ChannelData
8
+ attr_reader :channel
9
+
10
+ protected
11
+
12
+ # @abstract
13
+ # @param [String] channel {ChannelDataType}
14
+ def initialize(channel)
15
+ @channel = channel
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Sessions
5
+ module ChannelDataType
6
+ APP = 'app'
7
+ BROWSER = 'browser'
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Sessions
5
+ # @!attribute kty
6
+ # @return [String]
7
+ # @!attribute crv
8
+ # @return [String]
9
+ # @!attribute x
10
+ # @return [String]
11
+ # @!attribute y
12
+ class SdkEphemeralPublicKey
13
+ attr_accessor :kty,
14
+ :crv,
15
+ :x,
16
+ :y
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Sessions
5
+ module SdkInterfaceType
6
+ NATIVE = 'native'
7
+ HTML = 'html'
8
+ BOTH = 'both'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Sessions
5
+ module ThreeDsMethodCompletion
6
+ Y = 'y'
7
+ N = 'n'
8
+ U = 'u'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Sessions
5
+ module UIElements
6
+ TEXT = 'text'
7
+ SINGLE_SELECT = 'single_select'
8
+ MULTI_SELECT = 'multi_select'
9
+ OOB = 'oob'
10
+ HTML_OTHER = 'html_other'
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Sessions
5
+ # @!attribute type
6
+ # @return [String] {CompletionInfoType}
7
+ class CompletionInfo
8
+ attr_reader :type
9
+
10
+ protected
11
+
12
+ # @abstract
13
+ # @param [String] type {CompletionInfoType}
14
+ def initialize(type)
15
+ @type = type
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Sessions
5
+ module CompletionInfoType
6
+ HOSTED = 'hosted'
7
+ NON_HOSTED = 'non_hosted'
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CheckoutSdk
4
+ module Sessions
5
+ # @!attribute callback_url
6
+ # @return [String]
7
+ # @!attribute success_url
8
+ # @return [String]
9
+ # @!attribute failure_url
10
+ # @return [String]
11
+ class HostedCompletionInfo < CompletionInfo
12
+ attr_accessor :callback_url,
13
+ :success_url,
14
+ :failure_url
15
+
16
+ def initialize
17
+ super CompletionInfoType::HOSTED
18
+ end
19
+ end
20
+ end
21
+ end