bluepay 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README +47 -15
- data/Rakefile +11 -63
- data/bluepay.gemspec +13 -0
- data/doc/BluePay.html +2699 -0
- data/doc/README.html +173 -0
- data/doc/created.rid +3 -0
- data/doc/fonts.css +167 -0
- data/doc/fonts/Lato-Light.ttf +0 -0
- data/doc/fonts/Lato-LightItalic.ttf +0 -0
- data/doc/fonts/Lato-Regular.ttf +0 -0
- data/doc/fonts/Lato-RegularItalic.ttf +0 -0
- data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
- data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
- data/doc/images/add.png +0 -0
- data/doc/images/arrow_up.png +0 -0
- data/doc/images/brick.png +0 -0
- data/doc/images/brick_link.png +0 -0
- data/doc/images/bug.png +0 -0
- data/doc/images/bullet_black.png +0 -0
- data/doc/images/bullet_toggle_minus.png +0 -0
- data/doc/images/bullet_toggle_plus.png +0 -0
- data/doc/images/date.png +0 -0
- data/doc/images/delete.png +0 -0
- data/doc/images/find.png +0 -0
- data/doc/images/loadingAnimation.gif +0 -0
- data/doc/images/macFFBgHack.png +0 -0
- data/doc/images/package.png +0 -0
- data/doc/images/page_green.png +0 -0
- data/doc/images/page_white_text.png +0 -0
- data/doc/images/page_white_width.png +0 -0
- data/doc/images/plugin.png +0 -0
- data/doc/images/ruby.png +0 -0
- data/doc/images/tag_blue.png +0 -0
- data/doc/images/tag_green.png +0 -0
- data/doc/images/transparent.png +0 -0
- data/doc/images/wrench.png +0 -0
- data/doc/images/wrench_orange.png +0 -0
- data/doc/images/zoom.png +0 -0
- data/doc/index.html +92 -0
- data/doc/js/darkfish.js +140 -0
- data/doc/js/jquery.js +18 -0
- data/doc/js/navigation.js +142 -0
- data/doc/js/search.js +109 -0
- data/doc/js/search_index.js +1 -0
- data/doc/js/searcher.js +228 -0
- data/doc/rdoc.css +580 -0
- data/doc/table_of_contents.html +405 -0
- data/lib/bluepay.rb +488 -0
- data/test/get_data/retrieve_settlement_data.rb +39 -0
- data/test/get_data/retrieve_transaction_data.rb +37 -0
- data/test/get_data/transaction_query.rb +48 -0
- data/test/getting_stuff_done/get_transaction_data.rb +37 -0
- data/test/getting_stuff_done/run_ach_payment.rb +75 -0
- data/test/getting_stuff_done/run_cc_payment.rb +73 -0
- data/test/getting_stuff_done/set_up_rebill_ach.rb +85 -0
- data/test/getting_stuff_done/set_up_rebill_cc.rb +84 -0
- data/test/rebills/cancel_rebill.rb +96 -0
- data/test/rebills/create_rebill.rb +84 -0
- data/test/rebills/get_rebill.rb +97 -0
- data/test/rebills/update_rebill.rb +128 -0
- data/test/transactions/cancel_transaction.rb +85 -0
- data/test/transactions/charge_customer.rb +74 -0
- data/test/transactions/check_customer_credit.rb +74 -0
- data/test/transactions/credit_customer.rb +75 -0
- data/test/transactions/customer_defined_data.rb +99 -0
- data/test/transactions/return_funds.rb +86 -0
- data/test/transactions/store_payment_information.rb +74 -0
- data/test/transactions/use_token.rb +44 -0
- metadata +106 -35
- data/lib/Bluepay.rb +0 -206
- data/test/bp20post_test.rb +0 -12
@@ -0,0 +1,44 @@
|
|
1
|
+
##
|
2
|
+
# BluePay Ruby Sample code.
|
3
|
+
#
|
4
|
+
# This code sample uses a token from a previously run transaction
|
5
|
+
# to charge the same customer $3.00.
|
6
|
+
# If using TEST mode, odd dollar amounts will return
|
7
|
+
# an approval and even dollar amounts will return a decline.
|
8
|
+
##
|
9
|
+
|
10
|
+
require "bluepay"
|
11
|
+
|
12
|
+
$ACCOUNT_ID = "MERCHANT'S ACCOUNT ID HERE"
|
13
|
+
$SECRET_KEY = "MERCHANT'S SECRET KEY HERE"
|
14
|
+
$MODE = "TEST"
|
15
|
+
$TOKEN = "TRANSACTION ID HERE"
|
16
|
+
|
17
|
+
# Merchant's Account ID
|
18
|
+
# Merchant's Secret Key
|
19
|
+
# Transaction Mode: TEST (can also be LIVE)
|
20
|
+
payment = BluePay.new(
|
21
|
+
$ACCOUNT_ID,
|
22
|
+
$SECRET_KEY,
|
23
|
+
$MODE)
|
24
|
+
|
25
|
+
# Sale Amount: $3.00
|
26
|
+
payment.sale("3.00", $TOKEN)
|
27
|
+
|
28
|
+
response = payment.process()
|
29
|
+
|
30
|
+
# If transaction was approved..
|
31
|
+
if (payment.get_status() == "APPROVED") then
|
32
|
+
|
33
|
+
# Read response from BluePay
|
34
|
+
puts "TRANSACTION STATUS: " + payment.get_status()
|
35
|
+
puts "TRANSACTION MESSAGE: " + payment.get_message()
|
36
|
+
puts "TRANSACTION ID: " + payment.get_trans_id()
|
37
|
+
puts "AVS RESPONSE: " + payment.get_avs_code()
|
38
|
+
puts "CVV2 RESPONSE: " + payment.get_cvv2_code()
|
39
|
+
puts "MASKED PAYMENT ACCOUNT: " + payment.get_masked_account()
|
40
|
+
puts "CARD TYPE: " + payment.get_card_type()
|
41
|
+
puts "AUTH CODE: " + payment.get_auth_code()
|
42
|
+
else
|
43
|
+
puts payment.get_message()
|
44
|
+
end
|
metadata
CHANGED
@@ -1,49 +1,120 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.4
|
3
|
-
specification_version: 1
|
4
2
|
name: bluepay
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.0.
|
7
|
-
date: 2008-05-23 00:00:00 -05:00
|
8
|
-
summary: Bluepay is used to process credit card and ach transactions through the BluePay 2.0 Gateway.
|
9
|
-
require_paths:
|
10
|
-
- lib
|
11
|
-
email: cjansen@bluepay.com
|
12
|
-
homepage: http://www.bluepay.com/
|
13
|
-
rubyforge_project:
|
14
|
-
description: "This package allows a user to run credit card and ach transactions through the BluePay 2.0 Gateway. BluePay is a merchant account provider and payment gateway. BluePay, Inc. is a one-stop shop merchant services provider. For more information, visit: http://www.bluepay.com"
|
15
|
-
autorequire: bluepay
|
16
|
-
default_executable:
|
17
|
-
bindir: bin
|
18
|
-
has_rdoc: true
|
19
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.0.0
|
24
|
-
version:
|
4
|
+
version: 1.0.2
|
25
5
|
platform: ruby
|
26
|
-
signing_key:
|
27
|
-
cert_chain:
|
28
|
-
post_install_message:
|
29
6
|
authors:
|
30
|
-
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
- README
|
35
|
-
- Rakefile
|
36
|
-
test_files: []
|
37
|
-
|
38
|
-
rdoc_options: []
|
7
|
+
- Justin Slingerland
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
39
11
|
|
40
|
-
|
12
|
+
date: 2014-06-16 00:00:00 Z
|
13
|
+
dependencies: []
|
41
14
|
|
15
|
+
description: This gem is intended to be used along with a BluePay gateway account to test credit card and ACH transaction processing
|
16
|
+
email: jslingerland@blueapy.com
|
42
17
|
executables: []
|
43
18
|
|
44
19
|
extensions: []
|
45
20
|
|
21
|
+
extra_rdoc_files: []
|
22
|
+
|
23
|
+
files:
|
24
|
+
- README
|
25
|
+
- Rakefile
|
26
|
+
- bluepay.gemspec
|
27
|
+
- doc/BluePay.html
|
28
|
+
- doc/README.html
|
29
|
+
- doc/created.rid
|
30
|
+
- doc/fonts.css
|
31
|
+
- doc/fonts/Lato-Light.ttf
|
32
|
+
- doc/fonts/Lato-LightItalic.ttf
|
33
|
+
- doc/fonts/Lato-Regular.ttf
|
34
|
+
- doc/fonts/Lato-RegularItalic.ttf
|
35
|
+
- doc/fonts/SourceCodePro-Bold.ttf
|
36
|
+
- doc/fonts/SourceCodePro-Regular.ttf
|
37
|
+
- doc/images/add.png
|
38
|
+
- doc/images/arrow_up.png
|
39
|
+
- doc/images/brick.png
|
40
|
+
- doc/images/brick_link.png
|
41
|
+
- doc/images/bug.png
|
42
|
+
- doc/images/bullet_black.png
|
43
|
+
- doc/images/bullet_toggle_minus.png
|
44
|
+
- doc/images/bullet_toggle_plus.png
|
45
|
+
- doc/images/date.png
|
46
|
+
- doc/images/delete.png
|
47
|
+
- doc/images/find.png
|
48
|
+
- doc/images/loadingAnimation.gif
|
49
|
+
- doc/images/macFFBgHack.png
|
50
|
+
- doc/images/package.png
|
51
|
+
- doc/images/page_green.png
|
52
|
+
- doc/images/page_white_text.png
|
53
|
+
- doc/images/page_white_width.png
|
54
|
+
- doc/images/plugin.png
|
55
|
+
- doc/images/ruby.png
|
56
|
+
- doc/images/tag_blue.png
|
57
|
+
- doc/images/tag_green.png
|
58
|
+
- doc/images/transparent.png
|
59
|
+
- doc/images/wrench.png
|
60
|
+
- doc/images/wrench_orange.png
|
61
|
+
- doc/images/zoom.png
|
62
|
+
- doc/index.html
|
63
|
+
- doc/js/darkfish.js
|
64
|
+
- doc/js/jquery.js
|
65
|
+
- doc/js/navigation.js
|
66
|
+
- doc/js/search.js
|
67
|
+
- doc/js/search_index.js
|
68
|
+
- doc/js/searcher.js
|
69
|
+
- doc/rdoc.css
|
70
|
+
- doc/table_of_contents.html
|
71
|
+
- lib/bluepay.rb
|
72
|
+
- test/get_data/retrieve_settlement_data.rb
|
73
|
+
- test/get_data/retrieve_transaction_data.rb
|
74
|
+
- test/get_data/transaction_query.rb
|
75
|
+
- test/getting_stuff_done/get_transaction_data.rb
|
76
|
+
- test/getting_stuff_done/run_ach_payment.rb
|
77
|
+
- test/getting_stuff_done/run_cc_payment.rb
|
78
|
+
- test/getting_stuff_done/set_up_rebill_ach.rb
|
79
|
+
- test/getting_stuff_done/set_up_rebill_cc.rb
|
80
|
+
- test/rebills/cancel_rebill.rb
|
81
|
+
- test/rebills/create_rebill.rb
|
82
|
+
- test/rebills/get_rebill.rb
|
83
|
+
- test/rebills/update_rebill.rb
|
84
|
+
- test/transactions/cancel_transaction.rb
|
85
|
+
- test/transactions/charge_customer.rb
|
86
|
+
- test/transactions/check_customer_credit.rb
|
87
|
+
- test/transactions/credit_customer.rb
|
88
|
+
- test/transactions/customer_defined_data.rb
|
89
|
+
- test/transactions/return_funds.rb
|
90
|
+
- test/transactions/store_payment_information.rb
|
91
|
+
- test/transactions/use_token.rb
|
92
|
+
homepage: http://www.bluepay.com
|
93
|
+
licenses:
|
94
|
+
- GPL
|
95
|
+
metadata: {}
|
96
|
+
|
97
|
+
post_install_message:
|
98
|
+
rdoc_options: []
|
99
|
+
|
100
|
+
require_paths:
|
101
|
+
- lib
|
102
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
104
|
+
- &id001
|
105
|
+
- ">="
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: "0"
|
108
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- *id001
|
46
111
|
requirements: []
|
47
112
|
|
48
|
-
|
113
|
+
rubyforge_project:
|
114
|
+
rubygems_version: 2.3.0
|
115
|
+
signing_key:
|
116
|
+
specification_version: 4
|
117
|
+
summary: BluePay gateway rubygem.
|
118
|
+
test_files: []
|
49
119
|
|
120
|
+
has_rdoc: true
|
data/lib/Bluepay.rb
DELETED
@@ -1,206 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
#--
|
3
|
-
# Copyright (c) 2008 BluePay, Inc.
|
4
|
-
# Author: Chris Jansen
|
5
|
-
#
|
6
|
-
# Permission is hereby granted, free of charge, to any person obtaining
|
7
|
-
# a copy of this software and associated documentation files (the
|
8
|
-
# "Software"), to deal in the Software without restriction, including
|
9
|
-
# without limitation the rights to use, copy, modify, merge, publish,
|
10
|
-
# distribute, sublicense, and/or sell copies of the Software, and to
|
11
|
-
# permit persons to whom the Software is furnished to do so, subject to
|
12
|
-
# the following conditions:
|
13
|
-
#
|
14
|
-
# The above copyright notice and this permission notice shall be
|
15
|
-
# included in all copies or substantial portions of the Software.
|
16
|
-
#
|
17
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
18
|
-
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
19
|
-
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
20
|
-
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
21
|
-
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
22
|
-
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
23
|
-
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
24
|
-
#++
|
25
|
-
#
|
26
|
-
# See Bluepay documentation.
|
27
|
-
|
28
|
-
require "net/http"
|
29
|
-
require "net/https"
|
30
|
-
require "uri"
|
31
|
-
require "md5"
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
class Bluepay
|
36
|
-
|
37
|
-
@@SERVER = "secure.bluepay.com"
|
38
|
-
@@PATH = "/interfaces/bp20post"
|
39
|
-
|
40
|
-
def initialize(account,key,mode='TEST')
|
41
|
-
@ACCOUNT_ID = account
|
42
|
-
@SECRET_KEY = key
|
43
|
-
@PARAM_HASH = { 'MODE' => mode }
|
44
|
-
@RETURN_HASH = Hash.new()
|
45
|
-
end
|
46
|
-
|
47
|
-
# used to set all other parameters... there's a lot of them.
|
48
|
-
# See Bluepay20post.txt
|
49
|
-
def set_param(key, val)
|
50
|
-
@PARAM_HASH[key] = val
|
51
|
-
end
|
52
|
-
|
53
|
-
# Set up an ACH transaction. Expects:
|
54
|
-
# acc_type: C for Checking, S for Savings
|
55
|
-
# routing: Bank routing number
|
56
|
-
# account: Customer's checking or savings account number
|
57
|
-
# doc_type: WEB, TEL, ARC, etc -- see docs. Optional.
|
58
|
-
# REMEMBER: Ach requires some other fields,
|
59
|
-
# such as address and phone
|
60
|
-
def use_check(acc_type, routing, account, doc_type)
|
61
|
-
@PARAM_HASH['PAYMENT_ACCOUNT'] = "#{acc_type}:#{routing}:#{account}"
|
62
|
-
@PARAM_HASH['DOC_TYPE'] = doc_type
|
63
|
-
@PARAM_HASH['PAYMENT_TYPE'] = "ACH"
|
64
|
-
end
|
65
|
-
|
66
|
-
# Set up a credit card payment.
|
67
|
-
def use_card(account, expire, cvv)
|
68
|
-
@PARAM_HASH['PAYMENT_ACCOUNT'] = account
|
69
|
-
@PARAM_HASH['CARD_EXPIRE'] = expire
|
70
|
-
@PARAM_HASH['CARD_CVV2'] = cvv
|
71
|
-
end
|
72
|
-
|
73
|
-
# Set up a sale
|
74
|
-
def easy_sale(amount)
|
75
|
-
@PARAM_HASH['TRANS_TYPE'] = 'SALE'
|
76
|
-
@PARAM_HASH['AMOUNT'] = amount
|
77
|
-
end
|
78
|
-
|
79
|
-
# Set up an Auth-only
|
80
|
-
def easy_auth(amount)
|
81
|
-
@PARAM_HASH['TRANS_TYPE'] = 'AUTH'
|
82
|
-
@PARAM_HASH['AMOUNT'] = amount
|
83
|
-
end
|
84
|
-
|
85
|
-
# Capture an auth
|
86
|
-
def easy_capture(trans_id)
|
87
|
-
@PARAM_HASH['TRANS_TYPE'] = 'CAPTURE'
|
88
|
-
@PARAM_HASH['MASTER_ID'] = trans_id
|
89
|
-
end
|
90
|
-
|
91
|
-
# Refund
|
92
|
-
def easy_refund(trans_id)
|
93
|
-
@PARAM_HASH['TRANS_TYPE'] = 'REFUND'
|
94
|
-
@PARAM_HASH['MASTER_ID'] = trans_id
|
95
|
-
end
|
96
|
-
|
97
|
-
# This is the important stuff to get
|
98
|
-
# the best rates on CC transactions.
|
99
|
-
def customer_data(name1, name2, addr1, city, state, zip)
|
100
|
-
@PARAM_HASH['NAME1'] = name1
|
101
|
-
@PARAM_HASH['NAME2'] = name2
|
102
|
-
@PARAM_HASH['ADDR1'] = addr1
|
103
|
-
@PARAM_HASH['CITY'] = city
|
104
|
-
@PARAM_HASH['STATE'] = state
|
105
|
-
@PARAM_HASH['ZIP'] = zip
|
106
|
-
end
|
107
|
-
|
108
|
-
# Turns a hash into a foo=bar&baz=bat style string
|
109
|
-
def uri_query(h)
|
110
|
-
a = Array.new()
|
111
|
-
h.each_pair {|key, val| a.push(URI.escape(key) + "=" + URI.escape(val)) }
|
112
|
-
return a.join("&")
|
113
|
-
end
|
114
|
-
|
115
|
-
# Sets TAMPER_PROOF_SEAL in @PARAM_HASH
|
116
|
-
def calc_tps()
|
117
|
-
# Take the cheap way out. I wrote bp20post and I hereby publically
|
118
|
-
# state the TPS in bp20post is stupid.
|
119
|
-
@PARAM_HASH["TPS_DEF"] = "HELLO_MOTHER"
|
120
|
-
@PARAM_HASH["TAMPER_PROOF_SEAL"] = MD5.new(@SECRET_KEY).hexdigest
|
121
|
-
end
|
122
|
-
|
123
|
-
# Run a transaction - you must have called appropriate functions
|
124
|
-
# to set the transaction type, etc before calling this.
|
125
|
-
def process()
|
126
|
-
ua = Net::HTTP.new(@@SERVER, 443)
|
127
|
-
ua.use_ssl = true
|
128
|
-
|
129
|
-
# Generate the query string and headers
|
130
|
-
calc_tps()
|
131
|
-
query = "ACCOUNT_ID=#{@ACCOUNT_ID}&"
|
132
|
-
query += uri_query(@PARAM_HASH)
|
133
|
-
|
134
|
-
queryheaders = {
|
135
|
-
'User-Agent' => 'Bluepay Ruby Client',
|
136
|
-
'Content-Type' => 'application/x-www-form-urlencoded'
|
137
|
-
}
|
138
|
-
|
139
|
-
# Make Bluepay do Super CreditCard Magic
|
140
|
-
headers, body = ua.post(@@PATH, query, queryheaders)
|
141
|
-
|
142
|
-
# Split the response into the response hash.
|
143
|
-
# Also, we stuff in RESPONSE_CODE expected to be 200 or 400...
|
144
|
-
@RESPONSE_HASH = { "RESPONSE_CODE" => headers.code }
|
145
|
-
body.split("&").each { |pair|
|
146
|
-
(key, val) = pair.split("=")
|
147
|
-
val = "" if(val == nil)
|
148
|
-
@RESPONSE_HASH[URI.unescape(key)] = URI.unescape(val)
|
149
|
-
}
|
150
|
-
end
|
151
|
-
|
152
|
-
# Returns ! on WTF, E for Error, 1 for Approved, 0 for Decline
|
153
|
-
def get_status()
|
154
|
-
return 'E' if(@RESPONSE_HASH['RESPONSE_CODE'] == 400)
|
155
|
-
return '1' if(@RESPONSE_HASH['STATUS'] == '1');
|
156
|
-
return '0' if(@RESPONSE_HASH['STATUS'] == '0');
|
157
|
-
return 'E' if(@RESPONSE_HASH['STATUS'] == 'E');
|
158
|
-
return '!'
|
159
|
-
end
|
160
|
-
|
161
|
-
# Returns the human-readable response from Bluepay.
|
162
|
-
# Or a nasty error.
|
163
|
-
def get_message()
|
164
|
-
m = @RESPONSE_HASH['MESSAGE']
|
165
|
-
if (m == nil or m == "")
|
166
|
-
return "ERROR - NO MESSAGE FROM BLUEPAY"
|
167
|
-
end
|
168
|
-
return m
|
169
|
-
end
|
170
|
-
|
171
|
-
# Returns the single-character AVS response from the
|
172
|
-
# Card Issuing Bank
|
173
|
-
def get_avs_code()
|
174
|
-
return @RESPONSE_HASH['AVS']
|
175
|
-
end
|
176
|
-
|
177
|
-
# Same as avs_code, but for CVV2
|
178
|
-
def get_cvv2_code()
|
179
|
-
return @RESPONSE_HASH['CVV2']
|
180
|
-
end
|
181
|
-
|
182
|
-
# In the case of an approved transaction, contains the
|
183
|
-
# 6-character authorization code from the processing network.
|
184
|
-
# In the case of a decline or error, the contents may be junk.
|
185
|
-
def get_auth_code()
|
186
|
-
return @RESPONSE_HASH['AUTH_CODE']
|
187
|
-
end
|
188
|
-
|
189
|
-
# The all-important transaction ID.
|
190
|
-
def get_trans_id()
|
191
|
-
return @RESPONSE_HASH['TRANS_ID']
|
192
|
-
end
|
193
|
-
|
194
|
-
# If you set up a rebilling, this'll get it's ID.
|
195
|
-
def get_rebill_id()
|
196
|
-
return @RESPONSE_HASH['REBID']
|
197
|
-
end
|
198
|
-
|
199
|
-
end
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
data/test/bp20post_test.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
|
3
|
-
require "Bluepay"
|
4
|
-
|
5
|
-
tob = Bluepay.new("123123123123", "ABCDabcdABCDabcdABCDabcdABCDabcd")
|
6
|
-
tob.easy_sale("1.00")
|
7
|
-
tob.use_card("4111111111111111", "1109", "123")
|
8
|
-
tob.process()
|
9
|
-
puts "Status: " + tob.get_status()
|
10
|
-
puts "Message: " + tob.get_message()
|
11
|
-
puts "Transaction ID: " + tob.get_trans_id()
|
12
|
-
|