paytrace 0.0.5 → 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e8e39285035b4738f309e0124bbb9984bc724ee9
4
- data.tar.gz: 621bbb455c469a7e98abd9a1e7509364c23a7922
3
+ metadata.gz: 6f22e1455f84e910000a9d9a751021ac5e473287
4
+ data.tar.gz: 01202f564b24a3ba0f6188771af8170dedcba65c
5
5
  SHA512:
6
- metadata.gz: 6e515351d099ee793196e7f83bbd431b8295c9d8eed6dfcd1cba57610420adecb85548281db275a48270fdd9b81b656450b4da657668a88894360b414c7bb84c
7
- data.tar.gz: 4eeb9ecaad3cc8959d1588a91997bb1630469c47dc5c4d85439e0979b998c6c700d21af9135d0c0118754a2b05c2d879b26da8d6a437096f0fee0f4a11df7be0
6
+ metadata.gz: 66c923651c3dd5388ee6d692765b75c5e0f03b2e61f293ea39a35a00ffd5a897f0f0a4563a0a830c52fe6f8893f6d7da7a5d5e3f2fa267e42fa5e1df95b19dd5
7
+ data.tar.gz: ff35841365e29a55fe7c987e62a0ea1d8c1359598ebfb1e49c720aea0b0f0d714a18c70b2517b152b2088c11d85725debd8decd455f423d30122ecc0ed0cef96
data/lib/paytrace.rb CHANGED
@@ -3,6 +3,7 @@ require "paytrace/configuration"
3
3
  require "paytrace/credit_card"
4
4
  require "paytrace/customer"
5
5
  require "paytrace/transaction"
6
+ require "paytrace/email_receipt_request"
6
7
  require 'paytrace/api/fields'
7
8
  require 'paytrace/api/gateway'
8
9
  require 'paytrace/api/request'
@@ -17,6 +17,7 @@ module PayTrace
17
17
  custom_dba: "CUSTOMDBA",
18
18
  invoice:"INVOICE",
19
19
  transaction_id:"TRANXID",
20
+ check_id:"CHECKID",
20
21
  #credit card
21
22
  card_number: "CC",
22
23
  expiration_year: "EXPYR",
@@ -4,7 +4,7 @@ module PayTrace
4
4
  TRANSACTION_METHOD = "PROCESSTRANX"
5
5
  attr_reader :params, :field_delim, :value_delim
6
6
 
7
- def initialize(transaction: nil)
7
+ def initialize
8
8
  @field_delim = "|"
9
9
  @value_delim = "~"
10
10
 
@@ -14,7 +14,6 @@ module PayTrace
14
14
  terms: "Y"
15
15
  }
16
16
 
17
- add_transaction(transaction) if transaction
18
17
  end
19
18
 
20
19
  def to_parms_string()
@@ -23,63 +22,10 @@ module PayTrace
23
22
  end.join(@field_delim) << "|"
24
23
  end
25
24
 
26
- private
27
- def add_transaction(t)
28
- add_credit_card t.credit_card if t.credit_card
29
- add_customer t.customer if t.customer
30
- @params[:transaction_type] = t.type
31
- @params[:method] = TRANSACTION_METHOD
32
- @params[:amount] = t.amount
33
- load_address(t)
34
- load_misc_fields(t) if t.optional_fields
25
+ def set_param(k, v)
26
+ @params[k] = v
35
27
  end
36
28
 
