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 CHANGED
@@ -7,6 +7,7 @@ source "http://rubygems.org"
7
7
  # Include everything needed to run rake, tests, features, etc.
8
8
 
9
9
  gem 'rest-client', '1.0.4'
10
+ gem 'xml-simple'
10
11
 
11
12
  group :development do
12
13
  gem "shoulda", ">= 0"
data/Gemfile.lock CHANGED
@@ -10,6 +10,7 @@ GEM
10
10
  rcov (0.9.9)
11
11
  rest-client (1.0.4)
12
12
  shoulda (2.11.3)
13
+ xml-simple (1.1.0)
13
14
 
14
15
  PLATFORMS
15
16
  ruby
@@ -20,3 +21,4 @@ DEPENDENCIES
20
21
  rcov
21
22
  rest-client (= 1.0.4)
22
23
  shoulda
24
+ xml-simple
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
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
- TIGER_GATEWAY_URL = "https://secure.tigergateway.net/api/transact.php"
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
- make_request(params)
118
+ make_transaction(params)
116
119
  end
117
120
  end
118
121
 
119
122
  def authorize(params)
120
123
  params.merge! :type => "auth"
121
- make_request(params)
124
+ make_transaction(params)
122
125
  end
123
126
 
124
127
  def add_recurring(params)
125
128
  params.merge! :type => 'add_recurring'
126
- make_request(params)
129
+ make_transaction(params)
127
130
  end
128
131
 
129
132
  def add_recurring_and_charge(params)
130
133
  params.merge! :type => 'sale'
131
- make_request(params)
134
+ make_transaction(params)
132
135
  end
133
136
 
134
137
  def delete_recurring(transaction_id)
135
138
  params = {delete_recurring: transaction_id}
136
- make_request(params)
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
- make_request(params)
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 make_request(params)
181
+ def make_transaction(params)
158
182
  params.merge! :username => @username, :password => @password
159
- response_string = tiger_gateway.post(params)
183
+ response_string = tiger_transaction_gateway.post(params)
160
184
  TigerPayment::Response.build_from_string(response_string)
161
185
  end
162
-
163
- def tiger_gateway
164
- @tiger_gateway ||= RestClient::Resource.new(TIGER_GATEWAY_URL)
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
@@ -4,13 +4,13 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{tiger-payment}
8
- s.version = "0.0.3"
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 = %q{2011-07-27}
13
- s.email = %q{glancast@garrettlancaster.com}
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.0.gem",
33
- "tiger-payment-0.0.1.gem",
35
+ "tiger-payment-0.0.5.gem",
34
36
  "tiger-payment.gemspec"
35
37
  ]
36
- s.homepage = %q{http://github.com/garrettlancaster/tiger-payment}
38
+ s.homepage = "http://github.com/garrettlancaster/tiger-payment"
37
39
  s.licenses = ["MIT"]
38
40
  s.require_paths = ["lib"]
39
- s.rubygems_version = %q{1.3.7}
40
- s.summary = %q{Simple integration with Tiger Payment Solutions direct-post API}
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: false
5
- segments:
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-07-27 00:00:00 -05:00
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: shoulda
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: :development
35
+ type: :runtime
47
36
  version_requirements: *id002
48
37
  - !ruby/object:Gem::Dependency
49
- name: bundler
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: *id003
58
+ version_requirements: *id004
63
59
  - !ruby/object:Gem::Dependency
64
60
  name: jeweler
65
61
  prerelease: false
66
- requirement: &id004 !ruby/object:Gem::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: *id004
69
+ version_requirements: *id005
78
70
  - !ruby/object:Gem::Dependency
79
71
  name: rcov
80
72
  prerelease: false
81
- requirement: &id005 !ruby/object:Gem::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: *id005
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.0.gem
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.3.7
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
Binary file
Binary file