solidus_stripe 2.1.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +74 -0
- data/app/assets/javascripts/spree/frontend/solidus_stripe.js +6 -0
- data/app/assets/javascripts/spree/{stripe-payments → frontend/solidus_stripe}/stripe-cart-page-checkout.js +0 -0
- data/app/assets/javascripts/spree/{stripe-payments → frontend/solidus_stripe}/stripe-elements.js +20 -16
- data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-init.js +20 -0
- data/app/assets/javascripts/spree/{stripe-payments → frontend/solidus_stripe}/stripe-payment-intents.js +0 -0
- data/app/assets/javascripts/spree/{stripe-payments → frontend/solidus_stripe}/stripe-payment-request-button-shared.js +0 -0
- data/app/assets/javascripts/spree/{stripe-payments → frontend/solidus_stripe}/stripe-payment.js +0 -0
- data/lib/generators/solidus_stripe/install/install_generator.rb +2 -5
- data/lib/solidus_stripe/engine.rb +0 -1
- data/lib/solidus_stripe/version.rb +1 -1
- data/lib/views/frontend/spree/checkout/payment/_stripe.html.erb +1 -1
- data/lib/views/frontend/spree/checkout/payment/v3/_elements.html.erb +1 -0
- data/lib/views/frontend/spree/checkout/payment/v3/_form_elements.html.erb +1 -3
- data/lib/views/frontend/spree/checkout/payment/v3/_intents.html.erb +1 -9
- data/lib/views/frontend/spree/checkout/payment/v3/_stripe.html.erb +2 -9
- data/lib/views/frontend/spree/orders/_stripe_payment_request_button.html.erb +1 -10
- metadata +9 -7
- data/app/assets/javascripts/spree/stripe-v3-payments.js +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9e6ec7ddfb05d802b145edb2e2e50d58510148be740c085dd0a7eb99a8e367b
|
4
|
+
data.tar.gz: c6598070cbe6c6e18504f27ab999ef0ca6d1b331ecdee9e1838434c261fe699d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8faba0fdc2be35b90a936273a8d3aedf2411a10e8c01489c5a66b5859fbbcccb38ffcfec3e9d2a34dcdbf065228396b3047210cdbcbb0818c495ff2abf76f098
|
7
|
+
data.tar.gz: 82f01e68ff9a5fa8bcc74c759c3974d78cf05411b83cb732ca0ef32553d62d920697093db371a174c826d3391ca19908f0e4a35a4ae152863c61a94ae595f2c4
|
data/README.md
CHANGED
@@ -133,6 +133,80 @@ payment method configured for Stripe via the local variable
|
|
133
133
|
Of course, the rules listed in the Payment Intents section (adding the stripe
|
134
134
|
country config value, for example) apply also for this feature.
|
135
135
|
|
136
|
+
Customizing the V3 API javascript
|
137
|
+
---------------------------------
|
138
|
+
|
139
|
+
Stripe V3 JS code is now managed via Sprockets. If you need to customize the JS,
|
140
|
+
you can simply override or/and add new methods to the relevant object prototype.
|
141
|
+
Make sure you load your customizations after Stripe initalization code from
|
142
|
+
`spree/frontend/solidus_stripe`.
|
143
|
+
|
144
|
+
For example, the following code adds a callback method in order to print a debug
|
145
|
+
message on the console:
|
146
|
+
|
147
|
+
```js
|
148
|
+
SolidusStripe.CartPageCheckout.prototype.onPrButtonMounted = function(id, result) {
|
149
|
+
if (result) {
|
150
|
+
$('#' + id).parent().show();
|
151
|
+
console.log('Payment request button is now mounted on element with id #' + id);
|
152
|
+
} else {
|
153
|
+
console.log('Payment request button failed initalization.');
|
154
|
+
}
|
155
|
+
}
|
156
|
+
```
|
157
|
+
|
158
|
+
Styling Stripe Elements
|
159
|
+
-----------------------
|
160
|
+
|
161
|
+
The Elements feature built in this gem come with some standard styles. If you want
|
162
|
+
to customize it, you can override the `SolidusStripe.Elements.prototype.baseStyle`
|
163
|
+
method and make it return a valid [Stripe Style](https://stripe.com/docs/js/appendix/style)
|
164
|
+
object:
|
165
|
+
|
166
|
+
```js
|
167
|
+
SolidusStripe.Elements.prototype.baseStyle = function () {
|
168
|
+
return {
|
169
|
+
base: {
|
170
|
+
iconColor: '#c4f0ff',
|
171
|
+
color: '#fff',
|
172
|
+
fontWeight: 500,
|
173
|
+
fontFamily: 'Roboto, Open Sans, Segoe UI, sans-serif',
|
174
|
+
fontSize: '16px',
|
175
|
+
fontSmoothing: 'antialiased',
|
176
|
+
':-webkit-autofill': {
|
177
|
+
color: '#fce883',
|
178
|
+
},
|
179
|
+
'::placeholder': {
|
180
|
+
color: '#87BBFD',
|
181
|
+
},
|
182
|
+
},
|
183
|
+
invalid: {
|
184
|
+
iconColor: '#FFC7EE',
|
185
|
+
color: '#FFC7EE',
|
186
|
+
}
|
187
|
+
}
|
188
|
+
};
|
189
|
+
```
|
190
|
+
|
191
|
+
You can also style your element containers directly by using CSS rules like this:
|
192
|
+
|
193
|
+
```css
|
194
|
+
.StripeElement {
|
195
|
+
border: 1px solid transparent;
|
196
|
+
}
|
197
|
+
|
198
|
+
.StripeElement--focus {
|
199
|
+
box-shadow: 0 1px 3px 0 #cfd7df;
|
200
|
+
}
|
201
|
+
|
202
|
+
.StripeElement--invalid {
|
203
|
+
border-color: #fa755a;
|
204
|
+
}
|
205
|
+
|
206
|
+
.StripeElement--webkit-autofill {
|
207
|
+
background-color: #fefde5 !important;
|
208
|
+
}
|
209
|
+
```
|
136
210
|
|
137
211
|
Migrating from solidus_gateway
|
138
212
|
------------------------------
|
@@ -0,0 +1,6 @@
|
|
1
|
+
//= require ./solidus_stripe/stripe-payment
|
2
|
+
//= require ./solidus_stripe/stripe-elements
|
3
|
+
//= require ./solidus_stripe/stripe-payment-intents
|
4
|
+
//= require ./solidus_stripe/stripe-cart-page-checkout
|
5
|
+
//= require ./solidus_stripe/stripe-payment-request-button-shared
|
6
|
+
//= require ./solidus_stripe/stripe-init
|
File without changes
|
data/app/assets/javascripts/spree/{stripe-payments → frontend/solidus_stripe}/stripe-elements.js
RENAMED
@@ -19,21 +19,7 @@ SolidusStripe.Elements.prototype.init = function() {
|
|
19
19
|
|
20
20
|
SolidusStripe.Elements.prototype.initElements = function() {
|
21
21
|
var buildElements = function(elements) {
|
22
|
-
var style =
|
23
|
-
base: {
|
24
|
-
color: 'black',
|
25
|
-
fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
|
26
|
-
fontSmoothing: 'antialiased',
|
27
|
-
fontSize: '14px',
|
28
|
-
'::placeholder': {
|
29
|
-
color: 'silver'
|
30
|
-
}
|
31
|
-
},
|
32
|
-
invalid: {
|
33
|
-
color: 'red',
|
34
|
-
iconColor: 'red'
|
35
|
-
}
|
36
|
-
};
|
22
|
+
var style = this.baseStyle();
|
37
23
|
|
38
24
|
elements.create('cardExpiry', {style: style}).mount('#card_expiry');
|
39
25
|
elements.create('cardCvc', {style: style}).mount('#card_cvc');
|
@@ -42,7 +28,7 @@ SolidusStripe.Elements.prototype.initElements = function() {
|
|
42
28
|
cardNumber.mount('#card_number');
|
43
29
|
|
44
30
|
return cardNumber;
|
45
|
-
};
|
31
|
+
}.bind(this);
|
46
32
|
|
47
33
|
this.cardNumber = buildElements(this.elements);
|
48
34
|
|
@@ -57,6 +43,24 @@ SolidusStripe.Elements.prototype.initElements = function() {
|
|
57
43
|
this.form.bind('submit', this.onFormSubmit.bind(this));
|
58
44
|
};
|
59
45
|
|
46
|
+
SolidusStripe.Elements.prototype.baseStyle = function () {
|
47
|
+
return {
|
48
|
+
base: {
|
49
|
+
color: 'black',
|
50
|
+
fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
|
51
|
+
fontSmoothing: 'antialiased',
|
52
|
+
fontSize: '14px',
|
53
|
+
'::placeholder': {
|
54
|
+
color: 'silver'
|
55
|
+
}
|
56
|
+
},
|
57
|
+
invalid: {
|
58
|
+
color: 'red',
|
59
|
+
iconColor: 'red'
|
60
|
+
}
|
61
|
+
};
|
62
|
+
};
|
63
|
+
|
60
64
|
SolidusStripe.Elements.prototype.showError = function(error) {
|
61
65
|
var message = error.message || error;
|
62
66
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
$(function() {
|
2
|
+
var stripeV3Api = $('[data-v3-api]').data('v3-api');
|
3
|
+
|
4
|
+
if (stripeV3Api) {
|
5
|
+
$.getScript('https://js.stripe.com/v3/')
|
6
|
+
.done(function() {
|
7
|
+
switch (stripeV3Api) {
|
8
|
+
case 'elements':
|
9
|
+
new SolidusStripe.Elements().init();
|
10
|
+
break;
|
11
|
+
case 'payment-intents':
|
12
|
+
new SolidusStripe.PaymentIntents().init();
|
13
|
+
break;
|
14
|
+
case 'payment-request-button':
|
15
|
+
new SolidusStripe.CartPageCheckout().init();
|
16
|
+
break;
|
17
|
+
}
|
18
|
+
});
|
19
|
+
}
|
20
|
+
});
|
File without changes
|
File without changes
|
data/app/assets/javascripts/spree/{stripe-payments → frontend/solidus_stripe}/stripe-payment.js
RENAMED
File without changes
|
@@ -5,11 +5,8 @@ module SolidusStripe
|
|
5
5
|
class InstallGenerator < Rails::Generators::Base
|
6
6
|
class_option :auto_run_migrations, type: :boolean, default: false
|
7
7
|
|
8
|
-
def
|
9
|
-
|
10
|
-
if File.file? filename
|
11
|
-
inject_into_file filename, " *= require spree/frontend/solidus_stripe\n", before: '*/', verbose: true
|
12
|
-
end
|
8
|
+
def add_javascripts
|
9
|
+
append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/solidus_stripe\n"
|
13
10
|
end
|
14
11
|
|
15
12
|
def add_migrations
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<% if payment_method.v3_elements? %>
|
2
|
-
<%= render 'spree/checkout/payment/v3/
|
2
|
+
<%= render 'spree/checkout/payment/v3/elements', payment_method: payment_method %>
|
3
3
|
<% elsif payment_method.v3_intents? %>
|
4
4
|
<%= render 'spree/checkout/payment/v3/intents', payment_method: payment_method %>
|
5
5
|
<% else %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render 'spree/checkout/payment/v3/form_elements', payment_method: payment_method, stripe_v3_api: 'elements' %>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<div id="payment-request-button" data-stripe-config="<%= payment_method.stripe_config(current_order).to_json %>"></div>
|
1
|
+
<div id="payment-request-button" data-stripe-config="<%= payment_method.stripe_config(current_order).to_json %>" data-v3-api="<%= stripe_v3_api %>"></div>
|
2
2
|
|
3
3
|
<%= image_tag 'credit_cards/credit_card.gif', id: 'credit-card-image' %>
|
4
4
|
<% param_prefix = "payment_source[#{payment_method.id}]" %>
|
@@ -38,5 +38,3 @@
|
|
38
38
|
<% end %>
|
39
39
|
|
40
40
|
<%= hidden_field_tag "#{param_prefix}[cc_type]", '', id: "cc_type", class: 'ccType' %>
|
41
|
-
|
42
|
-
<script src="https://js.stripe.com/v3/"></script>
|
@@ -1,9 +1 @@
|
|
1
|
-
<%= render 'spree/checkout/payment/v3/form_elements', payment_method: payment_method %>
|
2
|
-
|
3
|
-
<%= javascript_include_tag 'spree/stripe-v3-payments' %>
|
4
|
-
|
5
|
-
<script>
|
6
|
-
$(function() {
|
7
|
-
new SolidusStripe.PaymentIntents().init();
|
8
|
-
});
|
9
|
-
</script>
|
1
|
+
<%= render 'spree/checkout/payment/v3/form_elements', payment_method: payment_method, stripe_v3_api: 'payment-intents' %>
|
@@ -1,9 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
<%= javascript_include_tag 'spree/stripe-v3-payments' %>
|
4
|
-
|
5
|
-
<script>
|
6
|
-
$(function() {
|
7
|
-
new SolidusStripe.Elements().init();
|
8
|
-
});
|
9
|
-
</script>
|
1
|
+
<% ActiveSupport::Deprecation.warn 'Partial `spree/checkout/payment/v3/_stripe.html.erb` is deprecated and will be removed soon. Please use partial `spree/checkout/payment/v3/elements`', caller(1) %>
|
2
|
+
<%= render 'spree/checkout/payment/v3/elements', payment_method: payment_method, stripe_v3_api: 'elements' %>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<% if current_order.present? && cart_checkout_payment_method.present? %>
|
2
|
-
<div id="stripe-payment-request" class="stripe-payment-request" style="display:none">
|
2
|
+
<div id="stripe-payment-request" class="stripe-payment-request" data-v3-api="payment-request-button" style="display:none">
|
3
3
|
<div id="payment-request-button"
|
4
4
|
data-stripe-config="<%= cart_checkout_payment_method.stripe_config(current_order).to_json %>"
|
5
5
|
data-order-token="<%= current_order.guest_token %>"
|
@@ -11,13 +11,4 @@
|
|
11
11
|
<div id="card-errors" class='errorExplanation' role="alert" style="display: none">
|
12
12
|
</div>
|
13
13
|
</div>
|
14
|
-
|
15
|
-
<script src="https://js.stripe.com/v3/"></script>
|
16
|
-
|
17
|
-
<%= javascript_include_tag 'spree/stripe-v3-payments' %>
|
18
|
-
<script>
|
19
|
-
$(function() {
|
20
|
-
new SolidusStripe.CartPageCheckout().init()
|
21
|
-
});
|
22
|
-
</script>
|
23
14
|
<% end %>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_stripe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Solidus Team
|
@@ -91,12 +91,13 @@ files:
|
|
91
91
|
- LICENSE.md
|
92
92
|
- README.md
|
93
93
|
- Rakefile
|
94
|
-
- app/assets/javascripts/spree/
|
95
|
-
- app/assets/javascripts/spree/
|
96
|
-
- app/assets/javascripts/spree/
|
97
|
-
- app/assets/javascripts/spree/
|
98
|
-
- app/assets/javascripts/spree/
|
99
|
-
- app/assets/javascripts/spree/stripe-
|
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
|
100
101
|
- app/controllers/solidus_stripe/intents_controller.rb
|
101
102
|
- app/controllers/solidus_stripe/payment_request_controller.rb
|
102
103
|
- app/controllers/spree/stripe_controller.rb
|
@@ -123,6 +124,7 @@ files:
|
|
123
124
|
- lib/views/frontend/spree/checkout/existing_payment/_stripe.html.erb
|
124
125
|
- lib/views/frontend/spree/checkout/payment/_stripe.html.erb
|
125
126
|
- lib/views/frontend/spree/checkout/payment/v2/_javascript.html.erb
|
127
|
+
- lib/views/frontend/spree/checkout/payment/v3/_elements.html.erb
|
126
128
|
- lib/views/frontend/spree/checkout/payment/v3/_form_elements.html.erb
|
127
129
|
- lib/views/frontend/spree/checkout/payment/v3/_intents.html.erb
|
128
130
|
- lib/views/frontend/spree/checkout/payment/v3/_stripe.html.erb
|
@@ -1,5 +0,0 @@
|
|
1
|
-
//= require ./stripe-payments/stripe-payment
|
2
|
-
//= require ./stripe-payments/stripe-elements
|
3
|
-
//= require ./stripe-payments/stripe-payment-intents
|
4
|
-
//= require ./stripe-payments/stripe-cart-page-checkout
|
5
|
-
//= require ./stripe-payments/stripe-payment-request-button-shared
|