37
- def add_credit_card(cc)
38
- @params[:card_number] = cc.card_number if cc.card_number
39
- @params[:expiration_month] = cc.expiration_month if cc.expiration_month
40
- @params[:expiration_year] = cc.expiration_year if cc.expiration_year
41
- @params[:swipe] = cc.swipe if cc.swipe
42
- @params[:csc] = cc.csc if cc.csc
43
- end
44
-
45
- def load_misc_fields(t)
46
- o = t.optional_fields
47
- o.each do |k,v|
48
- @params[k]= v
49
- end
50
-
51
-
52
- end
53
-
54
- def load_address(t)
55
- add_shipping_address(t.shipping_address) if t.shipping_address
56
- add_billing_address(t.billing_address) if t.billing_address
57
- end
58
-
59
- def add_customer(c)
60
- @params[:customer_id] = c.customer_id
61
- end
62
-
63
- def add_shipping_address(s)
64
- add_address("shipping",s)
65
- end
66
-
67
- def add_billing_address(b)
68
- add_address("billing",b)
69
- end
70
-
71
- def add_address(address_type, address)
72
- @params[:"#{address_type}_name"] = address.name if address.name
73
- @params[:"#{address_type}_address"] = address.street if address.street
74
- @params[:"#{address_type}_address2"] = address.street2 if address.street2
75
- @params[:"#{address_type}_city"] = address.city if address.city
76
- @params[:"#{address_type}_region"] = address.region if address.region
77
- @params[:"#{address_type}_state"] = address.state if address.state
78
- @params[:"#{address_type}_postal_code"] = address.postal_code if address.postal_code
79
- @params[:"#{address_type}_country"] = address.country if address.country
80
- end
81
-
82
-
83
29
  end
84
30
  end
85
31
  end
@@ -0,0 +1,32 @@
1
+ module PayTrace
2
+ class EmailReceiptRequest
3
+ TRANSACTION_METHOD = "EmailReceipt"
4
+ attr_accessor :email, :id, :id_is_check_id
5
+
6
+ def initialize(email, id, id_is_check_id = false)
7
+ @email = email
8
+ @id = id
9
+ @id_is_check_id = id_is_check_id
10
+ end
11
+
12
+ def set_request(request = nil)
13
+ request ||= PayTrace::API::Request.new
14
+ request.set_param(:method, TRANSACTION_METHOD)
15
+ if @id_is_check_id
16
+ request.set_param(:check_id, @id)
17
+ else
18
+ request.set_param(:transaction_id, @id)
19
+ end
20
+ request.set_param(:email, @email)
21
+
22
+ request
23
+ end
24
+
25
+ def send_request(request = nil)
26
+ request ||= set_request
27
+
28
+ gateway = PayTrace::API::Gateway.new
29
+ gateway.send_request(request)
30
+ end
31
+ end
32
+ end
@@ -66,7 +66,9 @@ module PayTrace
66
66
 
67
67
  private
68
68
  def send_request(t)
69
- request = PayTrace::API::Request.new(transaction: t)
69
+ request = PayTrace::API::Request.new
70
+ t.set_request(request)
71
+
70
72
  gateway = PayTrace::API::Gateway.new
71
73
  gateway.send_request(request)
72
74
  end
@@ -81,6 +83,9 @@ module PayTrace
81
83
  attr_reader :amount, :credit_card, :type, :customer, :billing_address, :shipping_address,:optional_fields
82
84
  attr_accessor :response
83
85
 
86
+ TRANSACTION_METHOD = "PROCESSTRANX"
87
+
88
+
84
89
  def set_shipping_same_as_billing()
85
90
  @shipping_address = @billing_address
86
91
  end
@@ -95,7 +100,68 @@ module PayTrace
95
100
  include_optional(optional) if optional
96
101
  end
97
102
 
103
+ def set_request(request)
104
+ add_transaction(request)
105
+ end
106
+
98
107
  private
