solidus_stripe 4.3.0 → 5.0.0.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (153) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +98 -23
  3. data/.github/stale.yml +1 -17
  4. data/.gitignore +3 -0
  5. data/.rubocop.yml +94 -2
  6. data/.yardopts +1 -0
  7. data/CHANGELOG.md +1 -231
  8. data/Gemfile +10 -25
  9. data/LICENSE +2 -2
  10. data/Procfile.dev +3 -0
  11. data/README.md +155 -223
  12. data/Rakefile +7 -3
  13. data/app/assets/javascripts/spree/backend/solidus_stripe.js +2 -0
  14. data/app/assets/stylesheets/spree/backend/solidus_stripe.css +4 -0
  15. data/app/controllers/solidus_stripe/intents_controller.rb +36 -52
  16. data/app/controllers/solidus_stripe/webhooks_controller.rb +28 -0
  17. data/app/models/concerns/solidus_stripe/log_entries.rb +31 -0
  18. data/app/models/solidus_stripe/customer.rb +21 -0
  19. data/app/models/solidus_stripe/gateway.rb +231 -0
  20. data/app/models/solidus_stripe/payment_intent.rb +111 -0
  21. data/app/models/solidus_stripe/payment_method.rb +106 -0
  22. data/app/models/solidus_stripe/payment_source.rb +31 -0
  23. data/app/models/solidus_stripe/slug_entry.rb +20 -0
  24. data/app/models/solidus_stripe.rb +7 -0
  25. data/app/subscribers/solidus_stripe/webhook/charge_subscriber.rb +28 -0
  26. data/app/subscribers/solidus_stripe/webhook/payment_intent_subscriber.rb +112 -0
  27. data/app/views/spree/admin/payments/source_forms/_stripe.html.erb +29 -0
  28. data/app/views/spree/admin/payments/source_forms/existing_payment/_stripe.html.erb +14 -0
  29. data/app/views/spree/admin/payments/source_forms/existing_payment/stripe/_card.html.erb +8 -0
  30. data/app/views/spree/admin/payments/source_forms/existing_payment/stripe/_default.html.erb +7 -0
  31. data/app/views/spree/admin/payments/source_views/_stripe.html.erb +15 -0
  32. data/app/views/spree/api/payments/source_views/_stripe.json.jbuilder +8 -0
  33. data/bin/dev +13 -0
  34. data/bin/dummy-app +29 -0
  35. data/bin/rails +38 -3
  36. data/bin/rails-dummy-app +3 -0
  37. data/bin/rails-engine +1 -11
  38. data/bin/rails-new +55 -0
  39. data/bin/rails-sandbox +1 -14
  40. data/bin/rspec +10 -0
  41. data/bin/sandbox +12 -74
  42. data/bin/setup +1 -0
  43. data/bin/update-migrations +56 -0
  44. data/codecov.yml +12 -0
  45. data/config/locales/en.yml +16 -1
  46. data/config/routes.rb +5 -11
  47. data/coverage.rb +42 -0
  48. data/db/migrate/20230109183332_create_solidus_stripe_payment_sources.rb +10 -0
  49. data/db/migrate/20230303154931_create_solidus_stripe_setup_intent.rb +10 -0
  50. data/db/migrate/20230306105520_create_solidus_stripe_payment_intents.rb +10 -0
  51. data/db/migrate/20230308122414_create_solidus_stripe_webhook_endpoints.rb +10 -0
  52. data/db/migrate/20230310152615_add_payment_method_reference_to_stripe_intents.rb +6 -0
  53. data/db/migrate/20230310171444_normalize_stripe_intent_id_attributes.rb +6 -0
  54. data/db/migrate/20230313150008_create_solidus_stripe_customers.rb +16 -0
  55. data/db/migrate/20230323154931_drop_solidus_stripe_setup_intent.rb +13 -0
  56. data/db/migrate/20230403094916_rename_webhook_endpoint_to_payment_method_slug_entries.rb +5 -0
  57. data/db/seeds.rb +6 -24
  58. data/lib/generators/solidus_stripe/install/install_generator.rb +121 -14
  59. data/lib/generators/solidus_stripe/install/templates/app/assets/stylesheets/spree/frontend/solidus_stripe.css +13 -0
  60. data/lib/generators/solidus_stripe/install/templates/app/javascript/controllers/solidus_stripe_confirm_controller.js +39 -0
  61. data/lib/generators/solidus_stripe/install/templates/app/javascript/controllers/solidus_stripe_payment_controller.js +89 -0
  62. data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/existing_payment/_stripe.html.erb +16 -0
  63. data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/existing_payment/stripe/_card.html.erb +8 -0
  64. data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/existing_payment/stripe/_default.html.erb +7 -0
  65. data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/payment/_stripe.html.erb +39 -0
  66. data/lib/generators/solidus_stripe/install/templates/app/views/orders/payment_info/_stripe.html.erb +20 -0
  67. data/lib/generators/solidus_stripe/install/templates/config/initializers/solidus_stripe.rb +31 -0
  68. data/lib/solidus_stripe/configuration.rb +24 -3
  69. data/lib/solidus_stripe/engine.rb +19 -6
  70. data/lib/solidus_stripe/money_to_stripe_amount_converter.rb +109 -0
  71. data/lib/solidus_stripe/refunds_synchronizer.rb +96 -0
  72. data/lib/solidus_stripe/seeds.rb +19 -0
  73. data/lib/solidus_stripe/testing_support/factories.rb +153 -0
  74. data/lib/solidus_stripe/version.rb +1 -1
  75. data/lib/solidus_stripe/webhook/event.rb +90 -0
  76. data/lib/solidus_stripe.rb +0 -2
  77. data/solidus_stripe.gemspec +29 -5
  78. data/spec/lib/solidus_stripe/configuration_spec.rb +21 -0
  79. data/spec/lib/solidus_stripe/money_to_stripe_amount_converter_spec.rb +133 -0
  80. data/spec/lib/solidus_stripe/refunds_synchronizer_spec.rb +238 -0
  81. data/spec/lib/solidus_stripe/seeds_spec.rb +43 -0
  82. data/spec/lib/solidus_stripe/webhook/event_spec.rb +134 -0
  83. data/spec/models/concerns/solidus_stripe/log_entries_spec.rb +54 -0
  84. data/spec/models/solidus_stripe/customer_spec.rb +47 -0
  85. data/spec/models/solidus_stripe/gateway_spec.rb +283 -0
  86. data/spec/models/solidus_stripe/payment_intent_spec.rb +17 -0
  87. data/spec/models/solidus_stripe/payment_method_spec.rb +137 -0
  88. data/spec/models/solidus_stripe/payment_source_spec.rb +25 -0
  89. data/spec/requests/solidus_stripe/intents_controller_spec.rb +29 -0
  90. data/spec/requests/solidus_stripe/webhooks_controller/charge/refunded_spec.rb +31 -0
  91. data/spec/requests/solidus_stripe/webhooks_controller/payment_intent/canceled_spec.rb +23 -0
  92. data/spec/requests/solidus_stripe/webhooks_controller/payment_intent/payment_failed_spec.rb +23 -0
  93. data/spec/requests/solidus_stripe/webhooks_controller/payment_intent/succeeded_spec.rb +29 -0
  94. data/spec/requests/solidus_stripe/webhooks_controller_spec.rb +52 -0
  95. data/spec/solidus_stripe_spec_helper.rb +10 -0
  96. data/spec/subscribers/solidus_stripe/webhook/charge_subscriber_spec.rb +33 -0
  97. data/spec/subscribers/solidus_stripe/webhook/payment_intent_subscriber_spec.rb +297 -0
  98. data/spec/support/solidus_stripe/backend_test_helper.rb +210 -0
  99. data/spec/support/solidus_stripe/checkout_test_helper.rb +339 -0
  100. data/spec/support/solidus_stripe/factories.rb +5 -0
  101. data/spec/support/solidus_stripe/webhook/data_fixtures.rb +106 -0
  102. data/spec/support/solidus_stripe/webhook/event_with_context_factory.rb +82 -0
  103. data/spec/support/solidus_stripe/webhook/request_helper.rb +32 -0
  104. data/spec/system/backend/solidus_stripe/orders/payments_spec.rb +119 -0
  105. data/spec/system/frontend/.keep +0 -0
  106. data/spec/system/frontend/solidus_stripe/checkout_spec.rb +187 -0
  107. data/tmp/.keep +0 -0
  108. metadata +210 -69
  109. data/.travis.yml +0 -28
  110. data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-cart-page-checkout.js +0 -122
  111. data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-elements.js +0 -148
  112. data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-init.js +0 -20
  113. data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-payment-intents.js +0 -84
  114. data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-payment-request-button-shared.js +0 -160
  115. data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-payment.js +0 -16
  116. data/app/assets/javascripts/spree/frontend/solidus_stripe.js +0 -6
  117. data/app/controllers/solidus_stripe/payment_request_controller.rb +0 -52
  118. data/app/controllers/spree/stripe_controller.rb +0 -13
  119. data/app/decorators/models/spree/order_update_attributes_decorator.rb +0 -39
  120. data/app/decorators/models/spree/payment_decorator.rb +0 -11
  121. data/app/decorators/models/spree/refund_decorator.rb +0 -9
  122. data/app/models/solidus_stripe/address_from_params_service.rb +0 -72
  123. data/app/models/solidus_stripe/create_intents_payment_service.rb +0 -114
  124. data/app/models/solidus_stripe/prepare_order_for_payment_service.rb +0 -46
  125. data/app/models/solidus_stripe/shipping_rates_service.rb +0 -46
  126. data/app/models/spree/payment_method/stripe_credit_card.rb +0 -217
  127. data/bin/r +0 -13
  128. data/bin/sandbox_rails +0 -18
  129. data/db/migrate/20181010123508_update_stripe_payment_method_type_to_credit_card.rb +0 -21
  130. data/lib/assets/stylesheets/spree/frontend/solidus_stripe.scss +0 -11
  131. data/lib/solidus_stripe/testing_support/card_input_helper.rb +0 -34
  132. data/lib/tasks/solidus_stripe/db/seed.rake +0 -14
  133. data/lib/views/api/spree/api/payments/source_views/_stripe.json.jbuilder +0 -3
  134. data/lib/views/backend/spree/admin/log_entries/_stripe.html.erb +0 -28
  135. data/lib/views/backend/spree/admin/payments/source_forms/_stripe.html.erb +0 -1
  136. data/lib/views/backend/spree/admin/payments/source_views/_stripe.html.erb +0 -1
  137. data/lib/views/frontend/spree/checkout/existing_payment/_stripe.html.erb +0 -1
  138. data/lib/views/frontend/spree/checkout/payment/_stripe.html.erb +0 -8
  139. data/lib/views/frontend/spree/checkout/payment/v2/_javascript.html.erb +0 -78
  140. data/lib/views/frontend/spree/checkout/payment/v3/_elements.html.erb +0 -1
  141. data/lib/views/frontend/spree/checkout/payment/v3/_form_elements.html.erb +0 -40
  142. data/lib/views/frontend/spree/checkout/payment/v3/_intents.html.erb +0 -1
  143. data/lib/views/frontend/spree/checkout/payment/v3/_stripe.html.erb +0 -2
  144. data/lib/views/frontend/spree/orders/_stripe_payment_request_button.html.erb +0 -14
  145. data/spec/features/stripe_checkout_spec.rb +0 -486
  146. data/spec/models/solidus_stripe/address_from_params_service_spec.rb +0 -87
  147. data/spec/models/solidus_stripe/create_intents_payment_service_spec.rb +0 -127
  148. data/spec/models/solidus_stripe/prepare_order_for_payment_service_spec.rb +0 -65
  149. data/spec/models/solidus_stripe/shipping_rates_service_spec.rb +0 -54
  150. data/spec/models/spree/payment_method/stripe_credit_card_spec.rb +0 -316
  151. data/spec/requests/payment_requests_spec.rb +0 -152
  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.3.0
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: 2021-10-19 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,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '2.3'
19
+ version: '3.2'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '4'
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '2.3'
29
+ version: '3.2'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '4'
@@ -45,21 +45,63 @@ 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
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '8.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: redcarpet
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :development
69
+ prerelease: false
56
70
  version_requirements: !ruby/object:Gem::Requirement
