spree_adyen 0.10.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 (142) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +9 -0
  3. data/README.md +59 -0
  4. data/Rakefile +26 -0
  5. data/app/assets/config/spree_adyen_manifest.js +5 -0
  6. data/app/controllers/spree_adyen/apple_pay_domain_verification_controller.rb +11 -0
  7. data/app/controllers/spree_adyen/payment_sessions_controller.rb +67 -0
  8. data/app/controllers/spree_adyen/store_controller_decorator.rb +9 -0
  9. data/app/controllers/spree_adyen/webhooks_controller.rb +46 -0
  10. data/app/helpers/spree_adyen/base_helper.rb +18 -0
  11. data/app/javascript/spree_adyen/application.js +17 -0
  12. data/app/javascript/spree_adyen/controllers/checkout_adyen_controller.js +80 -0
  13. data/app/javascript/spree_adyen/controllers/redirect_adyen_controller.js +35 -0
  14. data/app/jobs/spree_adyen/add_allowed_origin_job.rb +24 -0
  15. data/app/jobs/spree_adyen/base_job.rb +5 -0
  16. data/app/jobs/spree_adyen/webhooks/process_authorisation_event_job.rb +10 -0
  17. data/app/jobs/spree_adyen/webhooks/process_cancellation_event_job.rb +10 -0
  18. data/app/jobs/spree_adyen/webhooks/process_capture_event_job.rb +10 -0
  19. data/app/models/spree/payment_sessions/adyen.rb +59 -0
  20. data/app/models/spree_adyen/base.rb +6 -0
  21. data/app/models/spree_adyen/custom_domain_decorator.rb +17 -0
  22. data/app/models/spree_adyen/gateway/payment_sessions.rb +151 -0
  23. data/app/models/spree_adyen/gateway.rb +487 -0
  24. data/app/models/spree_adyen/order_decorator.rb +23 -0
  25. data/app/models/spree_adyen/payment_decorator.rb +66 -0
  26. data/app/models/spree_adyen/payment_method_decorator.rb +15 -0
  27. data/app/models/spree_adyen/payment_session.rb +121 -0
  28. data/app/models/spree_adyen/payment_sources/ach_direct_debit.rb +17 -0
  29. data/app/models/spree_adyen/payment_sources/affirm.rb +17 -0
  30. data/app/models/spree_adyen/payment_sources/afterpay.rb +17 -0
  31. data/app/models/spree_adyen/payment_sources/alipay.rb +19 -0
  32. data/app/models/spree_adyen/payment_sources/alipay_hk.rb +17 -0
  33. data/app/models/spree_adyen/payment_sources/alma.rb +17 -0
  34. data/app/models/spree_adyen/payment_sources/ancv.rb +17 -0
  35. data/app/models/spree_adyen/payment_sources/apple_pay.rb +19 -0
  36. data/app/models/spree_adyen/payment_sources/atome.rb +17 -0
  37. data/app/models/spree_adyen/payment_sources/bacs.rb +17 -0
  38. data/app/models/spree_adyen/payment_sources/bancontact.rb +19 -0
  39. data/app/models/spree_adyen/payment_sources/bank_transfer.rb +17 -0
  40. data/app/models/spree_adyen/payment_sources/base.rb +7 -0
  41. data/app/models/spree_adyen/payment_sources/bcmc.rb +17 -0
  42. data/app/models/spree_adyen/payment_sources/bcmc_mobile.rb +17 -0
  43. data/app/models/spree_adyen/payment_sources/benefit.rb +17 -0
  44. data/app/models/spree_adyen/payment_sources/billie.rb +17 -0
  45. data/app/models/spree_adyen/payment_sources/bizum.rb +17 -0
  46. data/app/models/spree_adyen/payment_sources/blik.rb +15 -0
  47. data/app/models/spree_adyen/payment_sources/boleto.rb +17 -0
  48. data/app/models/spree_adyen/payment_sources/cash_app_afterpay.rb +17 -0
  49. data/app/models/spree_adyen/payment_sources/cashapp.rb +17 -0
  50. data/app/models/spree_adyen/payment_sources/clearpay.rb +17 -0
  51. data/app/models/spree_adyen/payment_sources/dana.rb +17 -0
  52. data/app/models/spree_adyen/payment_sources/doku.rb +19 -0
  53. data/app/models/spree_adyen/payment_sources/duitnow.rb +17 -0
  54. data/app/models/spree_adyen/payment_sources/ebanking_fi.rb +19 -0
  55. data/app/models/spree_adyen/payment_sources/eft_directdebit_ca.rb +19 -0
  56. data/app/models/spree_adyen/payment_sources/eftpos_australia.rb +19 -0
  57. data/app/models/spree_adyen/payment_sources/elo.rb +19 -0
  58. data/app/models/spree_adyen/payment_sources/eps.rb +19 -0
  59. data/app/models/spree_adyen/payment_sources/fastlane.rb +19 -0
  60. data/app/models/spree_adyen/payment_sources/fpx.rb +19 -0
  61. data/app/models/spree_adyen/payment_sources/gcash.rb +19 -0
  62. data/app/models/spree_adyen/payment_sources/gift_cards.rb +19 -0
  63. data/app/models/spree_adyen/payment_sources/giropay.rb +19 -0
  64. data/app/models/spree_adyen/payment_sources/givex.rb +19 -0
  65. data/app/models/spree_adyen/payment_sources/gopay_wallet.rb +19 -0
  66. data/app/models/spree_adyen/payment_sources/grabpay.rb +19 -0
  67. data/app/models/spree_adyen/payment_sources/grabpay_paylater.rb +19 -0
  68. data/app/models/spree_adyen/payment_sources/hipercard.rb +19 -0
  69. data/app/models/spree_adyen/payment_sources/ideal.rb +15 -0
  70. data/app/models/spree_adyen/payment_sources/kakaopay.rb +19 -0
  71. data/app/models/spree_adyen/payment_sources/kcp_naverpay.rb +19 -0
  72. data/app/models/spree_adyen/payment_sources/klarna.rb +32 -0
  73. data/app/models/spree_adyen/payment_sources/oney.rb +13 -0
  74. data/app/models/spree_adyen/payment_sources/online_banking_czech_republic.rb +15 -0
  75. data/app/models/spree_adyen/payment_sources/online_banking_poland.rb +15 -0
  76. data/app/models/spree_adyen/payment_sources/pay_by_bank.rb +15 -0
  77. data/app/models/spree_adyen/payment_sources/paypal.rb +15 -0
  78. data/app/models/spree_adyen/payment_sources/paypo.rb +15 -0
  79. data/app/models/spree_adyen/payment_sources/paysafecard.rb +15 -0
  80. data/app/models/spree_adyen/payment_sources/rate_pay_direct_debit.rb +15 -0
  81. data/app/models/spree_adyen/payment_sources/riverty.rb +15 -0
  82. data/app/models/spree_adyen/payment_sources/samsung_pay.rb +15 -0
  83. data/app/models/spree_adyen/payment_sources/scalapay.rb +13 -0
  84. data/app/models/spree_adyen/payment_sources/sepa_direct_debit.rb +15 -0
  85. data/app/models/spree_adyen/payment_sources/trustly.rb +15 -0
  86. data/app/models/spree_adyen/payment_sources/unknown.rb +19 -0
  87. data/app/models/spree_adyen/payment_sources/wechat_pay.rb +15 -0
  88. data/app/models/spree_adyen/store_decorator.rb +17 -0
  89. data/app/presenters/spree_adyen/address_presenter.rb +21 -0
  90. data/app/presenters/spree_adyen/application_info_presenter.rb +21 -0
  91. data/app/presenters/spree_adyen/cancel_payload_presenter.rb +31 -0
  92. data/app/presenters/spree_adyen/capture_payload_presenter.rb +36 -0
  93. data/app/presenters/spree_adyen/checkout_presenter.rb +51 -0
  94. data/app/presenters/spree_adyen/payment_sessions/request_payload_presenter.rb +140 -0
  95. data/app/presenters/spree_adyen/payments/request_payload_presenter.rb +85 -0
  96. data/app/presenters/spree_adyen/refund_payload_presenter.rb +38 -0
  97. data/app/presenters/spree_adyen/webhook_payload_presenter.rb +28 -0
  98. data/app/presenters/spree_adyen/webhooks/credit_card_presenter.rb +43 -0
  99. data/app/services/spree_adyen/gateways/add_allowed_origin.rb +36 -0
  100. data/app/services/spree_adyen/gateways/configuration.rb +41 -0
  101. data/app/services/spree_adyen/gateways/configure.rb +60 -0
  102. data/app/services/spree_adyen/payment_sessions/find_or_create.rb +51 -0
  103. data/app/services/spree_adyen/payment_sessions/process_with_result.rb +49 -0
  104. data/app/services/spree_adyen/webhooks/actions/create_source.rb +112 -0
  105. data/app/services/spree_adyen/webhooks/actions/find_or_create_credit_card.rb +33 -0
  106. data/app/services/spree_adyen/webhooks/event.rb +104 -0
  107. data/app/services/spree_adyen/webhooks/event_processors/authorisation_event_processor.rb +69 -0
  108. data/app/services/spree_adyen/webhooks/event_processors/cancellation_event_processor.rb +49 -0
  109. data/app/services/spree_adyen/webhooks/event_processors/capture_event_processor.rb +48 -0
  110. data/app/services/spree_adyen/webhooks/handle_event.rb +43 -0
  111. data/app/services/spree_adyen/webhooks/standard_hmac_validator.rb +37 -0
  112. data/app/views/layouts/spree_adyen/default.html.erb +14 -0
  113. data/app/views/spree/admin/payment_methods/configuration_guides/_spree_adyen.html.erb +14 -0
  114. data/app/views/spree/admin/payment_methods/custom_form_fields/_spree_adyen.html.erb +18 -0
  115. data/app/views/spree/admin/payment_methods/descriptions/_spree_adyen.html.erb +12 -0
  116. data/app/views/spree/admin/payments/source_forms/_spree_adyen.html.erb +7 -0
  117. data/app/views/spree/checkout/payment/_spree_adyen.html.erb +40 -0
  118. data/app/views/spree_adyen/_drop_in.html.erb +12 -0
  119. data/app/views/spree_adyen/_head.html.erb +2 -0
  120. data/app/views/spree_adyen/payment_sessions/redirect.html.erb +5 -0
  121. data/config/importmap.rb +7 -0
  122. data/config/initializers/spree.rb +34 -0
  123. data/config/initializers/spree_permitted_attributes.rb +5 -0
  124. data/config/locales/en.yml +11 -0
  125. data/config/routes.rb +35 -0
  126. data/db/migrate/20250630150000_setup_spree_adyen_models.rb +17 -0
  127. data/db/migrate/20250811140113_add_channel_to_adyen_payment_sessions.rb +10 -0
  128. data/db/migrate/20250813152608_add_return_url_to_spree_adyen_payment_sessions.rb +15 -0
  129. data/lib/generators/spree_adyen/install/install_generator.rb +20 -0
  130. data/lib/spree_adyen/configuration.rb +42 -0
  131. data/lib/spree_adyen/engine.rb +79 -0
  132. data/lib/spree_adyen/factories.rb +3 -0
  133. data/lib/spree_adyen/testing_support/factories/gateway_factory.rb +29 -0
  134. data/lib/spree_adyen/testing_support/factories/payment_session_factory.rb +40 -0
  135. data/lib/spree_adyen/version.rb +7 -0
  136. data/lib/spree_adyen.rb +39 -0
  137. data/lib/spree_api_v2/spree/api/v2/storefront/adyen/base_controller.rb +21 -0
  138. data/lib/spree_api_v2/spree/api/v2/storefront/adyen/payment_sessions_controller.rb +72 -0
  139. data/lib/spree_api_v2/spree_adyen/api/v2/storefront/payment_session_serializer.rb +21 -0
  140. data/vendor/javascript/@adyen--adyen-web.js +4 -0
  141. data/vendor/stylesheets/adyen.css +106 -0
  142. metadata +301 -0
