solidus_stripe 4.4.1 → 5.0.0.alpha.1

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 (153) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +92 -52
  3. data/.gitignore +3 -0
  4. data/.rubocop.yml +94 -4
  5. data/.yardopts +1 -0
  6. data/Gemfile +10 -30
  7. data/LICENSE +2 -2
  8. data/Procfile.dev +3 -0
  9. data/README.md +145 -215
  10. data/Rakefile +5 -44
  11. data/app/assets/javascripts/spree/backend/solidus_stripe.js +2 -0
  12. data/app/assets/stylesheets/spree/backend/solidus_stripe.css +4 -0
  13. data/app/controllers/solidus_stripe/intents_controller.rb +36 -52
  14. data/app/controllers/solidus_stripe/webhooks_controller.rb +28 -0
  15. data/app/models/concerns/solidus_stripe/log_entries.rb +31 -0
  16. data/app/models/solidus_stripe/customer.rb +21 -0
  17. data/app/models/solidus_stripe/gateway.rb +231 -0
  18. data/app/models/solidus_stripe/payment_intent.rb +111 -0
  19. data/app/models/solidus_stripe/payment_method.rb +106 -0
  20. data/app/models/solidus_stripe/payment_source.rb +31 -0
  21. data/app/models/solidus_stripe/slug_entry.rb +20 -0
  22. data/app/models/solidus_stripe.rb +7 -0
  23. data/app/subscribers/solidus_stripe/webhook/charge_subscriber.rb +28 -0
  24. data/app/subscribers/solidus_stripe/webhook/payment_intent_subscriber.rb +112 -0
  25. data/app/views/spree/admin/payments/source_forms/_stripe.html.erb +29 -0
  26. data/app/views/spree/admin/payments/source_forms/existing_payment/_stripe.html.erb +14 -0
  27. data/app/views/spree/admin/payments/source_forms/existing_payment/stripe/_card.html.erb +8 -0
  28. data/app/views/spree/admin/payments/source_forms/existing_payment/stripe/_default.html.erb +7 -0
  29. data/app/views/spree/admin/payments/source_views/_stripe.html.erb +15 -0
  30. data/app/views/spree/api/payments/source_views/_stripe.json.jbuilder +8 -0
  31. data/bin/dev +13 -0
  32. data/bin/dummy-app +29 -0
  33. data/bin/rails +38 -3
  34. data/bin/rails-dummy-app +3 -0
  35. data/bin/rails-engine +1 -11
  36. data/bin/rails-new +55 -0
  37. data/bin/rails-sandbox +1 -14
  38. data/bin/rspec +10 -0
  39. data/bin/sandbox +12 -74
  40. data/bin/setup +1 -0
  41. data/bin/update-migrations +56 -0
  42. data/codecov.yml +12 -0
  43. data/config/locales/en.yml +16 -1
  44. data/config/routes.rb +5 -11
  45. data/coverage.rb +42 -0
  46. data/db/migrate/20230109183332_create_solidus_stripe_payment_sources.rb +10 -0
  47. data/db/migrate/20230303154931_create_solidus_stripe_setup_intent.rb +10 -0
  48. data/db/migrate/20230306105520_create_solidus_stripe_payment_intents.rb +10 -0
  49. data/db/migrate/20230308122414_create_solidus_stripe_webhook_endpoints.rb +10 -0
  50. data/db/migrate/20230310152615_add_payment_method_reference_to_stripe_intents.rb +6 -0
  51. data/db/migrate/20230310171444_normalize_stripe_intent_id_attributes.rb +6 -0
  52. data/db/migrate/20230313150008_create_solidus_stripe_customers.rb +16 -0
  53. data/db/migrate/20230323154931_drop_solidus_stripe_setup_intent.rb +13 -0
  54. data/db/migrate/20230403094916_rename_webhook_endpoint_to_payment_method_slug_entries.rb +5 -0
  55. data/db/seeds.rb +6 -24
  56. data/lib/generators/solidus_stripe/install/install_generator.rb +121 -14
  57. data/lib/generators/solidus_stripe/install/templates/app/assets/stylesheets/spree/frontend/solidus_stripe.css +13 -0
  58. data/lib/generators/solidus_stripe/install/templates/app/javascript/controllers/solidus_stripe_confirm_controller.js +39 -0
  59. data/lib/generators/solidus_stripe/install/templates/app/javascript/controllers/solidus_stripe_payment_controller.js +89 -0
  60. data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/existing_payment/_stripe.html.erb +16 -0
  61. data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/existing_payment/stripe/_card.html.erb +8 -0
  62. data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/existing_payment/stripe/_default.html.erb +7 -0
  63. data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/payment/_stripe.html.erb +39 -0
  64. data/lib/generators/solidus_stripe/install/templates/app/views/orders/payment_info/_stripe.html.erb +20 -0
  65. data/lib/generators/solidus_stripe/install/templates/config/initializers/solidus_stripe.rb +31 -0
  66. data/lib/solidus_stripe/configuration.rb +24 -3
  67. data/lib/solidus_stripe/engine.rb +19 -6
  68. data/lib/solidus_stripe/money_to_stripe_amount_converter.rb +109 -0
  69. data/lib/solidus_stripe/refunds_synchronizer.rb +96 -0
  70. data/lib/solidus_stripe/seeds.rb +19 -0
  71. data/lib/solidus_stripe/testing_support/factories.rb +153 -0
  72. data/lib/solidus_stripe/version.rb +1 -1
  73. data/lib/solidus_stripe/webhook/event.rb +90 -0
  74. data/lib/solidus_stripe.rb +0 -2
  75. data/solidus_stripe.gemspec +29 -6
  76. data/spec/lib/solidus_stripe/configuration_spec.rb +21 -0
  77. data/spec/lib/solidus_stripe/money_to_stripe_amount_converter_spec.rb +133 -0
  78. data/spec/lib/solidus_stripe/refunds_synchronizer_spec.rb +238 -0
  79. data/spec/lib/solidus_stripe/seeds_spec.rb +43 -0
  80. data/spec/lib/solidus_stripe/webhook/event_spec.rb +134 -0
  81. data/spec/models/concerns/solidus_stripe/log_entries_spec.rb +54 -0
  82. data/spec/models/solidus_stripe/customer_spec.rb +47 -0
  83. data/spec/models/solidus_stripe/gateway_spec.rb +283 -0
  84. data/spec/models/solidus_stripe/payment_intent_spec.rb +17 -0
  85. data/spec/models/solidus_stripe/payment_method_spec.rb +137 -0
  86. data/spec/models/solidus_stripe/payment_source_spec.rb +25 -0
  87. data/spec/requests/solidus_stripe/intents_controller_spec.rb +29 -0
  88. data/spec/requests/solidus_stripe/webhooks_controller/charge/refunded_spec.rb +31 -0
  89. data/spec/requests/solidus_stripe/webhooks_controller/payment_intent/canceled_spec.rb +23 -0
  90. data/spec/requests/solidus_stripe/webhooks_controller/payment_intent/payment_failed_spec.rb +23 -0
  91. data/spec/requests/solidus_stripe/webhooks_controller/payment_intent/succeeded_spec.rb +29 -0
  92. data/spec/requests/solidus_stripe/webhooks_controller_spec.rb +52 -0
  93. data/spec/solidus_stripe_spec_helper.rb +10 -0
  94. data/spec/subscribers/solidus_stripe/webhook/charge_subscriber_spec.rb +33 -0
  95. data/spec/subscribers/solidus_stripe/webhook/payment_intent_subscriber_spec.rb +297 -0
  96. data/spec/support/solidus_stripe/backend_test_helper.rb +210 -0
  97. data/spec/support/solidus_stripe/checkout_test_helper.rb +339 -0
  98. data/spec/support/solidus_stripe/factories.rb +5 -0
  99. data/spec/support/solidus_stripe/webhook/data_fixtures.rb +106 -0
  100. data/spec/support/solidus_stripe/webhook/event_with_context_factory.rb +82 -0
  101. data/spec/support/solidus_stripe/webhook/request_helper.rb +32 -0
  102. data/spec/system/backend/solidus_stripe/orders/payments_spec.rb +119 -0
  103. data/spec/system/frontend/.keep +0 -0
  104. data/spec/system/frontend/solidus_stripe/checkout_spec.rb +187 -0
  105. data/tmp/.keep +0 -0
  106. metadata +202 -78
  107. data/.rubocop_todo.yml +0 -298
  108. data/.travis.yml +0 -28
  109. data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-cart-page-checkout.js +0 -122
  110. data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-elements.js +0 -148
  111. data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-init.js +0 -20
  112. data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-payment-intents.js +0 -84
  113. data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-payment-request-button-shared.js +0 -160
  114. data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-payment.js +0 -16
  115. data/app/assets/javascripts/spree/frontend/solidus_stripe.js +0 -6
  116. data/app/controllers/solidus_stripe/payment_request_controller.rb +0 -52
  117. data/app/controllers/spree/stripe_controller.rb +0 -13
  118. data/app/decorators/models/spree/order_update_attributes_decorator.rb +0 -39
  119. data/app/decorators/models/spree/payment_decorator.rb +0 -11
  120. data/app/decorators/models/spree/refund_decorator.rb +0 -9
  121. data/app/models/solidus_stripe/address_from_params_service.rb +0 -72
  122. data/app/models/solidus_stripe/create_intents_payment_service.rb +0 -114
  123. data/app/models/solidus_stripe/prepare_order_for_payment_service.rb +0 -46
  124. data/app/models/solidus_stripe/shipping_rates_service.rb +0 -46
  125. data/app/models/spree/payment_method/stripe_credit_card.rb +0 -230
  126. data/bin/r +0 -13
  127. data/bin/sandbox_rails +0 -18
  128. data/db/migrate/20181010123508_update_stripe_payment_method_type_to_credit_card.rb +0 -21
  129. data/lib/assets/stylesheets/spree/frontend/solidus_stripe.scss +0 -11
  130. data/lib/solidus_stripe/testing_support/card_input_helper.rb +0 -34
  131. data/lib/tasks/solidus_stripe/db/seed.rake +0 -14
  132. data/lib/views/api/spree/api/payments/source_views/_stripe.json.jbuilder +0 -3
  133. data/lib/views/backend/spree/admin/log_entries/_stripe.html.erb +0 -28
  134. data/lib/views/backend/spree/admin/payments/source_forms/_stripe.html.erb +0 -1
  135. data/lib/views/backend/spree/admin/payments/source_views/_stripe.html.erb +0 -1
  136. data/lib/views/frontend/spree/checkout/existing_payment/_stripe.html.erb +0 -1
  137. data/lib/views/frontend/spree/checkout/payment/_stripe.html.erb +0 -8
  138. data/lib/views/frontend/spree/checkout/payment/v2/_javascript.html.erb +0 -78
  139. data/lib/views/frontend/spree/checkout/payment/v3/_elements.html.erb +0 -1
  140. data/lib/views/frontend/spree/checkout/payment/v3/_form_elements.html.erb +0 -40
  141. data/lib/views/frontend/spree/checkout/payment/v3/_intents.html.erb +0 -1
  142. data/lib/views/frontend/spree/checkout/payment/v3/_stripe.html.erb +0 -2
  143. data/lib/views/frontend/spree/orders/_stripe_payment_request_button.html.erb +0 -14
  144. data/spec/features/stripe_checkout_spec.rb +0 -486
  145. data/spec/models/solidus_stripe/address_from_params_service_spec.rb +0 -87
  146. data/spec/models/solidus_stripe/create_intents_payment_service_spec.rb +0 -127
  147. data/spec/models/solidus_stripe/prepare_order_for_payment_service_spec.rb +0 -65
  148. data/spec/models/solidus_stripe/shipping_rates_service_spec.rb +0 -54
  149. data/spec/models/spree/payment_method/stripe_credit_card_spec.rb +0 -354
  150. data/spec/requests/payment_requests_spec.rb +0 -152
  151. data/spec/solidus_frontend_app_template.rb +0 -17
  152. data/spec/spec_helper.rb +0 -37
  153. data/spec/support/solidus_address_helper.rb +0 -15