57
71
  requirements:
58
72
  - - ">="
59
73
  - !ruby/object:Gem::Version
60
- version: '1.105'
74
+ version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: rubocop
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.0'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
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'
61
103
  - !ruby/object:Gem::Dependency
62
- name: solidus_dev_support
104
+ name: rubocop-rails
63
105
  requirement: !ruby/object:Gem::Requirement
64
106
  requirements:
65
107
  - - "~>"
@@ -72,6 +114,34 @@ dependencies:
72
114
  - - "~>"
73
115
  - !ruby/object:Gem::Version
74
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'
75
145
  description: Stripe Payment Method for Solidus
76
146
  email: contact@solidus.io
77
147
  executables: []
@@ -85,82 +155,133 @@ files:
85
155
  - ".gitignore"
86
156
  - ".rspec"
87
157
  - ".rubocop.yml"
88
- - ".travis.yml"
158
+ - ".yardopts"
89
159
  - CHANGELOG.md
90
160
  - Gemfile
91
161
  - LICENSE
162
+ - Procfile.dev
92
163
  - README.md
93
164
  - Rakefile
94
- - app/assets/javascripts/spree/frontend/solidus_stripe.js
95
- - app/assets/javascripts/spree/frontend/solidus_stripe/stripe-cart-page-checkout.js
96
- - app/assets/javascripts/spree/frontend/solidus_stripe/stripe-elements.js
97
- - app/assets/javascripts/spree/frontend/solidus_stripe/stripe-init.js
98
- - app/assets/javascripts/spree/frontend/solidus_stripe/stripe-payment-intents.js
99
- - app/assets/javascripts/spree/frontend/solidus_stripe/stripe-payment-request-button-shared.js
100
- - 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
101
167
  - app/controllers/solidus_stripe/intents_controller.rb
