spree_gateway 3.4.1 → 3.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +13 -3
- data/Appraisals +3 -2
- data/README.md +1 -1
- data/app/models/spree/apple_pay_order_decorator.rb +20 -0
- data/app/models/spree/{payment_decorator.rb → apple_pay_payment_decorator.rb} +2 -2
- data/gemfiles/{spree_3_6.gemfile → spree_3_7.gemfile} +2 -1
- data/lib/views/backend/spree/admin/payments/source_forms/_stripe.html.erb +75 -1
- data/spree_gateway.gemspec +4 -4
- metadata +16 -17
- data/app/models/spree/order_decorator.rb +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a46b08f61300dc52d37b71bd1bc6357f9f0d28ce952ed6885c73a1f176d228d
|
4
|
+
data.tar.gz: 6fd7292e92776ad777132602e67b4d9711dac6668fc72105177af6e71a113bb1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e2d0959d8367e402e3a7245a80bb00d5d13fb1da36c97d09089750e3f5740ee3231fccaede466f15d37dfe9b524a70b0842886f95a0b24e5ed842baa9b13d284
|
7
|
+
data.tar.gz: facedd67685ede7e306d8e3a46f57f1d07c8f39371ab8b771ab82b92bf509d8c7efe1d6cbe3459c2571c9a2a05abd1c46d491e407aa4473017ae6ba1130b6b44
|
data/.travis.yml
CHANGED
@@ -5,15 +5,16 @@ language: ruby
|
|
5
5
|
|
6
6
|
addons:
|
7
7
|
chrome: stable
|
8
|
+
postgresql: 9.4
|
8
9
|
|
9
10
|
env:
|
10
11
|
- DB=postgres
|
11
12
|
- DB=mysql
|
12
13
|
|
13
14
|
gemfile:
|
14
|
-
- gemfiles/spree_3_2.gemfile
|
15
|
+
# - gemfiles/spree_3_2.gemfile
|
15
16
|
- gemfiles/spree_3_5.gemfile
|
16
|
-
- gemfiles/
|
17
|
+
- gemfiles/spree_3_7.gemfile
|
17
18
|
- gemfiles/spree_master.gemfile
|
18
19
|
|
19
20
|
script:
|
@@ -27,7 +28,16 @@ rvm:
|
|
27
28
|
|
28
29
|
matrix:
|
29
30
|
allow_failures:
|
30
|
-
|
31
|
+
- gemfile: gemfiles/spree_master.gemfile
|
32
|
+
exclude:
|
33
|
+
- rvm: 2.3.7
|
34
|
+
gemfile: gemfiles/spree_master.gemfile
|
35
|
+
- rvm: 2.4.4
|
36
|
+
gemfile: gemfiles/spree_master.gemfile
|
37
|
+
- rvm: 2.5.1
|
38
|
+
gemfile: gemfiles/spree_3_2.gemfile
|
39
|
+
- rvm: 2.4.4
|
40
|
+
gemfile: gemfiles/spree_3_2.gemfile
|
31
41
|
|
32
42
|
before_install:
|
33
43
|
- mysql -u root -e "GRANT ALL ON *.* TO 'travis'@'%';"
|
data/Appraisals
CHANGED
data/README.md
CHANGED
@@ -0,0 +1,20 @@
|
|
1
|
+
module Spree
|
2
|
+
module ApplePayOrderDecorator
|
3
|
+
def confirmation_required?
|
4
|
+
return false if paid_with_apple_pay?
|
5
|
+
|
6
|
+
# Little hacky fix for #4117
|
7
|
+
# If this wasn't here, order would transition to address state on confirm failure
|
8
|
+
# because there would be no valid payments any more.
|
9
|
+
Spree::Config[:always_include_confirm_step] ||
|
10
|
+
payments.valid.map(&:payment_method).compact.any?(&:payment_profiles_supported?) ||
|
11
|
+
confirm?
|
12
|
+
end
|
13
|
+
|
14
|
+
def paid_with_apple_pay?
|
15
|
+
payments.valid.any?(&:apple_pay?)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
Spree::Order.prepend Spree::ApplePayOrderDecorator
|
@@ -1,4 +1,4 @@
|
|
1
|
-
module
|
1
|
+
module Spree
|
2
2
|
module ApplePayPaymentDecorator
|
3
3
|
def apple_pay?
|
4
4
|
payment_method.is_a? Spree::Gateway::StripeApplePayGateway
|
@@ -6,4 +6,4 @@ module SpreeGateway
|
|
6
6
|
end
|
7
7
|
end
|
8
8
|
|
9
|
-
Spree::Payment.prepend
|
9
|
+
Spree::Payment.prepend Spree::ApplePayPaymentDecorator
|
@@ -1 +1,75 @@
|
|
1
|
-
<%= render "spree/admin/payments/source_forms/gateway", payment_method: payment_method, previous_cards: payment_method.reusable_sources(@order) %>
|
1
|
+
<%= render "spree/admin/payments/source_forms/gateway", payment_method: payment_method, previous_cards: payment_method.reusable_sources(@order) %>
|
2
|
+
|
3
|
+
<script type="text/javascript" src="https://js.stripe.com/v2/"></script>
|
4
|
+
<script type="text/javascript">
|
5
|
+
Stripe.setPublishableKey("<%= payment_method.preferred_publishable_key %>");
|
6
|
+
</script>
|
7
|
+
|
8
|
+
<script>
|
9
|
+
Spree.stripePaymentMethod = $('#payment_method_' + <%= payment_method.id %>);
|
10
|
+
var mapCC, stripeResponseHandler;
|
11
|
+
mapCC = function(ccType) {
|
12
|
+
if (ccType === 'MasterCard') {
|
13
|
+
return 'mastercard';
|
14
|
+
} else if (ccType === 'Visa') {
|
15
|
+
return 'visa';
|
16
|
+
} else if (ccType === 'American Express') {
|
17
|
+
return 'amex';
|
18
|
+
} else if (ccType === 'Discover') {
|
19
|
+
return 'discover';
|
20
|
+
} else if (ccType === 'Diners Club') {
|
21
|
+
return 'dinersclub';
|
22
|
+
} else if (ccType === 'JCB') {
|
23
|
+
return 'jcb';
|
24
|
+
}
|
25
|
+
};
|
26
|
+
stripeResponseHandler = function(status, response) {
|
27
|
+
var paymentMethodId, token;
|
28
|
+
if (response.error) {
|
29
|
+
$('#stripeError').html(response.error.message);
|
30
|
+
var param_map = {
|
31
|
+
number: '#card_number',
|
32
|
+
exp_month: '#card_expiry',
|
33
|
+
exp_year: '#card_expiry',
|
34
|
+
cvc: '#card_code'
|
35
|
+
}
|
36
|
+
if (response.error.param) {
|
37
|
+
errorField = Spree.stripePaymentMethod.find(param_map[response.error.param])
|
38
|
+
errorField.addClass('error');
|
39
|
+
errorField.parent().addClass('has-error');
|
40
|
+
}
|
41
|
+
return $('#stripeError').show();
|
42
|
+
} else {
|
43
|
+
Spree.stripePaymentMethod.find('#card_number<%= payment_method.id %>, #card_expiry<%= payment_method.id %>, #card_code<%= payment_method.id %>').prop("disabled", true);
|
44
|
+
Spree.stripePaymentMethod.find(".ccType").prop("disabled", false);
|
45
|
+
Spree.stripePaymentMethod.find(".ccType").val(mapCC(response.card.brand));
|
46
|
+
token = response['id'];
|
47
|
+
paymentMethodId = Spree.stripePaymentMethod.prop('id').split("_")[2];
|
48
|
+
Spree.stripePaymentMethod.append("<input type='hidden' class='stripeToken' name='payment_source[" + paymentMethodId + "][gateway_payment_profile_id]' value='" + token + "'/>");
|
49
|
+
Spree.stripePaymentMethod.append("<input type='hidden' class='stripeToken' name='payment_source[" + paymentMethodId + "][last_digits]' value='" + response.card.last4 + "'/>");
|
50
|
+
Spree.stripePaymentMethod.append("<input type='hidden' class='stripeToken' name='payment_source[" + paymentMethodId + "][month]' value='" + response.card.exp_month + "'/>");
|
51
|
+
Spree.stripePaymentMethod.append("<input type='hidden' class='stripeToken' name='payment_source[" + paymentMethodId + "][year]' value='" + response.card.exp_year + "'/>");
|
52
|
+
return Spree.stripePaymentMethod.parents("form").trigger('submit');
|
53
|
+
}
|
54
|
+
};
|
55
|
+
|
56
|
+
Spree.ready(function() {
|
57
|
+
Spree.stripePaymentMethod.prepend("<div id='stripeError' class='errorExplanation alert alert-danger' style='display:none'></div>");
|
58
|
+
return $('#new_payment [data-hook=buttons]').click(function() {
|
59
|
+
var expiration, params;
|
60
|
+
$('#stripeError').hide();
|
61
|
+
Spree.stripePaymentMethod.find('#card_number, #card_expiry, #card_code').removeClass('error');
|
62
|
+
if (Spree.stripePaymentMethod.is(':visible')) {
|
63
|
+
expiration = $('.cardExpiry:visible').payment('cardExpiryVal');
|
64
|
+
params = $.extend({
|
65
|
+
number: $('.cardNumber:visible').val(),
|
66
|
+
cvc: $('.cardCode:visible').val(),
|
67
|
+
exp_month: expiration.month || 0,
|
68
|
+
exp_year: expiration.year || 0
|
69
|
+
}, Spree.stripeAdditionalInfo);
|
70
|
+
Stripe.card.createToken(params, stripeResponseHandler);
|
71
|
+
return false;
|
72
|
+
}
|
73
|
+
});
|
74
|
+
});
|
75
|
+
</script>
|
data/spree_gateway.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
Gem::Specification.new do |s|
|
3
3
|
s.platform = Gem::Platform::RUBY
|
4
4
|
s.name = 'spree_gateway'
|
5
|
-
s.version = '3.
|
5
|
+
s.version = '3.6.0'
|
6
6
|
s.summary = 'Additional Payment Gateways for Spree Commerce'
|
7
7
|
s.description = s.summary
|
8
8
|
|
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.require_path = 'lib'
|
17
17
|
s.requirements << 'none'
|
18
18
|
|
19
|
-
spree_version = '>= 3.1.0', '<
|
19
|
+
spree_version = '>= 3.1.0', '< 5.0'
|
20
20
|
s.add_dependency 'spree_core', spree_version
|
21
21
|
s.add_dependency 'spree_extension'
|
22
22
|
|
@@ -27,7 +27,7 @@ Gem::Specification.new do |s|
|
|
27
27
|
s.add_development_dependency 'capybara-screenshot'
|
28
28
|
s.add_development_dependency 'coffee-rails'
|
29
29
|
s.add_development_dependency 'database_cleaner'
|
30
|
-
s.add_development_dependency 'factory_bot'
|
30
|
+
s.add_development_dependency 'factory_bot', '~> 4.7'
|
31
31
|
s.add_development_dependency 'ffaker'
|
32
32
|
s.add_development_dependency 'guard-rspec'
|
33
33
|
s.add_development_dependency 'launchy'
|
@@ -40,5 +40,5 @@ Gem::Specification.new do |s|
|
|
40
40
|
s.add_development_dependency 'sass-rails'
|
41
41
|
s.add_development_dependency 'selenium-webdriver'
|
42
42
|
s.add_development_dependency 'simplecov'
|
43
|
-
s.add_development_dependency 'sqlite3'
|
43
|
+
s.add_development_dependency 'sqlite3', '~> 1.4.1'
|
44
44
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_gateway
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Spree Commerce
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: spree_core
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: 3.1.0
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
22
|
+
version: '5.0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: 3.1.0
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
32
|
+
version: '5.0'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: spree_extension
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -146,16 +146,16 @@ dependencies:
|
|
146
146
|
name: factory_bot
|
147
147
|
requirement: !ruby/object:Gem::Requirement
|
148
148
|
requirements:
|
149
|
-
- - "
|
149
|
+
- - "~>"
|
150
150
|
- !ruby/object:Gem::Version
|
151
|
-
version: '
|
151
|
+
version: '4.7'
|
152
152
|
type: :development
|
153
153
|
prerelease: false
|
154
154
|
version_requirements: !ruby/object:Gem::Requirement
|
155
155
|
requirements:
|
156
|
-
- - "
|
156
|
+
- - "~>"
|
157
157
|
- !ruby/object:Gem::Version
|
158
|
-
version: '
|
158
|
+
version: '4.7'
|
159
159
|
- !ruby/object:Gem::Dependency
|
160
160
|
name: ffaker
|
161
161
|
requirement: !ruby/object:Gem::Requirement
|
@@ -328,16 +328,16 @@ dependencies:
|
|
328
328
|
name: sqlite3
|
329
329
|
requirement: !ruby/object:Gem::Requirement
|
330
330
|
requirements:
|
331
|
-
- - "
|
331
|
+
- - "~>"
|
332
332
|
- !ruby/object:Gem::Version
|
333
|
-
version:
|
333
|
+
version: 1.4.1
|
334
334
|
type: :development
|
335
335
|
prerelease: false
|
336
336
|
version_requirements: !ruby/object:Gem::Requirement
|
337
337
|
requirements:
|
338
|
-
- - "
|
338
|
+
- - "~>"
|
339
339
|
- !ruby/object:Gem::Version
|
340
|
-
version:
|
340
|
+
version: 1.4.1
|
341
341
|
description: Additional Payment Gateways for Spree Commerce
|
342
342
|
email: gems@spreecommerce.com
|
343
343
|
executables: []
|
@@ -353,6 +353,8 @@ files:
|
|
353
353
|
- LICENSE.md
|
354
354
|
- README.md
|
355
355
|
- Rakefile
|
356
|
+
- app/models/spree/apple_pay_order_decorator.rb
|
357
|
+
- app/models/spree/apple_pay_payment_decorator.rb
|
356
358
|
- app/models/spree/billing_integration.rb
|
357
359
|
- app/models/spree/gateway/authorize_net.rb
|
358
360
|
- app/models/spree/gateway/authorize_net_cim.rb
|
@@ -383,8 +385,6 @@ files:
|
|
383
385
|
- app/models/spree/gateway/stripe_gateway.rb
|
384
386
|
- app/models/spree/gateway/usa_epay_transaction.rb
|
385
387
|
- app/models/spree/gateway/worldpay.rb
|
386
|
-
- app/models/spree/order_decorator.rb
|
387
|
-
- app/models/spree/payment_decorator.rb
|
388
388
|
- config/locales/bg.yml
|
389
389
|
- config/locales/de.yml
|
390
390
|
- config/locales/en.yml
|
@@ -397,7 +397,7 @@ files:
|
|
397
397
|
- db/migrate/20131112133401_migrate_stripe_preferences.rb
|
398
398
|
- gemfiles/spree_3_2.gemfile
|
399
399
|
- gemfiles/spree_3_5.gemfile
|
400
|
-
- gemfiles/
|
400
|
+
- gemfiles/spree_3_7.gemfile
|
401
401
|
- gemfiles/spree_master.gemfile
|
402
402
|
- lib/controllers/spree/apple_pay_domain_verification_controller.rb
|
403
403
|
- lib/generators/spree_gateway/install/install_generator.rb
|
@@ -464,8 +464,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
464
464
|
version: '0'
|
465
465
|
requirements:
|
466
466
|
- none
|
467
|
-
|
468
|
-
rubygems_version: 2.7.8
|
467
|
+
rubygems_version: 3.0.2
|
469
468
|
signing_key:
|
470
469
|
specification_version: 4
|
471
470
|
summary: Additional Payment Gateways for Spree Commerce
|
@@ -1,16 +0,0 @@
|
|
1
|
-
Spree::Order.class_eval do
|
2
|
-
def confirmation_required?
|
3
|
-
return false if paid_with_apple_pay?
|
4
|
-
|
5
|
-
Spree::Config[:always_include_confirm_step] ||
|
6
|
-
payments.valid.map(&:payment_method).compact.any?(&:payment_profiles_supported?) ||
|
7
|
-
# Little hacky fix for #4117
|
8
|
-
# If this wasn't here, order would transition to address state on confirm failure
|
9
|
-
# because there would be no valid payments any more.
|
10
|
-
confirm?
|
11
|
-
end
|
12
|
-
|
13
|
-
def paid_with_apple_pay?
|
14
|
-
payments.valid.any?(&:apple_pay?)
|
15
|
-
end
|
16
|
-
end
|