@@ -0,0 +1,187 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'solidus_stripe_spec_helper'
4
+
5
+ RSpec.describe 'SolidusStripe Checkout', :js do
6
+ include SolidusStripe::CheckoutTestHelper
7
+
8
+ # To learn more about setup_future_usage in different contexts with Stripe Payment Intents:
9
+ # https://stripe.com/docs/payments/payment-intents#future-usage
10
+ ['', 'on_session', 'off_session'].each do |setup_future_usage|
11
+ context "with Stripe Payment Intents and setup_future_usage=#{setup_future_usage}" do
12
+ before { create_payment_method(setup_future_usage: setup_future_usage) }
13
+
14
+ it 'creates a payment intent and successfully processes payment' do
15
+ successfully_creates_a_payment_intent(user: create(:user))
16
+
17
+ capture_last_valid_payment
18
+ end
19
+
20
+ context 'with a guest user' do
21
+ it 'creates a payment intent and successfully processes payment' do
22
+ successfully_creates_a_payment_intent
23
+
24
+ capture_last_valid_payment
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ context 'when auto-capture is enabled' do
31
+ it 'creates a payment intent and automatically processes payment' do
32
+ create_payment_method(auto_capture: true)
33
+
34
+ successfully_creates_a_payment_intent(user: create(:user), auto_capture: true)
35
+ end
36
+ end
37
+
38
+ context 'with a registered user' do
39
+ it 'successfully processes payment using available store credits' do
40
+ create(:store_credit_payment_method)
41
+ create_payment_method
42
+ user = create(:user)
43
+ store_credit_amount = 5
44
+ create(:store_credit, user: user, amount: store_credit_amount)
45
+
46
+ successfully_creates_a_payment_intent(user: user)
47
+
48
+ expects_to_have_specific_authorized_amount_on_stripe(current_order.total - store_credit_amount)
49
+ end
50
+
51
+ ['on_session', 'off_session'].each do |setup_future_usage|
52
+ context "when setup_future_usage is set with '#{setup_future_usage}'" do
53
+ before { create_payment_method(setup_future_usage: setup_future_usage) }
54
+
55
+ it "successfully reuses a previously saved card from the user's wallet" do
56
+ user = create(:user)
57
+ successfully_creates_a_payment_intent(user: user)
58
+
59
+ visit_payment_step(user: user)
60
+ find_existing_payment_radio(user.wallet_payment_sources.first.id).choose
61
+ submit_payment
62
+ complete_order
63
+ payment_intent_is_created_with_required_capture
64
+ capture_last_valid_payment
65
+ end
66
+ end
67
+ end
68
+
69
+ context 'when setup_future_usage is not set' do
70
+ it 'requires the user to enter their payment information for each new transaction' do
71
+ create_payment_method(setup_future_usage: '')
72
+ user = create(:user)
73
+
74
+ successfully_creates_a_payment_intent(user: user)
75
+
76
+ visit_payment_step(user: user)
77
+
78
+ expects_page_to_not_display_wallet_payment_sources
79
+ end
80
+ end
81
+ end
82
+
83
+ context 'with declined cards' do
84
+ it 'reject transactions with cards declined at intent creation or invalid fields and return an appropriate response' do # rubocop:disable Layout/LineLength
85
+ create_payment_method
86
+ visit_payment_step(user: create(:user))
87
+ choose_new_stripe_payment
88
+
89
+ # Refer to https://stripe.com/docs/testing#invalid-data for more
90
+ # information on generating test data with invalid values.
91
+ invalid_data_are_notified
92
+
93
+ # Generic error field messages that appear when the Stripe form
94
+ # has incomplete data for cards
95
+ incomplete_cards_are_notified
96
+
97
+ # Check the Stripe documentation for more information on
98
+ # how to test declined payments:
99
+ # https://stripe.com/docs/testing#declined-payments
100
+ declined_cards_at_intent_creation_are_notified
101
+ end
102
+
103
+ context 'with 3D Secure cards' do
104
+ it 'reject transaction with failed authentication and return an appropriate response' do
105
+ create_payment_method
106
+ visit_payment_step(user: create(:user))
107
+ choose_new_stripe_payment
108
+ fill_in_stripe_country('United States')
109
+
110
+ # This 3D Secure card requires authentication for all transactions,
111
+ # regardless of its setup.
112
+ # Please refer to the Stripe documentation for more information:
113
+ # https://stripe.com/docs/testing#authentication-and-setup
114
+ fill_stripe_form(number: '4000002760003184')
115
+ submit_payment
116
+
117
+ check_terms_of_service
118
+ confirm_order
119
+ authorize_3d_secure_payment(authenticate: false)
120
+
121
+ expects_page_and_order_to_be_in_payment_step
122
+ expect(page).to have_content(
123
+ "We are unable to authenticate your payment method. " \
124
+ "Please choose a different payment method and try again.",
125
+ wait: 15
126
+ )
127
+
128
+ fill_in_stripe_country('United States')
129
+ clear_stripe_form
130
+
131
+ # This test script is using 3D Secure 2 authentication, which must be
132
+ # completed for the payment to be successful.
133
+ # Please refer to the Stripe documentation for more information:
134
+ # https://stripe.com/docs/testing#three-ds-cards
135
+ fill_stripe_form(number: '4000000000003220')
136
+ submit_payment
137
+ check_terms_of_service
138
+ confirm_order
139
+ authorize_3d_secure_2_payment(authenticate: false)
140
+
141
+ expects_page_and_order_to_be_in_payment_step
142
+ expect(page).to have_content(
143
+ "We are unable to authenticate your payment method. " \
144
+ "Please choose a different payment method and try again.",
145
+ wait: 15
146
+ )
147
+ end
148
+
149
+ it 'processes the transaction with successful authentication' do
150
+ user = create(:user)
151
+
152
+ create_payment_method(setup_future_usage: '')
153
+ visit_payment_step(user: user)
154
+ choose_new_stripe_payment
155
+ fill_in_stripe_country('United States')
156
+
157
+ # This 3D Secure card requires authentication for all transactions,
158
+ # regardless of its setup.
159
+ # Please refer to the Stripe documentation for more information:
160
+ # https://stripe.com/docs/testing#authentication-and-setup
161
+ fill_stripe_form(number: '4000002760003184')
162
+ submit_payment
163
+ check_terms_of_service
164
+ confirm_order
165
+ authorize_3d_secure_payment(authenticate: true)
166
+ expect(page).to have_content('Your order has been processed successfully')
167
+ payment_intent_is_created_with_required_capture
168
+
169
+ visit_payment_step(user: user)
170
+ choose_new_stripe_payment
171
+ fill_in_stripe_country('United States')
172
+
173
+ # This test script is using 3D Secure 2 authentication, which must be
174
+ # completed for the payment to be successful.
175
+ # Please refer to the Stripe documentation for more information:
176
+ # https://stripe.com/docs/testing#three-ds-cards
177
+ fill_stripe_form(number: '4000000000003220')
178
+ submit_payment
179
+ check_terms_of_service
180
+ confirm_order
181
+ authorize_3d_secure_2_payment(authenticate: true)
182
+ expect(page).to have_content('Your order has been processed successfully')
183
+ payment_intent_is_created_with_required_capture
184
+ end
185
+ end
186
+ end
187
+ end
data/tmp/.keep ADDED
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_stripe
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.4.1
4
+ version: 5.0.0.alpha.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Solidus Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-05-26 00:00:00.000000000 Z
11
+ date: 2023-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus_core
@@ -16,20 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '3'
19
+ version: '3.2'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '5'
22
+ version: '4'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '3'
29
+ version: '3.2'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '5'
32
+ version: '4'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: solidus_support
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -45,27 +45,27 @@ dependencies:
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0.8'
47
47
  - !ruby/object:Gem::Dependency