102
- - app/controllers/solidus_stripe/payment_request_controller.rb
103
- - app/controllers/spree/stripe_controller.rb
104
- - app/decorators/models/spree/order_update_attributes_decorator.rb
105
- - app/decorators/models/spree/payment_decorator.rb
106
- - app/decorators/models/spree/refund_decorator.rb
107
- - app/models/solidus_stripe/address_from_params_service.rb
108
- - app/models/solidus_stripe/create_intents_payment_service.rb
109
- - app/models/solidus_stripe/prepare_order_for_payment_service.rb
110
- - app/models/solidus_stripe/shipping_rates_service.rb
111
- - 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
112
185
  - bin/console
113
- - bin/r
186
+ - bin/dev
187
+ - bin/dummy-app
114
188
  - bin/rails
189
+ - bin/rails-dummy-app
115
190
  - bin/rails-engine
191
+ - bin/rails-new
116
192
  - bin/rails-sandbox
117
193
  - bin/rake
194
+ - bin/rspec
118
195
  - bin/sandbox
119
- - bin/sandbox_rails
120
196
  - bin/setup
197
+ - bin/update-migrations
198
+ - codecov.yml
121
199
  - config/locales/en.yml
122
200
  - config/routes.rb
123
- - 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
124
211
  - db/seeds.rb
