solidus_stripe 4.4.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 +95 -41
  3. data/.gitignore +3 -0
  4. data/.rubocop.yml +94 -4
  5. data/.yardopts +1 -0
  6. data/CHANGELOG.md +1 -265
  7. data/Gemfile +10 -30
  8. data/LICENSE +2 -2
  9. data/Procfile.dev +3 -0
  10. data/README.md +145 -215
  11. data/Rakefile +7 -6
  12. data/app/assets/javascripts/spree/backend/solidus_stripe.js +2 -0
  13. data/app/assets/stylesheets/spree/backend/solidus_stripe.css +4 -0
  14. data/app/controllers/solidus_stripe/intents_controller.rb +36 -52
  15. data/app/controllers/solidus_stripe/webhooks_controller.rb +28 -0
  16. data/app/models/concerns/solidus_stripe/log_entries.rb +31 -0
  17. data/app/models/solidus_stripe/customer.rb +21 -0
  18. data/app/models/solidus_stripe/gateway.rb +231 -0
  19. data/app/models/solidus_stripe/payment_intent.rb +111 -0
  20. data/app/models/solidus_stripe/payment_method.rb +106 -0
  21. data/app/models/solidus_stripe/payment_source.rb +31 -0
  22. data/app/models/solidus_stripe/slug_entry.rb +20 -0
  23. data/app/models/solidus_stripe.rb +7 -0
  24. data/app/subscribers/solidus_stripe/webhook/charge_subscriber.rb +28 -0
  25. data/app/subscribers/solidus_stripe/webhook/payment_intent_subscriber.rb +112 -0
  26. data/app/views/spree/admin/payments/source_forms/_stripe.html.erb +29 -0
  27. data/app/views/spree/admin/payments/source_forms/existing_payment/_stripe.html.erb +14 -0
  28. data/app/views/spree/admin/payments/source_forms/existing_payment/stripe/_card.html.erb +8 -0
  29. data/app/views/spree/admin/payments/source_forms/existing_payment/stripe/_default.html.erb +7 -0
  30. data/app/views/spree/admin/payments/source_views/_stripe.html.erb +15 -0
  31. data/app/views/spree/api/payments/source_views/_stripe.json.jbuilder +8 -0
  32. data/bin/dev +13 -0
  33. data/bin/dummy-app +29 -0
  34. data/bin/rails +38 -3
  35. data/bin/rails-dummy-app +3 -0
  36. data/bin/rails-engine +1 -11
  37. data/bin/rails-new +55 -0
  38. data/bin/rails-sandbox +1 -14
  39. data/bin/rspec +10 -0
  40. data/bin/sandbox +12 -74
  41. data/bin/setup +1 -0
  42. data/bin/update-migrations +56 -0
  43. data/codecov.yml +12 -0
  44. data/config/locales/en.yml +16 -1
  45. data/config/routes.rb +5 -11
  46. data/coverage.rb +42 -0
  47. data/db/migrate/20230109183332_create_solidus_stripe_payment_sources.rb +10 -0
  48. data/db/migrate/20230303154931_create_solidus_stripe_setup_intent.rb +10 -0
  49. data/db/migrate/20230306105520_create_solidus_stripe_payment_intents.rb +10 -0
  50. data/db/migrate/20230308122414_create_solidus_stripe_webhook_endpoints.rb +10 -0
  51. data/db/migrate/20230310152615_add_payment_method_reference_to_stripe_intents.rb +6 -0
  52. data/db/migrate/20230310171444_normalize_stripe_intent_id_attributes.rb +6 -0
  53. data/db/migrate/20230313150008_create_solidus_stripe_customers.rb +16 -0
  54. data/db/migrate/20230323154931_drop_solidus_stripe_setup_intent.rb +13 -0
  55. data/db/migrate/20230403094916_rename_webhook_endpoint_to_payment_method_slug_entries.rb +5 -0
  56. data/db/seeds.rb +6 -24
  57. data/lib/generators/solidus_stripe/install/install_generator.rb +121 -14
  58. data/lib/generators/solidus_stripe/install/templates/app/assets/stylesheets/spree/frontend/solidus_stripe.css +13 -0
  59. data/lib/generators/solidus_stripe/install/templates/app/javascript/controllers/solidus_stripe_confirm_controller.js +39 -0
  60. data/lib/generators/solidus_stripe/install/templates/app/javascript/controllers/solidus_stripe_payment_controller.js +89 -0
  61. data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/existing_payment/_stripe.html.erb +16 -0
  62. data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/existing_payment/stripe/_card.html.erb +8 -0
  63. data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/existing_payment/stripe/_default.html.erb +7 -0
  64. data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/payment/_stripe.html.erb +39 -0
  65. data/lib/generators/solidus_stripe/install/templates/app/views/orders/payment_info/_stripe.html.erb +20 -0
  66. data/lib/generators/solidus_stripe/install/templates/config/initializers/solidus_stripe.rb +31 -0
  67. data/lib/solidus_stripe/configuration.rb +24 -3
  68. data/lib/solidus_stripe/engine.rb +19 -6
  69. data/lib/solidus_stripe/money_to_stripe_amount_converter.rb +109 -0
  70. data/lib/solidus_stripe/refunds_synchronizer.rb +96 -0
  71. data/lib/solidus_stripe/seeds.rb +19 -0
  72. data/lib/solidus_stripe/testing_support/factories.rb +153 -0
  73. data/lib/solidus_stripe/version.rb +1 -1
  74. data/lib/solidus_stripe/webhook/event.rb +90 -0
  75. data/lib/solidus_stripe.rb +0 -2
  76. data/solidus_stripe.gemspec +29 -6
  77. data/spec/lib/solidus_stripe/configuration_spec.rb +21 -0
  78. data/spec/lib/solidus_stripe/money_to_stripe_amount_converter_spec.rb +133 -0
  79. data/spec/lib/solidus_stripe/refunds_synchronizer_spec.rb +238 -0
  80. data/spec/lib/solidus_stripe/seeds_spec.rb +43 -0
  81. data/spec/lib/solidus_stripe/webhook/event_spec.rb +134 -0
  82. data/spec/models/concerns/solidus_stripe/log_entries_spec.rb +54 -0
  83. data/spec/models/solidus_stripe/customer_spec.rb +47 -0
  84. data/spec/models/solidus_stripe/gateway_spec.rb +283 -0
  85. data/spec/models/solidus_stripe/payment_intent_spec.rb +17 -0
  86. data/spec/models/solidus_stripe/payment_method_spec.rb +137 -0
  87. data/spec/models/solidus_stripe/payment_source_spec.rb +25 -0
  88. data/spec/requests/solidus_stripe/intents_controller_spec.rb +29 -0
  89. data/spec/requests/solidus_stripe/webhooks_controller/charge/refunded_spec.rb +31 -0
  90. data/spec/requests/solidus_stripe/webhooks_controller/payment_intent/canceled_spec.rb +23 -0
  91. data/spec/requests/solidus_stripe/webhooks_controller/payment_intent/payment_failed_spec.rb +23 -0
  92. data/spec/requests/solidus_stripe/webhooks_controller/payment_intent/succeeded_spec.rb +29 -0
  93. data/spec/requests/solidus_stripe/webhooks_controller_spec.rb +52 -0
  94. data/spec/solidus_stripe_spec_helper.rb +10 -0
  95. data/spec/subscribers/solidus_stripe/webhook/charge_subscriber_spec.rb +33 -0
  96. data/spec/subscribers/solidus_stripe/webhook/payment_intent_subscriber_spec.rb +297 -0
  97. data/spec/support/solidus_stripe/backend_test_helper.rb +210 -0
  98. data/spec/support/solidus_stripe/checkout_test_helper.rb +339 -0
  99. data/spec/support/solidus_stripe/factories.rb +5 -0
  100. data/spec/support/solidus_stripe/webhook/data_fixtures.rb +106 -0
  101. data/spec/support/solidus_stripe/webhook/event_with_context_factory.rb +82 -0
  102. data/spec/support/solidus_stripe/webhook/request_helper.rb +32 -0
  103. data/spec/system/backend/solidus_stripe/orders/payments_spec.rb +119 -0
  104. data/spec/system/frontend/.keep +0 -0
  105. data/spec/system/frontend/solidus_stripe/checkout_spec.rb +187 -0
  106. data/tmp/.keep +0 -0
  107. metadata +201 -75
  108. data/.rubocop_todo.yml +0 -298
  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 -230
  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 -350
  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.4.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: 2022-12-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,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,83 +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/spec_helper.rb