108
+ def add_transaction(request)
109
+ add_credit_card(request, credit_card) if credit_card
110
+ add_customer(request, customer) if customer
111
+ request.set_param(:transaction_type, type)
112
+ request.set_param(:method, TRANSACTION_METHOD)
113
+ request.set_param(:amount, amount)
114
+ load_address(request)
115
+ load_misc_fields(request) if optional_fields
116
+ end
117
+
118
+ def add_credit_card(request, cc)
119
+ request.set_param(:card_number, cc.card_number) if cc.card_number
120
+ request.set_param(:expiration_month, cc.expiration_month) if cc.expiration_month
121
+ request.set_param(:expiration_year, cc.expiration_year) if cc.expiration_year
122
+ request.set_param(:swipe, cc.swipe) if cc.swipe
123
+ request.set_param(:csc, cc.csc) if cc.csc
124
+ end
125
+
126
+
127
+ def load_misc_fields(request)
128
+ o = optional_fields
129
+ o.each do |k,v|
130
+ request.set_param(k, v)
131
+ end
132
+
133
+
134
+ end
135
+
136
+ def load_address(request)
137
+ add_shipping_address(request, shipping_address) if shipping_address
138
+ add_billing_address(request, billing_address) if billing_address
139
+ end
140
+
141
+ def add_customer(request, c)
142
+ request.set_param(:customer_id, c.customer_id)
143
+ end
144
+
145
+ def add_shipping_address(request, s)
146
+ add_address(request, "shipping",s)
147
+ end
148
+
149
+ def add_billing_address(request, b)
150
+ add_address(request, "billing",b)
151
+ end
152
+
153
+ def add_address(request, address_type, address)
154
+ request.set_param(:"#{address_type}_name", address.name) if address.name
155
+ request.set_param(:"#{address_type}_address", address.street) if address.street
156
+ request.set_param(:"#{address_type}_address2", address.street2) if address.street2
157
+ request.set_param(:"#{address_type}_city", address.city) if address.city
158
+ request.set_param(:"#{address_type}_region", address.region) if address.region
159
+ request.set_param(:"#{address_type}_state", address.state) if address.state
160
+ request.set_param(:"#{address_type}_postal_code", address.postal_code) if address.postal_code
161
+ request.set_param(:"#{address_type}_country", address.country) if address.country
162
+ end
163
+
164
+
99
165
  def include_optional(args)
100
166
  s = nil
101
167
  b = nil
@@ -1,3 +1,3 @@
1
1
  module PayTrace
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
@@ -24,194 +24,9 @@ describe PayTrace::API::Request do
24
24
  to_url.must_equal "UN~request_test|PSWD~request_password|TERMS~Y|"
25
25
  end
26
26
 