48
- name: activemerchant
48
+ name: stripe
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - ">="
51
+ - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '1.105'
53
+ version: '8.0'
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ">="
58
+ - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '1.105'
60
+ version: '8.0'
61
61
  - !ruby/object:Gem::Dependency
62
- name: rexml
62
+ name: redcarpet
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - ">="
66
66
  - !ruby/object:Gem::Version
67
67
  version: '0'
68
- type: :runtime
68
+ type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
@@ -73,19 +73,75 @@ dependencies:
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
75
  - !ruby/object:Gem::Dependency
76
- name: solidus_dev_support
76
+ name: rubocop
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: '2.5'
81
+ version: '1.0'
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: '2.5'
88
+ version: '1.0'
89
+ - !ruby/object:Gem::Dependency
90
+ name: rubocop-performance
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '1.5'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.5'
103
+ - !ruby/object:Gem::Dependency
104
+ name: rubocop-rails
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '2.3'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '2.3'
117
+ - !ruby/object:Gem::Dependency
118
+ name: rubocop-rspec
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '2.0'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '2.0'
131
+ - !ruby/object:Gem::Dependency
132
+ name: yard
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
89
145
  description: Stripe Payment Method for Solidus
90
146
  email: contact@solidus.io
91
147
  executables: []
@@ -99,84 +155,133 @@ files:
99
155
  - ".gitignore"
