spree_gateway 3.2.0 → 3.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +15 -6
  3. data/Gemfile +1 -0
  4. data/README.md +1 -1
  5. data/app/models/spree/gateway/eway_rapid.rb +14 -0
  6. data/app/models/spree/gateway/stripe_gateway.rb +16 -7
  7. data/config/locales/bg.yml +0 -7
  8. data/config/locales/de.yml +0 -7
  9. data/config/locales/en.yml +0 -7
  10. data/config/locales/sv.yml +0 -7
  11. data/db/migrate/20121017004102_update_braintree_payment_method_type.rb +2 -2
  12. data/db/migrate/20130213222555_update_stripe_payment_method_type.rb +2 -2
  13. data/db/migrate/20130415222802_update_balanced_payment_method_type.rb +3 -3
  14. data/db/migrate/20131008221012_update_paypal_payment_method_type.rb +2 -2
  15. data/db/migrate/20131112133401_migrate_stripe_preferences.rb +1 -1
  16. data/lib/active_merchant/billing/gateways/stripe_decorator.rb +17 -0
  17. data/lib/spree_gateway.rb +2 -0
  18. data/lib/spree_gateway/engine.rb +5 -2
  19. data/lib/spree_gateway/version.rb +5 -0
  20. data/spec/models/gateway/eway_rapid_spec.rb +23 -0
  21. data/spec/spec_helper.rb +11 -2
  22. data/spree_gateway.gemspec +14 -6
  23. metadata +62 -39
  24. data/app/models/spree/billing_integration/skrill/quick_checkout.rb +0 -48
  25. data/app/models/spree/skrill_transaction.rb +0 -19
  26. data/config/routes.rb +0 -13
  27. data/db/migrate/20111118164631_create_skrill_transactions.rb +0 -13
  28. data/lib/active_merchant/billing/skrill.rb +0 -18
  29. data/lib/controllers/frontend/spree/checkout_controller_decorator.rb +0 -51
  30. data/lib/controllers/frontend/spree/skrill_status_controller.rb +0 -39
  31. data/lib/views/backend/spree/admin/payments/source_views/_quickcheckout.html.erb +0 -39
  32. data/lib/views/frontend/spree/checkout/payment/_quickcheckout.html.erb +0 -26
  33. data/spec/controllers/spree/checkout_controller_spec.rb +0 -13
  34. data/spec/controllers/spree/skrill_status_controller_spec.rb +0 -8
  35. data/spec/factories/payment_method_factory.rb +0 -5
  36. data/spec/factories/skrill_transaction_factory.rb +0 -10
  37. data/spec/lib/active_merchant/billing_skrill_spec.rb +0 -18
  38. data/spec/models/billing_integration/skrill_quick_checkout_spec.rb +0 -11
  39. data/spec/models/skrill_transaction_spec.rb +0 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 59d06c29878a6203de1b5ca3c4cd97b88f7ed257
4
- data.tar.gz: 7a20a8c0667e50b87bac1cc29781a265b1eba85a
2
+ SHA256:
3
+ metadata.gz: 648d40901742451fde4132f84a47a1cb6cd87da368e231026bd43bc0de827317
4
+ data.tar.gz: a7074f7a84f7f59e91302d2fa40d939d074df09665a6c5187cf2282104a5d934
5
5
  SHA512:
6
- metadata.gz: 3674f7cc0061a2428959eff085930bca279454526d537df7dfd5d3667e5394d8c2aedcc881333bef6c5a8d5fb37c22c03f936affa9229a3b2f4bddc2a57a3d0b
7
- data.tar.gz: 98b84448539919606b6149100def41019f17690fc11b92caf54122d43cf2e6b40c72be7bf27638c7fa187443434ded19a3c445a310a53835224ccf3a781c73a1
6
+ metadata.gz: ab2a9999f550f7c983f74fd4d373e5283e8b4c851c51db219358c8003f3d0c24fef1436ee259fc872399e40c8660c843d3edb589f6371739ed92379dc869473e
7
+ data.tar.gz: 03dfc59510f180067067e29cdd37cbd4a545c1b172c0a096ede0a9a3f1ff8006be49b35ac93755c15eeede25a94bff3f9016f0a887505d21b71f87b9183d75ed
data/.travis.yml CHANGED
@@ -3,6 +3,9 @@ dist: trusty
3
3
 
