archetype_spree_gateway 3.9.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (124) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +21 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +39 -0
  5. data/Gemfile +9 -0
  6. data/Guardfile +9 -0
  7. data/LICENSE.md +26 -0
  8. data/README.md +105 -0
  9. data/Rakefile +15 -0
  10. data/app/models/spree/billing_integration.rb +21 -0
  11. data/app/models/spree/check.rb +41 -0
  12. data/app/models/spree/gateway/authorize_net.rb +45 -0
  13. data/app/models/spree/gateway/authorize_net_cim.rb +213 -0
  14. data/app/models/spree/gateway/balanced_gateway.rb +64 -0
  15. data/app/models/spree/gateway/banwire.rb +15 -0
  16. data/app/models/spree/gateway/beanstream.rb +193 -0
  17. data/app/models/spree/gateway/braintree_gateway.rb +184 -0
  18. data/app/models/spree/gateway/card_save.rb +10 -0
  19. data/app/models/spree/gateway/cyber_source.rb +10 -0
  20. data/app/models/spree/gateway/data_cash.rb +10 -0
  21. data/app/models/spree/gateway/epay.rb +10 -0
  22. data/app/models/spree/gateway/eway.rb +18 -0
  23. data/app/models/spree/gateway/eway_rapid.rb +14 -0
  24. data/app/models/spree/gateway/maxipago.rb +14 -0
  25. data/app/models/spree/gateway/migs.rb +11 -0
  26. data/app/models/spree/gateway/moneris.rb +10 -0
  27. data/app/models/spree/gateway/pay_junction.rb +14 -0
  28. data/app/models/spree/gateway/pay_pal_gateway.rb +12 -0
  29. data/app/models/spree/gateway/payflow_pro.rb +15 -0
  30. data/app/models/spree/gateway/paymill.rb +12 -0
  31. data/app/models/spree/gateway/payu_polska_gateway.rb +24 -0
  32. data/app/models/spree/gateway/pin_gateway.rb +60 -0
  33. data/app/models/spree/gateway/quickpay.rb +9 -0
  34. data/app/models/spree/gateway/sage_pay.rb +11 -0
  35. data/app/models/spree/gateway/secure_pay_au.rb +10 -0
  36. data/app/models/spree/gateway/spreedly_core_gateway.rb +11 -0
  37. data/app/models/spree/gateway/stripe_ach_gateway.rb +60 -0
  38. data/app/models/spree/gateway/stripe_apple_pay_gateway.rb +10 -0
  39. data/app/models/spree/gateway/stripe_elements_gateway.rb +61 -0
  40. data/app/models/spree/gateway/stripe_gateway.rb +151 -0
  41. data/app/models/spree/gateway/usa_epay_transaction.rb +9 -0
  42. data/app/models/spree/gateway/worldpay.rb +91 -0
  43. data/app/models/spree/payu_polska.rb +41 -0
  44. data/app/models/spree_gateway/apple_pay_order_decorator.rb +20 -0
  45. data/app/models/spree_gateway/apple_pay_payment_decorator.rb +9 -0
  46. data/app/models/spree_gateway/credit_card_decorator.rb +10 -0
  47. data/app/models/spree_gateway/order_decorator.rb +28 -0
  48. data/app/models/spree_gateway/payment_decorator.rb +36 -0
  49. data/app/views/spree/checkout/_payment_confirm.html.erb +39 -0
  50. data/app/views/spree/checkout/_payu.html +12 -0
  51. data/config/initializers/inflections.rb +3 -0
  52. data/config/initializers/spree_permitted_attributes.rb +5 -0
  53. data/config/locales/bg.yml +4 -0
  54. data/config/locales/de.yml +4 -0
  55. data/config/locales/en.yml +47 -0
  56. data/config/locales/sv.yml +4 -0
  57. data/config/routes.rb +19 -0
  58. data/db/migrate/20200317135551_add_spree_check_payment_source.rb +22 -0
  59. data/db/migrate/20200422114908_add_intent_key_to_payment.rb +5 -0
  60. data/lib/active_merchant/billing/stripe_gateway_decorator.rb +33 -0
  61. data/lib/controllers/spree/api/v2/storefront/intents_controller.rb +45 -0
  62. data/lib/controllers/spree/apple_pay_domain_verification_controller.rb +11 -0
  63. data/lib/generators/spree_gateway/install/install_generator.rb +19 -0
  64. data/lib/spree_frontend/controllers/spree/checkout_controller_decorator.rb +19 -0
  65. data/lib/spree_gateway/engine.rb +80 -0
  66. data/lib/spree_gateway/version.rb +5 -0
  67. data/lib/spree_gateway.rb +4 -0
  68. data/lib/views/backend/spree/admin/log_entries/_braintree.html.erb +31 -0
  69. data/lib/views/backend/spree/admin/log_entries/_stripe.html.erb +28 -0
  70. data/lib/views/backend/spree/admin/payments/source_forms/_quickcheckout.html.erb +8 -0
  71. data/lib/views/backend/spree/admin/payments/source_forms/_stripe.html.erb +79 -0
  72. data/lib/views/backend/spree/admin/payments/source_forms/_stripe_ach.html.erb +86 -0
  73. data/lib/views/backend/spree/admin/payments/source_forms/_stripe_apple_pay.html.erb +0 -0
  74. data/lib/views/backend/spree/admin/payments/source_forms/_stripe_elements.html.erb +79 -0
  75. data/lib/views/backend/spree/admin/payments/source_views/_stripe.html.erb +1 -0
  76. data/lib/views/backend/spree/admin/payments/source_views/_stripe_ach.html.erb +21 -0
  77. data/lib/views/backend/spree/admin/payments/source_views/_stripe_apple_pay.html.erb +1 -0
  78. data/lib/views/backend/spree/admin/payments/source_views/_stripe_elements.html.erb +1 -0
  79. data/lib/views/frontend/spree/checkout/payment/_stripe.html.erb +86 -0
  80. data/lib/views/frontend/spree/checkout/payment/_stripe_ach.html.erb +81 -0
  81. data/lib/views/frontend/spree/checkout/payment/_stripe_ach_verify.html.erb +16 -0
  82. data/lib/views/frontend/spree/checkout/payment/_stripe_additional_info.html.erb +16 -0
  83. data/lib/views/frontend/spree/checkout/payment/_stripe_apple_pay.html.erb +109 -0
  84. data/lib/views/frontend/spree/checkout/payment/_stripe_elements.html.erb +110 -0
  85. data/script/rails +7 -0
  86. data/spec/factories/check_factory.rb +10 -0
  87. data/spec/features/admin/stripe_elements_payment_spec.rb +100 -0
  88. data/spec/features/stripe_checkout_spec.rb +130 -0
  89. data/spec/features/stripe_elements_3ds_checkout_spec.rb +225 -0
  90. data/spec/models/gateway/authorize_net_cim_spec.rb +29 -0
  91. data/spec/models/gateway/authorize_net_spec.rb +23 -0
  92. data/spec/models/gateway/balanced_gateway_spec.rb +17 -0
  93. data/spec/models/gateway/banwire_spec.rb +11 -0
  94. data/spec/models/gateway/beanstream_spec.rb +17 -0
  95. data/spec/models/gateway/braintree_gateway_spec.rb +420 -0
  96. data/spec/models/gateway/card_save_spec.rb +11 -0
  97. data/spec/models/gateway/cyber_source_spec.rb +11 -0
  98. data/spec/models/gateway/data_cash_spec.rb +11 -0
  99. data/spec/models/gateway/epay_spec.rb +11 -0
  100. data/spec/models/gateway/eway_rapid_spec.rb +23 -0
  101. data/spec/models/gateway/eway_spec.rb +29 -0
  102. data/spec/models/gateway/maxipago_spec.rb +17 -0
  103. data/spec/models/gateway/moneris_spec.rb +11 -0
  104. data/spec/models/gateway/pay_junction_spec.rb +23 -0
  105. data/spec/models/gateway/pay_pal_spec.rb +11 -0
  106. data/spec/models/gateway/payflow_pro_spec.rb +23 -0
  107. data/spec/models/gateway/paymill_spec.rb +11 -0
  108. data/spec/models/gateway/pin_gateway_spec.rb +54 -0
  109. data/spec/models/gateway/quickpay_spec.rb +11 -0
  110. data/spec/models/gateway/sage_pay_spec.rb +11 -0
  111. data/spec/models/gateway/secure_pay_au_spec.rb +11 -0
  112. data/spec/models/gateway/stripe_ach_gateway_spec.rb +186 -0
  113. data/spec/models/gateway/stripe_gateway_spec.rb +199 -0
  114. data/spec/models/gateway/usa_epay_transaction_spec.rb +49 -0
  115. data/spec/models/gateway/worldpay_spec.rb +11 -0
  116. data/spec/models/spree/order_spec.rb +79 -0
  117. data/spec/requests/apple_pay_domain_verification.rb +45 -0
  118. data/spec/requests/spree/api/v2/storefront/intents_controller_spec.rb +198 -0
  119. data/spec/spec_helper.rb +10 -0
  120. data/spec/support/order_walktrough.rb +73 -0
  121. data/spec/support/wait_for_stripe.rb +27 -0
  122. data/spec/support/within_stripe_3ds_popup.rb +10 -0
  123. data/spree_gateway.gemspec +37 -0
  124. metadata +277 -0