100
156
  - ".rspec"
101
157
  - ".rubocop.yml"
102
- - ".rubocop_todo.yml"
103
- - ".travis.yml"
158
+ - ".yardopts"
104
159
  - CHANGELOG.md
105
160
  - Gemfile
106
161
  - LICENSE
162
+ - Procfile.dev
107
163
  - README.md
108
164
  - Rakefile
109
- - app/assets/javascripts/spree/frontend/solidus_stripe.js
110
- - app/assets/javascripts/spree/frontend/solidus_stripe/stripe-cart-page-checkout.js
111
- - app/assets/javascripts/spree/frontend/solidus_stripe/stripe-elements.js
112
- - app/assets/javascripts/spree/frontend/solidus_stripe/stripe-init.js
113
- - app/assets/javascripts/spree/frontend/solidus_stripe/stripe-payment-intents.js
114
- - app/assets/javascripts/spree/frontend/solidus_stripe/stripe-payment-request-button-shared.js
115
- - app/assets/javascripts/spree/frontend/solidus_stripe/stripe-payment.js
165
+ - app/assets/javascripts/spree/backend/solidus_stripe.js
166
+ - app/assets/stylesheets/spree/backend/solidus_stripe.css
116
167
  - app/controllers/solidus_stripe/intents_controller.rb