4
4
  language: ruby
5
5
 
6
+ addons:
7
+ chrome: stable
8
+
6
9
  env:
7
10
  - DB=postgres
8
11
  - DB=mysql
@@ -20,9 +23,15 @@ rvm:
20
23
  - 2.3.1
21
24
  - 2.2.7
22
25
 
23
- addons:
24
- apt:
25
- packages:
26
- - mysql-server-5.6
27
- - mysql-client-core-5.6
28
- - mysql-client-5.6
26
+ matrix:
27
+ allow_failures:
28
+ - gemfile: gemfiles/spree_master.gemfile
29
+
30
+ before_install:
31
+ - mysql -u root -e "GRANT ALL ON *.* TO 'travis'@'%';"
32
+ - wget -N https://chromedriver.storage.googleapis.com/2.35/chromedriver_linux64.zip -P ~/
33
+ - unzip ~/chromedriver_linux64.zip -d ~/
34
+ - rm ~/chromedriver_linux64.zip
35
+ - sudo mv -f ~/chromedriver /usr/local/share/
36
+ - sudo chmod +x /usr/local/share/chromedriver
37
+ - sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver
data/Gemfile CHANGED
@@ -1,5 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ gem 'rails-controller-testing'
3
4
  gem 'spree', github: 'spree/spree', branch: 'master'
4
5
 
5
6
  gemspec
data/README.md CHANGED
@@ -16,7 +16,7 @@ need to manually add it to your rails app Gemfile.
16
16
  #### Spree >= 3.1
17
17
 
18
18
  ```ruby
19
- gem 'spree_gateway', github: 'spree/spree_gateway'
19
+ gem 'spree_gateway', '~> 3.3'
20
20
  ```
21
21
 
22
22
  #### Spree 3.0 and Spree 2.x
@@ -0,0 +1,14 @@
1
+ module Spree
2
+ class Gateway::EwayRapid < Gateway
3
+ preference :login, :string
4
+ preference :password, :string
5
+
6
+ def provider_class
7
+ ActiveMerchant::Billing::EwayRapidGateway
8
+ end
9
+
10
+ def options
11
+ super().merge(:test => self.preferred_test_mode)
12
+ end
13
+ end
14
+ end
@@ -40,16 +40,16 @@ module Spree
40
40
  provider.capture(money, response_code, gateway_options)
41
41
  end
42
42
 
43
- def credit(money, creditcard, response_code, gateway_options)
44
- provider.refund(money, response_code, {})
43
+ def credit(money, creditcard, response_code, gateway_options)tes
44
+ provider.refund(money, response_code, {}, gateway_options)
45
45
  end
46
46
 
47
47
  def void(response_code, creditcard, gateway_options)
48
- provider.void(response_code, {})
48
+ provider.void(response_code, {}, gateway_options)
49
49
  end
50
50
 
51
51
  def cancel(response_code)
52
- provider.void(response_code, {})
52
+ provider.void(response_code, {}, gateway_options)
53
53
  end
54
54
 
55
55
  def create_profile(payment)
@@ -60,7 +60,7 @@ module Spree
60
60
  }.merge! address_for(payment)
61
61
 
62
62
  source = update_source!(payment.source)
63
- if source.number.blank? && source.gateway_payment_profile_id.present?
63
+ if source.gateway_payment_profile_id.present?
64
64
  creditcard = source.gateway_payment_profile_id
65
65
  else
66
66
  creditcard = source
@@ -87,14 +87,17 @@ module Spree
87
87
 
88
88
  # In this gateway, what we call 'secret_key' is the 'login'
89
89
  def options
90
- options = super
91
- options.merge(:login => preferred_secret_key)
90
+ super.merge(
91
+ login: preferred_secret_key,
92
+ application: app_info
93
+ )
92
94
  end
93
95
 
94
96
  def options_for_purchase_or_auth(money, creditcard, gateway_options)
