solidus_gateway 1.1.1 → 1.2.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 +10 -1
- data/README.md +4 -3
- data/app/models/spree/gateway/authorize_net.rb +2 -3
- data/app/models/spree/gateway/balanced_gateway.rb +2 -3
- data/app/models/spree/gateway/eway.rb +2 -4
- data/app/models/spree/gateway/pay_junction.rb +2 -4
- data/app/models/spree/gateway/payflow_pro.rb +2 -5
- data/app/models/spree/gateway/stripe_gateway.rb +8 -2
- data/db/migrate/20121017004102_update_braintree_payment_method_type.rb +1 -1
- data/db/migrate/20130213222555_update_stripe_payment_method_type.rb +1 -1
- data/db/migrate/20130415222802_update_balanced_payment_method_type.rb +1 -1
- data/db/migrate/20131008221012_update_paypal_payment_method_type.rb +1 -1
- data/db/migrate/20131112133401_migrate_stripe_preferences.rb +1 -1
- data/lib/solidus_gateway.rb +2 -1
- data/lib/solidus_gateway/version.rb +1 -1
- data/lib/spree_gateway/engine.rb +0 -5
- data/solidus_gateway.gemspec +3 -1
- data/spec/features/stripe_checkout_spec.rb +4 -0
- data/spec/spec_helper.rb +2 -0
- metadata +35 -29
- data/app/models/spree/billing_integration/skrill/quick_checkout.rb +0 -48
- data/app/models/spree/skrill_transaction.rb +0 -19
- data/config/locales/bg.yml +0 -11
- data/config/locales/de.yml +0 -11
- data/config/locales/en.yml +0 -30
- data/config/locales/it.yml +0 -30
- data/config/locales/sv.yml +0 -11
- data/config/routes.rb +0 -12
- data/db/migrate/20111118164631_create_skrill_transactions.rb +0 -14
- data/lib/active_merchant/billing/skrill.rb +0 -18
- data/lib/controllers/frontend/spree/checkout_controller_decorator.rb +0 -51
- data/lib/controllers/frontend/spree/skrill_status_controller.rb +0 -39
- data/lib/views/backend/spree/admin/payments/source_views/_quickcheckout.html.erb +0 -39
- data/lib/views/frontend/spree/checkout/payment/_quickcheckout.html.erb +0 -26
- data/spec/factories/skrill_factory.rb +0 -5
- data/spec/lib/active_merchant/billing_skrill_spec.rb +0 -18
- data/spec/models/billing_integration/skrill_quick_checkout_spec.rb +0 -11
- data/spec/models/skrill_transaction_spec.rb +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: edb5286317a172fc0994ca78e1d5532a7c648cfd
|
4
|
+
data.tar.gz: b808a3847b095a1dfb4d44ded6c8a04639281f7d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 18233008d74271e67a697f4705c6b67b3f80a502000522670baaf6944cb162c5eaf299bb5fe7b3c3dfd44315472b8b08d4018b270bd1bea59e626054fb2b2534
|
7
|
+
data.tar.gz: e7458514a6d6be0b16a51e610f47e61eca217d8fc3a858bf70f771cda35b17a2c71da427591ea7f03cb47287d1e0cb10e8c2359b2885b0ecc7c4e67b0e30e480
|
data/.travis.yml
CHANGED
@@ -1,8 +1,11 @@
|
|
1
|
-
sudo:
|
1
|
+
sudo: required
|
2
|
+
dist: trusty
|
2
3
|
cache: bundler
|
3
4
|
language: ruby
|
4
5
|
rvm:
|
5
6
|
- 2.3.1
|
7
|
+
before_install:
|
8
|
+
- mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'travis'@'%';"
|
6
9
|
env:
|
7
10
|
matrix:
|
8
11
|
- SOLIDUS_BRANCH=v1.1 DB=postgres
|
@@ -10,10 +13,16 @@ env:
|
|
10
13
|
- SOLIDUS_BRANCH=v1.3 DB=postgres
|
11
14
|
- SOLIDUS_BRANCH=v1.4 DB=postgres
|
12
15
|
- SOLIDUS_BRANCH=v2.0 DB=postgres
|
16
|
+
- SOLIDUS_BRANCH=v2.1 DB=postgres
|
17
|
+
- SOLIDUS_BRANCH=v2.2 DB=postgres
|
18
|
+
- SOLIDUS_BRANCH=v2.3 DB=postgres
|
13
19
|
- SOLIDUS_BRANCH=master DB=postgres
|
14
20
|
- SOLIDUS_BRANCH=v1.1 DB=mysql
|
15
21
|
- SOLIDUS_BRANCH=v1.2 DB=mysql
|
16
22
|
- SOLIDUS_BRANCH=v1.3 DB=mysql
|
17
23
|
- SOLIDUS_BRANCH=v1.4 DB=mysql
|
18
24
|
- SOLIDUS_BRANCH=v2.0 DB=mysql
|
25
|
+
- SOLIDUS_BRANCH=v2.1 DB=mysql
|
26
|
+
- SOLIDUS_BRANCH=v2.2 DB=mysql
|
27
|
+
- SOLIDUS_BRANCH=v2.3 DB=mysql
|
19
28
|
- SOLIDUS_BRANCH=master DB=mysql
|
data/README.md
CHANGED
@@ -23,9 +23,10 @@ bundle install
|
|
23
23
|
rails g solidus_gateway:install
|
24
24
|
```
|
25
25
|
|
26
|
-
Finally, make sure to **restart your app**. Navigate to *
|
27
|
-
|
28
|
-
|
26
|
+
Finally, make sure to **restart your app**. Navigate to *Settings >
|
27
|
+
Payments > Payment Methods* in the admin panel. You should see a number of payment
|
28
|
+
methods and the assigned provider for each. Click on the payment method you wish
|
29
|
+
to change the provider, and you should see a number of options under the provider dropdown.
|
29
30
|
|
30
31
|
Testing
|
31
32
|
-------
|
@@ -7,10 +7,9 @@ module Spree
|
|
7
7
|
ActiveMerchant::Billing::AuthorizeNetGateway
|
8
8
|
end
|
9
9
|
|
10
|
-
def
|
11
|
-
|
10
|
+
def options
|
11
|
+
super().merge(test: self.preferred_test_mode)
|
12
12
|
end
|
13
|
-
alias_method_chain :options, :test_preference
|
14
13
|
|
15
14
|
def credit(amount, response_code, refund, gateway_options = {})
|
16
15
|
gateway_options[:card_number] = refund[:originator].payment.source.last_digits
|
@@ -32,10 +32,9 @@ module Spree
|
|
32
32
|
payment.send(:gateway_error, ex.message)
|
33
33
|
end
|
34
34
|
|
35
|
-
def
|
36
|
-
|
35
|
+
def options
|
36
|
+
super().merge(:test => self.preferred_test_mode)
|
37
37
|
end
|
38
|
-
alias_method_chain :options, :test_preference
|
39
38
|
|
40
39
|
def payment_profiles_supported?
|
41
40
|
true
|
@@ -11,10 +11,8 @@ module Spree
|
|
11
11
|
ActiveMerchant::Billing::EwayGateway
|
12
12
|
end
|
13
13
|
|
14
|
-
def
|
15
|
-
|
14
|
+
def options
|
15
|
+
super().merge(:test => self.preferred_test_mode)
|
16
16
|
end
|
17
|
-
|
18
|
-
alias_method_chain :options, :test_preference
|
19
17
|
end
|
20
18
|
end
|
@@ -7,10 +7,8 @@ module Spree
|
|
7
7
|
ActiveMerchant::Billing::PayJunctionGateway
|
8
8
|
end
|
9
9
|
|
10
|
-
def
|
11
|
-
|
10
|
+
def options
|
11
|
+
super().merge(:test => self.preferred_test_mode)
|
12
12
|
end
|
13
|
-
|
14
|
-
alias_method_chain :options, :test_preference
|
15
13
|
end
|
16
14
|
end
|
@@ -8,11 +8,8 @@ module Spree
|
|
8
8
|
ActiveMerchant::Billing::PayflowGateway
|
9
9
|
end
|
10
10
|
|
11
|
-
def
|
12
|
-
|
11
|
+
def options
|
12
|
+
super().merge(:test => self.preferred_test_mode)
|
13
13
|
end
|
14
|
-
|
15
|
-
alias_method_chain :options, :test_preference
|
16
|
-
|
17
14
|
end
|
18
15
|
end
|
@@ -9,8 +9,14 @@ module Spree
|
|
9
9
|
'Visa' => 'visa'
|
10
10
|
}
|
11
11
|
|
12
|
-
|
13
|
-
|
12
|
+
if SolidusSupport.solidus_gem_version < Gem::Version.new('2.3.x')
|
13
|
+
def method_type
|
14
|
+
'stripe'
|
15
|
+
end
|
16
|
+
else
|
17
|
+
def partial_name
|
18
|
+
'stripe'
|
19
|
+
end
|
14
20
|
end
|
15
21
|
|
16
22
|
def provider_class
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class UpdateBraintreePaymentMethodType <
|
1
|
+
class UpdateBraintreePaymentMethodType < SolidusSupport::Migration[4.2]
|
2
2
|
def up
|
3
3
|
Spree::PaymentMethod.where(:type => "Spree::Gateway::Braintree").update_all(:type => "Spree::Gateway::BraintreeGateway")
|
4
4
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class UpdateBalancedPaymentMethodType <
|
1
|
+
class UpdateBalancedPaymentMethodType < SolidusSupport::Migration[4.2]
|
2
2
|
def up
|
3
3
|
Spree::PaymentMethod.where(:type => "Spree::Gateway::Balanced").update_all(:type => "Spree::Gateway::BalancedGateway")
|
4
4
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class MigrateStripePreferences <
|
1
|
+
class MigrateStripePreferences < SolidusSupport::Migration[4.2]
|
2
2
|
def up
|
3
3
|
Spree::Preference.where("#{ActiveRecord::Base.connection.quote_column_name("key")} LIKE 'spree/gateway/stripe_gateway/login%'").each do |pref|
|
4
4
|
pref.key = pref.key.gsub('login', 'secret_key')
|
data/lib/solidus_gateway.rb
CHANGED
data/lib/spree_gateway/engine.rb
CHANGED
@@ -20,7 +20,6 @@ module SpreeGateway
|
|
20
20
|
app.config.spree.payment_methods << Spree::Gateway::Worldpay
|
21
21
|
app.config.spree.payment_methods << Spree::Gateway::Banwire
|
22
22
|
app.config.spree.payment_methods << Spree::Gateway::UsaEpay
|
23
|
-
app.config.spree.payment_methods << Spree::BillingIntegration::Skrill::QuickCheckout
|
24
23
|
app.config.spree.payment_methods << Spree::Gateway::BalancedGateway
|
25
24
|
app.config.spree.payment_methods << Spree::Gateway::DataCash
|
26
25
|
app.config.spree.payment_methods << Spree::Gateway::UsaEpay
|
@@ -52,9 +51,6 @@ module SpreeGateway
|
|
52
51
|
'lib/assets/javascripts/spree/frontend/solidus_gateway.js',
|
53
52
|
'lib/assets/javascripts/spree/frontend/solidus_gateway.css',
|
54
53
|
]
|
55
|
-
Dir.glob(File.join(File.dirname(__FILE__), "../../controllers/frontend/*/*_decorator*.rb")) do |c|
|
56
|
-
Rails.configuration.cache_classes ? require(c) : load(c)
|
57
|
-
end
|
58
54
|
end
|
59
55
|
end
|
60
56
|
|
@@ -71,7 +67,6 @@ module SpreeGateway
|
|
71
67
|
end
|
72
68
|
|
73
69
|
if self.frontend_available?
|
74
|
-
paths["app/controllers"] << "lib/controllers/frontend"
|
75
70
|
paths["app/views"] << "lib/views/frontend"
|
76
71
|
end
|
77
72
|
|
data/solidus_gateway.gemspec
CHANGED
@@ -24,6 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.requirements << "none"
|
25
25
|
|
26
26
|
s.add_dependency "solidus_core", [">= 1.1", "< 3"]
|
27
|
+
s.add_dependency "solidus_support"
|
27
28
|
|
28
29
|
# ActiveMerchant v1.58 through v1.59 introduced a breaking change
|
29
30
|
# to the stripe gateway.
|
@@ -39,6 +40,7 @@ Gem::Specification.new do |s|
|
|
39
40
|
s.add_development_dependency "coffee-rails"
|
40
41
|
s.add_development_dependency "factory_girl", "~> 4.4"
|
41
42
|
s.add_development_dependency "capybara"
|
43
|
+
s.add_development_dependency "capybara-screenshot"
|
42
44
|
s.add_development_dependency "poltergeist", "~> 1.9"
|
43
|
-
s.add_development_dependency "database_cleaner", "1.
|
45
|
+
s.add_development_dependency "database_cleaner", "~> 1.5"
|
44
46
|
end
|
@@ -21,9 +21,11 @@ RSpec.describe "Stripe checkout", type: :feature do
|
|
21
21
|
click_link "DL-44"
|
22
22
|
click_button "Add To Cart"
|
23
23
|
|
24
|
+
expect(page).to have_current_path("/cart")
|
24
25
|
click_button "Checkout"
|
25
26
|
|
26
27
|
# Address
|
28
|
+
expect(page).to have_current_path("/checkout/address")
|
27
29
|
fill_in "Customer E-Mail", with: "han@example.com"
|
28
30
|
within("#billing") do
|
29
31
|
fill_in "First Name", with: "Han"
|
@@ -38,6 +40,7 @@ RSpec.describe "Stripe checkout", type: :feature do
|
|
38
40
|
click_on "Save and Continue"
|
39
41
|
|
40
42
|
# Delivery
|
43
|
+
expect(page).to have_current_path("/checkout/delivery")
|
41
44
|
click_on "Save and Continue"
|
42
45
|
end
|
43
46
|
|
@@ -78,6 +81,7 @@ RSpec.describe "Stripe checkout", type: :feature do
|
|
78
81
|
it "shows an error with invalid security fields", js: true do
|
79
82
|
fill_in "Card Number", with: "4242 4242 4242 4242"
|
80
83
|
fill_in "Expiration", with: "01 / #{Time.now.year + 1}"
|
84
|
+
fill_in "Card Code", with: "12"
|
81
85
|
click_button "Save and Continue"
|
82
86
|
expect(page).to have_content("Your card's security code is invalid.")
|
83
87
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -8,11 +8,13 @@ require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
|
8
8
|
require "rspec/rails"
|
9
9
|
|
10
10
|
require "capybara/rspec"
|
11
|
+
require 'capybara-screenshot/rspec'
|
11
12
|
require 'capybara/poltergeist'
|
12
13
|
Capybara.register_driver(:poltergeist) do |app|
|
13
14
|
Capybara::Poltergeist::Driver.new app, timeout: 90
|
14
15
|
end
|
15
16
|
Capybara.javascript_driver = :poltergeist
|
17
|
+
Capybara.default_max_wait_time = 10
|
16
18
|
|
17
19
|
require "database_cleaner"
|
18
20
|
require "braintree"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_gateway
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Solidus Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-07-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: solidus_core
|
@@ -30,6 +30,20 @@ dependencies:
|
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '3'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: solidus_support
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
33
47
|
- !ruby/object:Gem::Dependency
|
34
48
|
name: activemerchant
|
35
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -168,6 +182,20 @@ dependencies:
|
|
168
182
|
- - ">="
|
169
183
|
- !ruby/object:Gem::Version
|
170
184
|
version: '0'
|
185
|
+
- !ruby/object:Gem::Dependency
|
186
|
+
name: capybara-screenshot
|
187
|
+
requirement: !ruby/object:Gem::Requirement
|
188
|
+
requirements:
|
189
|
+
- - ">="
|
190
|
+
- !ruby/object:Gem::Version
|
191
|
+
version: '0'
|
192
|
+
type: :development
|
193
|
+
prerelease: false
|
194
|
+
version_requirements: !ruby/object:Gem::Requirement
|
195
|
+
requirements:
|
196
|
+
- - ">="
|
197
|
+
- !ruby/object:Gem::Version
|
198
|
+
version: '0'
|
171
199
|
- !ruby/object:Gem::Dependency
|
172
200
|
name: poltergeist
|
173
201
|
requirement: !ruby/object:Gem::Requirement
|
@@ -186,16 +214,16 @@ dependencies:
|
|
186
214
|
name: database_cleaner
|
187
215
|
requirement: !ruby/object:Gem::Requirement
|
188
216
|
requirements:
|
189
|
-
- -
|
217
|
+
- - "~>"
|
190
218
|
- !ruby/object:Gem::Version
|
191
|
-
version: 1.
|
219
|
+
version: '1.5'
|
192
220
|
type: :development
|
193
221
|
prerelease: false
|
194
222
|
version_requirements: !ruby/object:Gem::Requirement
|
195
223
|
requirements:
|
196
|
-
- -
|
224
|
+
- - "~>"
|
197
225
|
- !ruby/object:Gem::Version
|
198
|
-
version: 1.
|
226
|
+
version: '1.5'
|
199
227
|
description: Additional Payment Gateways for Solidus
|
200
228
|
email: contact@solidus.io
|
201
229
|
executables: []
|
@@ -209,7 +237,6 @@ files:
|
|
209
237
|
- LICENSE.md
|
210
238
|
- README.md
|
211
239
|
- Rakefile
|
212
|
-
- app/models/spree/billing_integration/skrill/quick_checkout.rb
|
213
240
|
- app/models/spree/gateway/authorize_net.rb
|
214
241
|
- app/models/spree/gateway/authorize_net_cim.rb
|
215
242
|
- app/models/spree/gateway/balanced_gateway.rb
|
@@ -234,26 +261,15 @@ files:
|
|
234
261
|
- app/models/spree/gateway/stripe_gateway.rb
|
235
262
|
- app/models/spree/gateway/usa_epay.rb
|
236
263
|
- app/models/spree/gateway/worldpay.rb
|
237
|
-
- app/models/spree/skrill_transaction.rb
|
238
264
|
- bin/rails
|
239
265
|
- circle.yml
|
240
|
-
- config/locales/bg.yml
|
241
|
-
- config/locales/de.yml
|
242
|
-
- config/locales/en.yml
|
243
|
-
- config/locales/it.yml
|
244
|
-
- config/locales/sv.yml
|
245
|
-
- config/routes.rb
|
246
|
-
- db/migrate/20111118164631_create_skrill_transactions.rb
|
247
266
|
- db/migrate/20121017004102_update_braintree_payment_method_type.rb
|
248
267
|
- db/migrate/20130213222555_update_stripe_payment_method_type.rb
|
249
268
|
- db/migrate/20130415222802_update_balanced_payment_method_type.rb
|
250
269
|
- db/migrate/20131008221012_update_paypal_payment_method_type.rb
|
251
270
|
- db/migrate/20131112133401_migrate_stripe_preferences.rb
|
252
|
-
- lib/active_merchant/billing/skrill.rb
|
253
271
|
- lib/assets/javascripts/spree/frontend/solidus_gateway.js
|
254
272
|
- lib/assets/stylesheets/spree/frontend/solidus_gateway.css
|
255
|
-
- lib/controllers/frontend/spree/checkout_controller_decorator.rb
|
256
|
-
- lib/controllers/frontend/spree/skrill_status_controller.rb
|
257
273
|
- lib/generators/solidus_gateway/install/install_generator.rb
|
258
274
|
- lib/solidus_gateway.rb
|
259
275
|
- lib/solidus_gateway/version.rb
|
@@ -262,15 +278,10 @@ files:
|
|
262
278
|
- lib/views/backend/spree/admin/log_entries/_stripe.html.erb
|
263
279
|
- lib/views/backend/spree/admin/payments/source_forms/_quickcheckout.html.erb
|
264
280
|
- lib/views/backend/spree/admin/payments/source_forms/_stripe.html.erb
|
265
|
-
- lib/views/backend/spree/admin/payments/source_views/_quickcheckout.html.erb
|
266
281
|
- lib/views/backend/spree/admin/payments/source_views/_stripe.html.erb
|
267
|
-
- lib/views/frontend/spree/checkout/payment/_quickcheckout.html.erb
|
268
282
|
- lib/views/frontend/spree/checkout/payment/_stripe.html.erb
|
269
283
|
- solidus_gateway.gemspec
|
270
|
-
- spec/factories/skrill_factory.rb
|
271
284
|
- spec/features/stripe_checkout_spec.rb
|
272
|
-
- spec/lib/active_merchant/billing_skrill_spec.rb
|
273
|
-
- spec/models/billing_integration/skrill_quick_checkout_spec.rb
|
274
285
|
- spec/models/gateway/authorize_net_cim_spec.rb
|
275
286
|
- spec/models/gateway/authorize_net_spec.rb
|
276
287
|
- spec/models/gateway/balanced_gateway_spec.rb
|
@@ -293,7 +304,6 @@ files:
|
|
293
304
|
- spec/models/gateway/stripe_gateway_spec.rb
|
294
305
|
- spec/models/gateway/usa_epay_spec.rb
|
295
306
|
- spec/models/gateway/worldpay_spec.rb
|
296
|
-
- spec/models/skrill_transaction_spec.rb
|
297
307
|
- spec/spec_helper.rb
|
298
308
|
homepage: https://solidus.io
|
299
309
|
licenses:
|
@@ -316,15 +326,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
316
326
|
requirements:
|
317
327
|
- none
|
318
328
|
rubyforge_project:
|
319
|
-
rubygems_version: 2.
|
329
|
+
rubygems_version: 2.6.11
|
320
330
|
signing_key:
|
321
331
|
specification_version: 4
|
322
332
|
summary: Additional Payment Gateways for Solidus
|
323
333
|
test_files:
|
324
|
-
- spec/factories/skrill_factory.rb
|
325
334
|
- spec/features/stripe_checkout_spec.rb
|
326
|
-
- spec/lib/active_merchant/billing_skrill_spec.rb
|
327
|
-
- spec/models/billing_integration/skrill_quick_checkout_spec.rb
|
328
335
|
- spec/models/gateway/authorize_net_cim_spec.rb
|
329
336
|
- spec/models/gateway/authorize_net_spec.rb
|
330
337
|
- spec/models/gateway/balanced_gateway_spec.rb
|
@@ -347,5 +354,4 @@ test_files:
|
|
347
354
|
- spec/models/gateway/stripe_gateway_spec.rb
|
348
355
|
- spec/models/gateway/usa_epay_spec.rb
|
349
356
|
- spec/models/gateway/worldpay_spec.rb
|
350
|
-
- spec/models/skrill_transaction_spec.rb
|
351
357
|
- spec/spec_helper.rb
|
@@ -1,48 +0,0 @@
|
|
1
|
-
module Spree
|
2
|
-
class BillingIntegration::Skrill::QuickCheckout < BillingIntegration
|
3
|
-
preference :merchant_id, :string
|
4
|
-
preference :language, :string, :default => 'EN'
|
5
|
-
preference :currency, :string, :default => 'EUR'
|
6
|
-
preference :payment_options, :string, :default => 'ACC'
|
7
|
-
preference :pay_to_email, :string , :default => 'your@merchant.email_here'
|
8
|
-
|
9
|
-
def provider_class
|
10
|
-
ActiveMerchant::Billing::Skrill
|
11
|
-
end
|
12
|
-
|
13
|
-
def redirect_url(order, opts = {})
|
14
|
-
opts.merge! self.preferences
|
15
|
-
|
16
|
-
set_global_options(opts)
|
17
|
-
|
18
|
-
opts[:detail1_text] = order.number
|
19
|
-
opts[:detail1_description] = "Order:"
|
20
|
-
|
21
|
-
opts[:pay_from_email] = order.email
|
22
|
-
opts[:firstname] = order.bill_address.firstname
|
23
|
-
opts[:lastname] = order.bill_address.lastname
|
24
|
-
opts[:address] = order.bill_address.address1
|
25
|
-
opts[:address2] = order.bill_address.address2
|
26
|
-
opts[:phone_number] = order.bill_address.phone.gsub(/\D/,'') if order.bill_address.phone
|
27
|
-
opts[:city] = order.bill_address.city
|
28
|
-
opts[:postal_code] = order.bill_address.zipcode
|
29
|
-
opts[:state] = order.bill_address.state.nil? ? order.bill_address.state_name.to_s : order.bill_address.state.abbr
|
30
|
-
opts[:country] = order.bill_address.country.name
|
31
|
-
opts[:pay_to_email] = self.preferred_pay_to_email
|
32
|
-
opts[:hide_login] = 1
|
33
|
-
opts[:merchant_fields] = 'platform,order_id,payment_method_id'
|
34
|
-
opts[:platform] = 'Spree'
|
35
|
-
opts[:order_id] = order.number
|
36
|
-
|
37
|
-
skrill = self.provider
|
38
|
-
skrill.payment_url(opts)
|
39
|
-
end
|
40
|
-
|
41
|
-
private
|
42
|
-
def set_global_options(opts)
|
43
|
-
opts[:recipient_description] = Spree::Config[:site_name]
|
44
|
-
opts[:payment_methods] = self.preferred_payment_options
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
48
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module Spree
|
2
|
-
class SkrillTransaction < ActiveRecord::Base
|
3
|
-
has_many :payments, :as => :source
|
4
|
-
|
5
|
-
def actions
|
6
|
-
[]
|
7
|
-
end
|
8
|
-
|
9
|
-
def self.create_from_postback(params)
|
10
|
-
SkrillTransaction.create(:email => params[:pay_from_email],
|
11
|
-
:amount => params[:mb_amount],
|
12
|
-
:currency => params[:mb_currency],
|
13
|
-
:transaction_id => params[:mb_transaction_id],
|
14
|
-
:customer_id => params[:customer_id],
|
15
|
-
:payment_type => params[:payment_type])
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
end
|
data/config/locales/bg.yml
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
---
|
2
|
-
bg:
|
3
|
-
spree:
|
4
|
-
payment_has_been_cancelled: Плащането беше прекъснато.
|
5
|
-
complete_skrill_checkout: Моля довършете Вашето плащане със Skrill преди да продължите
|
6
|
-
skrill: Skrill
|
7
|
-
skrill_transaction: Транзакция
|
8
|
-
skrill_customer_id: Клиентски номер
|
9
|
-
skrill_transaction_id: Номер на транкцията
|
10
|
-
skrill_payment_type: Вид на плащане
|
11
|
-
skrill_payment_currency: Валута
|
data/config/locales/de.yml
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
---
|
2
|
-
de:
|
3
|
-
spree:
|
4
|
-
payment_has_been_cancelled: Die Zahlung wurde abgebrochen.
|
5
|
-
complete_skrill_checkout: Bitte schliessen Sie die Skrill-Zahlung ab
|
6
|
-
skrill: Skrill
|
7
|
-
skrill_transaction: Transaktion
|
8
|
-
skrill_customer_id: Kunden ID
|
9
|
-
skrill_transaction_id: Transaktions ID
|
10
|
-
skrill_payment_type: Bezahlart
|
11
|
-
skrill_payment_currency: Währung
|
data/config/locales/en.yml
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
---
|
2
|
-
en:
|
3
|
-
spree:
|
4
|
-
payment_has_been_cancelled: The payment has been cancelled.
|
5
|
-
complete_skrill_checkout: Please complete Skrill checkout before continuing
|
6
|
-
skrill: Skrill
|
7
|
-
skrill_transaction: Transaction
|
8
|
-
skrill_customer_id: Customer ID
|
9
|
-
skrill_transaction_id: Transaction ID
|
10
|
-
skrill_payment_type: Payment Type
|
11
|
-
skrill_payment_currency: Payment Currency
|
12
|
-
log_entry:
|
13
|
-
braintree:
|
14
|
-
message: Message
|
15
|
-
status: Status
|
16
|
-
cc_token: Braintree Credit Card Token
|
17
|
-
customer_id: Braintree Customer ID
|
18
|
-
cvv_result: CVV Result
|
19
|
-
avs_result_title: AVS result
|
20
|
-
avs_result:
|
21
|
-
message: Message
|
22
|
-
street_match: Street Match
|
23
|
-
postal_match: Postal Match
|
24
|
-
stripe:
|
25
|
-
message: Message
|
26
|
-
charge_id: Stripe Charge ID
|
27
|
-
card_id: Stripe Card ID
|
28
|
-
cvv_result: CVV Result
|
29
|
-
cvc_check: CVC Check
|
30
|
-
address_zip_check: Address ZIP check
|
data/config/locales/it.yml
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
---
|
2
|
-
it:
|
3
|
-
spree:
|
4
|
-
payment_has_been_cancelled: Il pagamento è stato cancellato.
|
5
|
-
complete_skrill_checkout: Ti preghiamo di completate il checkout Skrill prima di continuare
|
6
|
-
skrill: Skrill
|
7
|
-
skrill_transaction: Transazione
|
8
|
-
skrill_customer_id: ID cliente
|
9
|
-
skrill_transaction_id: ID Transazione
|
10
|
-
skrill_payment_type: Tipo di pagamento
|
11
|
-
skrill_payment_currency: Valuta pagamento
|
12
|
-
log_entry:
|
13
|
-
braintree:
|
14
|
-
message: Message
|
15
|
-
status: Status
|
16
|
-
cc_token: Token carta di credito Braintree
|
17
|
-
customer_id: ID cliente Braintree
|
18
|
-
cvv_result: Risultato CVV
|
19
|
-
avs_result_title: Risultato AVS
|
20
|
-
avs_result:
|
21
|
-
message: Messaggio
|
22
|
-
street_match: Match indirizzo
|
23
|
-
postal_match: Match CAP
|
24
|
-
stripe:
|
25
|
-
message: Message
|
26
|
-
charge_id: ID addebito Stripe
|
27
|
-
card_id: ID carta Stripe
|
28
|
-
cvv_result: Risultato CVV
|
29
|
-
cvc_check: Controllo CVC
|
30
|
-
address_zip_check: Controllo CAP
|
data/config/locales/sv.yml
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
---
|
2
|
-
sv:
|
3
|
-
spree:
|
4
|
-
payment_has_been_cancelled: Betalningen har avbrutits.
|
5
|
-
complete_skrill_checkout: Var god fyll i Skrill kassan innan du fortsätter
|
6
|
-
skrill: Skrill
|
7
|
-
skrill_transaction: Transaktion
|
8
|
-
skrill_customer_id: Kund ID
|
9
|
-
skrill_transaction_id: Transaktion ID
|
10
|
-
skrill_payment_type: Betalningstyp
|
11
|
-
skrill_payment_currency: Betalningsvaluta
|
data/config/routes.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
class CreateSkrillTransactions < ActiveRecord::Migration
|
2
|
-
def change
|
3
|
-
create_table :spree_skrill_transactions do |t|
|
4
|
-
t.string :email
|
5
|
-
t.float :amount
|
6
|
-
t.string :currency
|
7
|
-
t.integer :transaction_id
|
8
|
-
t.integer :customer_id
|
9
|
-
t.string :payment_type
|
10
|
-
t.timestamps null: true
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
@@ -1,18 +0,0 @@
|
|
1
|
-
module ActiveMerchant #:nodoc:
|
2
|
-
module Billing #:nodoc:
|
3
|
-
class Skrill < Gateway
|
4
|
-
|
5
|
-
def service_url
|
6
|
-
"https://www.moneybookers.com/app/payment.pl"
|
7
|
-
end
|
8
|
-
|
9
|
-
def payment_url(opts)
|
10
|
-
post = PostData.new
|
11
|
-
post.merge! opts
|
12
|
-
|
13
|
-
"#{service_url}?#{post.to_s}"
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,51 +0,0 @@
|
|
1
|
-
module Spree
|
2
|
-
CheckoutController.class_eval do
|
3
|
-
before_filter :confirm_skrill, :only => [:update]
|
4
|
-
|
5
|
-
def skrill_return
|
6
|
-
|
7
|
-
unless @order.payments.where(:source_type => 'Spree::SkrillTransaction').present?
|
8
|
-
payment_method = PaymentMethod.find(params[:payment_method_id])
|
9
|
-
skrill_transaction = SkrillTransaction.new
|
10
|
-
|
11
|
-
payment = @order.payments.create({:amount => @order.total,
|
12
|
-
:source => skrill_transaction,
|
13
|
-
:payment_method => payment_method},
|
14
|
-
:without_protection => true)
|
15
|
-
payment.started_processing!
|
16
|
-
payment.pend!
|
17
|
-
end
|
18
|
-
|
19
|
-
@order.update_attributes({:state => "complete", :completed_at => Time.now}, :without_protection => true)
|
20
|
-
|
21
|
-
until @order.state == "complete"
|
22
|
-
if @order.next!
|
23
|
-
@order.update!
|
24
|
-
state_callback(:after)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
@order.finalize!
|
29
|
-
|
30
|
-
flash.notice = Spree.t(:order_processed_successfully)
|
31
|
-
redirect_to completion_route
|
32
|
-
end
|
33
|
-
|
34
|
-
def skrill_cancel
|
35
|
-
flash[:error] = Spree.t(:payment_has_been_cancelled)
|
36
|
-
redirect_to edit_order_path(@order)
|
37
|
-
end
|
38
|
-
|
39
|
-
private
|
40
|
-
def confirm_skrill
|
41
|
-
return unless (params[:state] == "payment") && params[:order] && params[:order][:payments_attributes]
|
42
|
-
|
43
|
-
payment_method = PaymentMethod.find(params[:order][:payments_attributes].first[:payment_method_id])
|
44
|
-
if payment_method.kind_of?(BillingIntegration::Skrill::QuickCheckout)
|
45
|
-
#TODO confirming payment method
|
46
|
-
redirect_to edit_order_checkout_url(@order, :state => 'payment'),
|
47
|
-
:notice => Spree.t(:complete_skrill_checkout)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
module Spree
|
2
|
-
class SkrillStatusController < ApplicationController
|
3
|
-
def update
|
4
|
-
@order = Order.find_by_number!(params[:order_id])
|
5
|
-
payment_method = PaymentMethod.find(params[:payment_method_id])
|
6
|
-
skrill_transaction = SkrillTransaction.create_from_postback params
|
7
|
-
|
8
|
-
payment = @order.payments.where(:state => "pending",
|
9
|
-
:payment_method_id => payment_method).first
|
10
|
-
|
11
|
-
if payment
|
12
|
-
payment.source = skrill_transaction
|
13
|
-
payment.save
|
14
|
-
else
|
15
|
-
payment = @order.payments.create(:amount => @order.total,
|
16
|
-
:source => skrill_transaction,
|
17
|
-
:payment_method => payment_method)
|
18
|
-
end
|
19
|
-
|
20
|
-
payment.started_processing!
|
21
|
-
|
22
|
-
unless payment.completed?
|
23
|
-
case params[:status]
|
24
|
-
when "0"
|
25
|
-
payment.pend #may already be pending
|
26
|
-
when "2" #processed / captured
|
27
|
-
payment.complete!
|
28
|
-
when "-1", "-2"
|
29
|
-
payment.failure!
|
30
|
-
else
|
31
|
-
raise "Unexpected payment status"
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
render :text => ""
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
<fieldset>
|
2
|
-
<legend><%= Spree.t(:skrill) %></legend>
|
3
|
-
|
4
|
-
<table class="index">
|
5
|
-
<tr>
|
6
|
-
<th colspan="6"><%= Spree.t(:skrill_transaction) %></th>
|
7
|
-
</tr>
|
8
|
-
<tr>
|
9
|
-
<td><label><%= Spree.t(:email) %>:</label></td>
|
10
|
-
<td>
|
11
|
-
<%= payment.source.email %>
|
12
|
-
</td>
|
13
|
-
</tr>
|
14
|
-
<tr>
|
15
|
-
<td><label><%= Spree.t(:skrill_customer_id) %>:</label></td>
|
16
|
-
<td>
|
17
|
-
<%= payment.source.customer_id %>
|
18
|
-
</td>
|
19
|
-
</tr>
|
20
|
-
<tr>
|
21
|
-
<td><label><%= Spree.t(:skrill_transaction_id) %>:</label></td>
|
22
|
-
<td>
|
23
|
-
<%= payment.source.transaction_id %>
|
24
|
-
</td>
|
25
|
-
</tr>
|
26
|
-
<tr>
|
27
|
-
<td><label><%= Spree.t(:skrill_payment_type) %>:</label></td>
|
28
|
-
<td>
|
29
|
-
<%= payment.source.payment_type %>
|
30
|
-
</td>
|
31
|
-
</tr>
|
32
|
-
<tr>
|
33
|
-
<td><label><%= Spree.t(:skrill_payment_currency) %>:</label></td>
|
34
|
-
<td>
|
35
|
-
<%= payment.source.currency %>
|
36
|
-
</td>
|
37
|
-
</tr>
|
38
|
-
</table>
|
39
|
-
</fieldset>
|
@@ -1,26 +0,0 @@
|
|
1
|
-
<p data-hook="skrill_quick_checkout"></p>
|
2
|
-
|
3
|
-
<%
|
4
|
-
opts = {}
|
5
|
-
opts[:transaction_id] = "#{@order.number}"
|
6
|
-
opts[:amount] = @order.total
|
7
|
-
opts[:return_url] = skrill_return_order_checkout_url(@order, :token => @order.guest_token,
|
8
|
-
:payment_method_id => payment_method.id)
|
9
|
-
opts[:cancel_url] = skrill_cancel_order_checkout_url(@order, :token => @order.guest_token)
|
10
|
-
opts[:status_url] = skrill_url
|
11
|
-
opts[:payment_method_id] = payment_method.id
|
12
|
-
%>
|
13
|
-
|
14
|
-
<style>
|
15
|
-
iframe.skrill_frame{
|
16
|
-
border: 0px;
|
17
|
-
width: 500px;
|
18
|
-
height: 500px;
|
19
|
-
}
|
20
|
-
</style>
|
21
|
-
|
22
|
-
<fieldset id="skrill_payment__<%= payment_method.id %>" data-hook>
|
23
|
-
<legend><%= Spree.t(:payment_information) %></legend>
|
24
|
-
<iframe id="skrill_frame_<%= payment_method.id %>"
|
25
|
-
class="skrill_frame" src="<%= payment_method.redirect_url @order, opts %>"></iframe>
|
26
|
-
</fieldset>
|
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe ActiveMerchant::Billing::Skrill do
|
4
|
-
let(:url) { 'https://www.moneybookers.com/app/payment.pl' }
|
5
|
-
|
6
|
-
context '.service_url' do
|
7
|
-
it 'return its url' do
|
8
|
-
expect(subject.service_url).to eq url
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
context '.payment_url' do
|
13
|
-
it 'prepend options to url' do
|
14
|
-
options = { 'hi' => 'you' }
|
15
|
-
expect(subject.payment_url(options)).to eq "#{url}?hi=you"
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Spree::BillingIntegration::Skrill::QuickCheckout do
|
4
|
-
let(:quick_checkout) { create(:skrill_quick_checkout) }
|
5
|
-
|
6
|
-
context '.provider_class' do
|
7
|
-
it 'is a Billing::Skrill class' do
|
8
|
-
expect(quick_checkout.provider_class).to eq ::ActiveMerchant::Billing::Skrill
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|