125
- - lib/assets/stylesheets/spree/frontend/solidus_stripe.scss
126
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
127
222
  - lib/solidus_stripe.rb
128
223
  - lib/solidus_stripe/configuration.rb
129
224
  - lib/solidus_stripe/engine.rb
130
- - 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
131
228
  - lib/solidus_stripe/testing_support/factories.rb
132
229
  - lib/solidus_stripe/version.rb
133
- - lib/tasks/solidus_stripe/db/seed.rake
134
- - lib/views/api/spree/api/payments/source_views/_stripe.json.jbuilder
135
- - lib/views/backend/spree/admin/log_entries/_stripe.html.erb
136
- - lib/views/backend/spree/admin/payments/source_forms/_stripe.html.erb
137
- - lib/views/backend/spree/admin/payments/source_views/_stripe.html.erb
138
- - lib/views/frontend/spree/checkout/existing_payment/_stripe.html.erb
139
- - lib/views/frontend/spree/checkout/payment/_stripe.html.erb
140
- - lib/views/frontend/spree/checkout/payment/v2/_javascript.html.erb
141
- - lib/views/frontend/spree/checkout/payment/v3/_elements.html.erb
142
- - lib/views/frontend/spree/checkout/payment/v3/_form_elements.html.erb
143
- - lib/views/frontend/spree/checkout/payment/v3/_intents.html.erb
144
- - lib/views/frontend/spree/checkout/payment/v3/_stripe.html.erb
145
- - lib/views/frontend/spree/orders/_stripe_payment_request_button.html.erb
230
+ - lib/solidus_stripe/webhook/event.rb
146
231
  - solidus_stripe.gemspec
