activemerchant_paybox_direct_plus 0.2.0 → 1.0.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: cdcc26b41a91604e959f17e90ba6cb05e4fed471
4
+ data.tar.gz: 2ccd755c29799465173fd1165064860e25f2d19d
5
+ SHA512:
6
+ metadata.gz: e1e5431f39f67ffa4e339adee6dc8502c80fbe80fd27c65c95cefc3d2b1b8001f94651ca9d61d0c3fba2d4e967b8abede3878fb68288ba9d7563827990d2505b
7
+ data.tar.gz: ac6e94a791e833bfc8b37b79d9e7273b1c7fe63a1231bdee943cd90bd30587ed8b2662a5867e0165ebc0e8a707576ad7487d975d4cf548d38d3cef272339c190
data/Gemfile CHANGED
@@ -1,18 +1,3 @@
1
- source "http://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
1
+ source 'https://rubygems.org'
5
2
 
6
- # Add dependencies to develop your gem here.
7
- # Include everything needed to run rake, tests, features, etc.
8
- group :development do
9
- gem "activemerchant", "~> 1.10"
10
- gem "shoulda", ">= 0"
11
- gem "bundler"
12
- gem "jeweler"
13
- gem "simplecov"
14
- gem 'money'
15
- gem 'mocha'
16
- gem 'activesupport'
17
- gem 'actionpack', ">=3.0"
18
- end
3
+ gemspec
@@ -1,90 +1,47 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ activemerchant_paybox_direct_plus (1.0.0)
5
+ activemerchant (~> 1)
6
+
1
7
  GEM
2
- remote: http://rubygems.org/
8
+ remote: https://rubygems.org/
3
9
  specs:
4
- actionpack (3.2.12)
5
- activemodel (= 3.2.12)
6
- activesupport (= 3.2.12)
7
- builder (~> 3.0.0)
8
- erubis (~> 2.7.0)
9
- journey (~> 1.0.4)
10
- rack (~> 1.4.5)
11
- rack-cache (~> 1.2)
12
- rack-test (~> 0.6.1)
13
- sprockets (~> 2.2.1)
14
- active_utils (1.0.5)
15
- activesupport (>= 2.3.11)
16
- i18n
17
- activemerchant (1.32.1)
18
- active_utils (>= 1.0.2)
19
- activesupport (>= 2.3.14)
20
- builder (>= 2.0.0)
21
- i18n
22
- json (>= 1.5.1)
23
- money
24
- nokogiri
25
- activemodel (3.2.12)
26
- activesupport (= 3.2.12)
27
- builder (~> 3.0.0)
28
- activesupport (3.2.12)
29
- i18n (~> 0.6)
30
- multi_json (~> 1.0)
31
- bourne (1.4.0)
32
- mocha (~> 0.13.2)
33
- builder (3.0.4)
34
- erubis (2.7.0)
35
- git (1.2.5)
36
- hike (1.2.2)
37
- i18n (0.6.4)
38
- jeweler (1.8.4)
39
- bundler (~> 1.0)
40
- git (>= 1.2.5)
41
- rake
42
- rdoc
43
- journey (1.0.4)
44
- json (1.7.7)
45
- metaclass (0.0.1)
46
- mocha (0.13.3)
47
- metaclass (~> 0.0.1)
48
- money (5.1.1)
49
- i18n (~> 0.6.0)
50
- multi_json (1.7.3)
51
- nokogiri (1.5.9)
52
- rack (1.4.5)
53
- rack-cache (1.2)
54
- rack (>= 0.4)
55
- rack-test (0.6.2)
56
- rack (>= 1.0)
57
- rake (10.0.4)
58
- rdoc (4.0.1)
59
- json (~> 1.4)
60
- shoulda (3.4.0)
61
- shoulda-context (~> 1.0, >= 1.0.1)
62
- shoulda-matchers (~> 1.0, >= 1.4.1)
63
- shoulda-context (1.1.1)
64
- shoulda-matchers (1.5.6)
65
- activesupport (>= 3.0.0)
66
- bourne (~> 1.3)
67
- simplecov (0.7.1)
68
- multi_json (~> 1.0)
69
- simplecov-html (~> 0.7.1)
70
- simplecov-html (0.7.1)
71
- sprockets (2.2.2)
72
- hike (~> 1.2)
73
- multi_json (~> 1.0)
74
- rack (~> 1.0)
75
- tilt (~> 1.1, != 1.3.0)
76
- tilt (1.4.0)
10
+ activemerchant (1.56.0)
11
+ activesupport (>= 3.2.14, < 5.1)
12
+ builder (>= 2.1.2, < 4.0.0)
13
+ i18n (>= 0.6.9)
14
+ nokogiri (~> 1.4)
15
+ activesupport (4.2.5.1)
16
+ i18n (~> 0.7)
17
+ json (~> 1.7, >= 1.7.7)
18
+ minitest (~> 5.1)
19
+ thread_safe (~> 0.3, >= 0.3.4)
20
+ tzinfo (~> 1.1)
21
+ builder (3.2.2)
22
+ docile (1.1.5)
23
+ i18n (0.7.0)
24
+ json (1.8.3)
25
+ mini_portile2 (2.0.0)
26
+ minitest (5.8.4)
27
+ nokogiri (1.6.7.2)
28
+ mini_portile2 (~> 2.0.0.rc2)
29
+ rake (10.5.0)
30
+ simplecov (0.11.1)
31
+ docile (~> 1.1.0)
32
+ json (~> 1.8)
33
+ simplecov-html (~> 0.10.0)
34
+ simplecov-html (0.10.0)
35
+ thread_safe (0.3.5)
36
+ tzinfo (1.2.2)
37
+ thread_safe (~> 0.1)
77
38
 