27
- it "can add a transaction to its param list" do
28
- t = PayTrace::Transaction.new({amount: "23.12",
29
- credit_card: PayTrace::CreditCard.new({
30
- card_number: "1234123412341234",
31
- expiration_year: 24,
32
- expiration_month: 10 }),
33
- type: PayTrace::TransactionTypes::SALE})
34
- r = PayTrace::API::Request.new(transaction: t)
35
-
36
- r.params[:card_number].must_equal "1234123412341234"
37
- r.params[:expiration_month].must_equal 10
38
- r.params[:expiration_year].must_equal 24
39
- r.params[:transaction_type].must_equal "SALE"
40
- r.params[:method].must_equal "PROCESSTRANX"
41
- r.params[:amount].must_equal "23.12"
42
-
43
- url = r.to_parms_string
44
- url.must_equal "UN~test|PSWD~test|TERMS~Y|CC~1234123412341234|EXPMNTH~10|EXPYR~24|TRANXTYPE~SALE|METHOD~PROCESSTRANX|AMOUNT~23.12|"
45
- end
46
-
47
- it "can use a customer id for processing the transaction" do
48
- t = PayTrace::Transaction.new({amount: "12.34",
49
- customer: PayTrace::Customer.new(customer_id: "1234"),
50
- type: PayTrace::TransactionTypes::SALE
51
- }
52
- )
53
- r = PayTrace::API::Request.new(transaction: t)
54
- r.params[:customer_id].must_equal "1234"
55
- r.params[:amount].must_equal "12.34"
56
-
57
- url = r.to_parms_string
58
-
59
- #Make sure it puts in values we expect
60
- url.must_match /\|CUSTID~1234\|/
61
- url.must_match /\|AMOUNT~12.34\|/
62
- url.must_match /\|METHOD~PROCESSTRANX\|/
63
- url.must_match /\|TRANXTYPE~SALE\|/
64
- end
65
-
66
- it "can include a billing address" do
67
- t = PayTrace::Transaction.new(
68
- optional:{
69
- billing_address:{
70
- name:"John Doe",
71
- street:"1234 happy lane",
72
- street2:"apt#2",
73
- city:"Seattle",
74
- state:"WA",
75
- country: "US",
76
- postal_code:"98107"
77
- }
78
- }
79
- )
80
-
81
- t.shipping_address.must_be_nil
82
-
83
- r = PayTrace::API::Request.new(transaction: t)
84
-
85
- url = r.to_parms_string
86
-
87
- #Make sure it puts in values we expect
88
- url.must_match /\|BNAME~John Doe\|/
89
- url.must_match /\|BADDRESS~1234 happy lane\|/
90
- url.must_match /\|BADDRESS2~apt#2\|/
91
- url.must_match /\|BCITY~Seattle\|/
92
- url.must_match /\|BSTATE~WA\|/
93
- url.must_match /\|BSTATE~WA\|/
94
- url.must_match /\|BCOUNTRY~US\|/
95
-
96
- end
97
-
98
- it "can include misc fields as well" do
99
- t = PayTrace::Transaction.new(
100
- optional: {
101
- email:"it@paytrace.com",
102
- description:"This is a test",
103
- tax_amount: "1.00",
104
- return_clr: "Y",
105
- enable_partial_authentication:"Y",
106
- discretionary_data:"This is some data that is discretionary",
107
- custom_dba:"NewName"
108
- }
109
- )
110
-
111
- r = PayTrace::API::Request.new(transaction: t)
112
-
113
- url = r.to_parms_string
114
-
115
- url.must_match /\|DESCRIPTION~This is a test\|/
116
- url.must_match /\|TAX~1.00\|/
117
- url.must_match /\|EMAIL~it@paytrace.com\|/
118
- url.must_match /\|RETURNCLR~Y\|/
119
- url.must_match /\|ENABLEPARTIALAUTH~Y\|/
120
- url.must_match /\|DISCRETIONARY DATA~This is some data that is discretionary\|/
121
- url.must_match /\|CUSTOMDBA~NewName\|/
122
- end
123
-
124
- it "can do a swipe transaction" do
125
- cc = PayTrace::CreditCard.new( {
126
- swipe: '%B4055010000000005^J/SCOTT^1212101001020001000000701000000?;4055010000000005=12121010010270100001?'
127
- })
128
- t = PayTrace::Transaction.new(
129
- amount: '1.00',
130
- credit_card:cc
131
- )
132
-
133
- r = PayTrace::API::Request.new(transaction: t)
134
- url = r.to_parms_string
135
-
136
- url.must_match /\|AMOUNT~1.00\|/
137
- url.must_match /\|SWIPE~%B4055010000000005/
138
-
139
-
140
- end
141
-
142
- it "can do a reference sales request " do
143
-
144
- t = PayTrace::Transaction.new(
145
- amount: '1.00',
146
- optional:{transaction_id: '1234'}
147
- )
148
-
149
- r = PayTrace::API::Request.new(transaction: t)
150
- url = r.to_parms_string
151
-
152
- url.must_match /\|AMOUNT~1.00\|/
153
- url.must_match /\|TRANXID~1234|/
154
- end
155
-
156
- it "can create an approval code call" do
157
- t = PayTrace::Transaction.new({amount: "23.12",
158
- credit_card: PayTrace::CreditCard.new({
159
- card_number: "1234123412341234",
160
- expiration_year: 24,
161
- expiration_month: 10 }),
162
- type: PayTrace::TransactionTypes::ForcedSale,
163
- optional:{approval_code:'1234'}
164
- })
165
- r = PayTrace::API::Request.new(transaction: t)
166
- url = r.to_parms_string
167
-
168
- url.must_match /\|APPROVAL~1234\|/
169
- url.must_match /\|TRANXTYPE~Force\|/
170
-
171
- end
172
-
173
- it "can create a new cash_advance sale" do
174
- cc = PayTrace::CreditCard.new( {
175
- swipe: '%B4055010000000005^J/SCOTT^1212101001020001000000701000000?;4055010000000005=12121010010270100001?'
176
- })
177
-
178
- optional = {
179
- billing_address:{
180
- name:"John Doe",
181
- street:"1234 happy lane",
182
- street2:"apt#2",
183
- city:"Seattle",
184
- state:"WA",
185
- country: "US",
186
- postal_code:"98107"
187
- },
188
- id_number: "1234",
189
- id_expiration:"12/20/2020",
190
- cc_last_4: "1234",
191
- cash_advance: "Y"
192
-
193
-
194
- }
195
- t = PayTrace::Transaction.new(
196
- amount: '1.00',
197
- credit_card:cc,
198
- type: PayTrace::TransactionTypes::SALE,
199
- optional:optional
200
- )
201
-
202
- r = PayTrace::API::Request.new(transaction: t)
203
- url = r.to_parms_string
204
-
205
- url.must_match /\|AMOUNT~1.00\|/
206
- url.must_match /\|SWIPE~%B4055010000000005/
207
- url.must_match /\|CASHADVANCE~Y\|/
208
- url.must_match /\|PHOTOID~1234\|/
209
- url.must_match /\|LAST4~1234\|/
210
- url.must_match /\|BADDRESS~1234 happy lane\|/
211
-
212
-
213
-
214
-
27
+ it "can manually set params" do
28
+ r = PayTrace::API::Request.new
29
+ r.set_param(:foo, "bar")
30
+ r.params[:foo].must_equal "bar"
215
31
  end