@@ -0,0 +1,198 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Api V2 Storefront Intents Spec', type: :request do
4
+ let!(:store) { Spree::Store.default }
5
+ let(:currency) { store.default_currency }
6
+ let(:user) { create(:user) }
7
+ let(:order) { create(:order, user: user, store: store, currency: currency) }
8
+
9
+ include_context 'API v2 tokens'
10
+
11
+ describe '#payment_confirmation_data' do
12
+ subject :post_payment_confirmation_data do
13
+ post '/api/v2/storefront/intents/payment_confirmation_data', headers: headers, params: params
14
+ end
15
+
16
+ include_context 'API v2 tokens'
17
+
18
+ context 'when user is authorized' do
19
+ let(:params) { {} }
20
+ let(:headers) { headers_bearer.merge(headers_order_token) }
21
+
22
+ context 'when current order has payment intent' do
23
+ let(:provider) do
24
+ double('provider').tap do |p|
25
+ p.stub(:purchase)
26
+ p.stub(:authorize)
27
+ p.stub(:capture)
28
+ end
29
+ end
30
+ let(:gateway) do
31
+ gateway = Spree::Gateway::StripeElementsGateway.new(active: true)
32
+ gateway.set_preference :secret_key, 'secret_key'
33
+ gateway.set_preference :intents, 'true'
34
+ gateway.name = 'Stripe Elements'
35
+ gateway.stores << order.store
36
+ allow(gateway).to receive(:options_for_purchase_or_auth).and_return ['money','cc','opts']
37
+ allow(gateway).to receive_messages provider: provider
38
+ allow(gateway).to receive_messages source_required: true
39
+ allow(gateway).to receive_messages create_profile: true
40
+ gateway
41
+ end
42
+ let!(:payment) do
43
+ create(:payment,
44
+ source: create(:credit_card),
45
+ order: order,
46
+ payment_method: gateway,
47
+ state: 'pending',
48
+ intent_client_key: intent_client_key)
49
+ end
50
+
51
+ before { post_payment_confirmation_data }
52
+
53
+ context 'when last valid payment has intent client key' do
54
+ let(:intent_client_key) { 'intent_client_key' }
55
+
56
+ it_behaves_like 'returns 200 HTTP status'
57
+ end
58
+
59
+ context 'when last valid payment does not have intent client key' do
60
+ let(:intent_client_key) { nil }
61
+
62
+ it_behaves_like 'returns 422 HTTP status'
63
+
64
+ it 'includes valid response message' do
65
+ expect(response.body).to include I18n.t('spree.no_payment_authorization_needed')
66
+ end
67
+ end
68
+
69
+ context 'when current order has completed payments' do
70
+ let(:order) { create(:order_ready_to_ship, user: user, store: store, currency: currency) }
71
+ let(:intent_client_key) { 'intent_client_key' }
72
+
73
+ it_behaves_like 'returns 403 HTTP status'
74
+ end
75
+ end
76
+
77
+ context 'when current order does not have payment intent' do
78
+ before { post_payment_confirmation_data }
79
+
80
+ it_behaves_like 'returns 422 HTTP status'
81
+
82
+ it 'includes valid response message' do
83
+ expect(response.body).to include I18n.t('spree.no_payment_authorization_needed')
84
+ end
85
+ end
86
+ end
87
+
88
+ context 'when some authorization data is missing' do
89
+ let(:params) { {} }
90
+ let(:headers) { {} }
91
+
92
+ before { post_payment_confirmation_data }
93
+
94
+ it_behaves_like 'returns 403 HTTP status'
95
+ end
96
+ end
97
+
98
+ describe '#handle_response' do
99
+ subject :post_handle_response do
100
+ post '/api/v2/storefront/intents/handle_response', headers: headers, params: params
101
+ end
102
+
103
+ let(:headers) { headers_bearer.merge(headers_order_token) }
104
+ let(:provider) do
105
+ double('provider').tap do |p|
106
+ p.stub(:purchase)
107
+ p.stub(:authorize)
108
+ p.stub(:capture)
109
+ end
110
+ end
111
+ let(:gateway) do
112
+ gateway = Spree::Gateway::StripeElementsGateway.new(active: true)
113
+ gateway.set_preference :secret_key, 'secret_key'
114
+ gateway.set_preference :intents, 'true'
115
+ gateway.name = 'Stripe Elements'
116
+ gateway.stores << order.store
117
+ allow(gateway).to receive(:options_for_purchase_or_auth).and_return ['money','cc','opts']
118
+ allow(gateway).to receive_messages provider: provider
119
+ allow(gateway).to receive_messages source_required: true
120
+ allow(gateway).to receive_messages create_profile: true
121
+ gateway
122
+ end
123
+ let!(:payment) do
124
+ create(:payment,
125
+ source: create(:credit_card),
126
+ order: order,
127
+ payment_method: gateway,
128
+ state: 'pending',
129
+ intent_client_key: 'intent_client_key')
130
+ end
131
+
132
+ include_context 'API v2 tokens'
133
+
134
+ context 'when response param does not include errors' do
135
+ let(:params) do
136
+ {
137
+ response: {
138
+ message: 'everything is ok'
139
+ }
140
+ }
141
+ end
142
+
143
+ before { post_handle_response }
144
+
145
+ it_behaves_like 'returns 200 HTTP status'
146
+
147
+ it 'includes valid response message' do
148
+ expect(response.body).to include I18n.t('spree.payment_successfully_authorized')
149
+ end
150
+
151
+ it 'does not update payment' do
152
+ expect { post_handle_response }.not_to change { payment }
153
+ end
154
+ end
155
+
156
+ context 'when response param includes errors' do
157
+ let(:payment_response_code) { payment.response_code }
158
+ let(:params) do
159
+ {
160
+ response: {
161
+ error: {
162
+ payment_intent: {
163
+ id: payment_response_code
164
+ },
165
+ message: 'something went wrong'
166
+ }
167
+ }
168
+ }
169
+ end
170
+
171
+ before { post_handle_response }
172
+
173
+ it_behaves_like 'returns 422 HTTP status'
174
+
175
+ context 'when payment to invalidate is found' do
176
+ it 'changes payment state to failed' do
177
+ expect(payment.state).not_to eq 'failed'
178
+ expect(payment.reload.state).to eq 'failed'
179
+ end
180
+
181
+ it 'clears payment intent_client_key' do
182
+ expect(payment.intent_client_key).not_to be nil
183
+ expect(payment.reload.intent_client_key).to be nil
184
+ end
185
+
186
+ it 'includes valid response message' do
187
+ expect(response.body).to include params[:response][:error][:message]
188
+ end
189
+ end
190
+
191
+ context 'when payment to invalidate is not found' do
192
+ let(:payment_response_code) { 'unexisting response code' }
193
+
194
+ it_behaves_like 'returns 404 HTTP status'
195
+ end
196
+ end
197
+ end
198
+ end
@@ -0,0 +1,10 @@
1
+ # Configure Rails Environment
2
+ ENV['RAILS_ENV'] = 'test'
3
+
4
+ require File.expand_path('../dummy/config/environment.rb', __FILE__)
5
+
6
+ require 'spree_dev_tools/rspec/spec_helper'
7
+
8
+ # Requires supporting ruby files with custom matchers and macros, etc,
9
+ # in spec/support/ and its subdirectories.
10
+ Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].sort.each { |f| require f }
@@ -0,0 +1,73 @@
1
+ class OrderWalkthrough
2
+ def self.up_to(state)
3
+ # A default store must exist to provide store settings
4
+ store = Spree::Store.default || FactoryBot.create(:store, default: true)
5
+
6
+ # A payment method must exist for an order to proceed through the Address state
7
+ unless Spree::PaymentMethod.exists?
8
+ FactoryBot.create(:check_payment_method)
9
+ end
10
+
11
+ # Need to create a valid zone too...
12
+ zone = FactoryBot.create(:zone)
13
+ country = FactoryBot.create(:country)
14
+ zone.members << Spree::ZoneMember.create(zoneable: country)
15
+ country.states << FactoryBot.create(:state, country: country)
16
+
17
+ # A shipping method must exist for rates to be displayed on checkout page
18
+ unless Spree::ShippingMethod.exists?
19
+ FactoryBot.create(:shipping_method).tap do |sm|
20
+ sm.calculator.preferred_amount = 10
21
+ sm.calculator.preferred_currency = store.default_currency
22
+ sm.calculator.save
23
+ end
24
+ end
25
+
26
+ order = Spree::Order.create!(email: 'spree@example.com')
27
+ add_line_item!(order)
28
+ order.next!
29
+
30
+ end_state_position = states.index(state.to_sym)
31
+ states[0...end_state_position].each do |state|
32
+ send(state, order)
33
+ end
34
+
35
+ order
36
+ end
37
+
38
+ private
39
+
40
+ def self.add_line_item!(order)
41
+ FactoryBot.create(:line_item, order: order)
42
+ order.reload
43
+ end
44
+
45
+ def self.address(order)
46
+ order.bill_address = FactoryBot.create(:address, country_id: Spree::Zone.global.members.first.zoneable.id)
47
+ order.ship_address = FactoryBot.create(:address, country_id: Spree::Zone.global.members.first.zoneable.id)
48
+ order.next!
49
+ end
50
+
51
+ def self.delivery(order)
52
+ order.next!
53
+ end
54
+
55
+ def self.payment(order)
56
+ FactoryBot.create :payment,
57
+ order: order,
58
+ payment_method: Spree::PaymentMethod.first,
59
+ amount: order.total
60
+
61
+ # TODO: maybe look at some way of making this payment_state change automatic
62
+ order.payment_state = 'paid'
63
+ order.next!
64
+ end
65
+
66
+ def self.complete(_order)
67
+ # noop?
68
+ end
69
+
70
+ def self.states
71
+ [:address, :delivery, :payment, :complete]
72
+ end
73
+ end
@@ -0,0 +1,27 @@
1
+ module WaitForStripe
2
+ def wait_for_stripe
3
+ Timeout.timeout(Capybara.default_max_wait_time) do
4
+ loop until page.evaluate_script('window.activeStripeRequests').zero?
5
+ end
6
+ end
7
+
8
+ def setup_stripe_watcher
9
+ page.evaluate_script <<-JS
10
+ window.activeStripeRequests = 0;
11
+ $('#checkout_form_payment [data-hook=buttons]').on('click', function() {
12
+ window.activeStripeRequests = window.activeStripeRequests + 1;
13
+ });
14
+ stripeResponseHandler = (function() {
15
+ var _f = stripeResponseHandler;
16
+ return function() {
17
+ window.activeStripeRequests = window.activeStripeRequests - 1;
18
+ _f.apply(this, arguments);
19
+ }
20
+ })();
21
+ JS
22
+ end
23
+ end
24
+
25
+ RSpec.configure do |config|
26
+ config.include WaitForStripe, type: :feature
27
+ end
@@ -0,0 +1,10 @@
1
+ def within_stripe_3ds_popup
2
+ using_wait_time(10) do
3
+ within_frame 0 do
4
+ within_frame 0 do
5
+ expect(page).to have_text('3D Secure 2 Test Page', normalize_ws: true)
6
+ yield
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,37 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib/', __FILE__)
3
+ $LOAD_PATH.unshift lib unless $LOAD_PATH.include?(lib)
4
+
5
+ require 'spree_gateway/version'
6
+
7
+ Gem::Specification.new do |s|
8
+ s.platform = Gem::Platform::RUBY
9
+ s.name = 'archetype_spree_gateway'
10
+ s.version = SpreeGateway.version
11
+ s.summary = 'Additional Payment Gateways for Spree Commerce'
12
+ s.description = s.summary
13
+
14
+ s.author = 'Spree Commerce'
15
+ s.email = 'gems@spreecommerce.com'
16
+ s.homepage = 'https://spreecommerce.org'
17
+ s.license = 'BSD-3-Clause'
18
+
19
+ s.metadata = {
20
+ "bug_tracker_uri" => "https://github.com/spree/spree_gateway/issues",
21
+ "changelog_uri" => "https://github.com/spree/spree_gateway/releases/tag/v#{s.version}",
22
+ "documentation_uri" => "https://guides.spreecommerce.org/",
23
+ "source_code_uri" => "https://github.com/spree/spree_gateway/tree/v#{s.version}",
24
+ }
25
+
26
+ s.files = `git ls-files`.split("\n")
27
+ s.test_files = `git ls-files -- spec/*`.split("\n")
28
+ s.require_path = 'lib'
29
+ s.requirements << 'none'
30
+
31
+ s.add_dependency 'spree_core', '>= 3.7.0'
32
+ s.add_dependency 'spree_extension'
33
+
34
+ s.add_development_dependency 'braintree', '~> 3.0.0'
35
+ s.add_development_dependency 'rspec-activemodel-mocks'
36
+ s.add_development_dependency 'spree_dev_tools'
37
+ end
metadata ADDED
@@ -0,0 +1,277 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: archetype_spree_gateway
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.9.5
5
+ platform: ruby
6
+ authors:
7
+ - Spree Commerce
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-12-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: spree_core
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 3.7.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 3.7.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: spree_extension
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: braintree
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 3.0.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 3.0.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec-activemodel-mocks
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: spree_dev_tools
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: Additional Payment Gateways for Spree Commerce
84
+ email: gems@spreecommerce.com
85
+ executables: []
86
+ extensions: []
87
+ extra_rdoc_files: []
88
+ files:
89
+ - ".gitignore"
90
+ - ".rspec"
91
+ - ".travis.yml"
92
+ - Gemfile
93
+ - Guardfile
94
+ - LICENSE.md
95
+ - README.md
96
+ - Rakefile
97
+ - app/models/spree/billing_integration.rb
98
+ - app/models/spree/check.rb
99
+ - app/models/spree/gateway/authorize_net.rb
100
+ - app/models/spree/gateway/authorize_net_cim.rb
101
+ - app/models/spree/gateway/balanced_gateway.rb
102
+ - app/models/spree/gateway/banwire.rb
103
+ - app/models/spree/gateway/beanstream.rb
104
+ - app/models/spree/gateway/braintree_gateway.rb
105
+ - app/models/spree/gateway/card_save.rb
106
+ - app/models/spree/gateway/cyber_source.rb
107
+ - app/models/spree/gateway/data_cash.rb
108
+ - app/models/spree/gateway/epay.rb
109
+ - app/models/spree/gateway/eway.rb
110
+ - app/models/spree/gateway/eway_rapid.rb
111
+ - app/models/spree/gateway/maxipago.rb
112
+ - app/models/spree/gateway/migs.rb
113
+ - app/models/spree/gateway/moneris.rb
114
+ - app/models/spree/gateway/pay_junction.rb
115
+ - app/models/spree/gateway/pay_pal_gateway.rb
116
+ - app/models/spree/gateway/payflow_pro.rb
117
+ - app/models/spree/gateway/paymill.rb
118
+ - app/models/spree/gateway/payu_polska_gateway.rb
119
+ - app/models/spree/gateway/pin_gateway.rb
120
+ - app/models/spree/gateway/quickpay.rb
121
+ - app/models/spree/gateway/sage_pay.rb
122
+ - app/models/spree/gateway/secure_pay_au.rb
123
+ - app/models/spree/gateway/spreedly_core_gateway.rb
124
+ - app/models/spree/gateway/stripe_ach_gateway.rb
125
+ - app/models/spree/gateway/stripe_apple_pay_gateway.rb
126
+ - app/models/spree/gateway/stripe_elements_gateway.rb
127
+ - app/models/spree/gateway/stripe_gateway.rb
128
+ - app/models/spree/gateway/usa_epay_transaction.rb
129
+ - app/models/spree/gateway/worldpay.rb
130
+ - app/models/spree/payu_polska.rb
131
+ - app/models/spree_gateway/apple_pay_order_decorator.rb
132
+ - app/models/spree_gateway/apple_pay_payment_decorator.rb
133
+ - app/models/spree_gateway/credit_card_decorator.rb
134
+ - app/models/spree_gateway/order_decorator.rb
135
+ - app/models/spree_gateway/payment_decorator.rb
136
+ - app/views/spree/checkout/_payment_confirm.html.erb
137
+ - app/views/spree/checkout/_payu.html
138
+ - config/initializers/inflections.rb
139
+ - config/initializers/spree_permitted_attributes.rb
140
+ - config/locales/bg.yml
141
+ - config/locales/de.yml
142
+ - config/locales/en.yml
143
+ - config/locales/sv.yml
144
+ - config/routes.rb
145
+ - db/migrate/20200317135551_add_spree_check_payment_source.rb
146
+ - db/migrate/20200422114908_add_intent_key_to_payment.rb
147
+ - lib/active_merchant/billing/stripe_gateway_decorator.rb
148
+ - lib/controllers/spree/api/v2/storefront/intents_controller.rb
149
+ - lib/controllers/spree/apple_pay_domain_verification_controller.rb
150
+ - lib/generators/spree_gateway/install/install_generator.rb
151
+ - lib/spree_frontend/controllers/spree/checkout_controller_decorator.rb
152
+ - lib/spree_gateway.rb
153
+ - lib/spree_gateway/engine.rb
154
+ - lib/spree_gateway/version.rb
155
+ - lib/views/backend/spree/admin/log_entries/_braintree.html.erb
156
+ - lib/views/backend/spree/admin/log_entries/_stripe.html.erb
157
+ - lib/views/backend/spree/admin/payments/source_forms/_quickcheckout.html.erb
158
+ - lib/views/backend/spree/admin/payments/source_forms/_stripe.html.erb
159
+ - lib/views/backend/spree/admin/payments/source_forms/_stripe_ach.html.erb
160
+ - lib/views/backend/spree/admin/payments/source_forms/_stripe_apple_pay.html.erb
161
+ - lib/views/backend/spree/admin/payments/source_forms/_stripe_elements.html.erb
162
+ - lib/views/backend/spree/admin/payments/source_views/_stripe.html.erb
163
+ - lib/views/backend/spree/admin/payments/source_views/_stripe_ach.html.erb
164
+ - lib/views/backend/spree/admin/payments/source_views/_stripe_apple_pay.html.erb
165
+ - lib/views/backend/spree/admin/payments/source_views/_stripe_elements.html.erb
166
+ - lib/views/frontend/spree/checkout/payment/_stripe.html.erb
167
+ - lib/views/frontend/spree/checkout/payment/_stripe_ach.html.erb
168
+ - lib/views/frontend/spree/checkout/payment/_stripe_ach_verify.html.erb
169
+ - lib/views/frontend/spree/checkout/payment/_stripe_additional_info.html.erb
170
+ - lib/views/frontend/spree/checkout/payment/_stripe_apple_pay.html.erb
171
+ - lib/views/frontend/spree/checkout/payment/_stripe_elements.html.erb
172
+ - script/rails
173
+ - spec/factories/check_factory.rb
174
+ - spec/features/admin/stripe_elements_payment_spec.rb
175
+ - spec/features/stripe_checkout_spec.rb
176
+ - spec/features/stripe_elements_3ds_checkout_spec.rb
177
+ - spec/models/gateway/authorize_net_cim_spec.rb
178
+ - spec/models/gateway/authorize_net_spec.rb
179
+ - spec/models/gateway/balanced_gateway_spec.rb
180
+ - spec/models/gateway/banwire_spec.rb
181
+ - spec/models/gateway/beanstream_spec.rb
182
+ - spec/models/gateway/braintree_gateway_spec.rb
183
+ - spec/models/gateway/card_save_spec.rb
184
+ - spec/models/gateway/cyber_source_spec.rb
185
+ - spec/models/gateway/data_cash_spec.rb
186
+ - spec/models/gateway/epay_spec.rb
187
+ - spec/models/gateway/eway_rapid_spec.rb
188
+ - spec/models/gateway/eway_spec.rb
189
+ - spec/models/gateway/maxipago_spec.rb
190
+ - spec/models/gateway/moneris_spec.rb
191
+ - spec/models/gateway/pay_junction_spec.rb
192
+ - spec/models/gateway/pay_pal_spec.rb
193
+ - spec/models/gateway/payflow_pro_spec.rb
194
+ - spec/models/gateway/paymill_spec.rb
195
+ - spec/models/gateway/pin_gateway_spec.rb
196
+ - spec/models/gateway/quickpay_spec.rb
197
+ - spec/models/gateway/sage_pay_spec.rb
198
+ - spec/models/gateway/secure_pay_au_spec.rb
199
+ - spec/models/gateway/stripe_ach_gateway_spec.rb
200
+ - spec/models/gateway/stripe_gateway_spec.rb
201
+ - spec/models/gateway/usa_epay_transaction_spec.rb
202
+ - spec/models/gateway/worldpay_spec.rb
203
+ - spec/models/spree/order_spec.rb
204
+ - spec/requests/apple_pay_domain_verification.rb
205
+ - spec/requests/spree/api/v2/storefront/intents_controller_spec.rb
206
+ - spec/spec_helper.rb
207
+ - spec/support/order_walktrough.rb
208
+ - spec/support/wait_for_stripe.rb
209
+ - spec/support/within_stripe_3ds_popup.rb
210
+ - spree_gateway.gemspec
211
+ homepage: https://spreecommerce.org
212
+ licenses:
213
+ - BSD-3-Clause
214
+ metadata:
215
+ bug_tracker_uri: https://github.com/spree/spree_gateway/issues
216
+ changelog_uri: https://github.com/spree/spree_gateway/releases/tag/v3.9.5
217
+ documentation_uri: https://guides.spreecommerce.org/
218
+ source_code_uri: https://github.com/spree/spree_gateway/tree/v3.9.5
219
+ post_install_message:
220
+ rdoc_options: []
221
+ require_paths:
222
+ - lib
223
+ required_ruby_version: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - ">="
226
+ - !ruby/object:Gem::Version
227
+ version: '0'
228
+ required_rubygems_version: !ruby/object:Gem::Requirement
229
+ requirements:
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ version: '0'
233
+ requirements:
234
+ - none
235
+ rubyforge_project:
236
+ rubygems_version: 2.7.6.2
237
+ signing_key:
238
+ specification_version: 4
239
+ summary: Additional Payment Gateways for Spree Commerce
240
+ test_files:
241
+ - spec/factories/check_factory.rb
242
+ - spec/features/admin/stripe_elements_payment_spec.rb
243
+ - spec/features/stripe_checkout_spec.rb
244
+ - spec/features/stripe_elements_3ds_checkout_spec.rb
245
+ - spec/models/gateway/authorize_net_cim_spec.rb
246
+ - spec/models/gateway/authorize_net_spec.rb
247
+ - spec/models/gateway/balanced_gateway_spec.rb
248
+ - spec/models/gateway/banwire_spec.rb
249
+ - spec/models/gateway/beanstream_spec.rb
250
+ - spec/models/gateway/braintree_gateway_spec.rb
251
+ - spec/models/gateway/card_save_spec.rb
252
+ - spec/models/gateway/cyber_source_spec.rb
253
+ - spec/models/gateway/data_cash_spec.rb
254
+ - spec/models/gateway/epay_spec.rb
255
+ - spec/models/gateway/eway_rapid_spec.rb
256
+ - spec/models/gateway/eway_spec.rb
257
+ - spec/models/gateway/maxipago_spec.rb
258
+ - spec/models/gateway/moneris_spec.rb
259
+ - spec/models/gateway/pay_junction_spec.rb
260
+ - spec/models/gateway/pay_pal_spec.rb
261
+ - spec/models/gateway/payflow_pro_spec.rb
262
+ - spec/models/gateway/paymill_spec.rb
263
+ - spec/models/gateway/pin_gateway_spec.rb
264
+ - spec/models/gateway/quickpay_spec.rb
265
+ - spec/models/gateway/sage_pay_spec.rb
266
+ - spec/models/gateway/secure_pay_au_spec.rb
267
+ - spec/models/gateway/stripe_ach_gateway_spec.rb
268
+ - spec/models/gateway/stripe_gateway_spec.rb
269
+ - spec/models/gateway/usa_epay_transaction_spec.rb
270
+ - spec/models/gateway/worldpay_spec.rb
271
+ - spec/models/spree/order_spec.rb
272
+ - spec/requests/apple_pay_domain_verification.rb
273
+ - spec/requests/spree/api/v2/storefront/intents_controller_spec.rb
274
+ - spec/spec_helper.rb
275
+ - spec/support/order_walktrough.rb
276
+ - spec/support/wait_for_stripe.rb
277
+ - spec/support/within_stripe_3ds_popup.rb