solidus_gateway 1.0.1 → 1.1.0
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +11 -20
- data/Gemfile +5 -1
- data/app/models/spree/gateway/braintree_gateway.rb +1 -1
- data/circle.yml +2 -0
- data/config/locales/it.yml +30 -0
- data/config/routes.rb +1 -1
- data/lib/solidus_gateway.rb +1 -0
- data/lib/solidus_gateway/version.rb +3 -0
- data/lib/spree_gateway/engine.rb +13 -0
- data/solidus_gateway.gemspec +13 -2
- data/spec/features/stripe_checkout_spec.rb +16 -1
- data/spec/models/gateway/braintree_gateway_spec.rb +7 -7
- data/spec/models/gateway/stripe_gateway_spec.rb +2 -1
- data/spec/spec_helper.rb +4 -1
- metadata +32 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 710620ffc527dde72710f4bee67aefa23197bf3c
|
4
|
+
data.tar.gz: 4b205cfed6e5833e42997b51bd8d7a3244c74092
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 135237707cb007280b3da732cfb4bccdfba4eeb75b1e62d1ff84c3f727338e597fea4729ab63cfdbecbf79419a1b8d35aab24c80663380bf47ba25e61b7587bb
|
7
|
+
data.tar.gz: 31bad0b8cde415df66ebc11ab00cc664a47495013ceda06336683b76f10bb32f44ad18c34b920cdbc03be9fa16728abd352d26c8c4eedc87318755a8e1718d03
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -1,23 +1,14 @@
|
|
1
|
+
sudo: false
|
2
|
+
cache: bundler
|
1
3
|
language: ruby
|
2
|
-
before_script:
|
3
|
-
- sh -e /etc/init.d/xvfb start
|
4
|
-
- export DISPLAY=:99.0
|
5
|
-
- bundle exec rake test_app
|
6
4
|
env:
|
7
|
-
- DB=
|
8
|
-
- DB=mysql
|
9
|
-
- DB=
|
10
|
-
|
11
|
-
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
irc:
|
16
|
-
use_notice: true
|
17
|
-
skip_join: true
|
18
|
-
channels:
|
19
|
-
- "irc.freenode.org#spree"
|
5
|
+
- SOLIDUS_BRANCH=v1.1 DB=mysql
|
6
|
+
- SOLIDUS_BRANCH=v1.2 DB=mysql
|
7
|
+
- SOLIDUS_BRANCH=v1.3 DB=mysql
|
8
|
+
- SOLIDUS_BRANCH=master DB=mysql
|
9
|
+
- SOLIDUS_BRANCH=v1.1 DB=postgres
|
10
|
+
- SOLIDUS_BRANCH=v1.2 DB=postgres
|
11
|
+
- SOLIDUS_BRANCH=v1.3 DB=postgres
|
12
|
+
- SOLIDUS_BRANCH=master DB=postgres
|
20
13
|
rvm:
|
21
|
-
- 1.
|
22
|
-
- 2.0.0
|
23
|
-
- 2.1.2
|
14
|
+
- 2.1.8
|
data/Gemfile
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
2
|
|
3
|
-
|
3
|
+
branch = ENV.fetch('SOLIDUS_BRANCH', 'master')
|
4
|
+
gem "solidus", github: "solidusio/solidus", branch: branch
|
4
5
|
|
5
6
|
group :development, :test do
|
6
7
|
gem "pry-rails"
|
7
8
|
end
|
8
9
|
|
10
|
+
gem 'pg'
|
11
|
+
gem 'mysql2'
|
12
|
+
|
9
13
|
gemspec
|
@@ -22,7 +22,7 @@ module Spree
|
|
22
22
|
|
23
23
|
def provider
|
24
24
|
provider_instance = super
|
25
|
-
Braintree::Configuration.custom_user_agent = "
|
25
|
+
Braintree::Configuration.custom_user_agent = "solidus_gateway #{SolidusGateway::VERSION}"
|
26
26
|
Braintree::Configuration.environment = preferred_environment.to_sym
|
27
27
|
Braintree::Configuration.merchant_id = preferred_merchant_id
|
28
28
|
Braintree::Configuration.public_key = preferred_public_key
|
data/circle.yml
CHANGED
@@ -0,0 +1,30 @@
|
|
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/routes.rb
CHANGED
data/lib/solidus_gateway.rb
CHANGED
data/lib/spree_gateway/engine.rb
CHANGED
@@ -33,6 +33,19 @@ module SpreeGateway
|
|
33
33
|
app.config.spree.payment_methods << Spree::Gateway::SpreedlyCoreGateway
|
34
34
|
end
|
35
35
|
|
36
|
+
# The application_id is a class attribute on all gateways and is used to
|
37
|
+
# identify the "source" of the transaction. Braintree has asked us to
|
38
|
+
# provide this value to attribute transactions to Solidus; we do not set
|
39
|
+
# it on all gateways or the base gateway as other gateways' behavior with
|
40
|
+
# the value may differ.
|
41
|
+
initializer "spree.gateway.braintree_gateway.application_id" do |app|
|
42
|
+
# NOTE: if the braintree gem is not loaded, calling ActiveMerchant::Billing::BraintreeBlueGateway crashes
|
43
|
+
# therefore, check here to see if Braintree exists before trying to call it
|
44
|
+
if defined?(Braintree)
|
45
|
+
ActiveMerchant::Billing::BraintreeBlueGateway.application_id = "Solidus"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
36
49
|
def self.activate
|
37
50
|
if SpreeGateway::Engine.frontend_available?
|
38
51
|
Rails.application.config.assets.precompile += [
|
data/solidus_gateway.gemspec
CHANGED
@@ -1,9 +1,14 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'solidus_gateway/version'
|
5
|
+
|
1
6
|
# encoding: UTF-8
|
2
7
|
|
3
8
|
Gem::Specification.new do |s|
|
4
9
|
s.platform = Gem::Platform::RUBY
|
5
10
|
s.name = "solidus_gateway"
|
6
|
-
s.version =
|
11
|
+
s.version = SolidusGateway::VERSION
|
7
12
|
s.summary = "Additional Payment Gateways for Solidus"
|
8
13
|
s.description = s.summary
|
9
14
|
s.required_ruby_version = ">= 2.1"
|
@@ -20,6 +25,12 @@ Gem::Specification.new do |s|
|
|
20
25
|
|
21
26
|
s.add_dependency "solidus_core", "~> 1.1"
|
22
27
|
|
28
|
+
# ActiveMerchant v1.58 through v1.59 introduced a breaking change
|
29
|
+
# to the stripe gateway.
|
30
|
+
#
|
31
|
+
# This was resolved in v1.60, but we still need to skip 1.58 & 1.59.
|
32
|
+
s.add_dependency "activemerchant", "~> 1.48", "!= 1.58.0", "!= 1.59.0"
|
33
|
+
|
23
34
|
s.add_development_dependency "braintree", "~> 2.0"
|
24
35
|
s.add_development_dependency "rspec-rails", "~> 3.2"
|
25
36
|
s.add_development_dependency "simplecov"
|
@@ -28,6 +39,6 @@ Gem::Specification.new do |s|
|
|
28
39
|
s.add_development_dependency "coffee-rails"
|
29
40
|
s.add_development_dependency "factory_girl", "~> 4.4"
|
30
41
|
s.add_development_dependency "capybara"
|
31
|
-
s.add_development_dependency "poltergeist", "~> 1.
|
42
|
+
s.add_development_dependency "poltergeist", "~> 1.9"
|
32
43
|
s.add_development_dependency "database_cleaner", "1.2.0"
|
33
44
|
end
|
@@ -2,6 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
RSpec.describe "Stripe checkout", type: :feature do
|
4
4
|
before do
|
5
|
+
FactoryGirl.create(:store)
|
5
6
|
# Set up a zone
|
6
7
|
zone = FactoryGirl.create(:zone)
|
7
8
|
country = FactoryGirl.create(:country)
|
@@ -55,9 +56,23 @@ RSpec.describe "Stripe checkout", type: :feature do
|
|
55
56
|
expect(page).to have_content("Your order has been processed successfully")
|
56
57
|
end
|
57
58
|
|
59
|
+
it "shows an error with a missing credit card number", js: true do
|
60
|
+
fill_in "Expiration", with: "01 / #{Time.now.year + 1}"
|
61
|
+
click_button "Save and Continue"
|
62
|
+
expect(page).to have_content("Could not find payment information")
|
63
|
+
end
|
64
|
+
|
65
|
+
it "shows an error with a missing expiration date", js: true do
|
66
|
+
fill_in "Card Number", with: "4242 4242 4242 4242"
|
67
|
+
click_button "Save and Continue"
|
68
|
+
expect(page).to have_content("Your card's expiration year is invalid.")
|
69
|
+
end
|
70
|
+
|
58
71
|
it "shows an error with an invalid credit card number", js: true do
|
72
|
+
fill_in "Card Number", with: "1111 1111 1111 1111"
|
73
|
+
fill_in "Expiration", with: "01 / #{Time.now.year + 1}"
|
59
74
|
click_button "Save and Continue"
|
60
|
-
expect(page).to have_content("
|
75
|
+
expect(page).to have_content("Your card number is incorrect.")
|
61
76
|
end
|
62
77
|
|
63
78
|
it "shows an error with invalid security fields", js: true do
|
@@ -212,7 +212,7 @@ describe Spree::Gateway::BraintreeGateway do
|
|
212
212
|
result = @gateway.authorize(500, @credit_card)
|
213
213
|
|
214
214
|
expect(result.success?).to be true
|
215
|
-
expect(result.authorization).to
|
215
|
+
expect(result.authorization).to be_present
|
216
216
|
expect(Braintree::Transaction::Status::Authorized).to eq Braintree::Transaction.find(result.authorization).status
|
217
217
|
end
|
218
218
|
|
@@ -223,7 +223,7 @@ describe Spree::Gateway::BraintreeGateway do
|
|
223
223
|
|
224
224
|
@payment.process!
|
225
225
|
expect(@payment.log_entries.size).to eq(1)
|
226
|
-
expect(@payment.response_code).to
|
226
|
+
expect(@payment.response_code).to be_present
|
227
227
|
expect(@payment.state).to eq 'pending'
|
228
228
|
|
229
229
|
transaction = ::Braintree::Transaction.find(@payment.response_code)
|
@@ -293,7 +293,7 @@ describe Spree::Gateway::BraintreeGateway do
|
|
293
293
|
it 'do capture a previous authorization' do
|
294
294
|
@payment.process!
|
295
295
|
expect(@payment.log_entries.size).to eq(1)
|
296
|
-
expect(@payment.response_code).to
|
296
|
+
expect(@payment.response_code).to be_present
|
297
297
|
|
298
298
|
transaction = ::Braintree::Transaction.find(@payment.response_code)
|
299
299
|
expect(transaction.status).to eq Braintree::Transaction::Status::Authorized
|
@@ -326,7 +326,7 @@ describe Spree::Gateway::BraintreeGateway do
|
|
326
326
|
it 'return a success response with an authorization code' do
|
327
327
|
result = @gateway.purchase(500, @credit_card)
|
328
328
|
expect(result.success?).to be true
|
329
|
-
expect(result.authorization).to
|
329
|
+
expect(result.authorization).to be_present
|
330
330
|
expect(Braintree::Transaction::Status::SubmittedForSettlement).to eq Braintree::Transaction.find(result.authorization).status
|
331
331
|
end
|
332
332
|
|
@@ -364,7 +364,7 @@ describe Spree::Gateway::BraintreeGateway do
|
|
364
364
|
@payment.process!
|
365
365
|
|
366
366
|
expect(@payment.log_entries.size).to eq(1)
|
367
|
-
expect(@payment.response_code).to
|
367
|
+
expect(@payment.response_code).to be_present
|
368
368
|
|
369
369
|
transaction = Braintree::Transaction.find(@payment.response_code)
|
370
370
|
expect(transaction.status).to eq Braintree::Transaction::Status::SubmittedForSettlement
|
@@ -390,7 +390,7 @@ describe Spree::Gateway::BraintreeGateway do
|
|
390
390
|
|
391
391
|
# Let's get the payment record associated with the credit
|
392
392
|
@payment = @order.payments.last
|
393
|
-
expect(@payment.response_code).to
|
393
|
+
expect(@payment.response_code).to be_present
|
394
394
|
|
395
395
|
transaction = ::Braintree::Transaction.find(@payment.response_code)
|
396
396
|
expect(transaction.type).to eq Braintree::Transaction::Type::Credit
|
@@ -407,7 +407,7 @@ describe Spree::Gateway::BraintreeGateway do
|
|
407
407
|
@payment.log_entries.size == 0
|
408
408
|
@payment.process! # as done in PaymentsController#create
|
409
409
|
@payment.log_entries.size == 1
|
410
|
-
expect(@payment.response_code).to
|
410
|
+
expect(@payment.response_code).to be_present
|
411
411
|
expect(@payment.state).to eq 'completed'
|
412
412
|
|
413
413
|
transaction = ::Braintree::Transaction.find(@payment.response_code)
|
data/spec/spec_helper.rb
CHANGED
@@ -9,6 +9,10 @@ require "rspec/rails"
|
|
9
9
|
|
10
10
|
require "capybara/rspec"
|
11
11
|
require 'capybara/poltergeist'
|
12
|
+
Capybara.register_driver(:poltergeist) do |app|
|
13
|
+
Capybara::Poltergeist::Driver.new app, timeout: 90
|
14
|
+
end
|
15
|
+
Capybara.javascript_driver = :poltergeist
|
12
16
|
|
13
17
|
require "database_cleaner"
|
14
18
|
require "braintree"
|
@@ -45,6 +49,5 @@ RSpec.configure do |config|
|
|
45
49
|
DatabaseCleaner.clean
|
46
50
|
end
|
47
51
|
|
48
|
-
Capybara.javascript_driver = :poltergeist
|
49
52
|
FactoryGirl.find_definitions
|
50
53
|
end
|
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.0
|
4
|
+
version: 1.1.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: 2016-
|
11
|
+
date: 2016-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: solidus_core
|
@@ -24,6 +24,32 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activemerchant
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.48'
|
34
|
+
- - "!="
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: 1.58.0
|
37
|
+
- - "!="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 1.59.0
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '1.48'
|
47
|
+
- - "!="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 1.58.0
|
50
|
+
- - "!="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 1.59.0
|
27
53
|
- !ruby/object:Gem::Dependency
|
28
54
|
name: braintree
|
29
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,14 +168,14 @@ dependencies:
|
|
142
168
|
requirements:
|
143
169
|
- - "~>"
|
144
170
|
- !ruby/object:Gem::Version
|
145
|
-
version: 1.
|
171
|
+
version: '1.9'
|
146
172
|
type: :development
|
147
173
|
prerelease: false
|
148
174
|
version_requirements: !ruby/object:Gem::Requirement
|
149
175
|
requirements:
|
150
176
|
- - "~>"
|
151
177
|
- !ruby/object:Gem::Version
|
152
|
-
version: 1.
|
178
|
+
version: '1.9'
|
153
179
|
- !ruby/object:Gem::Dependency
|
154
180
|
name: database_cleaner
|
155
181
|
requirement: !ruby/object:Gem::Requirement
|
@@ -208,6 +234,7 @@ files:
|
|
208
234
|
- config/locales/bg.yml
|
209
235
|
- config/locales/de.yml
|
210
236
|
- config/locales/en.yml
|
237
|
+
- config/locales/it.yml
|
211
238
|
- config/locales/sv.yml
|
212
239
|
- config/routes.rb
|
213
240
|
- db/migrate/20111118164631_create_skrill_transactions.rb
|
@@ -223,6 +250,7 @@ files:
|
|
223
250
|
- lib/controllers/frontend/spree/skrill_status_controller.rb
|
224
251
|
- lib/generators/solidus_gateway/install/install_generator.rb
|
225
252
|
- lib/solidus_gateway.rb
|
253
|
+
- lib/solidus_gateway/version.rb
|
226
254
|
- lib/spree_gateway/engine.rb
|
227
255
|
- lib/views/backend/spree/admin/log_entries/_braintree.html.erb
|
228
256
|
- lib/views/backend/spree/admin/log_entries/_stripe.html.erb
|