170
- - 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
171
262
  homepage: https://github.com/solidusio/solidus_stripe#readme
172
263
  licenses:
173
264
  - BSD-3
174
265
  metadata:
175
266
  homepage_uri: https://github.com/solidusio/solidus_stripe#readme
176
267
  source_code_uri: https://github.com/solidusio/solidus_stripe
177
- changelog_uri: https://github.com/solidusio/solidus_stripe/blob/master/CHANGELOG.md
178
- 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
+ ------------------------------------------------------------------------
179
285
  rdoc_options: []
180
286
  require_paths:
181
287
  - lib
@@ -183,24 +289,44 @@ required_ruby_version: !ruby/object:Gem::Requirement
183
289
  requirements:
184
290
  - - ">="
185
291
  - !ruby/object:Gem::Version
186
- version: '2.5'
292
+ version: '3.0'
187
293
  required_rubygems_version: !ruby/object:Gem::Requirement
188
294
  requirements:
189
- - - ">="
295
+ - - ">"
190
296
  - !ruby/object:Gem::Version
191
- version: '0'
297
+ version: 1.3.1
192
298
  requirements: []
193
- rubygems_version: 3.3.26
299
+ rubygems_version: 3.4.10
194
300
  signing_key:
195
301
  specification_version: 4
196
302
  summary: Stripe Payment Method for Solidus
197
303
  test_files:
198
- - spec/features/stripe_checkout_spec.rb
199
- - spec/models/solidus_stripe/address_from_params_service_spec.rb
200
- - spec/models/solidus_stripe/create_intents_payment_service_spec.rb
201
- - spec/models/solidus_stripe/prepare_order_for_payment_service_spec.rb
202
- - spec/models/solidus_stripe/shipping_rates_service_spec.rb
203
- - spec/models/spree/payment_method/stripe_credit_card_spec.rb
204
- - spec/requests/payment_requests_spec.rb
205
- - spec/spec_helper.rb
206
- - 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