117
- - app/controllers/solidus_stripe/payment_request_controller.rb
118
- - app/controllers/spree/stripe_controller.rb
119
- - app/decorators/models/spree/order_update_attributes_decorator.rb
120
- - app/decorators/models/spree/payment_decorator.rb
121
- - app/decorators/models/spree/refund_decorator.rb
122
- - app/models/solidus_stripe/address_from_params_service.rb
123
- - app/models/solidus_stripe/create_intents_payment_service.rb
124
- - app/models/solidus_stripe/prepare_order_for_payment_service.rb
125
- - app/models/solidus_stripe/shipping_rates_service.rb
126
- - app/models/spree/payment_method/stripe_credit_card.rb
168
+ - app/controllers/solidus_stripe/webhooks_controller.rb
169
+ - app/models/concerns/solidus_stripe/log_entries.rb
170
+ - app/models/solidus_stripe.rb
171
+ - app/models/solidus_stripe/customer.rb
172
+ - app/models/solidus_stripe/gateway.rb
173
+ - app/models/solidus_stripe/payment_intent.rb
174
+ - app/models/solidus_stripe/payment_method.rb
175
+ - app/models/solidus_stripe/payment_source.rb
176
+ - app/models/solidus_stripe/slug_entry.rb
177
+ - app/subscribers/solidus_stripe/webhook/charge_subscriber.rb
178
+ - app/subscribers/solidus_stripe/webhook/payment_intent_subscriber.rb
179
+ - app/views/spree/admin/payments/source_forms/_stripe.html.erb
180
+ - app/views/spree/admin/payments/source_forms/existing_payment/_stripe.html.erb
181
+ - app/views/spree/admin/payments/source_forms/existing_payment/stripe/_card.html.erb
182
+ - app/views/spree/admin/payments/source_forms/existing_payment/stripe/_default.html.erb
183
+ - app/views/spree/admin/payments/source_views/_stripe.html.erb
184
+ - app/views/spree/api/payments/source_views/_stripe.json.jbuilder
127
185
  - bin/console
