tiger-payment 0.0.3 → 0.0.6
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.
- data/Gemfile +1 -0
- data/Gemfile.lock +2 -0
- data/VERSION +1 -1
- data/lib/tiger-payment/action.rb +25 -0
- data/lib/tiger-payment/customer.rb +59 -0
- data/lib/tiger-payment/gateway.rb +53 -14
- data/lib/tiger-payment/response.rb +10 -0
- data/lib/tiger-payment/transaction.rb +76 -0
- data/lib/tiger-payment.rb +5 -0
- data/tiger-payment-0.0.5.gem +0 -0
- data/tiger-payment.gemspec +14 -10
- metadata +27 -40
- data/tiger-payment-0.0.0.gem +0 -0
- data/tiger-payment-0.0.1.gem +0 -0
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.6
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module TigerPayment
|
2
|
+
class Action
|
3
|
+
attr_reader :amount,
|
4
|
+
:action_type,
|
5
|
+
:date,
|
6
|
+
:success,
|
7
|
+
:ip_address,
|
8
|
+
:source,
|
9
|
+
:username,
|
10
|
+
:response_text,
|
11
|
+
:batch_id,
|
12
|
+
:processor_batch_id,
|
13
|
+
:response_code
|
14
|
+
def initialize(params={})
|
15
|
+
|
16
|
+
params.each_pair do |k,v|
|
17
|
+
if v == [{}]
|
18
|
+
instance_variable_set('@'+k, nil)
|
19
|
+
else
|
20
|
+
instance_variable_set('@'+k, v.size == 1 ? v.first : v)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module TigerPayment
|
2
|
+
class Customer
|
3
|
+
attr_reader :id,
|
4
|
+
:first_name,
|
5
|
+
:last_name,
|
6
|
+
:address_1,
|
7
|
+
:address_2,
|
8
|
+
:company,
|
9
|
+
:city,
|
10
|
+
:state,
|
11
|
+
:postal_code,
|
12
|
+
:country,
|
13
|
+
:email,
|
14
|
+
:phone,
|
15
|
+
:fax,
|
16
|
+
:cell_phone,
|
17
|
+
:customertaxid,
|
18
|
+
:website,
|
19
|
+
:shipping_first_name,
|
20
|
+
:shipping_last_name,
|
21
|
+
:shipping_address_1,
|
22
|
+
:shipping_address_2,
|
23
|
+
:shipping_company,
|
24
|
+
:shipping_city,
|
25
|
+
:shipping_state,
|
26
|
+
:shipping_postal_code,
|
27
|
+
:shipping_country,
|
28
|
+
:shipping_email,
|
29
|
+
:shipping_carrier,
|
30
|
+
:tracking_number,
|
31
|
+
:shipping_date,
|
32
|
+
:shipping,
|
33
|
+
:cc_number,
|
34
|
+
:cc_hash,
|
35
|
+
:cc_exp,
|
36
|
+
:check_account,
|
37
|
+
:check_hash,
|
38
|
+
:check_aba,
|
39
|
+
:check_name,
|
40
|
+
:account_holder_type,
|
41
|
+
:account_type,
|
42
|
+
:sec_code,
|
43
|
+
:processor_id,
|
44
|
+
:cc_bin,
|
45
|
+
:customer_vault_id
|
46
|
+
|
47
|
+
def initialize(params = {})
|
48
|
+
params.each_pair do |k,v|
|
49
|
+
if v == [{}]
|
50
|
+
instance_variable_set('@'+k, nil)
|
51
|
+
else
|
52
|
+
value ||= v.size == 1 ? v.first : v
|
53
|
+
instance_variable_set('@'+k, value)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
@@ -96,8 +96,11 @@ module TigerPayment
|
|
96
96
|
# For more info on how to deal with responses from the Gateway, check out
|
97
97
|
# the Response class.
|
98
98
|
class Gateway
|
99
|
-
|
100
|
-
|
99
|
+
TIGER_URLS = {
|
100
|
+
:transaction => "https://secure.tigergateway.net/api/transact.php",
|
101
|
+
:query => "https://secure.networkmerchants.com/api/query.php"
|
102
|
+
}
|
103
|
+
|
101
104
|
def initialize(params = {})
|
102
105
|
if defined?(RAILS_ENV) && defined?(RAILS_ROOT)
|
103
106
|
config = TigerPayment::Configuration.new
|
@@ -106,34 +109,34 @@ module TigerPayment
|
|
106
109
|
else
|
107
110
|
@username = params[:username]
|
108
111
|
@password = params[:password]
|
109
|
-
end
|
112
|
+
end
|
110
113
|
end
|
111
114
|
|
112
115
|
["sale", "credit", "capture", "void", "refund", "update"].each do |operation|
|
113
116
|
define_method(operation) do |params|
|
114
117
|
params.merge! :type => operation
|
115
|
-
|
118
|
+
make_transaction(params)
|
116
119
|
end
|
117
120
|
end
|
118
121
|
|
119
122
|
def authorize(params)
|
120
123
|
params.merge! :type => "auth"
|
121
|
-
|
124
|
+
make_transaction(params)
|
122
125
|
end
|
123
126
|
|
124
127
|
def add_recurring(params)
|
125
128
|
params.merge! :type => 'add_recurring'
|
126
|
-
|
129
|
+
make_transaction(params)
|
127
130
|
end
|
128
131
|
|
129
132
|
def add_recurring_and_charge(params)
|
130
133
|
params.merge! :type => 'sale'
|
131
|
-
|
134
|
+
make_transaction(params)
|
132
135
|
end
|
133
136
|
|
134
137
|
def delete_recurring(transaction_id)
|
135
138
|
params = {delete_recurring: transaction_id}
|
136
|
-
|
139
|
+
make_transaction(params)
|
137
140
|
end
|
138
141
|
|
139
142
|
def remove_customer_from_vault(vault_id)
|
@@ -141,7 +144,7 @@ module TigerPayment
|
|
141
144
|
customer_vault: 'delete_customer',
|
142
145
|
customer_vault_id: vault_id
|
143
146
|
}
|
144
|
-
|
147
|
+
make_transaction(params)
|
145
148
|
end
|
146
149
|
|
147
150
|
def update_customer_vault(params, vault_id)
|
@@ -149,20 +152,56 @@ module TigerPayment
|
|
149
152
|
customer_vault: 'update_customer',
|
150
153
|
customer_vault_id: vault_id
|
151
154
|
})
|
155
|
+
make_transaction(params)
|
156
|
+
end
|
157
|
+
|
158
|
+
# Request methods for retrieving transactions and customer info
|
159
|
+
def get_transactions_for_date(date)
|
160
|
+
params = {:start_date => date}
|
161
|
+
make_request(params)
|
162
|
+
end
|
163
|
+
|
164
|
+
def get_specified_transactions(ids)
|
165
|
+
params = {:transaction_id => Array(ids).join(',')}
|
166
|
+
make_request(params)
|
167
|
+
end
|
168
|
+
|
169
|
+
def get_transactions(params)
|
152
170
|
make_request(params)
|
153
171
|
end
|
154
172
|
|
173
|
+
def get_customers(customer_vault_id=nil)
|
174
|
+
params = {:report_type => 'customer_vault'}
|
175
|
+
params.merge!(:customer_vault_id => customer_vault_id) if customer_vault_id
|
176
|
+
make_request(params, 'customer')
|
177
|
+
end
|
178
|
+
|
155
179
|
private
|
156
180
|
|
157
|
-
def
|
181
|
+
def make_transaction(params)
|
158
182
|
params.merge! :username => @username, :password => @password
|
159
|
-
response_string =
|
183
|
+
response_string = tiger_transaction_gateway.post(params)
|
160
184
|
TigerPayment::Response.build_from_string(response_string)
|
161
185
|
end
|
162
|
-
|
163
|
-
def
|
164
|
-
@
|
186
|
+
|
187
|
+
def make_request(params, report_type=nil)
|
188
|
+
params.merge! :username => @username, :password => @password
|
189
|
+
response_string = tiger_query_gateway.post(params).to_s
|
190
|
+
if report_type == 'customer'
|
191
|
+
TigerPayment::Response.build_customers_from_xml(response_string)
|
192
|
+
else
|
193
|
+
TigerPayment::Response.build_transactions_from_xml(response_string)
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
def tiger_transaction_gateway
|
198
|
+
@tiger_gateway ||= RestClient::Resource.new(TIGER_URLS[:transaction])
|
165
199
|
end
|
200
|
+
|
201
|
+
def tiger_query_gateway
|
202
|
+
@tiger_gateway ||= RestClient::Resource.new(TIGER_URLS[:query])
|
203
|
+
end
|
204
|
+
|
166
205
|
end
|
167
206
|
end
|
168
207
|
|
@@ -86,6 +86,16 @@ module TigerPayment
|
|
86
86
|
|
87
87
|
self.new(params)
|
88
88
|
end
|
89
|
+
|
90
|
+
def build_customers_from_xml(response_string)
|
91
|
+
response = XmlSimple.xml_in(response_string)
|
92
|
+
customers = Array(response['customer_vault'].first['customer']).map{|c| TigerPayment::Customer.new(c)}
|
93
|
+
end
|
94
|
+
|
95
|
+
def build_transactions_from_xml(response_string)
|
96
|
+
response = XmlSimple.xml_in(response_string)
|
97
|
+
transactions = Array(response['transaction']).map{|t| TigerPayment::Transaction.new(t)}
|
98
|
+
end
|
89
99
|
end
|
90
100
|
|
91
101
|
attr_reader :transaction_id, :message, :response_code
|
@@ -0,0 +1,76 @@
|
|
1
|
+
module TigerPayment
|
2
|
+
class Transaction
|
3
|
+
attr_reader :transaction_id,
|
4
|
+
:platform_id,
|
5
|
+
:transaction_type,
|
6
|
+
:condition,
|
7
|
+
:order_id,
|
8
|
+
:authorization_code,
|
9
|
+
:ponumber,
|
10
|
+
:order_description,
|
11
|
+
:first_name,
|
12
|
+
:last_name,
|
13
|
+
:address_1,
|
14
|
+
:address_2,
|
15
|
+
:company,
|
16
|
+
:city,
|
17
|
+
:state,
|
18
|
+
:postal_code,
|
19
|
+
:country,
|
20
|
+
:email,
|
21
|
+
:phone,
|
22
|
+
:fax,
|
23
|
+
:cell_phone,
|
24
|
+
:customertaxid,
|
25
|
+
:customerid,
|
26
|
+
:website,
|
27
|
+
:shipping_first_name,
|
28
|
+
:shipping_last_name,
|
29
|
+
:shipping_address_1,
|
30
|
+
:shipping_address_2,
|
31
|
+
:shipping_company,
|
32
|
+
:shipping_city,
|
33
|
+
:shipping_state,
|
34
|
+
:shipping_postal_code,
|
35
|
+
:shipping_country,
|
36
|
+
:shipping_email,
|
37
|
+
:shipping_carrier,
|
38
|
+
:tracking_number,
|
39
|
+
:shipping_date,
|
40
|
+
:shipping,
|
41
|
+
:shipping_phone,
|
42
|
+
:cc_number,
|
43
|
+
:cc_hash,
|
44
|
+
:cc_exp,
|
45
|
+
:cavv,
|
46
|
+
:cavv_result,
|
47
|
+
:xid,
|
48
|
+
:avs_response,
|
49
|
+
:csc_response,
|
50
|
+
:cardholder_auth,
|
51
|
+
:check_account,
|
52
|
+
:check_hash,
|
53
|
+
:check_aba,
|
54
|
+
:check_name,
|
55
|
+
:account_holder_type,
|
56
|
+
:account_type,
|
57
|
+
:sec_code,
|
58
|
+
:processor_id,
|
59
|
+
:tax,
|
60
|
+
:currency,
|
61
|
+
:cc_bin,
|
62
|
+
:action
|
63
|
+
|
64
|
+
def initialize(params = {})
|
65
|
+
params.each_pair do |k,v|
|
66
|
+
if v == [{}]
|
67
|
+
instance_variable_set('@'+k, nil)
|
68
|
+
else
|
69
|
+
value = Action.new(v.first) if k == 'action'
|
70
|
+
value ||= v.size == 1 ? v.first : v
|
71
|
+
instance_variable_set('@'+k, value)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
data/lib/tiger-payment.rb
CHANGED
@@ -3,6 +3,11 @@ $:.unshift File.dirname(__FILE__)
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'yaml'
|
5
5
|
require 'restclient'
|
6
|
+
require 'xmlsimple'
|
6
7
|
require 'tiger-payment/configuration'
|
8
|
+
require 'tiger-payment/action'
|
9
|
+
require 'tiger-payment/transaction'
|
10
|
+
require 'tiger-payment/customer'
|
7
11
|
require 'tiger-payment/gateway'
|
8
12
|
require 'tiger-payment/response'
|
13
|
+
|
Binary file
|
data/tiger-payment.gemspec
CHANGED
@@ -4,13 +4,13 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.0.
|
7
|
+
s.name = "tiger-payment"
|
8
|
+
s.version = "0.0.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Garrett Lancaster"]
|
12
|
-
s.date =
|
13
|
-
s.email =
|
12
|
+
s.date = "2011-12-30"
|
13
|
+
s.email = "glancast@garrettlancaster.com"
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"LICENSE.txt",
|
16
16
|
"README.rdoc"
|
@@ -24,33 +24,36 @@ Gem::Specification.new do |s|
|
|
24
24
|
"Rakefile",
|
25
25
|
"VERSION",
|
26
26
|
"lib/tiger-payment.rb",
|
27
|
+
"lib/tiger-payment/action.rb",
|
27
28
|
"lib/tiger-payment/configuration.rb",
|
29
|
+
"lib/tiger-payment/customer.rb",
|
28
30
|
"lib/tiger-payment/gateway.rb",
|
29
31
|
"lib/tiger-payment/response.rb",
|
32
|
+
"lib/tiger-payment/transaction.rb",
|
30
33
|
"test/helper.rb",
|
31
34
|
"test/test_tiger-payment.rb",
|
32
|
-
"tiger-payment-0.0.
|
33
|
-
"tiger-payment-0.0.1.gem",
|
35
|
+
"tiger-payment-0.0.5.gem",
|
34
36
|
"tiger-payment.gemspec"
|
35
37
|
]
|
36
|
-
s.homepage =
|
38
|
+
s.homepage = "http://github.com/garrettlancaster/tiger-payment"
|
37
39
|
s.licenses = ["MIT"]
|
38
40
|
s.require_paths = ["lib"]
|
39
|
-
s.rubygems_version =
|
40
|
-
s.summary =
|
41
|
+
s.rubygems_version = "1.8.10"
|
42
|
+
s.summary = "Simple integration with Tiger Payment Solutions direct-post API"
|
41
43
|
|
42
44
|
if s.respond_to? :specification_version then
|
43
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
44
45
|
s.specification_version = 3
|
45
46
|
|
46
47
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
47
48
|
s.add_runtime_dependency(%q<rest-client>, ["= 1.0.4"])
|
49
|
+
s.add_runtime_dependency(%q<xml-simple>, [">= 0"])
|
48
50
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
49
51
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
50
52
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.2"])
|
51
53
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
52
54
|
else
|
53
55
|
s.add_dependency(%q<rest-client>, ["= 1.0.4"])
|
56
|
+
s.add_dependency(%q<xml-simple>, [">= 0"])
|
54
57
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
55
58
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
56
59
|
s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
|
@@ -58,6 +61,7 @@ Gem::Specification.new do |s|
|
|
58
61
|
end
|
59
62
|
else
|
60
63
|
s.add_dependency(%q<rest-client>, ["= 1.0.4"])
|
64
|
+
s.add_dependency(%q<xml-simple>, [">= 0"])
|
61
65
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
62
66
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
63
67
|
s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tiger-payment
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 0
|
8
|
-
- 3
|
9
|
-
version: 0.0.3
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.6
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Garrett Lancaster
|
@@ -14,8 +10,7 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date: 2011-
|
18
|
-
default_executable:
|
13
|
+
date: 2011-12-30 00:00:00 Z
|
19
14
|
dependencies:
|
20
15
|
- !ruby/object:Gem::Dependency
|
21
16
|
name: rest-client
|
@@ -25,69 +20,64 @@ dependencies:
|
|
25
20
|
requirements:
|
26
21
|
- - "="
|
27
22
|
- !ruby/object:Gem::Version
|
28
|
-
segments:
|
29
|
-
- 1
|
30
|
-
- 0
|
31
|
-
- 4
|
32
23
|
version: 1.0.4
|
33
24
|
type: :runtime
|
34
25
|
version_requirements: *id001
|
35
26
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
27
|
+
name: xml-simple
|
37
28
|
prerelease: false
|
38
29
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
30
|
none: false
|
40
31
|
requirements:
|
41
32
|
- - ">="
|
42
33
|
- !ruby/object:Gem::Version
|
43
|
-
segments:
|
44
|
-
- 0
|
45
34
|
version: "0"
|
46
|
-
type: :
|
35
|
+
type: :runtime
|
47
36
|
version_requirements: *id002
|
48
37
|
- !ruby/object:Gem::Dependency
|
49
|
-
name:
|
38
|
+
name: shoulda
|
50
39
|
prerelease: false
|
51
40
|
requirement: &id003 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: "0"
|
46
|
+
type: :development
|
47
|
+
version_requirements: *id003
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: bundler
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
52
52
|
none: false
|
53
53
|
requirements:
|
54
54
|
- - ~>
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
segments:
|
57
|
-
- 1
|
58
|
-
- 0
|
59
|
-
- 0
|
60
56
|
version: 1.0.0
|
61
57
|
type: :development
|
62
|
-
version_requirements: *
|
58
|
+
version_requirements: *id004
|
63
59
|
- !ruby/object:Gem::Dependency
|
64
60
|
name: jeweler
|
65
61
|
prerelease: false
|
66
|
-
requirement: &
|
62
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
67
63
|
none: false
|
68
64
|
requirements:
|
69
65
|
- - ~>
|
70
66
|
- !ruby/object:Gem::Version
|
71
|
-
segments:
|
72
|
-
- 1
|
73
|
-
- 6
|
74
|
-
- 2
|
75
67
|
version: 1.6.2
|
76
68
|
type: :development
|
77
|
-
version_requirements: *
|
69
|
+
version_requirements: *id005
|
78
70
|
- !ruby/object:Gem::Dependency
|
79
71
|
name: rcov
|
80
72
|
prerelease: false
|
81
|
-
requirement: &
|
73
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
82
74
|
none: false
|
83
75
|
requirements:
|
84
76
|
- - ">="
|
85
77
|
- !ruby/object:Gem::Version
|
86
|
-
segments:
|
87
|
-
- 0
|
88
78
|
version: "0"
|
89
79
|
type: :development
|
90
|
-
version_requirements: *
|
80
|
+
version_requirements: *id006
|
91
81
|
description:
|
92
82
|
email: glancast@garrettlancaster.com
|
93
83
|
executables: []
|
@@ -106,15 +96,16 @@ files:
|
|
106
96
|
- Rakefile
|
107
97
|
- VERSION
|
108
98
|
- lib/tiger-payment.rb
|
99
|
+
- lib/tiger-payment/action.rb
|
109
100
|
- lib/tiger-payment/configuration.rb
|
101
|
+
- lib/tiger-payment/customer.rb
|
110
102
|
- lib/tiger-payment/gateway.rb
|
111
103
|
- lib/tiger-payment/response.rb
|
104
|
+
- lib/tiger-payment/transaction.rb
|
112
105
|
- test/helper.rb
|
113
106
|
- test/test_tiger-payment.rb
|
114
|
-
- tiger-payment-0.0.
|
115
|
-
- tiger-payment-0.0.1.gem
|
107
|
+
- tiger-payment-0.0.5.gem
|
116
108
|
- tiger-payment.gemspec
|
117
|
-
has_rdoc: true
|
118
109
|
homepage: http://github.com/garrettlancaster/tiger-payment
|
119
110
|
licenses:
|
120
111
|
- MIT
|
@@ -128,21 +119,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
128
119
|
requirements:
|
129
120
|
- - ">="
|
130
121
|
- !ruby/object:Gem::Version
|
131
|
-
segments:
|
132
|
-
- 0
|
133
122
|
version: "0"
|
134
123
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
124
|
none: false
|
136
125
|
requirements:
|
137
126
|
- - ">="
|
138
127
|
- !ruby/object:Gem::Version
|
139
|
-
segments:
|
140
|
-
- 0
|
141
128
|
version: "0"
|
142
129
|
requirements: []
|
143
130
|
|
144
131
|
rubyforge_project:
|
145
|
-
rubygems_version: 1.
|
132
|
+
rubygems_version: 1.8.10
|
146
133
|
signing_key:
|
147
134
|
specification_version: 3
|
148
135
|
summary: Simple integration with Tiger Payment Solutions direct-post API
|
data/tiger-payment-0.0.0.gem
DELETED
Binary file
|
data/tiger-payment-0.0.1.gem
DELETED
Binary file
|