216
-
217
- end
32
+ end
@@ -0,0 +1,19 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '../../test_helper.rb')
2
+
3
+ describe PayTrace::EmailReceiptRequest do
4
+ it "correctly formats the request URL" do
5
+ e = PayTrace::EmailReceiptRequest.new("support@paytrace.com", "FOO1234", false)
6
+ r = e.set_request
7
+
8
+ url = r.to_parms_string
9
+ url.must_equal "UN~#{PayTrace.configuration.user_name}|PSWD~#{PayTrace.configuration.password}|TERMS~Y|METHOD~EmailReceipt|TRANXID~FOO1234|EMAIL~support@paytrace.com|"
10
+ end
11
+
12
+ it "uses check id instead of transaction id if specified" do
13
+ e = PayTrace::EmailReceiptRequest.new("support@paytrace.com", "CHECK2345", true)
14
+ r = e.set_request
15
+
16
+ url = r.to_parms_string
17
+ url.must_equal "UN~#{PayTrace.configuration.user_name}|PSWD~#{PayTrace.configuration.password}|TERMS~Y|METHOD~EmailReceipt|CHECKID~CHECK2345|EMAIL~support@paytrace.com|"
18
+ end
19
+ end
@@ -192,4 +192,208 @@ describe PayTrace::Transaction do
192
192
  end
193
193
 
194
194
 