128
- - bin/r
186
+ - bin/dev
187
+ - bin/dummy-app
129
188
  - bin/rails
189
+ - bin/rails-dummy-app
130
190
  - bin/rails-engine
191
+ - bin/rails-new
131
192
  - bin/rails-sandbox
132
193
  - bin/rake
194
+ - bin/rspec
133
195
  - bin/sandbox
134
- - bin/sandbox_rails
135
196
  - bin/setup
197
+ - bin/update-migrations
198
+ - codecov.yml
136
199
  - config/locales/en.yml
137
200
  - config/routes.rb
138
- - db/migrate/20181010123508_update_stripe_payment_method_type_to_credit_card.rb
201
+ - coverage.rb
202
+ - db/migrate/20230109183332_create_solidus_stripe_payment_sources.rb
203
+ - db/migrate/20230303154931_create_solidus_stripe_setup_intent.rb
204
+ - db/migrate/20230306105520_create_solidus_stripe_payment_intents.rb
205
+ - db/migrate/20230308122414_create_solidus_stripe_webhook_endpoints.rb
206
+ - db/migrate/20230310152615_add_payment_method_reference_to_stripe_intents.rb
207
+ - db/migrate/20230310171444_normalize_stripe_intent_id_attributes.rb
208
+ - db/migrate/20230313150008_create_solidus_stripe_customers.rb
209
+ - db/migrate/20230323154931_drop_solidus_stripe_setup_intent.rb
210
+ - db/migrate/20230403094916_rename_webhook_endpoint_to_payment_method_slug_entries.rb
139
211
  - db/seeds.rb
140
- - lib/assets/stylesheets/spree/frontend/solidus_stripe.scss
141
212
  - lib/generators/solidus_stripe/install/install_generator.rb
213
+ - lib/generators/solidus_stripe/install/templates/app/assets/stylesheets/spree/frontend/solidus_stripe.css
214
+ - lib/generators/solidus_stripe/install/templates/app/javascript/controllers/solidus_stripe_confirm_controller.js
215
+ - lib/generators/solidus_stripe/install/templates/app/javascript/controllers/solidus_stripe_payment_controller.js
216
+ - lib/generators/solidus_stripe/install/templates/app/views/checkouts/existing_payment/_stripe.html.erb
217
+ - lib/generators/solidus_stripe/install/templates/app/views/checkouts/existing_payment/stripe/_card.html.erb
218
+ - lib/generators/solidus_stripe/install/templates/app/views/checkouts/existing_payment/stripe/_default.html.erb
219
+ - lib/generators/solidus_stripe/install/templates/app/views/checkouts/payment/_stripe.html.erb
220
+ - lib/generators/solidus_stripe/install/templates/app/views/orders/payment_info/_stripe.html.erb
221
+ - lib/generators/solidus_stripe/install/templates/config/initializers/solidus_stripe.rb
142
222
  - lib/solidus_stripe.rb
143
223
  - lib/solidus_stripe/configuration.rb
144
224
  - lib/solidus_stripe/engine.rb
145
- - lib/solidus_stripe/testing_support/card_input_helper.rb
225
+ - lib/solidus_stripe/money_to_stripe_amount_converter.rb
226
+ - lib/solidus_stripe/refunds_synchronizer.rb
227
+ - lib/solidus_stripe/seeds.rb
146
228
  - lib/solidus_stripe/testing_support/factories.rb
