solidus_gateway 1.0.1 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|