78
39
  PLATFORMS
79
40
  ruby
80
41
 
81
42
  DEPENDENCIES
82
- actionpack (>= 3.0)
83
- activemerchant (~> 1.10)
84
- activesupport
85
- bundler
86
- jeweler
87
- mocha
88
- money
89
- shoulda
43
+ activemerchant_paybox_direct_plus!
44
+ bundler (~> 1.7)
45
+ minitest
46
+ rake (~> 10)
90
47
  simplecov
@@ -0,0 +1,106 @@
1
+ ## Paybox Direct Plus
2
+
3
+ This is a implementation of Paybox Direct Plus for ActiveMerchant.
4
+ Paybox Direct Plus is a French payment solution allowing recurring payments, subscriptions, etc.
5
+
6
+ ### Setup the gateway
7
+
8
+ ```ruby
9
+ gateway = ActiveMerchant::Billing::PayboxDirectPlusGateway.new(
10
+ login: '199988899',
11
+ password: '1999888I'
12
+ )
13
+ ```
14
+ ### Subscribed user functionalities
15
+
16
+ Create a user profile:
17
+
18
+ ```ruby
19
+ response = gateway.subscriber_create(amount, active_merchant_credit_card, user_reference: 'YOUR_USER_REFERENCE')
20
+ response.success? # check if called succeeded
21
+ response.authorization # authorization number, to be used for capture / void / refund
22
+ response.params['porteur'] # credit card reference, to be saved to use with the user reference for future purchases
23
+ ```
24
+
25
+ When creating a user profile, Paybox will do an authorization on the credit card.
26
+ Paybox recommends that you give the same amount than your transaction so you can simple capture it later.
27
+
28
+ If you don't know yet how much you'll have to charge the client, you can also send an amount of 0.
29
+
30
+ After your client is subscribed, you will be able to use several other operations:
31
+
32
+ ```ruby
33
+ credit_card = ActiveMerchant::Billing::CreditCard.new(
34
+ last_name: client_cc.last_name,
35
+ first_name: client_cc.first_name,
36
+ verification_value: client_cc.verification_value,
37
+ year: client_cc.expires_on.year,
38
+ month: client_cc.expires_on.month
39
+ ) # notice the absence of credit card number here
40
+
41
+ purchase = gateway.subscriber_purchase(
42
+ amount, credit_card,
43
+ user_reference: 'YOUR_USER_REFERENCE',
44
+ order_id: 'ORDER_REFERENCE',
45
+ credit_card_reference: subscriber_create_response.params['porteur']
46
+ ) # authorize + capture in one call
47
+
48
+ authorize = gateway.subscriber_authorize(
49
+ amount, credit_card,
50
+ user_reference: 'YOUR_USER_REFERENCE',
51
+ order_id: 'ORDER_REFERENCE',
52
+ credit_card_reference: subscriber_create_response.params['porteur']
53
+ )
54
+
55
+ capture = gateway.subscriber_capture(
56
+ amount, authorize.authorization,
57
+ user_reference: 'YOUR_USER_REFERENCE',
58
+ order_id: 'ORDER_REFERENCE'
59
+ )
60
+
61
+ refund = gateway.subscriber_refund(
62
+ amount, authorize.authorization,
63
+ user_reference: 'YOUR_USER_REFERENCE',
64
+ order_id: 'ORDER_REFERENCE'
65
+ )
66
+
67
+ void = gateway.subscriber_void(
68
+ amount, authorize.authorization,
69
+ user_reference: 'YOUR_USER_REFERENCE',
70
+ order_id: 'ORDER_REFERENCE'
71
+ )
72
+ ```
73
+
74
+ Using the `subscriber_purchase` method will do an authorization and a capture. Some banks requires some delay between 2
75
+ authorizations on the same card. So, if you register a profile then call `subscriber_purchase` just after instead of
76
+ `subscriber_capture`, it may fail with some banks.
77
+
78
+ ### Non subscribed user functionalities
79
+
80
+ The gateway inherits [Donal Piret's Paybox Direct Gateway](https://github.com/activemerchant/active_merchant/blob/master/lib/active_merchant/billing/gateways/paybox_direct.rb),
81
+ so all methods of that gateway are accessible.
82
+
83
+ ### Compatibility
84
+
85
+ For Ruby 1.8, use version 0.1.0
86
+
87
+ For Ruby 1.9, use version 0.2.0
88
+
89
+ For Ruby 2.0+, use latest version ~>1.0
90
+
91
+ ### Tests
92
+
93
+ Remote integrations tests using the Paybox tests logins and server are available and should always pass.
94
+
95
+ ```
96
+ bundle install
97
+ bundle exec rake test
98
+ ```
99
+
100
+ ### Credits
101
+
102
+ The base of all this work is Donald Piret's great work on Paybox Direct Gateway implementation.
103
+
104
+ ### Contact
105
+
106
+ Please don't hesitate to contact me if you have any question, any suggestion or if you found any bug.
data/Rakefile CHANGED
@@ -1,64 +1,20 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
8
- exit e.status_code
9
- end
10
- require 'rake'
11
-
12
- require 'jeweler'
13
- Jeweler::Tasks.new do |gem|
14
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
15
- gem.name = "activemerchant_paybox_direct_plus"
16
- gem.homepage = "https://github.com/arambert/Paybox-Direct-Plus"
17
- gem.license = "MIT"
18
- gem.summary = "Paybox Direct Plus for ActiveMerchant"
19
- gem.description = "Paybox Direct Plus ActiveMerchant Billing Gateway implementation"
20
- gem.email = "nospam@nospam.com"
21
- gem.authors = ["donaldpiret", "arambert", "slainer68"]
22
- # Include your dependencies below. Runtime dependencies are required when using your gem,
23
- # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
24
- # gem.add_runtime_dependency 'jabber4r', '> 0.1'
25
- # gem.add_development_dependency 'rspec', '> 1.2.3'
26
- gem.add_runtime_dependency 'activemerchant', '~> 1.10'
27
- end
28
- Jeweler::RubygemsDotOrgTasks.new
29
-
1
+ require 'bundler/gem_tasks'
30
2
  require 'rake/testtask'
31
3
 
32
- namespace :test do
33
- Rake::TestTask.new(:test) do |test|
34
- test.libs << 'lib' << 'test'
35
- test.pattern = 'test/**/test_*.rb'
36
- test.verbose = true
37
- end
38
-
39
- Rake::TestTask.new(:units) do |t|
40
- t.pattern = 'test/unit/**/*_test.rb'
41
- t.ruby_opts << '-rubygems'
42
- t.libs << 'test'
43
- t.verbose = true
44
- end
45
-
46
- Rake::TestTask.new(:remote) do |t|
47
- t.pattern = 'test/remote/**/*_test.rb'
48
- t.ruby_opts << '-rubygems'
49
- t.libs << 'test'
50
- t.verbose = true
51
- end
4
+ Rake::TestTask.new(:test) do |t|
5
+ t.libs << 'test'
6
+ t.pattern = 'test/**/*_test.rb'
7
+ t.verbose = true
52
8
  end
53
9
 
54
- task :default => :test
10
+ task default: :test
55
11
 
56
12
  require 'rdoc/task'
57
13
  Rake::RDocTask.new do |rdoc|
58
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
14
+ version = ActivemerchantPayboxDirectPlus::VERSION
59
15
 
60
16
  rdoc.rdoc_dir = 'rdoc'
61
- rdoc.title = "testyop #{version}"
17
+ rdoc.title = "ActiveMerchant PayboxDirectPlusGateway #{version}"
62
18
  rdoc.rdoc_files.include('README*')
63
19
  rdoc.rdoc_files.include('lib/**/*.rb')
64
20
  end
@@ -1,77 +1,41 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
1
+ lib = File.expand_path('..', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'lib/version'
5
4
 
6
5
  Gem::Specification.new do |s|
7
- s.name = "activemerchant_paybox_direct_plus"
8
- s.version = "0.2.0"
6
+ s.name = 'activemerchant_paybox_direct_plus'
7
+ s.version = ActivemerchantPayboxDirectPlus::VERSION
8
+
9
+ s.description = 'Paybox Direct Plus ActiveMerchant Billing Gateway implementation'
10
+ s.summary = 'Paybox Direct Plus for ActiveMerchant'
11
+
12
+ s.authors = %w(donaldpiret arambert slainer68 TiteiKo)
13
+ s.email = 'nospam@nospam.com'
9
14
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["donaldpiret", "arambert", "slainer68"]
12
- s.date = "2013-05-06"
13
- s.description = "Paybox Direct Plus ActiveMerchant Billing Gateway implementation"
14
- s.email = "nospam@nospam.com"
15
15
  s.extra_rdoc_files = [
16
- "LICENSE.txt",
17
- "README.markdown"
16
+ 'LICENSE.txt',
17
+ 'README.md'
18
18
  ]
19
19
  s.files = [
20
- "Gemfile",
21
- "Gemfile.lock",
22
- "LICENSE.txt",
23
- "README.markdown",
24
- "Rakefile",
25
- "VERSION",
26
- "activemerchant_paybox_direct_plus.gemspec",
27
- "lib/activemerchant_paybox_direct_plus.rb",
28
- "test/fixtures.yml",
29
- "test/remote/gateways/remote_paybox_direct_plus_test.rb",
30
- "test/test_helper.rb"
20
+ 'Gemfile',
21
+ 'Gemfile.lock',
22
+ 'LICENSE.txt',
23
+ 'README.md',
24
+ 'Rakefile',
25
+ 'activemerchant_paybox_direct_plus.gemspec',
26
+ 'lib/activemerchant_paybox_direct_plus.rb',
27
+ 'test/remote/gateways/remote_paybox_direct_plus_test.rb',
28
+ 'test/test_helper.rb'
31
29
  ]
32
- s.homepage = "https://github.com/arambert/Paybox-Direct-Plus"
33
- s.licenses = ["MIT"]
34
- s.require_paths = ["lib"]
35
- s.rubygems_version = "1.8.15"
36
- s.summary = "Paybox Direct Plus for ActiveMerchant"
37
30
 
38
- if s.respond_to? :specification_version then
39
- s.specification_version = 3
31
+ s.homepage = 'https://github.com/arambert/Paybox-Direct-Plus'
32
+ s.licenses = ['MIT']
33
+ s.require_paths = ['lib']
40
34
 
41
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
42
- s.add_development_dependency(%q<activemerchant>, ["~> 1.10"])
43
- s.add_development_dependency(%q<shoulda>, [">= 0"])
44
- s.add_development_dependency(%q<bundler>, [">= 0"])
45
- s.add_development_dependency(%q<jeweler>, [">= 0"])
46
- s.add_development_dependency(%q<simplecov>, [">= 0"])
47
- s.add_development_dependency(%q<money>, [">= 0"])
48
- s.add_development_dependency(%q<mocha>, [">= 0"])
49
- s.add_development_dependency(%q<activesupport>, [">= 0"])
50
- s.add_development_dependency(%q<actionpack>, [">= 3.0"])
51
- s.add_runtime_dependency(%q<activemerchant>, ["~> 1.10"])
52
- else
53
- s.add_dependency(%q<activemerchant>, ["~> 1.10"])
54
- s.add_dependency(%q<shoulda>, [">= 0"])
55
- s.add_dependency(%q<bundler>, [">= 0"])
56
- s.add_dependency(%q<jeweler>, [">= 0"])
57
- s.add_dependency(%q<simplecov>, [">= 0"])
58
- s.add_dependency(%q<money>, [">= 0"])
59
- s.add_dependency(%q<mocha>, [">= 0"])
60
- s.add_dependency(%q<activesupport>, [">= 0"])
61
- s.add_dependency(%q<actionpack>, [">= 3.0"])
62
- s.add_dependency(%q<activemerchant>, ["~> 1.10"])
63
- end
64
- else
65
- s.add_dependency(%q<activemerchant>, ["~> 1.10"])
66
- s.add_dependency(%q<shoulda>, [">= 0"])
67
- s.add_dependency(%q<bundler>, [">= 0"])
68
- s.add_dependency(%q<jeweler>, [">= 0"])
69
- s.add_dependency(%q<simplecov>, [">= 0"])
70
- s.add_dependency(%q<money>, [">= 0"])
71
- s.add_dependency(%q<mocha>, [">= 0"])
72
- s.add_dependency(%q<activesupport>, [">= 0"])
73
- s.add_dependency(%q<actionpack>, [">= 3.0"])
74
- s.add_dependency(%q<activemerchant>, ["~> 1.10"])
75
- end
76
- end
35
+ s.add_dependency 'activemerchant', '~> 1'
77
36
 
37
+ s.add_development_dependency 'minitest', '>= 0'
38
+ s.add_development_dependency 'simplecov', '>= 0'
39
+ s.add_development_dependency 'bundler', '~> 1.7'
40
+ s.add_development_dependency 'rake', '~> 10'
41
+ end