LitleOnline 8.10.3 → 8.12.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,4 @@
1
- Litle Online Ruby SDK created for version 8.10 of Litle XML online format, see the XSD schema for specific fields that are supported by this format.
1
+ Litle Online Ruby SDK created for version 8.12 of Litle XML online format, see the XSD schema for specific fields that are supported by this format.
2
2
 
3
3
  This gem contains an application interface in the Ruby programming language created by Litle & Co.
4
4
 
data/Rakefile CHANGED
@@ -30,11 +30,11 @@ require 'rake/clean'
30
30
  spec = Gem::Specification.new do |s|
31
31
  FileUtils.rm_rf('pkg')
32
32
  s.name = "LitleOnline"
33
- s.summary = "Ruby SDK produced by Litle & Co. for online transaction processing using Litle XML format v8.10"
33
+ s.summary = "Ruby SDK produced by Litle & Co. for online transaction processing using Litle XML format v8.12"
34
34
  s.description = File.read(File.join(File.dirname(__FILE__), 'DESCRIPTION'))
35
35
  s.requirements =
36
36
  [ 'Contact sdksupport@litle.com for more information' ]
37
- s.version = "8.10.3"
37
+ s.version = "8.12.0"
38
38
  s.author = "Litle & Co"
39
39
  s.email = "sdksupport@litle.com"
40
40
  s.homepage = "http://www.litle.com/developers"