95
97
  options = {}
96
98
  options[:description] = "Spree Order ID: #{gateway_options[:order_id]}"
97
99
  options[:currency] = gateway_options[:currency]
100
+ options[:application] = app_info
98
101
 
99
102
  if customer = creditcard.gateway_customer_profile_id
100
103
  options[:customer] = customer
@@ -133,5 +136,11 @@ module Spree
133
136
  source.cc_type = CARD_TYPE_MAPPING[source.cc_type] if CARD_TYPE_MAPPING.include?(source.cc_type)
134
137
  source
135
138
  end
139
+
140
+ def app_info
141
+ name_with_version = "SpreeGateway/#{SpreeGateway.version}"
142
+ url = 'https://spreecommerce.org'
143
+ "#{name_with_version} #{url}"
144
+ end
136
145
  end
137
146
  end
@@ -2,10 +2,3 @@
2
2
  bg:
3
3
  spree:
4
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: Валута
@@ -2,10 +2,3 @@
2
2
  de:
3
3
  spree:
4
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
@@ -2,13 +2,6 @@
2
2
  en:
3
3
  spree:
4
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
5
  log_entry:
13
6
  braintree:
14
7
  message: Message
@@ -2,10 +2,3 @@
2
2
  sv:
3
3
  spree:
4
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
@@ -1,8 +1,8 @@
1
- class UpdateBraintreePaymentMethodType < ActiveRecord::Migration
1
+ class UpdateBraintreePaymentMethodType < SpreeExtension::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
5
-
5
+
6
6
  def down
7
7
  Spree::PaymentMethod.where(:type => "Spree::Gateway::BraintreeGateway").update_all(:type => "Spree::Gateway::Braintree")
8
8
  end
@@ -1,8 +1,8 @@
1
- class UpdateStripePaymentMethodType < ActiveRecord::Migration
1
+ class UpdateStripePaymentMethodType < SpreeExtension::Migration[4.2]
2
2
  def up
3
3
  Spree::PaymentMethod.where(:type => "Spree::Gateway::Stripe").update_all(:type => "Spree::Gateway::StripeGateway")
4
4
  end
5
-
5
+
6
6
  def down
7
7
  Spree::PaymentMethod.where(:type => "Spree::Gateway::StripeGateway").update_all(:type => "Spree::Gateway::Stripe")
8
8
  end
@@ -1,9 +1,9 @@
1
- class UpdateBalancedPaymentMethodType < ActiveRecord::Migration
1
+ class UpdateBalancedPaymentMethodType < SpreeExtension::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
5
-
5
+
6
6
  def down
7
7
  Spree::PaymentMethod.where(:type => "Spree::Gateway::BalancedGateway").update_all(:type => "Spree::Gateway::Balanced")
8
8
  end
9
- end
9
+ end
@@ -1,8 +1,8 @@
1
- class UpdatePaypalPaymentMethodType < ActiveRecord::Migration
1
+ class UpdatePaypalPaymentMethodType < SpreeExtension::Migration[4.2]
2
2
  def up
3
3
  Spree::PaymentMethod.where(:type => "Spree::Gateway::PayPal").update_all(:type => "Spree::Gateway::PayPalGateway")
4
4
  end
5
-
5
+
6
6
  def down
7
7
  Spree::PaymentMethod.where(:type => "Spree::Gateway::PayPalGateway").update_all(:type => "Spree::Gateway::PayPal")
8
8
  end
@@ -1,4 +1,4 @@
1
- class MigrateStripePreferences < ActiveRecord::Migration
1
+ class MigrateStripePreferences < SpreeExtension::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')
@@ -0,0 +1,17 @@
1
+ ActiveMerchant::Billing::StripeGateway.class_eval do
2
+ private
3
+
4
+ alias_method :original_headers, :headers
5
+ alias_method :original_add_customer_data, :add_customer_data
6
+
7
+ def headers(options = {})
8
+ headers = original_headers(options)
9
+ headers['User-Agent'] = headers['X-Stripe-Client-User-Agent']
10
+ headers
11
+ end
12
+
13
+ def add_customer_data(post, options)
14
+ original_add_customer_data(post, options)
15
+ post[:payment_user_agent] = "SpreeGateway/#{SpreeGateway.version}"
16
+ end
17
+ end
data/lib/spree_gateway.rb CHANGED
@@ -1,3 +1,5 @@
1
1
  require 'spree_core'
