checkout_sdk 0.3.0 → 1.0.0.beta.0

Sign up to get free protection for your applications and to get access to all the features.
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