data/SETUP.md CHANGED
@@ -40,7 +40,7 @@ Sample configuration file contents
40
40
  ```
41
41
  user: test_user
42
42
  password: test_password
43
- version: 8.10
43
+ version: 8.12
44
44
  url: https://precert.litle.com/vap/communicator/online
45
45
  proxy_addr: yourproxyserver
46
46
  proxy_port: 8080
@@ -44,7 +44,7 @@ class Setup
44
44
  f.puts "currency_merchant_map:"
45
45
  f.puts " DEFAULT: " + gets
46
46
  f.puts "default_report_group: 'Default Report Group'"
47
- f.puts "version: '8.10'"
47
+ f.puts "version: '8.12'"
48
48
  puts "Please choose Litle url from the following list (example: 'cert') or directly input another URL: \nsandbox => https://www.testlitle.com/sandbox/communicator/online \ncert => https://cert.litle.com/vap/communicator/online \nprecert => https://precert.litle.com/vap/communicator/online \nproduction1 => https://payments.litle.com/vap/communicator/online \nproduction2 => https://payments2.litle.com/vap/communicator/online"
49
49
  f.puts "url: " + Setup.choice(gets)
50
50
  puts "Please input the proxy address, if no proxy hit enter key: "
@@ -64,7 +64,7 @@ class LitleOnlineRequest
64
64
  :allowPartialAuth=>hash_in['allowPartialAuth'],
65
65
  :healthcareIIAS=>XMLFields.healthcare_iias(optional_field(hash_in['healthcareIIAS'])),
66
66
  :filtering=>XMLFields.filtering_type(optional_field(hash_in['filtering'])),
67
- :merchantData=>XMLFields.filtering_type(optional_field(hash_in['merchantData'])),
67
+ :merchantData=>XMLFields.merchant_data(optional_field(hash_in['merchantData'])),
68
68
  :recyclingRequest=>XMLFields.recycling_request_type(optional_field(hash_in['recyclingRequest']))
69
69
  }
70
70
  end
@@ -108,7 +108,7 @@ class LitleOnlineRequest
108
108
  :allowPartialAuth=>hash_in['allowPartialAuth'],
109
109
  :healthcareIIAS=>XMLFields.healthcare_iias(optional_field(hash_in['healthcareIIAS'])),
110
110
  :filtering=>XMLFields.filtering_type(optional_field(hash_in['filtering'])),
111
- :merchantData=>XMLFields.filtering_type(optional_field(hash_in['merchantData'])),
111
+ :merchantData=>XMLFields.merchant_data(optional_field(hash_in['merchantData'])),
112
112
  :recyclingRequest=>XMLFields.recycling_request_type(optional_field(hash_in['recyclingRequest']))
113
113
  }
114
114
  hash_out.merge!(get_common_attributes(hash_in))
@@ -156,7 +156,8 @@ class LitleOnlineRequest
156
156
  :processingInstructions=>XMLFields.processing_instructions(optional_field(hash_in['processingInstructions'])),
157
157
  :pos=>XMLFields.pos(optional_field(hash_in['pos'])),
158
158
  :amexAggregatorData=>XMLFields.amex_aggregator_data(optional_field(hash_in['amexAggregatorData'])),
159
- :payPalNotes =>hash_in['payPalNotes']
159
+ :payPalNotes =>hash_in['payPalNotes'],
160
+ :actionReason=>hash_in['actionReason']
160
161
  }
161
162
  hash_out.merge!(get_common_attributes(hash_in))
162
163
  Checker.purge_null(hash_out)
@@ -362,6 +363,14 @@ class LitleOnlineRequest
362
363
  return hash_in['merchantId']
363
364
  end
364
365
  end
366
+
367
+ def get_merchant_sdk(hash_in)
368
+ if(hash_in['merchantSdk'] == nil)
369
+ return 'Ruby;8.12.0'
370
+ else
371
+ return hash_in['merchantSdk']
372
+ end
373
+ end
365
374
 
366
375
  def get_report_group(hash_in)
367
376
  if (hash_in['reportGroup'] == nil)
@@ -410,6 +419,7 @@ class LitleOnlineRequest
410
419
  "@version"=> required_field(version),
411
420
  "@xmlns"=> "http://www.litle.com/schema",
412
421
  "@merchantId"=> get_merchant_id(hash_in),
422
+ "@merchantSdk"=> get_merchant_sdk(hash_in),
413
423
  :authentication => authentication(hash_in)
414
424
  }
415
425
  return litle_online_hash.merge(merge_hash)
@@ -341,6 +341,17 @@ class XMLFields
341
341
  Checker.required_missing(hash_out)
342
342
  return hash_out
343
343
  end
344
+
345
+ def XMLFields.merchant_data(hash_in)
346
+ hash_out = {
347
+ :campaign=>hash_in['campaign'],
348
+ :affiliate=>hash_in['affiliate'],
349
+ :merchnatGroupingId=>hash_in['merchantGroupingIdType']
350
+ }
351
+ Checker.purge_null(hash_out)
352
+ Checker.required_missing(hash_out)
353
+ return hash_out
354
+ end
344
355
 
345
356
  def XMLFields.echeck_type(hash_in)
346
357
  hash_out= {
@@ -294,4 +294,13 @@ end
294
294
  assert_nothing_raised {LitleOnlineRequest.new.authorization(start_hash.merge({'customerInfo'=>{'ssn'=>'000112222'} }))}
295
295
  end
296
296
 
297
+ def test_set_merchant_sdk
298
+ litle = LitleOnlineRequest.new
299
+ #Explicit - used for integrations
300
+ assert_equal 'ActiveMerchant;3.2', litle.send(:get_merchant_sdk, {'merchantSdk'=>'ActiveMerchant;3.2'})
301
+ #Implicit - used raw when nothing is specified
302
+ assert_equal 'Ruby;8.12.0', litle.send(:get_merchant_sdk, {'NotMerchantSdk'=>'ActiveMerchant;3.2'})
303
+ end
304
+
305
+
297
306
  end
@@ -176,5 +176,23 @@ class TestAuth < Test::Unit::TestCase
176
176
  assert_match /Entered an Invalid Amount of Choices for a Field, please only fill out one Choice!!!!/, exception.message
177
177
  end
178
178
 
179
+ def test_merchant_data_auth
180
+ hash = {
181
+ 'merchantId' => '101',
182
+ 'version'=>'8.12',
183
+ 'orderId'=>'1',
184
+ 'amount'=>'0',
185
+ 'orderSource'=>'ecommerce',
186
+ 'reportGroup'=>'Planets',
187
+ 'merchantData'=> {
188
+ 'campaign'=>'foo'
189
+ }
190
+ }
191
+
192
+ XMLObject.expects(:new)
193
+ Communications.expects(:http_post).with(regexp_matches(/.*<merchantData>.*?<campaign>foo<\/campaign>.*?<\/merchantData>.*/m),kind_of(Hash))
194
+ LitleOnlineRequest.new.authorization(hash)
195
+ end
196
+
179
197
  end
180
198
 
@@ -111,4 +111,20 @@ class TestCredit < Test::Unit::TestCase
111
111
  exception = assert_raise(RuntimeError){LitleOnlineRequest.new.credit(hash)}
112
112
  assert_match /Entered an Invalid Amount of Choices for a Field, please only fill out one Choice!!!!/, exception.message
113
113
  end
114
+
115
+ def test_action_reason_on_orphaned_refund
116
+ hash = {
117
+ 'merchantId' => '101',
118
+ 'version'=>'8.12',
119
+ 'orderId'=>'1',
120
+ 'amount'=>'2',
121
+ 'orderSource'=>'ecommerce',
122
+ 'reportGroup'=>'Planets',
123
+ 'actionReason'=> 'SUSPECT_FRAUD'
124
+ }
125
+ XMLObject.expects(:new)
126
+ Communications.expects(:http_post).with(regexp_matches(/.*<actionReason>SUSPECT_FRAUD<\/actionReason>.*/m),kind_of(Hash))
127
+ LitleOnlineRequest.new.credit(hash)
128
+ end
129
+
114
130
  end
@@ -245,5 +245,23 @@ class TestSale < Test::Unit::TestCase
245
245
  assert_match /Entered an Invalid Amount of Choices for a Field, please only fill out one Choice!!!!/, exception.message
246
246
  end
247
247
 
248
+ def test_merchant_data_sale
249
+ hash = {
250
+ 'merchantId' => '101',
251
+ 'version'=>'8.12',
252
+ 'orderId'=>'1',
253
+ 'amount'=>'0',
254
+ 'orderSource'=>'ecommerce',
255
+ 'reportGroup'=>'Planets',
256
+ 'merchantData'=> {
257
+ 'affiliate'=>'bar'
258
+ }
259
+ }
260
+
261
+ XMLObject.expects(:new)
262
+ Communications.expects(:http_post).with(regexp_matches(/.*<merchantData>.*?<affiliate>bar<\/affiliate>.*?<\/merchantData>.*/m),kind_of(Hash))
263
+ LitleOnlineRequest.new.sale(hash)
264
+ end
265
+
248
266
  end
249
267
 
metadata CHANGED
@@ -1,89 +1,77 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: LitleOnline
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 8
7
- - 10
8
- - 3
9
- version: 8.10.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 8.12.0
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Litle & Co
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2012-04-16 00:00:00 -04:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-04-16 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: i18n
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &244422760 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
31
22
  type: :runtime
32
- version_requirements: *id001
33
- - !ruby/object:Gem::Dependency
34
- name: xml-simple
35
23
  prerelease: false
36
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *244422760
25
+ - !ruby/object:Gem::Dependency
26
+ name: xml-simple
27
+ requirement: &244422340 !ruby/object:Gem::Requirement
37
28
  none: false
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- segments:
42
- - 0
43
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
44
33
  type: :runtime
45
- version_requirements: *id002
46
- - !ruby/object:Gem::Dependency
47
- name: xml-object
48
34
  prerelease: false
49
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *244422340
36
+ - !ruby/object:Gem::Dependency
37
+ name: xml-object
38
+ requirement: &244421920 !ruby/object:Gem::Requirement
50
39
  none: false
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- segments:
55
- - 0
56
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
57
44
  type: :runtime
58
- version_requirements: *id003
59
- - !ruby/object:Gem::Dependency
60
- name: mocha
61
45
  prerelease: false
62
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *244421920
47
+ - !ruby/object:Gem::Dependency
48
+ name: mocha
49
+ requirement: &244421500 !ruby/object:Gem::Requirement
63
50
  none: false
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- segments:
68
- - 0
69
- version: "0"
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
70
55
  type: :development
71
- version_requirements: *id004
72
- description: |+
73
- Litle Online Ruby SDK created for version 8.10 of Litle XML online format, see the XSD schema for specific fields that are supported by this format.
74
-
75
- This gem contains an application interface in the Ruby programming language created by Litle & Co.
76
-
77
-
56
+ prerelease: false
57
+ version_requirements: *244421500
58
+ description: ! 'Litle Online Ruby SDK created for version 8.12 of Litle XML online
59
+ format, see the XSD schema for specific fields that are supported by this format.
60
+
61
+
62
+ This gem contains an application interface in the Ruby programming language created
63
+ by Litle & Co.
64
+
65
+
66
+
67
+ '
78
68
  email: sdksupport@litle.com
79
- executables:
69
+ executables:
80
70
  - sample_driver.rb
81
71
  - Setup.rb
82
72
  extensions: []
83
-
84
73
  extra_rdoc_files: []
85
-
86
- files:
74
+ files:
87
75
  - README.md
88
76
  - Rakefile
89
77
  - index.html.1
@@ -137,39 +125,31 @@ files:
137
125
  - test/certification/certTest2_authenhanced.rb
138
126
  - test/certification/certTest5_token.rb
139
127
  - LICENSE
140
- has_rdoc: true
141
128
  homepage: http://www.litle.com/developers
142
129
  licenses: []
143
-
144
130
  post_install_message:
145
131
  rdoc_options: []
146
-
147
- require_paths:
132
+ require_paths:
148
133
  - lib
149
- required_ruby_version: !ruby/object:Gem::Requirement
134
+ required_ruby_version: !ruby/object:Gem::Requirement
150
135
  none: false
151
- requirements:
152
- - - ">="
153
- - !ruby/object:Gem::Version
154
- segments:
155
- - 1
156
- - 8
157
- - 6
136
+ requirements:
137
+ - - ! '>='
138
+ - !ruby/object:Gem::Version
158
139
  version: 1.8.6
159
- required_rubygems_version: !ruby/object:Gem::Requirement
140
+ required_rubygems_version: !ruby/object:Gem::Requirement
160
141
  none: false
161
- requirements:
162
- - - ">="
163
- - !ruby/object:Gem::Version
164
- segments:
165
- - 0
166
- version: "0"
167
- requirements:
142
+ requirements:
143
+ - - ! '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ requirements:
168
147
  - Contact sdksupport@litle.com for more information
169
148
  rubyforge_project:
170
- rubygems_version: 1.3.7
149
+ rubygems_version: 1.8.15
171
150
  signing_key:
172
151
  specification_version: 3
173
- summary: Ruby SDK produced by Litle & Co. for online transaction processing using Litle XML format v8.10
174
- test_files:
152
+ summary: Ruby SDK produced by Litle & Co. for online transaction processing using
153
+ Litle XML format v8.12
154
+ test_files:
175
155
  - test/unit/ts_unit.rb