147
229
  - lib/solidus_stripe/version.rb
148
- - lib/tasks/solidus_stripe/db/seed.rake
149
- - lib/views/api/spree/api/payments/source_views/_stripe.json.jbuilder
150
- - lib/views/backend/spree/admin/log_entries/_stripe.html.erb
151
- - lib/views/backend/spree/admin/payments/source_forms/_stripe.html.erb
152
- - lib/views/backend/spree/admin/payments/source_views/_stripe.html.erb
153
- - lib/views/frontend/spree/checkout/existing_payment/_stripe.html.erb
154
- - lib/views/frontend/spree/checkout/payment/_stripe.html.erb
155
- - lib/views/frontend/spree/checkout/payment/v2/_javascript.html.erb
156
- - lib/views/frontend/spree/checkout/payment/v3/_elements.html.erb
157
- - lib/views/frontend/spree/checkout/payment/v3/_form_elements.html.erb
158
- - lib/views/frontend/spree/checkout/payment/v3/_intents.html.erb
159
- - lib/views/frontend/spree/checkout/payment/v3/_stripe.html.erb
160
- - lib/views/frontend/spree/orders/_stripe_payment_request_button.html.erb
230
+ - lib/solidus_stripe/webhook/event.rb
161
231
  - solidus_stripe.gemspec
162
- - spec/features/stripe_checkout_spec.rb
163
- - spec/models/solidus_stripe/address_from_params_service_spec.rb
164
- - spec/models/solidus_stripe/create_intents_payment_service_spec.rb
165
- - spec/models/solidus_stripe/prepare_order_for_payment_service_spec.rb
166
- - spec/models/solidus_stripe/shipping_rates_service_spec.rb
167
- - spec/models/spree/payment_method/stripe_credit_card_spec.rb
168
- - spec/requests/payment_requests_spec.rb
169
- - spec/solidus_frontend_app_template.rb
170
- - spec/spec_helper.rb
171
- - spec/support/solidus_address_helper.rb
232
+ - spec/lib/solidus_stripe/configuration_spec.rb
233
+ - spec/lib/solidus_stripe/money_to_stripe_amount_converter_spec.rb
234
+ - spec/lib/solidus_stripe/refunds_synchronizer_spec.rb
235
+ - spec/lib/solidus_stripe/seeds_spec.rb
236
+ - spec/lib/solidus_stripe/webhook/event_spec.rb
237
+ - spec/models/concerns/solidus_stripe/log_entries_spec.rb
238
+ - spec/models/solidus_stripe/customer_spec.rb
239
+ - spec/models/solidus_stripe/gateway_spec.rb
240
+ - spec/models/solidus_stripe/payment_intent_spec.rb
241
+ - spec/models/solidus_stripe/payment_method_spec.rb
242
+ - spec/models/solidus_stripe/payment_source_spec.rb
243
+ - spec/requests/solidus_stripe/intents_controller_spec.rb
244
+ - spec/requests/solidus_stripe/webhooks_controller/charge/refunded_spec.rb
245
+ - spec/requests/solidus_stripe/webhooks_controller/payment_intent/canceled_spec.rb
246
+ - spec/requests/solidus_stripe/webhooks_controller/payment_intent/payment_failed_spec.rb
247
+ - spec/requests/solidus_stripe/webhooks_controller/payment_intent/succeeded_spec.rb
248
+ - spec/requests/solidus_stripe/webhooks_controller_spec.rb
249
+ - spec/solidus_stripe_spec_helper.rb
250
+ - spec/subscribers/solidus_stripe/webhook/charge_subscriber_spec.rb
251
+ - spec/subscribers/solidus_stripe/webhook/payment_intent_subscriber_spec.rb
252
+ - spec/support/solidus_stripe/backend_test_helper.rb
253
+ - spec/support/solidus_stripe/checkout_test_helper.rb
254
+ - spec/support/solidus_stripe/factories.rb
255
+ - spec/support/solidus_stripe/webhook/data_fixtures.rb
256
+ - spec/support/solidus_stripe/webhook/event_with_context_factory.rb
257
+ - spec/support/solidus_stripe/webhook/request_helper.rb
258
+ - spec/system/backend/solidus_stripe/orders/payments_spec.rb
259
+ - spec/system/frontend/.keep
260
+ - spec/system/frontend/solidus_stripe/checkout_spec.rb
261
+ - tmp/.keep
172
262
  homepage: https://github.com/solidusio/solidus_stripe#readme
173
263
  licenses:
174
264
  - BSD-3
175
265
  metadata:
176
266
  homepage_uri: https://github.com/solidusio/solidus_stripe#readme
177
267
  source_code_uri: https://github.com/solidusio/solidus_stripe