195
+ it "can add a transaction to its param list" do
196
+ t = PayTrace::Transaction.new({amount: "23.12",
197
+ credit_card: PayTrace::CreditCard.new({
198
+ card_number: "1234123412341234",
199
+ expiration_year: 24,
200
+ expiration_month: 10 }),
201
+ type: PayTrace::TransactionTypes::SALE})
202
+ r = PayTrace::API::Request.new
203
+ t.set_request(r)
204
+
205
+ r.params[:card_number].must_equal "1234123412341234"
206
+ r.params[:expiration_month].must_equal 10
207
+ r.params[:expiration_year].must_equal 24
208
+ r.params[:transaction_type].must_equal "SALE"
209
+ r.params[:method].must_equal "PROCESSTRANX"
210
+ r.params[:amount].must_equal "23.12"
211
+
212
+ url = r.to_parms_string
213
+ url.must_equal "UN~#{PayTrace.configuration.user_name}|PSWD~#{PayTrace.configuration.password}|TERMS~Y|CC~1234123412341234|EXPMNTH~10|EXPYR~24|TRANXTYPE~SALE|METHOD~PROCESSTRANX|AMOUNT~23.12|"
214
+ end
215
+
216
+ it "can use a customer id for processing the transaction" do
217
+ t = PayTrace::Transaction.new({amount: "12.34",
218
+ customer: PayTrace::Customer.new(customer_id: "1234"),
219
+ type: PayTrace::TransactionTypes::SALE
220
+ }
221
+ )
222
+ r = PayTrace::API::Request.new
223
+ t.set_request(r)
224
+
225
+ r.params[:customer_id].must_equal "1234"
226
+ r.params[:amount].must_equal "12.34"
227
+
228
+ url = r.to_parms_string
229
+
230
+ #Make sure it puts in values we expect
231
+ url.must_match /\|CUSTID~1234\|/
232
+ url.must_match /\|AMOUNT~12.34\|/
233
+ url.must_match /\|METHOD~PROCESSTRANX\|/
234
+ url.must_match /\|TRANXTYPE~SALE\|/
235
+ end
236
+
237
+ it "can include a billing address" do
238
+ t = PayTrace::Transaction.new(
239
+ optional:{
240
+ billing_address:{
241
+ name:"John Doe",
242
+ street:"1234 happy lane",
243
+ street2:"apt#2",
244
+ city:"Seattle",
245
+ state:"WA",
246
+ country: "US",
247
+ postal_code:"98107"
248
+ }
249
+ }
250
+ )
251
+
252
+ t.shipping_address.must_be_nil
253
+
254
+ r = PayTrace::API::Request.new
255
+ t.set_request(r)
256
+
257
+ url = r.to_parms_string
258
+
259
+ #Make sure it puts in values we expect
260
+ url.must_match /\|BNAME~John Doe\|/
261
+ url.must_match /\|BADDRESS~1234 happy lane\|/
262
+ url.must_match /\|BADDRESS2~apt#2\|/
263
+ url.must_match /\|BCITY~Seattle\|/
264
+ url.must_match /\|BSTATE~WA\|/
265
+ url.must_match /\|BSTATE~WA\|/
266
+ url.must_match /\|BCOUNTRY~US\|/
267
+
268
+ end
269
+
270
+ it "can include misc fields as well" do
271
+ t = PayTrace::Transaction.new(
272
+ optional: {
273
+ email:"it@paytrace.com",
274
+ description:"This is a test",
275
+ tax_amount: "1.00",
276
+ return_clr: "Y",
277
+ enable_partial_authentication:"Y",
278
+ discretionary_data:"This is some data that is discretionary",
279
+ custom_dba:"NewName"
280
+ }
281
+ )
282
+
283
+ r = PayTrace::API::Request.new
284
+ t.set_request(r)
285
+
286
+ url = r.to_parms_string
287
+
288
+ url.must_match /\|DESCRIPTION~This is a test\|/
289
+ url.must_match /\|TAX~1.00\|/
290
+ url.must_match /\|EMAIL~it@paytrace.com\|/
291
+ url.must_match /\|RETURNCLR~Y\|/
292
+ url.must_match /\|ENABLEPARTIALAUTH~Y\|/
293
+ url.must_match /\|DISCRETIONARY DATA~This is some data that is discretionary\|/
294
+ url.must_match /\|CUSTOMDBA~NewName\|/
295
+ end
296
+
297
+ it "can do a swipe transaction" do
298
+ cc = PayTrace::CreditCard.new( {
299
+ swipe: '%B4055010000000005^J/SCOTT^1212101001020001000000701000000?;4055010000000005=12121010010270100001?'
300
+ })
301
+ t = PayTrace::Transaction.new(
302
+ amount: '1.00',
303
+ credit_card:cc
304
+ )
305
+
306
+ r = PayTrace::API::Request.new
307
+ t.set_request(r)
308
+
309
+ url = r.to_parms_string
310
+
311
+ url.must_match /\|AMOUNT~1.00\|/
312
+ url.must_match /\|SWIPE~%B4055010000000005/
313
+
314
+
315
+ end
316
+
317
+ it "can do a reference sales request " do
318
+
319
+ t = PayTrace::Transaction.new(
320
+ amount: '1.00',
321
+ optional:{transaction_id: '1234'}
322
+ )
323
+
324
+ r = PayTrace::API::Request.new
325
+ t.set_request(r)
326
+
327
+ url = r.to_parms_string
328
+
329
+ url.must_match /\|AMOUNT~1.00\|/
330
+ url.must_match /\|TRANXID~1234|/
331
+ end
332
+
333
+ it "can create an approval code call" do
334
+ t = PayTrace::Transaction.new({amount: "23.12",
335
+ credit_card: PayTrace::CreditCard.new({
336
+ card_number: "1234123412341234",
337
+ expiration_year: 24,
338
+ expiration_month: 10 }),
339
+ type: PayTrace::TransactionTypes::ForcedSale,
340
+ optional:{approval_code:'1234'}
341
+ })
342
+
343
+ r = PayTrace::API::Request.new
344
+ t.set_request(r)
345
+
346
+ url = r.to_parms_string
347
+
348
+ url.must_match /\|APPROVAL~1234\|/
349
+ url.must_match /\|TRANXTYPE~Force\|/
350
+
351
+ end
352
+
353
+ it "can create a new cash_advance sale" do
354
+ cc = PayTrace::CreditCard.new( {
355
+ swipe: '%B4055010000000005^J/SCOTT^1212101001020001000000701000000?;4055010000000005=12121010010270100001?'
356
+ })
357
+
358
+ optional = {
359
+ billing_address:{
360
+ name:"John Doe",
361
+ street:"1234 happy lane",
362
+ street2:"apt#2",
363
+ city:"Seattle",
364
+ state:"WA",
365
+ country: "US",
366
+ postal_code:"98107"
367
+ },
368
+ id_number: "1234",
369
+ id_expiration:"12/20/2020",
370
+ cc_last_4: "1234",
371
+ cash_advance: "Y"
372
+
373
+
374
+ }
375
+ t = PayTrace::Transaction.new(
376
+ amount: '1.00',
377
+ credit_card:cc,
378
+ type: PayTrace::TransactionTypes::SALE,
379
+ optional:optional
380
+ )
381
+
382
+ r = PayTrace::API::Request.new
383
+ t.set_request(r)
384
+
385
+ url = r.to_parms_string
386
+
387
+ url.must_match /\|AMOUNT~1.00\|/
388
+ url.must_match /\|SWIPE~%B4055010000000005/
389
+ url.must_match /\|CASHADVANCE~Y\|/
390
+ url.must_match /\|PHOTOID~1234\|/
391
+ url.must_match /\|LAST4~1234\|/
392
+ url.must_match /\|BADDRESS~1234 happy lane\|/
393
+
394
+
395
+
396
+
397
+ end
398
+
195
399
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paytrace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Trevor Redfern
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-24 00:00:00.000000000 Z
11
+ date: 2014-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -75,7 +75,6 @@ extra_rdoc_files: []
75
75
  files:
76
76
  - ".gitignore"
77
77
  - ".ruby-gemset"
78
- - ".ruby-version"
79
78
  - Gemfile
80
79
  - LICENSE.txt
81
80
  - README.md
@@ -91,6 +90,7 @@ files:
91
90
  - lib/paytrace/configuration.rb
92
91
  - lib/paytrace/credit_card.rb
93
92
  - lib/paytrace/customer.rb
93
+ - lib/paytrace/email_receipt_request.rb
94
94
  - lib/paytrace/transaction.rb
95
95
  - lib/paytrace/version.rb
96
96
  - paytrace.gemspec
@@ -100,6 +100,7 @@ files:
100
100
  - test/paytrace/api/response_spec.rb
101
101
  - test/paytrace/configuration_spec.rb
102
102
  - test/paytrace/credit_card_spec.rb
103
+ - test/paytrace/email_receipt_request_spec.rb
103
104
  - test/paytrace/transaction_spec.rb
104
105
  - test/test_helper.rb
105
106
  - vagrant-bootstrap.sh
@@ -123,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
124
  version: '0'
124
125
  requirements: []
125
126
  rubyforge_project:
126
- rubygems_version: 2.2.1
127
+ rubygems_version: 2.0.2
127
128
  signing_key:
128
129
  specification_version: 4
129
130
  summary: Integration providing access to the transaction processing API for PayTrace
@@ -134,5 +135,6 @@ test_files:
134
135
  - test/paytrace/api/response_spec.rb
135
136
  - test/paytrace/configuration_spec.rb
136
137
  - test/paytrace/credit_card_spec.rb
138
+ - test/paytrace/email_receipt_request_spec.rb
137
139
  - test/paytrace/transaction_spec.rb
138
140
  - test/test_helper.rb
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 2.1.0