2
2
  require 'spree_gateway/engine'
3
+ require 'spree_gateway/version'
3
4
  require 'sass/rails'
5
+ require 'spree_extension'
@@ -5,7 +5,6 @@ module SpreeGateway
5
5
  config.autoload_paths += %W(#{config.root}/lib)
6
6
 
7
7
  initializer "spree.gateway.payment_methods", :after => "spree.register.payment_methods" do |app|
8
- app.config.spree.payment_methods << Spree::BillingIntegration::Skrill::QuickCheckout
9
8
  app.config.spree.payment_methods << Spree::Gateway::AuthorizeNet
10
9
  app.config.spree.payment_methods << Spree::Gateway::AuthorizeNetCim
11
10
  app.config.spree.payment_methods << Spree::Gateway::BalancedGateway
@@ -17,6 +16,7 @@ module SpreeGateway
17
16
  app.config.spree.payment_methods << Spree::Gateway::DataCash
18
17
  app.config.spree.payment_methods << Spree::Gateway::Epay
19
18
  app.config.spree.payment_methods << Spree::Gateway::Eway
19
+ app.config.spree.payment_methods << Spree::Gateway::EwayRapid
20
20
  app.config.spree.payment_methods << Spree::Gateway::Maxipago
21
21
  app.config.spree.payment_methods << Spree::Gateway::Migs
22
22
  app.config.spree.payment_methods << Spree::Gateway::Moneris
@@ -38,12 +38,15 @@ module SpreeGateway
38
38
  if SpreeGateway::Engine.frontend_available?
39
39
  Rails.application.config.assets.precompile += [
40
40
  'lib/assets/javascripts/spree/frontend/spree_gateway.js',
41
- 'lib/assets/javascripts/spree/frontend/spree_gateway.css',
41
+ 'lib/assets/stylesheets/spree/frontend/spree_gateway.css',
42
42
  ]
43
43
  Dir.glob(File.join(File.dirname(__FILE__), "../../controllers/frontend/*/*_decorator*.rb")) do |c|
44
44
  Rails.configuration.cache_classes ? require(c) : load(c)
45
45
  end
46
46
  end
47
+ Dir.glob(File.join(File.dirname(__FILE__), '../../lib/active_merchant/**/*_decorator*.rb')) do |c|
48
+ Rails.application.config.cache_classes ? require(c) : load(c)
49
+ end
47
50
  end
48
51
 
49
52
  def self.backend_available?
@@ -0,0 +1,5 @@
1
+ module SpreeGateway
2
+ def self.version
3
+ '3.3.5'
4
+ end
5
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::Gateway::EwayRapid do
4
+ let(:gateway) { described_class.create!(name: 'eWAY Rapid') }
5
+
6
+ describe '#provider_class' do
7
+ it 'should be an eWAY Rapid gateway' do
8
+ expect(gateway.provider_class).to eq ::ActiveMerchant::Billing::EwayRapidGateway
9
+ end
10
+ end
11
+
12
+ describe '#options' do
13
+ it 'should flag test option if preferred_test_mode is true' do
14
+ gateway.preferred_test_mode = true
15
+ expect(gateway.options[:test]).to be true
16
+ end
17
+
18
+ it 'should unflag test option if preferred_test_mode is false' do
19
+ gateway.preferred_test_mode = false
20
+ expect(gateway.options[:test]).to be false
21
+ end
22
+ end
23
+ end
data/spec/spec_helper.rb CHANGED
@@ -9,8 +9,9 @@ require 'rspec/rails'
9
9
  require 'rspec/active_model/mocks'
10
10
  require 'capybara/rspec'
11
11
  require 'capybara/rails'
12
- require 'capybara/poltergeist'
13
12
  require 'capybara-screenshot/rspec'
13
+ require "selenium-webdriver"
14
+ require 'webdrivers'
14
15
  require 'database_cleaner'
15
16
  require 'ffaker'
16
17
  require 'rspec/active_model/mocks'
@@ -52,5 +53,13 @@ RSpec.configure do |config|
52
53
  DatabaseCleaner.clean
53
54
  end
54
55
 
55
- Capybara.javascript_driver = :poltergeist
56
+ Capybara.register_driver :chrome do |app|
57
+ Capybara::Selenium::Driver.new app,
58
+ browser: :chrome,
59
+ options: Selenium::WebDriver::Chrome::Options.new(
60
+ args: %w[no-sandbox disable-dev-shm-usage disable-popup-blocking headless disable-gpu window-size=1920,1080 --enable-features=NetworkService,NetworkServiceInProcess --disable-features=VizDisplayCompositor],
61
+ log_level: :error
62
+ )
63
+ end
64
+ Capybara.javascript_driver = :chrome
56
65
  end
@@ -1,15 +1,20 @@
1
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
+
2
7
  Gem::Specification.new do |s|
3
8
  s.platform = Gem::Platform::RUBY
4
9
  s.name = 'spree_gateway'
5
- s.version = '3.2.0'
10
+ s.version = SpreeGateway.version
6
11
  s.summary = 'Additional Payment Gateways for Spree Commerce'
7
12
  s.description = s.summary
8
13
 
9
14
  s.author = 'Spree Commerce'
10
15
  s.email = 'gems@spreecommerce.com'
11
- s.homepage = 'http://www.spreecommerce.com'
12
- s.license = %q{BSD-3}
16
+ s.homepage = 'https://spreecommerce.org'
17
+ s.license = 'BSD-3-Clause'
13
18
 
14
19
  s.files = `git ls-files`.split("\n")
15
20
  s.test_files = `git ls-files -- spec/*`.split("\n")
@@ -18,6 +23,7 @@ Gem::Specification.new do |s|
18
23
 
19
24
  spree_version = '>= 3.1.0', '< 4.0'
20
25
  s.add_dependency 'spree_core', spree_version
26
+ s.add_dependency 'spree_extension'
21
27
 
22
28
  s.add_development_dependency 'braintree'
23
29
  s.add_development_dependency 'capybara'
@@ -25,19 +31,21 @@ Gem::Specification.new do |s|
25
31
  s.add_development_dependency 'coffee-rails'
26
32
  s.add_development_dependency 'database_cleaner'
27
33
  s.add_development_dependency 'factory_girl'
34
+ s.add_development_dependency 'factory_bot', '~> 4.7'
28
35
  s.add_development_dependency 'ffaker'
29
36
  s.add_development_dependency 'guard-rspec'
30
37
  s.add_development_dependency 'launchy'
31
38
  s.add_development_dependency 'mysql2'
32
- s.add_development_dependency 'pg'
33
- s.add_development_dependency 'poltergeist'
39
+ s.add_development_dependency 'pg', '~> 0.18'
34
40
  s.add_development_dependency 'pry'
41
+ s.add_development_dependency 'puma'
35
42
  s.add_development_dependency 'rspec-activemodel-mocks'
36
43
  s.add_development_dependency 'rspec-rails'
37
44
  s.add_development_dependency 'bootstrap-sass', '>= 3.3.5.1'
38
45
  s.add_development_dependency 'sass-rails', '>= 3.2'
39
46
  s.add_development_dependency 'selenium-webdriver'
47
+ s.add_development_dependency 'webdrivers', '~> 3.9.0'
40
48
  s.add_development_dependency 'simplecov'
41
- s.add_development_dependency 'sqlite3'
49
+ s.add_development_dependency 'sqlite3', '~> 1.3.6'
42
50
  s.add_development_dependency 'appraisal'
43
51
  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.2.0
4
+ version: 3.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Spree Commerce
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-13 00:00:00.000000000 Z
11
+ date: 2019-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree_core
@@ -30,6 +30,20 @@ dependencies:
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '4.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: spree_extension
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: braintree
35
49
  requirement: !ruby/object:Gem::Requirement
@@ -114,6 +128,20 @@ dependencies:
114
128
  - - ">="
115
129
  - !ruby/object:Gem::Version
116
130
  version: '0'
131
+ - !ruby/object:Gem::Dependency
132
+ name: factory_bot
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '4.7'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '4.7'
117
145
  - !ruby/object:Gem::Dependency
118
146
  name: ffaker
119
147
  requirement: !ruby/object:Gem::Requirement
@@ -174,18 +202,18 @@ dependencies:
174
202
  name: pg
175
203
  requirement: !ruby/object:Gem::Requirement
176
204
  requirements:
177
- - - ">="
205
+ - - "~>"
178
206
  - !ruby/object:Gem::Version
179
- version: '0'
207
+ version: '0.18'
180
208
  type: :development
181
209
  prerelease: false
182
210
  version_requirements: !ruby/object:Gem::Requirement
183
211
  requirements:
184
- - - ">="
212
+ - - "~>"
185
213
  - !ruby/object:Gem::Version
186
- version: '0'
214
+ version: '0.18'
187
215
  - !ruby/object:Gem::Dependency
188
- name: poltergeist
216
+ name: pry
189
217
  requirement: !ruby/object:Gem::Requirement
190
218
  requirements:
191
219
  - - ">="
@@ -199,7 +227,7 @@ dependencies:
199
227
  - !ruby/object:Gem::Version
200
228
  version: '0'
201
229
  - !ruby/object:Gem::Dependency
202
- name: pry
230
+ name: puma
203
231
  requirement: !ruby/object:Gem::Requirement
204
232
  requirements:
205
233
  - - ">="
@@ -282,6 +310,20 @@ dependencies:
282
310
  - - ">="
283
311
  - !ruby/object:Gem::Version
284
312
  version: '0'
313
+ - !ruby/object:Gem::Dependency
314
+ name: webdrivers
315
+ requirement: !ruby/object:Gem::Requirement
316
+ requirements:
317
+ - - "~>"
318
+ - !ruby/object:Gem::Version
319
+ version: 3.9.0
320
+ type: :development
321
+ prerelease: false
322
+ version_requirements: !ruby/object:Gem::Requirement
323
+ requirements:
324
+ - - "~>"
325
+ - !ruby/object:Gem::Version
326
+ version: 3.9.0
285
327
  - !ruby/object:Gem::Dependency
286
328
  name: simplecov
287
329
  requirement: !ruby/object:Gem::Requirement
@@ -300,16 +342,16 @@ dependencies:
300
342
  name: sqlite3
301
343
  requirement: !ruby/object:Gem::Requirement
302
344
  requirements:
303
- - - ">="
345
+ - - "~>"
304
346
  - !ruby/object:Gem::Version
305
- version: '0'
347
+ version: 1.3.6
306
348
  type: :development
307
349
  prerelease: false
308
350
  version_requirements: !ruby/object:Gem::Requirement
309
351
  requirements:
310
- - - ">="
352
+ - - "~>"
311
353
  - !ruby/object:Gem::Version
312
- version: '0'
354
+ version: 1.3.6
313
355
  - !ruby/object:Gem::Dependency
314
356
  name: appraisal
315
357
  requirement: !ruby/object:Gem::Requirement
@@ -340,7 +382,6 @@ files:
340
382
  - README.md
341
383
  - Rakefile
342
384
  - app/models/spree/billing_integration.rb
343
- - app/models/spree/billing_integration/skrill/quick_checkout.rb
344
385
  - app/models/spree/gateway/authorize_net.rb
345
386
  - app/models/spree/gateway/authorize_net_cim.rb
346
387
  - app/models/spree/gateway/balanced_gateway.rb
@@ -352,6 +393,7 @@ files:
352
393
  - app/models/spree/gateway/data_cash.rb
353
394
  - app/models/spree/gateway/epay.rb
354
395
  - app/models/spree/gateway/eway.rb
396
+ - app/models/spree/gateway/eway_rapid.rb
355
397
  - app/models/spree/gateway/maxipago.rb
356
398
  - app/models/spree/gateway/migs.rb
357
399
  - app/models/spree/gateway/moneris.rb
@@ -367,13 +409,10 @@ files:
367
409
  - app/models/spree/gateway/stripe_gateway.rb
368
410
  - app/models/spree/gateway/usa_epay_transaction.rb
369
411
  - app/models/spree/gateway/worldpay.rb
370
- - app/models/spree/skrill_transaction.rb
371
412
  - config/locales/bg.yml
372
413
  - config/locales/de.yml
373
414
  - config/locales/en.yml
374
415
  - config/locales/sv.yml
375
- - config/routes.rb
376
- - db/migrate/20111118164631_create_skrill_transactions.rb
377
416
  - db/migrate/20121017004102_update_braintree_payment_method_type.rb
378
417
  - db/migrate/20130213222555_update_stripe_payment_method_type.rb
379
418
  - db/migrate/20130415222802_update_balanced_payment_method_type.rb
@@ -382,30 +421,21 @@ files:
382
421
  - gemfiles/spree_3_1.gemfile
383
422
  - gemfiles/spree_3_2.gemfile
384
423
  - gemfiles/spree_master.gemfile
385
- - lib/active_merchant/billing/skrill.rb
424
+ - lib/active_merchant/billing/gateways/stripe_decorator.rb
386
425
  - lib/assets/javascripts/spree/frontend/spree_gateway.js
387
426
  - lib/assets/stylesheets/spree/frontend/spree_gateway.css
388
- - lib/controllers/frontend/spree/checkout_controller_decorator.rb
389
- - lib/controllers/frontend/spree/skrill_status_controller.rb
390
427
  - lib/generators/spree_gateway/install/install_generator.rb
391
428
  - lib/spree_gateway.rb
392
429
  - lib/spree_gateway/engine.rb
430
+ - lib/spree_gateway/version.rb
393
431
  - lib/views/backend/spree/admin/log_entries/_braintree.html.erb
394
432
  - lib/views/backend/spree/admin/log_entries/_stripe.html.erb
395
433
  - lib/views/backend/spree/admin/payments/source_forms/_quickcheckout.html.erb
396
434
  - lib/views/backend/spree/admin/payments/source_forms/_stripe.html.erb
397
- - lib/views/backend/spree/admin/payments/source_views/_quickcheckout.html.erb
398
435
  - lib/views/backend/spree/admin/payments/source_views/_stripe.html.erb
399
- - lib/views/frontend/spree/checkout/payment/_quickcheckout.html.erb
400
436
  - lib/views/frontend/spree/checkout/payment/_stripe.html.erb
401
437
  - script/rails
402
- - spec/controllers/spree/checkout_controller_spec.rb
403
- - spec/controllers/spree/skrill_status_controller_spec.rb
404
- - spec/factories/payment_method_factory.rb
405
- - spec/factories/skrill_transaction_factory.rb
406
438
  - spec/features/stripe_checkout_spec.rb
407
- - spec/lib/active_merchant/billing_skrill_spec.rb
408
- - spec/models/billing_integration/skrill_quick_checkout_spec.rb
409
439
  - spec/models/gateway/authorize_net_cim_spec.rb
410
440
  - spec/models/gateway/authorize_net_spec.rb
411
441
  - spec/models/gateway/balanced_gateway_spec.rb
@@ -416,6 +446,7 @@ files:
416
446
  - spec/models/gateway/cyber_source_spec.rb
417
447
  - spec/models/gateway/data_cache_spec.rb
418
448
  - spec/models/gateway/epay_spec.rb
449
+ - spec/models/gateway/eway_rapid_spec.rb
419
450
  - spec/models/gateway/eway_spec.rb
420
451
  - spec/models/gateway/maxipago_spec.rb
421
452
  - spec/models/gateway/moneris_spec.rb
@@ -430,13 +461,12 @@ files:
430
461
  - spec/models/gateway/stripe_gateway_spec.rb
431
462
  - spec/models/gateway/usa_epay_transaction_spec.rb
432
463
  - spec/models/gateway/worldpay_spec.rb
433
- - spec/models/skrill_transaction_spec.rb
434
464
  - spec/spec_helper.rb
435
465
  - spec/support/wait_for_stripe.rb
436
466
  - spree_gateway.gemspec
437
- homepage: http://www.spreecommerce.com
467
+ homepage: https://spreecommerce.org
438
468
  licenses:
439
- - BSD-3
469
+ - BSD-3-Clause
440
470
  metadata: {}
441
471
  post_install_message:
442
472
  rdoc_options: []
@@ -454,19 +484,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
454
484
  version: '0'
455
485
  requirements:
456
486
  - none
457
- rubyforge_project:
458
- rubygems_version: 2.6.10
487
+ rubygems_version: 3.0.2
459
488
  signing_key:
460
489
  specification_version: 4
461
490
  summary: Additional Payment Gateways for Spree Commerce
462
491
  test_files:
463
- - spec/controllers/spree/checkout_controller_spec.rb
464
- - spec/controllers/spree/skrill_status_controller_spec.rb
465
- - spec/factories/payment_method_factory.rb
466
- - spec/factories/skrill_transaction_factory.rb
467
492
  - spec/features/stripe_checkout_spec.rb
468
- - spec/lib/active_merchant/billing_skrill_spec.rb
469
- - spec/models/billing_integration/skrill_quick_checkout_spec.rb
470
493
  - spec/models/gateway/authorize_net_cim_spec.rb
471
494
  - spec/models/gateway/authorize_net_spec.rb
472
495
  - spec/models/gateway/balanced_gateway_spec.rb
@@ -477,6 +500,7 @@ test_files:
477
500
  - spec/models/gateway/cyber_source_spec.rb
478
501
  - spec/models/gateway/data_cache_spec.rb
479
502
  - spec/models/gateway/epay_spec.rb
503
+ - spec/models/gateway/eway_rapid_spec.rb
480
504
  - spec/models/gateway/eway_spec.rb
481
505
  - spec/models/gateway/maxipago_spec.rb
482
506
  - spec/models/gateway/moneris_spec.rb
@@ -491,6 +515,5 @@ test_files:
491
515
  - spec/models/gateway/stripe_gateway_spec.rb
492
516
  - spec/models/gateway/usa_epay_transaction_spec.rb
493
517
  - spec/models/gateway/worldpay_spec.rb
494
- - spec/models/skrill_transaction_spec.rb
495
518
  - spec/spec_helper.rb
496
519
  - spec/support/wait_for_stripe.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/routes.rb DELETED
@@ -1,13 +0,0 @@
1
- Spree::Core::Engine.add_routes do
2
- # Add your extension routes here
3
- resources :orders, :only => [] do
4
- resource :checkout, :controller => 'checkout' do
5
- member do
6
- get :skrill_cancel
7
- get :skrill_return
8
- end
9
- end
10
- end
11
-
12
- post '/skrill' => 'skrill_status#update'
13
- end
@@ -1,13 +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
@@ -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_with_updater!
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,13 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Spree::CheckoutController do
4
- context '#skrill_return' do
5
- specify do
6
- end
7
- end
8
-
9
- context '#skrill_cancel' do
10
- specify do
11
- end
12
- end
13
- end
@@ -1,8 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Spree::SkrillStatusController do
4
- context '#update' do
5
- specify do
6
- end
7
- end
8
- end
@@ -1,5 +0,0 @@
1
- FactoryGirl.define do
2
- factory :skrill_quick_checkout, class: Spree::BillingIntegration::Skrill::QuickCheckout do
3
- name 'Skrill - Quick Checkout'
4
- end
5
- end
@@ -1,10 +0,0 @@
1
- FactoryGirl.define do
2
- factory :skrill_transaction, class: Spree::SkrillTransaction do
3
- email ''
4
- amount 0.0
5
- currency 'USD'
6
- transaction_id nil
7
- customer_id nil
8
- payment_type nil
9
- end
10
- end
@@ -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, focus: true 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
@@ -1,9 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Spree::SkrillTransaction do
4
- let(:skrill_transaction) { create(:skrill_transaction) }
5
-
6
- context '.actions' do
7
- it { expect(subject.actions).to match_array([]) }
8
- end
9
- end