178
- changelog_uri: https://github.com/solidusio/solidus_stripe/blob/master/CHANGELOG.md
179
- post_install_message:
268
+ changelog_uri: https://github.com/solidusio/solidus_stripe/releases
269
+ post_install_message: |
270
+ ------------------------------------------------------------------------
271
+ ⚠️ **WARNING: `solidus_stripe` & `solidus_frontend** ⚠️
272
+ ------------------------------------------------------------------------
273
+
274
+ If you need support for `solidus_frontend` please add `< 5`
275
+ as a version requirement in your gemfile:
276
+
277
+ `gem 'solidus_stripe', '< 5'`
278
+
279
+ or if your tracking the github version please switch to
280
+ the `v4` branch:
281
+
282
+ `gem 'solidus_stripe', github: 'solidusio/solidus_stripe', branch: 'v4'`
283
+
284
+ ------------------------------------------------------------------------
180
285
  rdoc_options: []
181
286
  require_paths:
182
287
  - lib
@@ -184,25 +289,44 @@ required_ruby_version: !ruby/object:Gem::Requirement
184
289
  requirements:
185
290
  - - ">="
186
291
  - !ruby/object:Gem::Version
187
- version: '2.5'
292
+ version: '3.0'
188
293
  required_rubygems_version: !ruby/object:Gem::Requirement
189
294
  requirements:
190
- - - ">="
295
+ - - ">"
191
296
  - !ruby/object:Gem::Version
192
- version: '0'
297
+ version: 1.3.1
193
298
  requirements: []
194
299
  rubygems_version: 3.4.10
195
300
  signing_key:
196
301
  specification_version: 4
197
302
  summary: Stripe Payment Method for Solidus
198
303
  test_files:
199
- - spec/features/stripe_checkout_spec.rb
200
- - spec/models/solidus_stripe/address_from_params_service_spec.rb
201
- - spec/models/solidus_stripe/create_intents_payment_service_spec.rb
202
- - spec/models/solidus_stripe/prepare_order_for_payment_service_spec.rb
203
- - spec/models/solidus_stripe/shipping_rates_service_spec.rb
204
- - spec/models/spree/payment_method/stripe_credit_card_spec.rb
205
- - spec/requests/payment_requests_spec.rb
206
- - spec/solidus_frontend_app_template.rb
207
- - spec/spec_helper.rb
208
- - spec/support/solidus_address_helper.rb
304
+ - spec/lib/solidus_stripe/configuration_spec.rb
305
+ - spec/lib/solidus_stripe/money_to_stripe_amount_converter_spec.rb
306
+ - spec/lib/solidus_stripe/refunds_synchronizer_spec.rb
307
+ - spec/lib/solidus_stripe/seeds_spec.rb
308
+ - spec/lib/solidus_stripe/webhook/event_spec.rb
309
+ - spec/models/concerns/solidus_stripe/log_entries_spec.rb
310
+ - spec/models/solidus_stripe/customer_spec.rb
311
+ - spec/models/solidus_stripe/gateway_spec.rb
312
+ - spec/models/solidus_stripe/payment_intent_spec.rb
313
+ - spec/models/solidus_stripe/payment_method_spec.rb
314
+ - spec/models/solidus_stripe/payment_source_spec.rb
315
+ - spec/requests/solidus_stripe/intents_controller_spec.rb
316
+ - spec/requests/solidus_stripe/webhooks_controller/charge/refunded_spec.rb
317
+ - spec/requests/solidus_stripe/webhooks_controller/payment_intent/canceled_spec.rb
318
+ - spec/requests/solidus_stripe/webhooks_controller/payment_intent/payment_failed_spec.rb
319
+ - spec/requests/solidus_stripe/webhooks_controller/payment_intent/succeeded_spec.rb
320
+ - spec/requests/solidus_stripe/webhooks_controller_spec.rb
321
+ - spec/solidus_stripe_spec_helper.rb
322
+ - spec/subscribers/solidus_stripe/webhook/charge_subscriber_spec.rb
323
+ - spec/subscribers/solidus_stripe/webhook/payment_intent_subscriber_spec.rb
324
+ - spec/support/solidus_stripe/backend_test_helper.rb
325
+ - spec/support/solidus_stripe/checkout_test_helper.rb
326
+ - spec/support/solidus_stripe/factories.rb
327
+ - spec/support/solidus_stripe/webhook/data_fixtures.rb
328
+ - spec/support/solidus_stripe/webhook/event_with_context_factory.rb
329
+ - spec/support/solidus_stripe/webhook/request_helper.rb
330
+ - spec/system/backend/solidus_stripe/orders/payments_spec.rb
331
+ - spec/system/frontend/.keep
332
+ - spec/system/frontend/solidus_stripe/checkout_spec.rb