gestpay 0.0.2
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 +7 -0
- data/.gitignore +24 -0
- data/.rspec +2 -0
- data/.travis.yml +7 -0
- data/Gemfile +17 -0
- data/LICENSE.txt +22 -0
- data/README.md +52 -0
- data/Rakefile +4 -0
- data/gestpay.gemspec +29 -0
- data/lib/gestpay.rb +22 -0
- data/lib/gestpay/configuration.rb +34 -0
- data/lib/gestpay/digest.rb +41 -0
- data/lib/gestpay/error.rb +7 -0
- data/lib/gestpay/error/failed_digest.rb +19 -0
- data/lib/gestpay/error/verify_visa.rb +15 -0
- data/lib/gestpay/gateway.rb +49 -0
- data/lib/gestpay/result.rb +10 -0
- data/lib/gestpay/result/base.rb +25 -0
- data/lib/gestpay/result/decrypt.rb +6 -0
- data/lib/gestpay/result/encrypt.rb +9 -0
- data/lib/gestpay/result/payment.rb +13 -0
- data/lib/gestpay/result/token_request.rb +9 -0
- data/lib/gestpay/version.rb +3 -0
- data/spec/fixtures/gestpay_cassettes/decrypt_ko.yml +224 -0
- data/spec/fixtures/gestpay_cassettes/decrypt_ok.yml +171 -0
- data/spec/fixtures/gestpay_cassettes/encrypt_ko.yml +169 -0
- data/spec/fixtures/gestpay_cassettes/encrypt_ok.yml +170 -0
- data/spec/fixtures/gestpay_cassettes/payment_ko.yml +397 -0
- data/spec/fixtures/gestpay_cassettes/payment_ok.yml +395 -0
- data/spec/fixtures/gestpay_cassettes/payment_token.yml +397 -0
- data/spec/fixtures/gestpay_cassettes/payment_visa.yml +395 -0
- data/spec/fixtures/gestpay_cassettes/request_token_ko.yml +400 -0
- data/spec/fixtures/gestpay_cassettes/request_token_ok.yml +399 -0
- data/spec/lib/gestpay/digest_spec.rb +72 -0
- data/spec/lib/gestpay/gateway_spec.rb +110 -0
- data/spec/spec_helper.rb +30 -0
- metadata +192 -0
@@ -0,0 +1,110 @@
|
|
1
|
+
require (File.expand_path('../../../spec_helper', __FILE__))
|
2
|
+
# For Ruby > 1.9.3, use this instead of require
|
3
|
+
# require_relative '../../spec_helper'
|
4
|
+
|
5
|
+
describe Gestpay::Gateway do
|
6
|
+
|
7
|
+
let(:gateway) { Gestpay::Gateway.new }
|
8
|
+
|
9
|
+
after do
|
10
|
+
VCR.eject_cassette
|
11
|
+
end
|
12
|
+
|
13
|
+
describe '#payment' do
|
14
|
+
context "with an ok data hash" do
|
15
|
+
before { VCR.insert_cassette 'payment_ok', :record => :new_episodes }
|
16
|
+
it "should return stuff" do
|
17
|
+
hash = {
|
18
|
+
:amount => '0.02',
|
19
|
+
:shop_transaction_id => '12',
|
20
|
+
:card_number => '5364000000000987',
|
21
|
+
:expiry_month => '01',
|
22
|
+
:expiry_year => '20',
|
23
|
+
:cvv => "753",
|
24
|
+
:buyer_name => "Test Customer",
|
25
|
+
:buyer_email => "test@example.com",
|
26
|
+
:custom_info => {
|
27
|
+
:user_id => 12,
|
28
|
+
:payment_id => 15
|
29
|
+
}
|
30
|
+
}
|
31
|
+
result = gateway.payment(hash)
|
32
|
+
result.should be_success
|
33
|
+
result.amount.should == 0.02
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
context "with a VISA credit card with Verification" do
|
38
|
+
before { VCR.insert_cassette 'payment_visa', :record => :new_episodes }
|
39
|
+
it "should raise a VerifyVisa error" do
|
40
|
+
hash = {
|
41
|
+
:card_number => '4556541926187165'
|
42
|
+
}
|
43
|
+
result = gateway.payment(hash)
|
44
|
+
result.should be_verify_by_visa
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context "with an invalid credit card" do
|
49
|
+
before { VCR.insert_cassette 'payment_ko', :record => :new_episodes }
|
50
|
+
it "should raise an error" do
|
51
|
+
hash = {
|
52
|
+
:amount => '0.02',
|
53
|
+
:shop_transaction_id => '12',
|
54
|
+
:card_number => '5432123456789012'
|
55
|
+
}
|
56
|
+
result = gateway.payment(hash)
|
57
|
+
result.should_not be_success
|
58
|
+
result.error.should == 'Error 74: Autorizzazione negata'
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
context "with a token" do
|
63
|
+
before { VCR.insert_cassette 'payment_token', :record => :new_episodes }
|
64
|
+
it "should be ok" do
|
65
|
+
hash = {
|
66
|
+
:amount => '0.02',
|
67
|
+
:shop_transaction_id => '12',
|
68
|
+
:token_value => '53QWERTYU0I90987'
|
69
|
+
}
|
70
|
+
result = gateway.payment(hash)
|
71
|
+
result.should be_success
|
72
|
+
result.amount.should == 0.02
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
describe '#request_token' do
|
79
|
+
context "with an ok data hash" do
|
80
|
+
before { VCR.insert_cassette 'request_token_ok', :record => :new_episodes }
|
81
|
+
it "should return a payment token" do
|
82
|
+
hash = {
|
83
|
+
:card_number => '4556541926187165',
|
84
|
+
:expiry_month => '12',
|
85
|
+
:expiry_year => '20',
|
86
|
+
:cvv => "123",
|
87
|
+
}
|
88
|
+
# This returned ok as we didn't verify the card with the false parameter
|
89
|
+
result = gateway.request_token(hash, false)
|
90
|
+
result.token.should == "45OGBX64451Y7165"
|
91
|
+
# result[:info] also returned
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
context "with an invalid credit card" do
|
96
|
+
before { VCR.insert_cassette 'request_token_ko', :record => :new_episodes }
|
97
|
+
it "should raise an error" do
|
98
|
+
hash = {
|
99
|
+
:card_number => '4556541926187165',
|
100
|
+
:expiry_month => '12',
|
101
|
+
:expiry_year => '20',
|
102
|
+
:cvv => "123",
|
103
|
+
}
|
104
|
+
result = gateway.request_token(hash)
|
105
|
+
result.error.should == "Error 405: Autorizzazione negata dai circuiti"
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# This file was generated by the `rspec --init` command. Conventionally, all
|
2
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
3
|
+
# Require this file using `require "spec_helper"` to ensure that it is only
|
4
|
+
# loaded once.
|
5
|
+
#
|
6
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
7
|
+
RSpec.configure do |config|
|
8
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
9
|
+
config.run_all_when_everything_filtered = true
|
10
|
+
config.filter_run :focus
|
11
|
+
|
12
|
+
# Run specs in random order to surface order dependencies. If you find an
|
13
|
+
# order dependency and want to debug it, you can fix the order by providing
|
14
|
+
# the seed, which is printed after each run.
|
15
|
+
# --seed 1234
|
16
|
+
config.order = 'random'
|
17
|
+
end
|
18
|
+
|
19
|
+
require(File.expand_path('../../lib/gestpay', __FILE__))
|
20
|
+
|
21
|
+
require 'pry'
|
22
|
+
require 'rspec/autorun'
|
23
|
+
require 'webmock/rspec'
|
24
|
+
require 'vcr'
|
25
|
+
|
26
|
+
VCR.configure do |config|
|
27
|
+
config.cassette_library_dir = 'spec/fixtures/gestpay_cassettes'
|
28
|
+
config.hook_into :webmock
|
29
|
+
# config.allow_http_connections_when_no_cassette = true
|
30
|
+
end
|
metadata
ADDED
@@ -0,0 +1,192 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: gestpay
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Alessandro Mencarini
|
8
|
+
- Maurizio de Magnis
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-05-29 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: savon
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ~>
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: 2.2.0
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ~>
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 2.2.0
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: activesupport
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ~>
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 3.2.13
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ~>
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 3.2.13
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: bundler
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ~>
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '1.3'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ~>
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '1.3'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: rake
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rspec
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ~>
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 2.13.0
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ~>
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 2.13.0
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: vcr
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ~>
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 2.4.0
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ~>
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: 2.4.0
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: webmock
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ~>
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 1.9.0
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ~>
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: 1.9.0
|
112
|
+
description: GestPay services wrapper
|
113
|
+
email:
|
114
|
+
- a.mencarini@freegoweb.it
|
115
|
+
- maurizio.demagnis@gmail.com
|
116
|
+
executables: []
|
117
|
+
extensions: []
|
118
|
+
extra_rdoc_files: []
|
119
|
+
files:
|
120
|
+
- .gitignore
|
121
|
+
- .rspec
|
122
|
+
- .travis.yml
|
123
|
+
- Gemfile
|
124
|
+
- LICENSE.txt
|
125
|
+
- README.md
|
126
|
+
- Rakefile
|
127
|
+
- gestpay.gemspec
|
128
|
+
- lib/gestpay.rb
|
129
|
+
- lib/gestpay/configuration.rb
|
130
|
+
- lib/gestpay/digest.rb
|
131
|
+
- lib/gestpay/error.rb
|
132
|
+
- lib/gestpay/error/failed_digest.rb
|
133
|
+
- lib/gestpay/error/verify_visa.rb
|
134
|
+
- lib/gestpay/gateway.rb
|
135
|
+
- lib/gestpay/result.rb
|
136
|
+
- lib/gestpay/result/base.rb
|
137
|
+
- lib/gestpay/result/decrypt.rb
|
138
|
+
- lib/gestpay/result/encrypt.rb
|
139
|
+
- lib/gestpay/result/payment.rb
|
140
|
+
- lib/gestpay/result/token_request.rb
|
141
|
+
- lib/gestpay/version.rb
|
142
|
+
- spec/fixtures/gestpay_cassettes/decrypt_ko.yml
|
143
|
+
- spec/fixtures/gestpay_cassettes/decrypt_ok.yml
|
144
|
+
- spec/fixtures/gestpay_cassettes/encrypt_ko.yml
|
145
|
+
- spec/fixtures/gestpay_cassettes/encrypt_ok.yml
|
146
|
+
- spec/fixtures/gestpay_cassettes/payment_ko.yml
|
147
|
+
- spec/fixtures/gestpay_cassettes/payment_ok.yml
|
148
|
+
- spec/fixtures/gestpay_cassettes/payment_token.yml
|
149
|
+
- spec/fixtures/gestpay_cassettes/payment_visa.yml
|
150
|
+
- spec/fixtures/gestpay_cassettes/request_token_ko.yml
|
151
|
+
- spec/fixtures/gestpay_cassettes/request_token_ok.yml
|
152
|
+
- spec/lib/gestpay/digest_spec.rb
|
153
|
+
- spec/lib/gestpay/gateway_spec.rb
|
154
|
+
- spec/spec_helper.rb
|
155
|
+
homepage: http://momitians.github.io/gestpay
|
156
|
+
licenses:
|
157
|
+
- MIT
|
158
|
+
metadata: {}
|
159
|
+
post_install_message:
|
160
|
+
rdoc_options: []
|
161
|
+
require_paths:
|
162
|
+
- lib
|
163
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - '>='
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
168
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - '>='
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '0'
|
173
|
+
requirements: []
|
174
|
+
rubyforge_project:
|
175
|
+
rubygems_version: 2.0.2
|
176
|
+
signing_key:
|
177
|
+
specification_version: 4
|
178
|
+
summary: The gem will help with BancaSella payment webservices
|
179
|
+
test_files:
|
180
|
+
- spec/fixtures/gestpay_cassettes/decrypt_ko.yml
|
181
|
+
- spec/fixtures/gestpay_cassettes/decrypt_ok.yml
|
182
|
+
- spec/fixtures/gestpay_cassettes/encrypt_ko.yml
|
183
|
+
- spec/fixtures/gestpay_cassettes/encrypt_ok.yml
|
184
|
+
- spec/fixtures/gestpay_cassettes/payment_ko.yml
|
185
|
+
- spec/fixtures/gestpay_cassettes/payment_ok.yml
|
186
|
+
- spec/fixtures/gestpay_cassettes/payment_token.yml
|
187
|
+
- spec/fixtures/gestpay_cassettes/payment_visa.yml
|
188
|
+
- spec/fixtures/gestpay_cassettes/request_token_ko.yml
|
189
|
+
- spec/fixtures/gestpay_cassettes/request_token_ok.yml
|
190
|
+
- spec/lib/gestpay/digest_spec.rb
|
191
|
+
- spec/lib/gestpay/gateway_spec.rb
|
192
|
+
- spec/spec_helper.rb
|