@@ -0,0 +1,19 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class EbankingFi < ::Spree::PaymentSource
4
+ store_accessor :public_metadata, :payment_reference
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'Online Banking Finland'
12
+ end
13
+
14
+ def display_payment_info
15
+ "Online Banking Finland: #{payment_reference}"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class EftDirectdebitCa < ::Spree::PaymentSource
4
+ store_accessor :public_metadata, :payment_reference
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'PAD Canada'
12
+ end
13
+
14
+ def display_payment_info
15
+ "PAD Canada: #{payment_reference}"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class EftposAustralia < ::Spree::PaymentSource
4
+ store_accessor :public_metadata, :payment_reference
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'eftpos'
12
+ end
13
+
14
+ def display_payment_info
15
+ "eftpos: #{payment_reference}"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Elo < ::Spree::PaymentSource
4
+ store_accessor :public_metadata, :payment_reference
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'Elo'
12
+ end
13
+
14
+ def display_payment_info
15
+ "Elo: #{payment_reference}"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Eps < ::Spree::PaymentSource
4
+ store_accessor :public_metadata, :payment_reference
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'EPS'
12
+ end
13
+
14
+ def display_payment_info
15
+ "EPS: #{payment_reference}"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Fastlane < ::Spree::PaymentSource
4
+ store_accessor :public_metadata, :payment_reference
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'Fastlane by Paypal'
12
+ end
13
+
14
+ def display_payment_info
15
+ "Fastlane by Paypal: #{payment_reference}"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Fpx < ::Spree::PaymentSource
4
+ store_accessor :public_metadata, :payment_reference
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'FPX Online banking Malaysia'
12
+ end
13
+
14
+ def display_payment_info
15
+ "FPX Online banking Malaysia: #{payment_reference}"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Gcash < ::Spree::PaymentSource
4
+ store_accessor :public_metadata, :payment_reference
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'GCash'
12
+ end
13
+
14
+ def display_payment_info
15
+ "GCash: #{payment_reference}"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class GiftCards < ::Spree::PaymentSource
4
+ store_accessor :public_metadata, :payment_reference
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'Gift cards'
12
+ end
13
+
14
+ def display_payment_info
15
+ "Gift cards: #{payment_reference}"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Giropay < ::Spree::PaymentSource
4
+ store_accessor :public_metadata, :bank_code, :bic, :account_number
5
+
6
+ def actions
7
+ %w[credit]
8
+ end
9
+
10
+ def self.display_name
11
+ 'Giropay'
12
+ end
13
+
14
+ def display_bank_info
15
+ "Bank: #{bank_code} (BIC: #{bic})"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Givex < ::Spree::PaymentSource
4
+ store_accessor :public_metadata, :payment_reference
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'Givex'
12
+ end
13
+
14
+ def display_payment_info
15
+ "Givex: #{payment_reference}"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class GopayWallet < ::Spree::PaymentSource
4
+ store_accessor :public_metadata, :payment_reference
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'GoPay'
12
+ end
13
+
14
+ def display_payment_info
15
+ "GoPay: #{payment_reference}"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Grabpay < ::Spree::PaymentSource
4
+ store_accessor :public_metadata, :payment_reference
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'GrabPay'
12
+ end
13
+
14
+ def display_payment_info
15
+ "GrabPay: #{payment_reference}"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class GrabpayPaylater < ::Spree::PaymentSource
4
+ store_accessor :public_metadata, :payment_reference
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'GrabPay PayLater'
12
+ end
13
+
14
+ def display_payment_info
15
+ "GrabPay PayLater: #{payment_reference}"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Hipercard < ::Spree::PaymentSource
4
+ store_accessor :public_metadata, :payment_reference
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'Hipercard'
12
+ end
13
+
14
+ def display_payment_info
15
+ "Hipercard: #{payment_reference}"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,15 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Ideal < Base
4
+ store_accessor :public_metadata
5
+
6
+ def actions
7
+ %w[credit]
8
+ end
9
+
10
+ def self.display_name
11
+ 'iDEAL'
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Kakaopay < ::Spree::PaymentSource
4
+ store_accessor :public_metadata, :payment_reference
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'KakaoPay'
12
+ end
13
+
14
+ def display_payment_info
15
+ "KakaoPay: #{payment_reference}"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class KcpNaverpay < ::Spree::PaymentSource
4
+ store_accessor :public_metadata, :payment_reference
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'Naverpay'
12
+ end
13
+
14
+ def display_payment_info
15
+ "Naverpay: #{payment_reference}"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,32 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Klarna < ::Spree::PaymentSource
4
+ store_accessor :public_metadata, :payment_method_type, :authorization_token, :session_id
5
+
6
+ def actions
7
+ %w[credit void capture]
8
+ end
9
+
10
+ def self.display_name
11
+ 'Klarna'
12
+ end
13
+
14
+ def display_payment_info
15
+ "Klarna: #{payment_method_type}"
16
+ end
17
+
18
+ def payment_method_type_display
19
+ case payment_method_type
20
+ when 'paynow'
21
+ 'Pay Now'
22
+ when 'paylater'
23
+ 'Pay Later'
24
+ when 'slice_it'
25
+ 'Slice It'
26
+ else
27
+ payment_method_type&.titleize
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Oney < Base
4
+ def actions
5
+ %w[credit void capture]
6
+ end
7
+
8
+ def self.display_name
9
+ 'Oney'
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class OnlineBankingCzechRepublic < Base
4
+ store_accessor :public_metadata, :bank
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'Online Banking Czech Republic'
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class OnlineBankingPoland < Base
4
+ store_accessor :public_metadata, :bank
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'Online Banking Poland'
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class PayByBank < Base
4
+ store_accessor :public_metadata, :bank
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'Pay by Bank Europe'
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Paypal < Base
4
+ store_accessor :public_metadata
5
+
6
+ def actions
7
+ %w[credit void capture]
8
+ end
9
+
10
+ def self.display_name
11
+ 'PayPal'
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Paypo < Base
4
+ store_accessor :public_metadata
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'PayPo'
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Paysafecard < Base
4
+ store_accessor :public_metadata
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'PaySafeCard'
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class RatePayDirectDebit < Base
4
+ store_accessor :public_metadata
5
+
6
+ def actions
7
+ %w[credit void capture]
8
+ end
9
+
10
+ def self.display_name
11
+ 'Ratepay Direct debit'
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Riverty < Base
4
+ store_accessor :public_metadata
5
+
6
+ def actions
7
+ %w[credit void capture]
8
+ end
9
+
10
+ def self.display_name
11
+ 'Riverty'
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class SamsungPay < Base
4
+ store_accessor :public_metadata
5
+
6
+ def actions
7
+ %w[credit void capture]
8
+ end
9
+
10
+ def self.display_name
11
+ 'Samsung Pay'
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Scalapay < Base
4
+ def actions
5
+ %w[credit void]
6
+ end
7
+
8
+ def self.display_name
9
+ 'Scalapay'
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class SepaDirectDebit < Base
4
+ store_accessor :public_metadata
5
+
6
+ def actions
7
+ %w[credit void capture]
8
+ end
9
+
10
+ def self.display_name
11
+ 'SEPA Direct Debit'
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Trustly < Base
4
+ store_accessor :public_metadata
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'Trustly'
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class Unknown < ::Spree::PaymentSource
4
+ store_accessor :public_metadata
5
+
6
+ def actions
7
+ %w[]
8
+ end
9
+
10
+ def self.display_name
11
+ 'Unknown'
12
+ end
13
+
14
+ def display_payment_info
15
+ 'Unknown'
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,15 @@
1
+ module SpreeAdyen
2
+ module PaymentSources
3
+ class WechatPay < Base
4
+ store_accessor :public_metadata
5
+
6
+ def actions
7
+ %w[credit void]
8
+ end
9
+
10
+ def self.display_name
11
+ 'WeChat Pay'
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ module SpreeAdyen
2
+ module StoreDecorator
3
+ def adyen_gateway
4
+ @adyen_gateway ||= payment_methods.adyen.active.last
5
+ end
6
+
7
+ def handle_code_changes
8
+ super
9
+
10
+ return if adyen_gateway.blank?
11
+
12
+ SpreeAdyen::AddAllowedOriginJob.perform_later(id, adyen_gateway.id)
13
+ end
14
+ end
15
+ end
16
+
17
+ Spree::Store.prepend(SpreeAdyen::StoreDecorator)
@@ -0,0 +1,21 @@
1
+ module SpreeAdyen
2
+ class AddressPresenter
3
+ def initialize(address)
4
+ @address = address
5
+ end
6
+
7
+ def to_h
8
+ {
9
+ city: address['citystring'],
10
+ country: Spree::Country.find_by(name: address['countrystring']),
11
+ zipcode: address['postalCodestring'],
12
+ address1: address['streetstring'],
13
+ address2: address['houseNumberOrNamestring']
14
+ }
15
+ end
16
+
17
+ private
18
+
19
+ attr_reader :address
20
+ end
21
+ end