LitleOnline 8.10.0
Sign up to get free protection for your applications and to get access to all the features.
- data/DESCRIPTION +5 -0
- data/LICENSE +22 -0
- data/README.md +69 -0
- data/Rakefile +92 -0
- data/SETUP.md +47 -0
- data/bin/Setup.rb +103 -0
- data/bin/sample_driver.rb +49 -0
- data/index.html +176 -0
- data/index.html.1 +176 -0
- data/lib/Checker.rb +56 -0
- data/lib/Communications.rb +85 -0
- data/lib/Configuration.rb +45 -0
- data/lib/LitleOnline.rb +52 -0
- data/lib/LitleOnlineRequest.rb +399 -0
- data/lib/LitleXmlMapper.rb +48 -0
- data/lib/Obj2xml.rb +37 -0
- data/lib/XMLFields.rb +378 -0
- data/test/certification/certTest1_base.rb +948 -0
- data/test/certification/certTest2_authenhanced.rb +571 -0
- data/test/certification/certTest3_authreversal.rb +184 -0
- data/test/certification/certTest4_echeck.rb +279 -0
- data/test/certification/certTest5_token.rb +222 -0
- data/test/certification/ts_all.rb +31 -0
- data/test/functional/test_auth.rb +135 -0
- data/test/functional/test_authReversal.rb +68 -0
- data/test/functional/test_capture.rb +71 -0
- data/test/functional/test_captureGivenAuth.rb +161 -0
- data/test/functional/test_credit.rb +154 -0
- data/test/functional/test_echeckCredit.rb +116 -0
- data/test/functional/test_echeckRedeposit.rb +78 -0
- data/test/functional/test_echeckSale.rb +157 -0
- data/test/functional/test_echeckVerification.rb +92 -0
- data/test/functional/test_forceCapture.rb +105 -0
- data/test/functional/test_sale.rb +198 -0
- data/test/functional/test_token.rb +102 -0
- data/test/functional/test_xmlfields.rb +403 -0
- data/test/functional/ts_all.rb +39 -0
- data/test/unit/test_Checker.rb +58 -0
- data/test/unit/test_LitleOnlineRequest.rb +288 -0
- data/test/unit/test_auth.rb +168 -0
- data/test/unit/test_authReversal.rb +41 -0
- data/test/unit/test_capture.rb +40 -0
- data/test/unit/test_captureGivenAuth.rb +108 -0
- data/test/unit/test_credit.rb +117 -0
- data/test/unit/test_echeckCredit.rb +45 -0
- data/test/unit/test_echeckRedeposit.rb +76 -0
- data/test/unit/test_echeckSale.rb +45 -0
- data/test/unit/test_echeckVerification.rb +75 -0
- data/test/unit/test_forceCapture.rb +122 -0
- data/test/unit/test_sale.rb +249 -0
- data/test/unit/test_token.rb +70 -0
- data/test/unit/test_xmlfields.rb +173 -0
- data/test/unit/ts_unit.rb +41 -0
- metadata +166 -0
data/DESCRIPTION
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2011 Litle & Co.
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person
|
4
|
+
obtaining a copy of this software and associated documentation
|
5
|
+
files (the "Software"), to deal in the Software without
|
6
|
+
restriction, including without limitation the rights to use,
|
7
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
+
copies of the Software, and to permit persons to whom the
|
9
|
+
Software is furnished to do so, subject to the following
|
10
|
+
conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be
|
13
|
+
included in all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
17
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
19
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
20
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
21
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
22
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
Litle Online Ruby SDK
|
2
|
+
=====================
|
3
|
+
|
4
|
+
About Litle
|
5
|
+
------------
|
6
|
+
[Litle & Co.](http://www.litle.com) powers the payment processing engines for leading companies that sell directly to consumers through internet retail, direct response marketing (TV, radio and telephone), and online services. Litle & Co. is the leading, independent authority in card-not-present (CNP) commerce, transaction processing and merchant services.
|
7
|
+
|
8
|
+
|
9
|
+
About this SDK
|
10
|
+
--------------
|
11
|
+
The Litle Ruby SDK is a Ruby implementation of the [Litle & Co.](http://www.litle.com). XML API. This SDK was created to make it as easy as possible to connect process your payments with Litle. This SDK utilizes the HTTPS protocol to securely connect to Litle. Using the SDK requires coordination with the Litle team in order to be provided with credentials for accessing our systems.
|
12
|
+
|
13
|
+
Our Ruby SDK supports all of the functionality present in Litle XML v8. Please see the online copy of our XSD for Litle XML to get more details on what is supported by the Litle payments engine.
|
14
|
+
|
15
|
+
This SDK is implemented to support the Ruby programming language and was created by Litle & Co. It is intended use is for online transactions processing utilizing your account on the Litle payments engine.
|
16
|
+
|
17
|
+
See LICENSE file for details on using this software.
|
18
|
+
|
19
|
+
Source Code available from : https://github.com/LitleCo/litle-sdk-for-ruby
|
20
|
+
|
21
|
+
Please contact [Litle & Co.](http://www.litle.com) to receive valid merchant credentials in order to run tests successfully or if you require assistance in any way. We are reachable at MerchantSDKSupport@litle.com
|
22
|
+
|
23
|
+
Setup
|
24
|
+
-----
|
25
|
+
|
26
|
+
1) Install the LitleOnline Ruby gem from rubygems.org, this will install the latest SDK gem in your Ruby environment.
|
27
|
+
Our gem is available publicly from rubygems.org. Use the command below to install.
|
28
|
+
|
29
|
+
>sudo gem install LitleOnline
|
30
|
+
|
31
|
+
Note: If you get errors, you might have to configure your proxy.
|
32
|
+
|
33
|
+
2) Once the gem is installed run our setup program to generate a configuration file. The configuration file resides in your home directory
|
34
|
+
$HOME/.litle_SDK_config.yml
|
35
|
+
|
36
|
+
For more details on setup see our instructions [here](https://github.com/LitleCo/litle-sdk-for-ruby/blob/master/SETUP.md)
|
37
|
+
|
38
|
+
3.) Create a ruby file similar to:
|
39
|
+
|
40
|
+
```ruby
|
41
|
+
require 'LitleOnline'
|
42
|
+
|
43
|
+
# Visa $10 Sale
|
44
|
+
litleSaleTxn = {
|
45
|
+
'reportGroup'=>'rpt_grp',
|
46
|
+
'orderId'=>'1234567',
|
47
|
+
'card'=>{
|
48
|
+
'type'=>'VI',
|
49
|
+
'number' =>'4100000000000001',
|
50
|
+
'expDate' =>'1212'},
|
51
|
+
'orderSource'=>'ecommerce',
|
52
|
+
'amount'=>'1000'
|
53
|
+
}
|
54
|
+
|
55
|
+
# Peform the transaction on the Litle Platform
|
56
|
+
response = LitleOnlineRequest.sale(litleSaleTxn)
|
57
|
+
|
58
|
+
# display result
|
59
|
+
puts "Message: "+ response.message
|
60
|
+
puts "Litle Transaction ID: "+ response.saleResponse.litleTxnId
|
61
|
+
```
|
62
|
+
|
63
|
+
3) Next run this file using ruby. You should see the following result provided you have connectivity to the Litle certification environment. You will see an HTTP error if you don't have access to the Litle URL
|
64
|
+
|
65
|
+
Message: Valid Format
|
66
|
+
Litle Transaction ID: <your-numeric-litle-txn-id>
|
67
|
+
|
68
|
+
|
69
|
+
Please contact Lilte & Co. with any further questions. You can reach us at RubySupport@litle.com.
|
data/Rakefile
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
=begin
|
2
|
+
Copyright (c) 2011 Litle & Co.
|
3
|
+
|
4
|
+
Permission is hereby granted, free of charge, to any person
|
5
|
+
obtaining a copy of this software and associated documentation
|
6
|
+
files (the "Software"), to deal in the Software without
|
7
|
+
restriction, including without limitation the rights to use,
|
8
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the
|
10
|
+
Software is furnished to do so, subject to the following
|
11
|
+
conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
18
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
20
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
21
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
22
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
23
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
24
|
+
=end
|
25
|
+
require 'rubygems'
|
26
|
+
require 'rubygems/package_task'
|
27
|
+
require 'rake/testtask'
|
28
|
+
require 'rake/clean'
|
29
|
+
|
30
|
+
spec = Gem::Specification.new do |s|
|
31
|
+
FileUtils.rm_rf('pkg')
|
32
|
+
s.name = "LitleOnline"
|
33
|
+
s.summary = "Ruby SDK produced by Litle & Co. for online transaction processing using Litle XML format v8.10"
|
34
|
+
s.description = File.read(File.join(File.dirname(__FILE__), 'DESCRIPTION'))
|
35
|
+
s.requirements =
|
36
|
+
[ 'Contact sdksupport@litle.com for more information' ]
|
37
|
+
s.version = "8.10.0"
|
38
|
+
s.author = "Litle & Co"
|
39
|
+
s.email = "sdksupport@litle.com"
|
40
|
+
s.homepage = "http://www.litle.com/developers"
|
41
|
+
s.platform = Gem::Platform::RUBY
|
42
|
+
s.required_ruby_version = '>=1.9'
|
43
|
+
s.files = Dir['**/**']
|
44
|
+
s.executables = [ 'sample_driver.rb', 'Setup.rb' ]
|
45
|
+
s.test_files = Dir["test/unit/ts_unit.rb"]
|
46
|
+
s.has_rdoc = true
|
47
|
+
s.add_dependency('i18n')
|
48
|
+
s.add_dependency('xml-simple')
|
49
|
+
s.add_dependency('activesupport')
|
50
|
+
s.add_dependency('xml-object')
|
51
|
+
s.add_development_dependency('mocha')
|
52
|
+
end
|
53
|
+
|
54
|
+
Gem::PackageTask.new(spec) do |pkg|
|
55
|
+
pkg.gem_spec = spec
|
56
|
+
pkg.need_zip = true
|
57
|
+
pkg.need_tar = true
|
58
|
+
end
|
59
|
+
|
60
|
+
namespace :test do
|
61
|
+
|
62
|
+
Rake::TestTask.new do |t|
|
63
|
+
t.libs << '.'
|
64
|
+
t.name = 'unit'
|
65
|
+
t.test_files = FileList['test/unit/ts_unit.rb']
|
66
|
+
t.verbose = true
|
67
|
+
end
|
68
|
+
|
69
|
+
Rake::TestTask.new do |t|
|
70
|
+
t.libs << '.'
|
71
|
+
t.name = 'functional'
|
72
|
+
t.test_files = FileList['test/functional/ts_all.rb']
|
73
|
+
t.verbose = true
|
74
|
+
end
|
75
|
+
|
76
|
+
Rake::TestTask.new do |t|
|
77
|
+
t.libs << '.'
|
78
|
+
t.name = 'certification'
|
79
|
+
t.test_files = FileList['test/certification/certTest*.rb']
|
80
|
+
t.verbose = true
|
81
|
+
end
|
82
|
+
|
83
|
+
Rake::TestTask.new do |t|
|
84
|
+
t.libs << '.'
|
85
|
+
t.name = 'all'
|
86
|
+
t.test_files = FileList['test/**/*.rb']
|
87
|
+
t.verbose = true
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
task :default =>'gem'
|
data/SETUP.md
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
Setting up and Configuring the Litle SDK
|
2
|
+
=========================================
|
3
|
+
|
4
|
+
Running the built in configuration file generator
|
5
|
+
-------------------------------------------------
|
6
|
+
The Ruby SDK ships with a built in program which can be used to generate your specific configuration.
|
7
|
+
|
8
|
+
This program runs as follows:
|
9
|
+
|
10
|
+
```
|
11
|
+
>Setup.rb
|
12
|
+
Welcome to Litle Ruby_SDK
|
13
|
+
please input your user name:
|
14
|
+
test_user
|
15
|
+
please input your password:
|
16
|
+
test_password
|
17
|
+
Please choose Litle url from the following list (example: 'cert') or directly input another URL:
|
18
|
+
cert => https://cert.litle.com/vap/communicator/online
|
19
|
+
precert => https://precert.litle.com/vap/communicator/online
|
20
|
+
production1 => https://payments.litle.com/vap/communicator/online
|
21
|
+
production2 => https://payments2.litle.com/vap/communicator/online
|
22
|
+
cert
|
23
|
+
Please input the proxy address, if no proxy hit enter key:
|
24
|
+
|
25
|
+
Please input the proxy port, if no proxy hit enter key:
|
26
|
+
|
27
|
+
The Litle configuration file has been generated, the file is located at: /<your-home-directory>/.litle_SDK_config.yml
|
28
|
+
```
|
29
|
+
|
30
|
+
Modifying your configuration
|
31
|
+
----------------------------
|
32
|
+
You may change the configuration values at anytime by running Setup.rb again, or simpy opening the configuration file directly in the editor of your choice and changing the appropriate fields.
|
33
|
+
|
34
|
+
Changing the location of the Litle configuration file:
|
35
|
+
------------------------------------------------------
|
36
|
+
NOTICE you can set the environment variable $LITLE_CONFIG_DIR to locate your configuration file in a location other than the $HOME Directory, the the file will reside in $LITLE_CONFIG_DIR/.litle_SDK_config.yml
|
37
|
+
|
38
|
+
Sample configuration file contents
|
39
|
+
----------------------------------
|
40
|
+
```
|
41
|
+
user: test_user
|
42
|
+
password: test_password
|
43
|
+
version: 8.10
|
44
|
+
url: https://precert.litle.com/vap/communicator/online
|
45
|
+
proxy_addr: yourproxyserver
|
46
|
+
proxy_port: 8080
|
47
|
+
```
|
data/bin/Setup.rb
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
=begin
|
4
|
+
Copyright (c) 2011 Litle & Co.
|
5
|
+
|
6
|
+
Permission is hereby granted, free of charge, to any person
|
7
|
+
obtaining a copy of this software and associated documentation
|
8
|
+
files (the "Software"), to deal in the Software without
|
9
|
+
restriction, including without limitation the rights to use,
|
10
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
11
|
+
copies of the Software, and to permit persons to whom the
|
12
|
+
Software is furnished to do so, subject to the following
|
13
|
+
conditions:
|
14
|
+
|
15
|
+
The above copyright notice and this permission notice shall be
|
16
|
+
included in all copies or substantial portions of the Software.
|
17
|
+
|
18
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
19
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
20
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
21
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
22
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
23
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
24
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
25
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
26
|
+
=end
|
27
|
+
|
28
|
+
# make setup file executable
|
29
|
+
|
30
|
+
#
|
31
|
+
# Configuration generation for URL and credentials
|
32
|
+
#
|
33
|
+
class Setup
|
34
|
+
attr_reader :handle, :path
|
35
|
+
def initialize(filename)
|
36
|
+
@handle = File.new(filename, File::CREAT|File::TRUNC|File::RDWR, 0600)
|
37
|
+
File.open(filename, "w") do |f|
|
38
|
+
puts "Welcome to Litle Ruby_SDK"
|
39
|
+
puts "Please input your user name:"
|
40
|
+
f.puts "user: "+ gets
|
41
|
+
puts "Please input your password:"
|
42
|
+
f.puts "password: " + gets
|
43
|
+
puts "Please input your merchantId:"
|
44
|
+
f.puts "currency_merchant_map:"
|
45
|
+
f.puts " DEFAULT: " + gets
|
46
|
+
f.puts "default_report_group: 'Default Report Group'"
|
47
|
+
f.puts "version: '8.10'"
|
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
|
+
f.puts "url: " + Setup.choice(gets)
|
50
|
+
puts "Please input the proxy address, if no proxy hit enter key: "
|
51
|
+
f.puts "proxy_addr: " + gets
|
52
|
+
puts "Please input the proxy port, if no proxy hit enter key: "
|
53
|
+
f.puts "proxy_port: " + gets
|
54
|
+
f.puts "printxml: false"
|
55
|
+
f.puts "timeout: 65"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def finished
|
60
|
+
@handle.close
|
61
|
+
end
|
62
|
+
|
63
|
+
def Setup.choice(litle_env)
|
64
|
+
litle_online_ctx = 'vap/communicator/online'
|
65
|
+
if litle_env == "sandbox\n"
|
66
|
+
return 'https://www.testlitle.com/sandbox/communicator/online'
|
67
|
+
elsif litle_env == "cert\n"
|
68
|
+
return 'https://cert.litle.com/' + litle_online_ctx
|
69
|
+
elsif litle_env == "precert\n"
|
70
|
+
return 'https://precert.litle.com/' + litle_online_ctx
|
71
|
+
elsif litle_env == "production1\n"
|
72
|
+
return 'https://payments.litle.com/' + litle_online_ctx
|
73
|
+
elsif litle_env == "production2\n"
|
74
|
+
return 'https://payments2.litle.com/' + litle_online_ctx
|
75
|
+
else
|
76
|
+
return 'https://www.testlitle.com/sandbox/communicator/online'
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
#
|
82
|
+
#
|
83
|
+
# Optionally enable the configuration to reside in a custom location
|
84
|
+
# if the $LITLE_CONFIG_DIR directory is set
|
85
|
+
#
|
86
|
+
|
87
|
+
# make the config.yml file in the LITLE_CONFIG_DIR directory or HOME directory
|
88
|
+
if !(ENV['LITLE_CONFIG_DIR'].nil?)
|
89
|
+
path = ENV['LITLE_CONFIG_DIR']
|
90
|
+
else
|
91
|
+
path = ENV['HOME']
|
92
|
+
end
|
93
|
+
|
94
|
+
# make the config.yml file hidden
|
95
|
+
# create a config file contain all the configuration data
|
96
|
+
config_file = path + "/.litle_SDK_config.yml"
|
97
|
+
f = Setup.new(config_file)
|
98
|
+
|
99
|
+
# return the path of the config file and the path file
|
100
|
+
@path = File.expand_path(config_file)
|
101
|
+
puts "The Litle configuration file has been generated, the file is located at: " + @path
|
102
|
+
f.finished
|
103
|
+
|
@@ -0,0 +1,49 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
=begin
|
4
|
+
Copyright (c) 2011 Litle & Co.
|
5
|
+
|
6
|
+
Permission is hereby granted, free of charge, to any person
|
7
|
+
obtaining a copy of this software and associated documentation
|
8
|
+
files (the "Software"), to deal in the Software without
|
9
|
+
restriction, including without limitation the rights to use,
|
10
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
11
|
+
copies of the Software, and to permit persons to whom the
|
12
|
+
Software is furnished to do so, subject to the following
|
13
|
+
conditions:
|
14
|
+
|
15
|
+
The above copyright notice and this permission notice shall be
|
16
|
+
included in all copies or substantial portions of the Software.
|
17
|
+
|
18
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
19
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
20
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
21
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
22
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
23
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
24
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
25
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
26
|
+
=end
|
27
|
+
|
28
|
+
#Sample Driver
|
29
|
+
require 'LitleOnline'
|
30
|
+
|
31
|
+
hash = {
|
32
|
+
'reportGroup'=>'product1',
|
33
|
+
'orderId'=>'12344',
|
34
|
+
'card'=>{
|
35
|
+
'type'=>'VI',
|
36
|
+
'number' =>'4100000000000001',
|
37
|
+
'expDate' =>'1210'
|
38
|
+
},
|
39
|
+
'orderSource'=>'ecommerce',
|
40
|
+
'amount'=>'106'
|
41
|
+
}
|
42
|
+
|
43
|
+
#perform credit transaction
|
44
|
+
response= LitleOnlineRequest.new.credit(hash)
|
45
|
+
|
46
|
+
#display results
|
47
|
+
|
48
|
+
puts "Message: "+response.message
|
49
|
+
puts "Litle Transaction ID: "+response.creditResponse.litleTxnId
|
data/index.html
ADDED
@@ -0,0 +1,176 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
|
3
|
+
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
|
4
|
+
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
|
5
|
+
<!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
|
6
|
+
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"><!--<![endif]-->
|
7
|
+
<head>
|
8
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
9
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
10
|
+
<title>Welcome to Grails</title>
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
12
|
+
<link rel="shortcut icon" href="/sandbox/static/images/favicon.ico" type="image/x-icon">
|
13
|
+
<link rel="apple-touch-icon" href="/sandbox/static/images/apple-touch-icon.png">
|
14
|
+
<link rel="apple-touch-icon" sizes="114x114" href="/sandbox/static/images/apple-touch-icon-retina.png">
|
15
|
+
<link rel="stylesheet" href="/sandbox/static/css/main.css" type="text/css">
|
16
|
+
<link rel="stylesheet" href="/sandbox/static/css/mobile.css" type="text/css">
|
17
|
+
|
18
|
+
<meta name="layout" content="main"/>
|
19
|
+
|
20
|
+
<style type="text/css" media="screen">
|
21
|
+
#status {
|
22
|
+
background-color: #eee;
|
23
|
+
border: .2em solid #fff;
|
24
|
+
margin: 2em 2em 1em;
|
25
|
+
padding: 1em;
|
26
|
+
width: 12em;
|
27
|
+
float: left;
|
28
|
+
-moz-box-shadow: 0px 0px 1.25em #ccc;
|
29
|
+
-webkit-box-shadow: 0px 0px 1.25em #ccc;
|
30
|
+
box-shadow: 0px 0px 1.25em #ccc;
|
31
|
+
-moz-border-radius: 0.6em;
|
32
|
+
-webkit-border-radius: 0.6em;
|
33
|
+
border-radius: 0.6em;
|
34
|
+
}
|
35
|
+
|
36
|
+
.ie6 #status {
|
37
|
+
display: inline; /* float double margin fix http://www.positioniseverything.net/explorer/doubled-margin.html */
|
38
|
+
}
|
39
|
+
|
40
|
+
#status ul {
|
41
|
+
font-size: 0.9em;
|
42
|
+
list-style-type: none;
|
43
|
+
margin-bottom: 0.6em;
|
44
|
+
padding: 0;
|
45
|
+
}
|
46
|
+
|
47
|
+
#status h1 {
|
48
|
+
text-transform: uppercase;
|
49
|
+
font-size: 1.1em;
|
50
|
+
margin: 0 0 0.3em;
|
51
|
+
}
|
52
|
+
|
53
|
+
#page-body {
|
54
|
+
margin: 2em 1em 1.25em 18em;
|
55
|
+
}
|
56
|
+
|
57
|
+
h2 {
|
58
|
+
margin-top: 1em;
|
59
|
+
margin-bottom: 0.3em;
|
60
|
+
font-size: 1em;
|
61
|
+
}
|
62
|
+
|
63
|
+
p {
|
64
|
+
margin: 0.25em 0;
|
65
|
+
}
|
66
|
+
|
67
|
+
#controller-list ul {
|
68
|
+
list-style-position: inside;
|
69
|
+
}
|
70
|
+
|
71
|
+
#controller-list li {
|
72
|
+
list-style-position: inside;
|
73
|
+
margin: 0.25em 0;
|
74
|
+
}
|
75
|
+
|
76
|
+
@media screen and (max-width: 480px) {
|
77
|
+
#status {
|
78
|
+
display: none;
|
79
|
+
}
|
80
|
+
|
81
|
+
#page-body {
|
82
|
+
margin: 0 1em 1em;
|
83
|
+
}
|
84
|
+
|
85
|
+
#page-body h1 {
|
86
|
+
margin-top: 0;
|
87
|
+
}
|
88
|
+
}
|
89
|
+
</style>
|
90
|
+
|
91
|
+
|
92
|
+
</head>
|
93
|
+
<body>
|
94
|
+
<div id="grailsLogo" role="banner"><a href="http://grails.org"><img src="/sandbox/static/images/grails_logo.png" alt="Grails"/></a></div>
|
95
|
+
|
96
|
+
<a href="#page-body" class="skip">Skip to content…</a>
|
97
|
+
<div id="status" role="complementary">
|
98
|
+
<h1>Application Status</h1>
|
99
|
+
<ul>
|
100
|
+
<li>App version: 0.1</li>
|
101
|
+
<li>Grails version: 2.0.0</li>
|
102
|
+
<li>Groovy version: 1.8.4</li>
|
103
|
+
<li>JVM version: 1.6.0_10</li>
|
104
|
+
<li>Reloading active: false</li>
|
105
|
+
<li>Controllers: 1</li>
|
106
|
+
<li>Domains: 8</li>
|
107
|
+
<li>Services: 2</li>
|
108
|
+
<li>Tag Libraries: 12</li>
|
109
|
+
</ul>
|
110
|
+
<h1>Installed Plugins</h1>
|
111
|
+
<ul>
|
112
|
+
|
113
|
+
<li>logging - 2.0.0</li>
|
114
|
+
|
115
|
+
<li>core - 2.0.0</li>
|
116
|
+
|
117
|
+
<li>i18n - 2.0.0</li>
|
118
|
+
|
119
|
+
<li>urlMappings - 2.0.0</li>
|
120
|
+
|
121
|
+
<li>groovyPages - 2.0.0</li>
|
122
|
+
|
123
|
+
<li>codecs - 2.0.0</li>
|
124
|
+
|
125
|
+
<li>servlets - 2.0.0</li>
|
126
|
+
|
127
|
+
<li>dataSource - 2.0.0</li>
|
128
|
+
|
129
|
+
<li>jquery - 1.7.1</li>
|
130
|
+
|
131
|
+
<li>resources - 1.1.5</li>
|
132
|
+
|
133
|
+
<li>controllers - 2.0.0</li>
|
134
|
+
|
135
|
+
<li>domainClass - 2.0.0</li>
|
136
|
+
|
137
|
+
<li>mimeTypes - 2.0.0</li>
|
138
|
+
|
139
|
+
<li>scaffolding - 2.0.0</li>
|
140
|
+
|
141
|
+
<li>hibernate - 2.0.0</li>
|
142
|
+
|
143
|
+
<li>filters - 2.0.0</li>
|
144
|
+
|
145
|
+
<li>validation - 2.0.0</li>
|
146
|
+
|
147
|
+
<li>converters - 2.0.0</li>
|
148
|
+
|
149
|
+
<li>services - 2.0.0</li>
|
150
|
+
|
151
|
+
</ul>
|
152
|
+
</div>
|
153
|
+
<div id="page-body" role="main">
|
154
|
+
<h1>Welcome to Grails</h1>
|
155
|
+
<p>Congratulations, you have successfully started your first Grails application! At the moment
|
156
|
+
this is the default page, feel free to modify it to either redirect to a controller or display whatever
|
157
|
+
content you may choose. Below is a list of controllers that are currently deployed in this application,
|
158
|
+
click on each to execute its default action:</p>
|
159
|
+
|
160
|
+
<div id="controller-list" role="navigation">
|
161
|
+
<h2>Available Controllers:</h2>
|
162
|
+
<ul>
|
163
|
+
|
164
|
+
<li class="controller"><a href="/sandbox/communicator/index">com.litle.sandbox.CommunicatorController</a></li>
|
165
|
+
|
166
|
+
</ul>
|
167
|
+
</div>
|
168
|
+
</div>
|
169
|
+
|
170
|
+
<div class="footer" role="contentinfo"></div>
|
171
|
+
<div id="spinner" class="spinner" style="display:none;">Loading…</div>
|
172
|
+
|
173
|
+
<script src="/sandbox/static/js/application.js" type="text/javascript" ></script>
|
174
|
+
|
175
|
+
</body>
|
176
|
+
</html>
|