147
- - spec/features/stripe_checkout_spec.rb
148
- - spec/models/solidus_stripe/address_from_params_service_spec.rb
149
- - spec/models/solidus_stripe/create_intents_payment_service_spec.rb
150
- - spec/models/solidus_stripe/prepare_order_for_payment_service_spec.rb
151
- - spec/models/solidus_stripe/shipping_rates_service_spec.rb
152
- - spec/models/spree/payment_method/stripe_credit_card_spec.rb
153
- - spec/requests/payment_requests_spec.rb
154
- - spec/spec_helper.rb
155
- - 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
156
262
  homepage: https://github.com/solidusio/solidus_stripe#readme
157
263
  licenses:
158
264
  - BSD-3
159
265
  metadata:
160
266
  homepage_uri: https://github.com/solidusio/solidus_stripe#readme
161
267
  source_code_uri: https://github.com/solidusio/solidus_stripe
162
- changelog_uri: https://github.com/solidusio/solidus_stripe/blob/master/CHANGELOG.md
163
- 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
+ ------------------------------------------------------------------------
164
285
  rdoc_options: []
165
286
  require_paths:
166
287
  - lib
@@ -168,24 +289,44 @@ required_ruby_version: !ruby/object:Gem::Requirement
168
289
  requirements:
169
290
  - - ">="
170
291
  - !ruby/object:Gem::Version
171
- version: 2.4.0
292
+ version: '3.0'
172
293
  required_rubygems_version: !ruby/object:Gem::Requirement
173
294
  requirements:
174
- - - ">="
295
+ - - ">"
175
296
  - !ruby/object:Gem::Version
176
- version: '0'
297
+ version: 1.3.1
177
298
  requirements: []
178
- rubygems_version: 3.2.20
299
+ rubygems_version: 3.4.10
179
300
  signing_key:
180
301
  specification_version: 4
181
302
  summary: Stripe Payment Method for Solidus
182
303
  test_files:
183
- - spec/features/stripe_checkout_spec.rb
184
- - spec/models/solidus_stripe/address_from_params_service_spec.rb
185
- - spec/models/solidus_stripe/create_intents_payment_service_spec.rb
186
- - spec/models/solidus_stripe/prepare_order_for_payment_service_spec.rb
187
- - spec/models/solidus_stripe/shipping_rates_service_spec.rb
188
- - spec/models/spree/payment_method/stripe_credit_card_spec.rb
189
- - spec/requests/payment_requests_spec.rb
190
- - spec/spec_helper.rb
191
- - 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
data/.travis.yml DELETED
@@ -1,28 +0,0 @@
1
- sudo: required
2
- dist: trusty
3
- cache: bundler
4
- language: ruby
5
- addons:
6
- chrome: stable
7
- rvm:
8
- - 2.5.1
9
- before_install:
10
- - mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'travis'@'%';"
11
- before_script:
12
- - "export DISPLAY=:99.0"
13
- - "sh -e /etc/init.d/xvfb start"
14
- - sleep 3 # give xvfb some time to start
15
- env:
16
- matrix:
17
- - SOLIDUS_BRANCH=v2.4 DB=postgres
18
- - SOLIDUS_BRANCH=v2.5 DB=postgres
19
- - SOLIDUS_BRANCH=v2.6 DB=postgres
20
- - SOLIDUS_BRANCH=v2.7 DB=postgres
21
- - SOLIDUS_BRANCH=v2.8 DB=postgres
22
- - SOLIDUS_BRANCH=master DB=postgres
23
- - SOLIDUS_BRANCH=v2.4 DB=mysql
24
- - SOLIDUS_BRANCH=v2.5 DB=mysql
25
- - SOLIDUS_BRANCH=v2.6 DB=mysql
26
- - SOLIDUS_BRANCH=v2.7 DB=mysql
27
- - SOLIDUS_BRANCH=v2.8 DB=mysql
28
- - SOLIDUS_BRANCH=master DB=mysql