cardconnect 1.0.0 → 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/.codeclimate.yml +11 -0
- data/.rubocop.yml +10 -0
- data/.travis.yml +7 -0
- data/README.md +2 -0
- data/Rakefile +70 -42
- data/cardconnect.gemspec +8 -8
- data/lib/cardconnect.rb +1 -4
- data/lib/cardconnect/configuration.rb +0 -1
- data/lib/cardconnect/connection.rb +12 -16
- data/lib/cardconnect/error.rb +1 -1
- data/lib/cardconnect/services/authorization/authorization.rb +1 -3
- data/lib/cardconnect/services/authorization/authorization_request.rb +6 -5
- data/lib/cardconnect/services/authorization/authorization_response.rb +7 -7
- data/lib/cardconnect/services/capture/capture.rb +0 -2
- data/lib/cardconnect/services/capture/capture_request.rb +4 -5
- data/lib/cardconnect/services/capture/capture_response.rb +3 -4
- data/lib/cardconnect/services/deposit/deposit.rb +1 -3
- data/lib/cardconnect/services/deposit/deposit_request.rb +8 -11
- data/lib/cardconnect/services/deposit/deposit_response.rb +4 -5
- data/lib/cardconnect/services/inquire/inquire.rb +0 -2
- data/lib/cardconnect/services/inquire/inquire_request.rb +3 -4
- data/lib/cardconnect/services/inquire/inquire_response.rb +3 -4
- data/lib/cardconnect/services/refund/refund.rb +1 -2
- data/lib/cardconnect/services/refund/refund_request.rb +5 -6
- data/lib/cardconnect/services/refund/refund_response.rb +7 -7
- data/lib/cardconnect/services/service_endpoint.rb +10 -14
- data/lib/cardconnect/services/settlement_status/settlement_status.rb +0 -2
- data/lib/cardconnect/services/settlement_status/settlement_status_request.rb +8 -11
- data/lib/cardconnect/services/settlement_status/settlement_status_response.rb +4 -5
- data/lib/cardconnect/services/void/void.rb +1 -2
- data/lib/cardconnect/services/void/void_request.rb +5 -6
- data/lib/cardconnect/services/void/void_response.rb +8 -7
- data/lib/cardconnect/utils.rb +0 -2
- data/lib/cardconnect/version.rb +1 -1
- data/test/api_request_stubs.rb +56 -52
- data/test/api_response_stubs.rb +87 -92
- data/test/cardconnect/configuration_test.rb +0 -1
- data/test/cardconnect/connection_test.rb +1 -1
- data/test/cardconnect/services/authorization/authorization_request_test.rb +44 -27
- data/test/cardconnect/services/authorization/authorization_response_test.rb +24 -18
- data/test/cardconnect/services/authorization/authorization_test.rb +1 -4
- data/test/cardconnect/services/capture/capture_request_test.rb +8 -8
- data/test/cardconnect/services/capture/capture_response_test.rb +7 -7
- data/test/cardconnect/services/capture/capture_test.rb +1 -3
- data/test/cardconnect/services/deposit/deposit_request_test.rb +9 -9
- data/test/cardconnect/services/deposit/deposit_response_test.rb +17 -15
- data/test/cardconnect/services/deposit/deposit_test.rb +4 -4
- data/test/cardconnect/services/inquire/inquire_request_test.rb +3 -3
- data/test/cardconnect/services/inquire/inquire_response_test.rb +12 -12
- data/test/cardconnect/services/inquire/inquire_test.rb +5 -5
- data/test/cardconnect/services/refund/refund_request_test.rb +3 -3
- data/test/cardconnect/services/refund/refund_response_test.rb +15 -13
- data/test/cardconnect/services/refund/refund_test.rb +1 -2
- data/test/cardconnect/services/settlement_status/settlement_status_request_test.rb +12 -11
- data/test/cardconnect/services/settlement_status/settlement_status_response_test.rb +9 -8
- data/test/cardconnect/services/settlement_status/settlement_status_test.rb +4 -4
- data/test/cardconnect/services/void/void_request_test.rb +3 -3
- data/test/cardconnect/services/void/void_response_test.rb +16 -14
- data/test/cardconnect/services/void/void_test.rb +1 -2
- data/test/cardconnect_test.rb +0 -1
- data/test/test_helper.rb +15 -13
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9cdcd8db1cec80bc8985ed0cb3a25e7bf3eb9751
|
4
|
+
data.tar.gz: 321b5a61678fa64c20785b23cafac3a4ef587bbe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 293887a01cfce95fde55de4495e2f2670dbec81aa3bd2af6a9d639d05b5946ca25082c2ce8163b976fa6372bfd3423f7031be48dd9d07d8a1f46a8ecf4496a4b
|
7
|
+
data.tar.gz: 46b5f0873300fb5aabe005e584356caf510938c7ed4d98d821b1642908b5465c97e1ea37f382c6a7df193ac2c23b7986f52adf0a466bfb5ffaaf71e47c55dfc9
|
data/.codeclimate.yml
ADDED
data/.rubocop.yml
ADDED
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
CardConnect API Ruby Wrapper
|
4
4
|
|
5
5
|
[](http://badge.fury.io/rb/cardconnect)
|
6
|
+
[](https://codeclimate.com/github/mobilecause/cardconnect)
|
7
|
+
[](https://travis-ci.org/mobilecause/cardconnect)
|
6
8
|
|
7
9
|
## Installation
|
8
10
|
|
data/Rakefile
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
-
require
|
2
|
-
|
1
|
+
require 'bundler/gem_tasks'
|
3
2
|
require 'rake/testtask'
|
3
|
+
require 'cardconnect'
|
4
|
+
|
5
|
+
task default: [:test]
|
4
6
|
|
5
7
|
Rake::TestTask.new do |t|
|
6
8
|
t.libs << 'test'
|
7
|
-
t.pattern =
|
9
|
+
t.pattern = 'test/**/*_test.rb'
|
8
10
|
end
|
9
11
|
|
10
12
|
namespace :cardconnect do
|
11
|
-
require 'cardconnect'
|
12
|
-
|
13
13
|
def cardconnect_configure(args)
|
14
14
|
CardConnect.configure do |config|
|
15
15
|
config.merchant_id = args.merchant_id
|
@@ -19,28 +19,57 @@ namespace :cardconnect do
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
desc
|
23
|
-
task :ping, [:merchant_id, :api_username, :api_password, :api_endpoint] do |
|
22
|
+
desc 'Ping the API Server'
|
23
|
+
task :ping, [:merchant_id, :api_username, :api_password, :api_endpoint] do |_, args|
|
24
24
|
cardconnect_configure(args)
|
25
25
|
|
26
26
|
response = CardConnect::Connection.new.ping_server
|
27
27
|
puts response.body
|
28
28
|
end
|
29
29
|
|
30
|
-
desc
|
31
|
-
task :authorize, [:
|
30
|
+
desc 'Simulate an Authorization request'
|
31
|
+
task :authorize, [:merchant_id, :api_username, :api_password, :api_endpoint] do |_, args|
|
32
32
|
cardconnect_configure(args)
|
33
33
|
|
34
34
|
auth_params = {
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
35
|
+
'account' => '4111111111111111',
|
36
|
+
'accttype' => 'VISA',
|
37
|
+
'expiry' => '1220',
|
38
|
+
'amount' => '1000',
|
39
|
+
'currency' => 'USD',
|
40
|
+
'tokenize' => 'Y',
|
41
|
+
'profile' => 'Y',
|
42
|
+
'name' => 'Bob Johnson',
|
43
|
+
'capture' => 'N'
|
41
44
|
}
|
42
45
|
|
43
|
-
|
46
|
+
auth = CardConnect::Service::Authorization.new
|
47
|
+
auth.build_request(auth_params)
|
48
|
+
|
49
|
+
if auth.request.valid?
|
50
|
+
response = auth.submit
|
51
|
+
puts response.body
|
52
|
+
else
|
53
|
+
puts auth.request.errors
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
desc 'Simulate an Authorization Capture request'
|
58
|
+
task :auth_capture, [:merchant_id, :api_username, :api_password, :api_endpoint] do |_, args|
|
59
|
+
cardconnect_configure(args)
|
60
|
+
|
61
|
+
auth_params = {
|
62
|
+
'account' => '4111111111111111',
|
63
|
+
'accttype' => 'VISA',
|
64
|
+
'expiry' => '1220',
|
65
|
+
'amount' => '1000',
|
66
|
+
'currency' => 'USD',
|
67
|
+
'tokenize' => 'Y',
|
68
|
+
'profile' => 'Y',
|
69
|
+
'name' => 'Bob Johnson',
|
70
|
+
'capture' => 'Y',
|
71
|
+
'ponumber' => '1234'
|
72
|
+
}
|
44
73
|
|
45
74
|
auth = CardConnect::Service::Authorization.new
|
46
75
|
auth.build_request(auth_params)
|
@@ -53,13 +82,13 @@ namespace :cardconnect do
|
|
53
82
|
end
|
54
83
|
end
|
55
84
|
|
56
|
-
desc
|
57
|
-
task :capture, [:retref, :merchant_id, :api_username, :api_password, :api_endpoint] do |
|
85
|
+
desc 'Simulate a Capture request'
|
86
|
+
task :capture, [:retref, :merchant_id, :api_username, :api_password, :api_endpoint] do |_, args|
|
58
87
|
cardconnect_configure(args)
|
59
88
|
|
60
89
|
capture_params = {
|
61
|
-
|
62
|
-
|
90
|
+
'merchid' => CardConnect.configuration.merchant_id,
|
91
|
+
'retref' => args.retref
|
63
92
|
}
|
64
93
|
|
65
94
|
capture = CardConnect::Service::Capture.new
|
@@ -73,13 +102,13 @@ namespace :cardconnect do
|
|
73
102
|
end
|
74
103
|
end
|
75
104
|
|
76
|
-
desc
|
77
|
-
task :void, [:retref, :merchant_id, :api_username, :api_password, :api_endpoint] do |
|
105
|
+
desc 'Simulate a Void request'
|
106
|
+
task :void, [:retref, :merchant_id, :api_username, :api_password, :api_endpoint] do |_, args|
|
78
107
|
cardconnect_configure(args)
|
79
108
|
|
80
109
|
void_params = {
|
81
|
-
|
82
|
-
|
110
|
+
'merchid' => CardConnect.configuration.merchant_id,
|
111
|
+
'retref' => args[:retref]
|
83
112
|
}
|
84
113
|
|
85
114
|
void = CardConnect::Service::Void.new
|
@@ -93,13 +122,13 @@ namespace :cardconnect do
|
|
93
122
|
end
|
94
123
|
end
|
95
124
|
|
96
|
-
desc
|
97
|
-
task :refund, [:retref, :merchant_id, :api_username, :api_password, :api_endpoint] do |
|
125
|
+
desc 'Simulate a Refund request'
|
126
|
+
task :refund, [:retref, :merchant_id, :api_username, :api_password, :api_endpoint] do |_, args|
|
98
127
|
cardconnect_configure(args)
|
99
128
|
|
100
129
|
refund_params = {
|
101
|
-
|
102
|
-
|
130
|
+
'merchid' => CardConnect.configuration.merchant_id,
|
131
|
+
'retref' => args[:retref]
|
103
132
|
}
|
104
133
|
|
105
134
|
refund = CardConnect::Service::Refund.new
|
@@ -113,13 +142,13 @@ namespace :cardconnect do
|
|
113
142
|
end
|
114
143
|
end
|
115
144
|
|
116
|
-
desc
|
117
|
-
task :inquire, [:retref, :merchant_id, :api_username, :api_password, :api_endpoint] do |
|
145
|
+
desc 'Simulate an Inquire request'
|
146
|
+
task :inquire, [:retref, :merchant_id, :api_username, :api_password, :api_endpoint] do |_, args|
|
118
147
|
cardconnect_configure(args)
|
119
148
|
|
120
149
|
inquire_params = {
|
121
|
-
|
122
|
-
|
150
|
+
'merchid' => CardConnect.configuration.merchant_id,
|
151
|
+
'retref' => args[:retref]
|
123
152
|
}
|
124
153
|
|
125
154
|
inquire = CardConnect::Service::Inquire.new
|
@@ -133,14 +162,14 @@ namespace :cardconnect do
|
|
133
162
|
end
|
134
163
|
end
|
135
164
|
|
136
|
-
desc
|
137
|
-
task :settle_status, [:date, :merchant_id, :api_username, :api_password, :api_endpoint] do |
|
165
|
+
desc 'Simulate a Settlement Status request'
|
166
|
+
task :settle_status, [:date, :merchant_id, :api_username, :api_password, :api_endpoint] do |_, args|
|
138
167
|
# Date format is MMDD
|
139
168
|
cardconnect_configure(args)
|
140
169
|
|
141
170
|
settle_params = {
|
142
|
-
|
143
|
-
|
171
|
+
'merchid' => CardConnect.configuration.merchant_id,
|
172
|
+
'date' => args[:date]
|
144
173
|
}
|
145
174
|
|
146
175
|
status = CardConnect::Service::SettlementStatus.new
|
@@ -154,14 +183,14 @@ namespace :cardconnect do
|
|
154
183
|
end
|
155
184
|
end
|
156
185
|
|
157
|
-
desc
|
158
|
-
task :deposit, [:date, :merchant_id, :api_username, :api_password, :api_endpoint] do |
|
186
|
+
desc 'Simulate a Deposit request'
|
187
|
+
task :deposit, [:date, :merchant_id, :api_username, :api_password, :api_endpoint] do |_, args|
|
159
188
|
# Date format is MMDD
|
160
189
|
cardconnect_configure(args)
|
161
190
|
|
162
191
|
deposit_params = {
|
163
|
-
|
164
|
-
|
192
|
+
'merchid' => CardConnect.configuration.merchant_id,
|
193
|
+
'date' => args[:date]
|
165
194
|
}
|
166
195
|
|
167
196
|
deposit = CardConnect::Service::Deposit.new
|
@@ -174,5 +203,4 @@ namespace :cardconnect do
|
|
174
203
|
puts deposit.request.errors
|
175
204
|
end
|
176
205
|
end
|
177
|
-
|
178
|
-
end
|
206
|
+
end
|
data/cardconnect.gemspec
CHANGED
@@ -4,19 +4,19 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'cardconnect/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'cardconnect'
|
8
8
|
spec.version = CardConnect::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
11
|
-
spec.summary =
|
12
|
-
spec.description =
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
9
|
+
spec.authors = ['Tim McKenzie', 'Prashant Mokkarala', 'Jason Taylor']
|
10
|
+
spec.email = ['tim@mobilecause.com', 'prashant@mobilecause.com', 'j.m.taylor1@gmail.com']
|
11
|
+
spec.summary = 'CardConnect API Ruby Wrapper'
|
12
|
+
spec.description = 'CardConnect API Ruby Wrapper'
|
13
|
+
spec.homepage = 'http://developer.cardconnect.com/'
|
14
|
+
spec.license = 'MIT'
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
-
spec.require_paths = [
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
21
|
spec.add_development_dependency 'bundler', '~> 1.0'
|
22
22
|
|
data/lib/cardconnect.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require 'cardconnect/version'
|
2
2
|
|
3
3
|
require 'cardconnect/utils'
|
4
4
|
require 'cardconnect/error'
|
@@ -30,9 +30,7 @@ require 'cardconnect/services/deposit/deposit'
|
|
30
30
|
require 'cardconnect/services/void/void'
|
31
31
|
|
32
32
|
module CardConnect
|
33
|
-
|
34
33
|
class << self
|
35
|
-
|
36
34
|
def configure
|
37
35
|
yield(configuration)
|
38
36
|
end
|
@@ -44,6 +42,5 @@ module CardConnect
|
|
44
42
|
def connection
|
45
43
|
@connection ||= Connection.new.connection
|
46
44
|
end
|
47
|
-
|
48
45
|
end
|
49
46
|
end
|
@@ -3,33 +3,29 @@ require 'faraday_middleware'
|
|
3
3
|
|
4
4
|
module CardConnect
|
5
5
|
class Connection
|
6
|
-
|
7
6
|
def initialize
|
8
7
|
@config = CardConnect.configuration
|
9
|
-
@headers = {user_agent: "CardConnectRubyGem/#{CardConnect::VERSION}"}
|
8
|
+
@headers = { user_agent: "CardConnectRubyGem/#{CardConnect::VERSION}" }
|
10
9
|
end
|
11
10
|
|
12
11
|
def connection
|
13
|
-
@connection ||= Faraday.new(url: @config.endpoint, headers: @headers, ssl: {verify: false}) do |
|
14
|
-
|
15
|
-
|
12
|
+
@connection ||= Faraday.new(url: @config.endpoint, headers: @headers, ssl: { verify: false }) do |f|
|
13
|
+
f.request :basic_auth, @config.api_username, @config.api_password
|
14
|
+
f.request :json
|
16
15
|
|
17
|
-
|
18
|
-
|
16
|
+
f.response :json, content_type: /\bjson$/
|
17
|
+
f.response :raise_error
|
19
18
|
|
20
|
-
|
19
|
+
f.adapter Faraday.default_adapter
|
21
20
|
end
|
22
21
|
end
|
23
22
|
|
24
23
|
def ping_server
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
return e
|
31
|
-
end
|
24
|
+
connection.get('/cardconnect/rest/')
|
25
|
+
rescue Faraday::ResourceNotFound => e
|
26
|
+
return e
|
27
|
+
rescue Faraday::ClientError => e
|
28
|
+
return e
|
32
29
|
end
|
33
|
-
|
34
30
|
end
|
35
31
|
end
|
data/lib/cardconnect/error.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
module CardConnect
|
2
2
|
module Service
|
3
3
|
class Authorization < ServiceEndpoint
|
4
|
-
|
5
4
|
# Initializes an Authorization Service
|
6
5
|
#
|
7
6
|
# @param connection [CardConnect::Connection]
|
@@ -11,7 +10,6 @@ module CardConnect
|
|
11
10
|
@resource_name = '/auth'
|
12
11
|
@rest_method = 'put'
|
13
12
|
end
|
14
|
-
|
15
13
|
end
|
16
14
|
end
|
17
|
-
end
|
15
|
+
end
|
@@ -3,15 +3,16 @@ module CardConnect
|
|
3
3
|
class AuthorizationRequest
|
4
4
|
include Utils
|
5
5
|
|
6
|
-
REQUIRED_FIELDS = [:merchid, :account, :expiry, :amount, :currency]
|
6
|
+
REQUIRED_FIELDS = [:merchid, :account, :expiry, :amount, :currency].freeze
|
7
7
|
|
8
8
|
OPTIONAL_FIELDS = [:accttype, :name, :address, :city, :region, :country, :phone,
|
9
9
|
:postal, :email, :ecomind, :cvv2, :orderid, :track, :bankaba,
|
10
|
-
:tokenize, :termid, :capture, :ssnl4, :license, :profile, :userfields
|
10
|
+
:tokenize, :termid, :capture, :ssnl4, :license, :profile, :userfields,
|
11
|
+
:ponumber, :authcode, :invoiceid, :taxamnt].freeze
|
11
12
|
|
12
13
|
FIELDS = REQUIRED_FIELDS + OPTIONAL_FIELDS
|
13
14
|
|
14
|
-
attr_accessor
|
15
|
+
attr_accessor(*FIELDS)
|
15
16
|
attr_reader :errors
|
16
17
|
|
17
18
|
# Initializes a new Authorization Request
|
@@ -33,7 +34,7 @@ module CardConnect
|
|
33
34
|
def payload
|
34
35
|
payload = {}
|
35
36
|
FIELDS.each do |field|
|
36
|
-
payload.merge!(
|
37
|
+
payload.merge!(field => send(field))
|
37
38
|
end
|
38
39
|
payload
|
39
40
|
end
|
@@ -48,4 +49,4 @@ module CardConnect
|
|
48
49
|
end
|
49
50
|
end
|
50
51
|
end
|
51
|
-
end
|
52
|
+
end
|
@@ -4,14 +4,14 @@ module CardConnect
|
|
4
4
|
include Utils
|
5
5
|
|
6
6
|
FIELDS = [:respstat, :retref, :account, :token, :amount, :merchid, :respcode,
|
7
|
-
:resptext, :respproc, :avsresp, :cvvresp, :authcode, :commcard]
|
7
|
+
:resptext, :respproc, :avsresp, :cvvresp, :authcode, :commcard, :profileid].freeze
|
8
8
|
|
9
|
-
attr_accessor
|
9
|
+
attr_accessor(*FIELDS)
|
10
10
|
attr_reader :errors
|
11
11
|
|
12
|
-
STATUS_APPROVED = 'A'
|
13
|
-
STATUS_RETRY = 'B'
|
14
|
-
STATUS_DECLINED = 'C'
|
12
|
+
STATUS_APPROVED = 'A'.freeze
|
13
|
+
STATUS_RETRY = 'B'.freeze
|
14
|
+
STATUS_DECLINED = 'C'.freeze
|
15
15
|
|
16
16
|
def initialize(response)
|
17
17
|
set_attributes(response, FIELDS)
|
@@ -26,7 +26,7 @@ module CardConnect
|
|
26
26
|
def body
|
27
27
|
body = {}
|
28
28
|
FIELDS.each do |attr|
|
29
|
-
body.merge!(
|
29
|
+
body.merge!(attr => send(attr))
|
30
30
|
end
|
31
31
|
body
|
32
32
|
end
|
@@ -38,4 +38,4 @@ module CardConnect
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
41
|
-
end
|
41
|
+
end
|