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
@@ -3,13 +3,13 @@ module CardConnect
|
|
3
3
|
class VoidRequest
|
4
4
|
include Utils
|
5
5
|
|
6
|
-
REQUIRED_FIELDS = [:merchid, :retref]
|
6
|
+
REQUIRED_FIELDS = [:merchid, :retref].freeze
|
7
7
|
|
8
|
-
OPTIONAL_FIELDS = [:amount]
|
8
|
+
OPTIONAL_FIELDS = [:amount].freeze
|
9
9
|
|
10
10
|
FIELDS = REQUIRED_FIELDS + OPTIONAL_FIELDS
|
11
11
|
|
12
|
-
attr_accessor
|
12
|
+
attr_accessor(*FIELDS)
|
13
13
|
attr_reader :errors
|
14
14
|
|
15
15
|
# Initializes a new Void Request
|
@@ -31,7 +31,7 @@ module CardConnect
|
|
31
31
|
def payload
|
32
32
|
payload = {}
|
33
33
|
FIELDS.each do |field|
|
34
|
-
payload.merge!(
|
34
|
+
payload.merge!(field => send(field))
|
35
35
|
end
|
36
36
|
payload
|
37
37
|
end
|
@@ -44,7 +44,6 @@ module CardConnect
|
|
44
44
|
value.nil? || value.empty? ? errors.push("#{field.capitalize} is missing") : next
|
45
45
|
end
|
46
46
|
end
|
47
|
-
|
48
47
|
end
|
49
48
|
end
|
50
|
-
end
|
49
|
+
end
|
@@ -3,14 +3,15 @@ module CardConnect
|
|
3
3
|
class VoidResponse
|
4
4
|
include Utils
|
5
5
|
|
6
|
-
FIELDS = [:merchid, :amount, :currency, :retref, :authcode,
|
6
|
+
FIELDS = [:merchid, :amount, :currency, :retref, :authcode,
|
7
|
+
:respcode, :respproc, :respstat, :resptext].freeze
|
7
8
|
|
8
|
-
attr_accessor
|
9
|
+
attr_accessor(*FIELDS)
|
9
10
|
attr_reader :errors
|
10
11
|
|
11
|
-
STATUS_APPROVED = 'A'
|
12
|
-
STATUS_RETRY = 'B'
|
13
|
-
STATUS_DECLINED = 'C'
|
12
|
+
STATUS_APPROVED = 'A'.freeze
|
13
|
+
STATUS_RETRY = 'B'.freeze
|
14
|
+
STATUS_DECLINED = 'C'.freeze
|
14
15
|
|
15
16
|
def initialize(response)
|
16
17
|
set_attributes(response, FIELDS)
|
@@ -25,7 +26,7 @@ module CardConnect
|
|
25
26
|
def body
|
26
27
|
body = {}
|
27
28
|
FIELDS.each do |attr|
|
28
|
-
body.merge!(
|
29
|
+
body.merge!(attr => send(attr))
|
29
30
|
end
|
30
31
|
body
|
31
32
|
end
|
@@ -37,4 +38,4 @@ module CardConnect
|
|
37
38
|
end
|
38
39
|
end
|
39
40
|
end
|
40
|
-
end
|
41
|
+
end
|
data/lib/cardconnect/utils.rb
CHANGED
data/lib/cardconnect/version.rb
CHANGED
data/test/api_request_stubs.rb
CHANGED
@@ -1,72 +1,76 @@
|
|
1
|
-
def valid_auth_request
|
1
|
+
def valid_auth_request # rubocop:disable Metrics/MethodLength
|
2
2
|
{
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
3
|
+
'merchid' => '000000927996',
|
4
|
+
'accttype' => 'VISA',
|
5
|
+
'orderid' => 'AB-11-9876',
|
6
|
+
'account' => '4111111111111111',
|
7
|
+
'expiry' => '1212',
|
8
|
+
'amount' => '0',
|
9
|
+
'currency' => 'USD',
|
10
|
+
'name' => 'TOM JONES',
|
11
|
+
'address' => '123 MAIN STREET',
|
12
|
+
'city' => 'anytown',
|
13
|
+
'region' => 'NY',
|
14
|
+
'country' => 'US',
|
15
|
+
'postal' => '55555',
|
16
|
+
'phone' => '3334445555',
|
17
|
+
'email' => 'tom@jones.com',
|
18
|
+
'ecomind' => 'E',
|
19
|
+
'cvv2' => '123',
|
20
|
+
'track' => 'Y',
|
21
|
+
'tokenize' => 'Y',
|
22
|
+
'capture' => 'Y',
|
23
|
+
'bankaba' => '1010101',
|
24
|
+
'termid' => '12345',
|
25
|
+
'ssnl4' => '1234',
|
26
|
+
'license' => 'CO:1231231234',
|
27
|
+
'profile' => 'Y',
|
28
|
+
'ponumber' => '1234',
|
29
|
+
'authcode' => '123456',
|
30
|
+
'invoiceid' => '000000000001',
|
31
|
+
'taxamnt' => '0',
|
32
|
+
'userfields' => [
|
33
|
+
{
|
34
|
+
'name0' => 'value0'
|
35
|
+
},
|
36
|
+
{
|
37
|
+
'name1' => 'value1'
|
38
|
+
}
|
39
|
+
]
|
36
40
|
}
|
37
41
|
end
|
38
42
|
|
39
43
|
def valid_capture_request
|
40
44
|
{
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
45
|
+
'retref' => '288002073633',
|
46
|
+
'amount' => '596.00',
|
47
|
+
'taxamnt' => '40.00',
|
48
|
+
'merchid' => '000000927996',
|
49
|
+
'ponumber' => 'PO-0736332',
|
50
|
+
'authcode' => '046221',
|
51
|
+
'invoiceid' => '7890'
|
48
52
|
}
|
49
53
|
end
|
50
54
|
|
51
55
|
def valid_inquire_request
|
52
56
|
{
|
53
|
-
|
54
|
-
|
57
|
+
'retref' => '288002073633',
|
58
|
+
'merchid' => '000000927996'
|
55
59
|
}
|
56
60
|
end
|
57
61
|
|
58
62
|
def valid_settlestat_request
|
59
63
|
{
|
60
|
-
|
61
|
-
|
64
|
+
'merchid' => '000000927996',
|
65
|
+
'date' => '0110'
|
62
66
|
}
|
63
67
|
end
|
64
68
|
|
65
69
|
def valid_refund_request
|
66
70
|
{
|
67
|
-
|
68
|
-
|
69
|
-
|
71
|
+
'retref' => '288009185241',
|
72
|
+
'merchid' => '000000927996',
|
73
|
+
'amount' => '59.60'
|
70
74
|
}
|
71
75
|
end
|
72
76
|
|
@@ -76,8 +80,8 @@ end
|
|
76
80
|
|
77
81
|
def valid_void_request
|
78
82
|
{
|
79
|
-
|
80
|
-
|
81
|
-
|
83
|
+
'retref' => '288013185633',
|
84
|
+
'merchid' => '000000927996',
|
85
|
+
'amount' => '101'
|
82
86
|
}
|
83
|
-
end
|
87
|
+
end
|
data/test/api_response_stubs.rb
CHANGED
@@ -1,120 +1,115 @@
|
|
1
|
-
def valid_auth_response
|
1
|
+
def valid_auth_response # rubocop:disable Metrics/MethodLength
|
2
2
|
{
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
3
|
+
'respstat' => 'A',
|
4
|
+
'account' => '41XXXXXXXXXX1111',
|
5
|
+
'token' => '9419786452781111',
|
6
|
+
'retref' => '343005123105',
|
7
|
+
'amount' => '111',
|
8
|
+
'merchid' => '020594000000',
|
9
|
+
'respcode' => '00',
|
10
|
+
'resptext' => 'Approved',
|
11
|
+
'avsresp' => '9',
|
12
|
+
'cvvresp' => 'M',
|
13
|
+
'authcode' => '046221',
|
14
|
+
'respproc' => 'FNOR',
|
15
|
+
'commcard' => 'N',
|
16
|
+
'profileid' => '12345678'
|
16
17
|
}
|
17
18
|
end
|
18
19
|
|
19
20
|
def valid_capture_response
|
20
21
|
{
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
'amount' => '596.00',
|
23
|
+
'setlstat' => 'Pending',
|
24
|
+
'retref' => '288002073633',
|
25
|
+
'merchid' => '000000927996',
|
26
|
+
'account' => '41XXXXXXXXXX4113'
|
26
27
|
}
|
27
28
|
end
|
28
29
|
|
29
|
-
def valid_inquire_response
|
30
|
+
def valid_inquire_response # rubocop:disable Metrics/MethodLength
|
30
31
|
{
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
32
|
+
'amount' => '596.00',
|
33
|
+
'resptext' => 'Approval',
|
34
|
+
'setlstat' => 'NOTCAPTURED',
|
35
|
+
'respcode' => '00',
|
36
|
+
'retref' => '288015190411',
|
37
|
+
'merchid' => '000000927996',
|
38
|
+
'account' => '41XXXXXXXXXX4113',
|
39
|
+
'respproc' => 'FNOR',
|
40
|
+
'respstat' => 'A',
|
41
|
+
'currency' => 'USD'
|
41
42
|
}
|
42
43
|
end
|
43
44
|
|
44
|
-
def valid_settlestat_response
|
45
|
+
def valid_settlestat_response # rubocop:disable Metrics/MethodLength
|
45
46
|
[
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
"batchid" => "71742042",
|
58
|
-
"hoststat" => "GB",
|
59
|
-
"merchid" => "000000927996",
|
60
|
-
"hostbatch" => "71742041",
|
61
|
-
"respproc" => "FNOR"
|
62
|
-
}
|
47
|
+
{
|
48
|
+
'txns' => [
|
49
|
+
{ 'setlstat' => 'N', 'retref' => '179001161341' },
|
50
|
+
{ 'setlstat' => 'Y', 'retref' => '179002161341' }
|
51
|
+
],
|
52
|
+
'batchid' => '71742042',
|
53
|
+
'hoststat' => 'GB',
|
54
|
+
'merchid' => '000000927996',
|
55
|
+
'hostbatch' => '71742041',
|
56
|
+
'respproc' => 'FNOR'
|
57
|
+
}
|
63
58
|
]
|
64
59
|
end
|
65
60
|
|
66
61
|
def valid_refund_response
|
67
62
|
{
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
63
|
+
'amount' => '59.60',
|
64
|
+
'resptext' => 'Approval',
|
65
|
+
'authcode' => 'REFUND',
|
66
|
+
'respcode' => '00',
|
67
|
+
'retref' => '288010185242',
|
68
|
+
'merchid' => '000000927996',
|
69
|
+
'respproc' => 'PPS',
|
70
|
+
'respstat' => 'A'
|
76
71
|
}
|
77
72
|
end
|
78
73
|
|
79
|
-
def valid_deposit_response
|
74
|
+
def valid_deposit_response # rubocop:disable Metrics/MethodLength
|
80
75
|
[
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
76
|
+
{
|
77
|
+
'accttype' => 'VI',
|
78
|
+
'postdate' => '20121009',
|
79
|
+
'cbakamnt' => '0.00',
|
80
|
+
'feeamnt' => '0.55',
|
81
|
+
'currency' => 'USD',
|
82
|
+
'amount' => '11.00',
|
83
|
+
'respproc' => 'FNOR',
|
84
|
+
'txns' => [
|
85
|
+
{
|
86
|
+
'merchbatch' => 92821429,
|
87
|
+
'retref' => '282005142924',
|
88
|
+
'hostbatch' => '1429',
|
89
|
+
'feeamnt' => '0.00',
|
90
|
+
'action' => 'DEB',
|
91
|
+
'depamnt' => '11.00'
|
92
|
+
}
|
93
|
+
],
|
94
|
+
'resptext' => 'Successful or something',
|
95
|
+
'depositid' => 7,
|
96
|
+
'merchid' => '000000927996',
|
97
|
+
'action' => 'DEB',
|
98
|
+
'actdate' => '20121008'
|
99
|
+
}
|
105
100
|
]
|
106
101
|
end
|
107
102
|
|
108
|
-
def valid_void_response
|
103
|
+
def valid_void_response # rubocop:disable Metrics/MethodLength
|
109
104
|
{
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
105
|
+
'amount' => '1.01',
|
106
|
+
'resptext' => 'Approval',
|
107
|
+
'authcode' => 'REVERS',
|
108
|
+
'respcode' => '00',
|
109
|
+
'retref' => '288013185633',
|
110
|
+
'merchid' => '000000927996',
|
111
|
+
'respproc' => 'FNOR',
|
112
|
+
'respstat' => 'A',
|
113
|
+
'currency' => 'USD'
|
119
114
|
}
|
120
|
-
end
|
115
|
+
end
|