paytrace 0.1.23 → 1.0.0
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 +4 -4
- data/lib/paytrace/address.rb +2 -0
- data/lib/paytrace/api/gateway.rb +19 -4
- data/lib/paytrace/api/request.rb +72 -28
- data/lib/paytrace/api/response.rb +19 -11
- data/lib/paytrace/batch_operations.rb +8 -30
- data/lib/paytrace/check_transaction.rb +119 -84
- data/lib/paytrace/configuration.rb +2 -0
- data/lib/paytrace/customer.rb +95 -97
- data/lib/paytrace/debug.rb +36 -0
- data/lib/paytrace/email_receipt_request.rb +4 -28
- data/lib/paytrace/recurring_transaction.rb +20 -67
- data/lib/paytrace/transaction.rb +680 -267
- data/lib/paytrace/version.rb +1 -1
- data/lib/paytrace.rb +0 -4
- data/paytrace.gemspec +1 -0
- data/run_all_integrations.sh +15 -0
- data/test/paytrace/api/gateway_spec.rb +8 -0
- data/test/paytrace/api/request_spec.rb +84 -28
- data/test/paytrace/api/response_spec.rb +2 -2
- data/test/paytrace/batch_operations_spec.rb +5 -5
- data/test/paytrace/{check_transactions_spec.rb → check_transaction_spec.rb} +40 -19
- data/test/paytrace/customer_spec.rb +86 -110
- data/test/paytrace/email_receipt_request_spec.rb +9 -8
- data/test/paytrace/level3_data_spec.rb +28 -2
- data/test/paytrace/recurring_transaction_spec.rb +8 -16
- data/test/paytrace/transaction_spec.rb +300 -330
- data/test/scripts/run_adjust_amount.rb +1 -1
- data/test/scripts/run_attach_signature.rb +2 -2
- data/test/scripts/run_calculate_shipping_costs.rb +2 -3
- data/test/scripts/run_change_password.rb +2 -0
- data/test/scripts/run_check_transactions.rb +2 -3
- data/test/scripts/run_create_customer.rb +16 -23
- data/test/scripts/run_email_request.rb +3 -5
- data/test/scripts/run_export_batches.rb +6 -3
- data/test/scripts/run_export_customers.rb +1 -1
- data/test/scripts/run_export_transactions.rb +2 -2
- data/test/scripts/run_level3_data.rb +1 -1
- data/test/scripts/run_recur_payments_integration.rb +24 -32
- data/test/scripts/run_settle_transaction.rb +2 -2
- data/test/test_helper.rb +12 -1
- metadata +19 -7
- data/lib/paytrace/credit_card.rb +0 -32
- data/test/paytrace/credit_card_spec.rb +0 -26
@@ -1,19 +1,20 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '../../test_helper.rb')
|
2
2
|
|
3
3
|
describe PayTrace::EmailReceiptRequest do
|
4
|
+
before do
|
5
|
+
PayTrace::API::Gateway.debug = true
|
6
|
+
PayTrace::API::Gateway.next_response = "RESPONSE~ok|CUSTOMERID~12345|CUSTID~john_doe"
|
7
|
+
end
|
8
|
+
|
4
9
|
it "correctly formats the request URL" do
|
5
|
-
|
6
|
-
r = e.set_request
|
10
|
+
PayTrace::EmailReceiptRequest.create({email: "support@paytrace.com", transaction_id: "FOO1234"})
|
7
11
|
|
8
|
-
|
9
|
-
url.must_equal "UN~#{PayTrace.configuration.user_name}|PSWD~#{PayTrace.configuration.password}|TERMS~Y|METHOD~EmailReceipt|TRANXID~FOO1234|EMAIL~support@paytrace.com|"
|
12
|
+
assert_last_request_equals "METHOD~EmailReceipt|TRANXID~FOO1234|EMAIL~support@paytrace.com|"
|
10
13
|
end
|
11
14
|
|
12
15
|
it "uses check id instead of transaction id if specified" do
|
13
|
-
|
14
|
-
r = e.set_request
|
16
|
+
PayTrace::EmailReceiptRequest.create({email: "support@paytrace.com", check_id: "CHECK2345"})
|
15
17
|
|
16
|
-
|
17
|
-
url.must_equal "UN~#{PayTrace.configuration.user_name}|PSWD~#{PayTrace.configuration.password}|TERMS~Y|METHOD~EmailReceipt|CHECKID~CHECK2345|EMAIL~support@paytrace.com|"
|
18
|
+
assert_last_request_equals "METHOD~EmailReceipt|CHECKID~CHECK2345|EMAIL~support@paytrace.com|"
|
18
19
|
end
|
19
20
|
end
|
@@ -69,8 +69,8 @@ describe PayTrace::Transaction do
|
|
69
69
|
add_tax_rate_li: 0.45,
|
70
70
|
discount_li: 1.87,
|
71
71
|
amount_li: 6
|
72
|
-
|
73
|
-
|
72
|
+
}
|
73
|
+
]
|
74
74
|
}
|
75
75
|
PayTrace::Transaction.add_level_three_visa(params)
|
76
76
|
|
@@ -78,6 +78,19 @@ describe PayTrace::Transaction do
|
|
78
78
|
"TRANXID~1143|INVOICE~12346|CUSTREF~1234578|TAX~31.76|NTAX~0.00|MERCHANTTAXID~13692468|CUSTOMERTAXID~12369240|CCODE~1234abcd|DISCOUNT~4.53|FREIGHT~7.99|DUTY~6.52|SOURCEZIP~94947|SZIP~98133|SCOUNTRY~US|ADDTAX~4.78|ADDTAXRATE~0.43|LINEITEM~CCODELI=12345678+PRODUCTID=E123125+DESCRIPTION=Widgets and wodgets+QUANTITY=20+MEASURE=foo+UNITCOST=3.99+ADDTAXLI=3.82+ADDTAXRATELI=0.44+DISCOUNTLI=1.86+AMOUNTLI=5|LINEITEM~CCODELI=12345679+PRODUCTID=D987654+DESCRIPTION=It's log!+QUANTITY=42+MEASURE=bar+UNITCOST=3.98+ADDTAXLI=3.81+ADDTAXRATELI=0.45+DISCOUNTLI=1.87+AMOUNTLI=6|"
|
79
79
|
end
|
80
80
|
|
81
|
+
it "detects extra line item details for visa" do
|
82
|
+
params = {
|
83
|
+
transaction_id: "1143",
|
84
|
+
line_items:
|
85
|
+
[
|
86
|
+
{
|
87
|
+
billing_name: "John Doe"
|
88
|
+
}
|
89
|
+
]
|
90
|
+
}
|
91
|
+
-> {PayTrace::Transaction.add_level_three_visa(params)}.must_raise PayTrace::Exceptions::ValidationError
|
92
|
+
end
|
93
|
+
|
81
94
|
# Required Name Value Pairs
|
82
95
|
|
83
96
|
# UN, PSWD, TERMS, METHOD, TRANXID
|
@@ -132,5 +145,18 @@ describe PayTrace::Transaction do
|
|
132
145
|
PayTrace::API::Gateway.last_request.must_equal base_url(PayTrace::Transaction::LEVEL_3_MC_METHOD) +
|
133
146
|
"TRANXID~1143|INVOICE~12347|CUSTREF~1234579|TAX~31.78|NTAX~0.01|FREIGHT~7.98|DUTY~6.51|SOURCEZIP~94948|SZIP~98134|SCOUNTRY~US|ADDTAX~4.54|ADDTAXIND~Y|LINEITEM~PRODUCTID=E123126+DESCRIPTION=Wadgets and wudgets+QUANTITY=21+MEASURE=food+MERCHANTTAXID=13699468+UNITCOST=3.98+ADDTAXRATELI=0.45+ADDTAXINDLI=Y+ADDTAXLI=3.82+DISCOUNTIND=Y+AMOUNTLI=6+NETGROSSIND=Y+DCIND=D+DISCOUNTLI=1.86+DISCOUNTRATE=0.10|"
|
134
147
|
end
|
148
|
+
|
149
|
+
it "detects extra line item details for mastercard" do
|
150
|
+
params = {
|
151
|
+
transaction_id: "1143",
|
152
|
+
line_items:
|
153
|
+
[
|
154
|
+
{
|
155
|
+
billing_name: "John Doe"
|
156
|
+
}
|
157
|
+
]
|
158
|
+
}
|
159
|
+
-> {PayTrace::Transaction.add_level_three_mc(params)}.must_raise PayTrace::Exceptions::ValidationError
|
160
|
+
end
|
135
161
|
end
|
136
162
|
end
|
@@ -24,11 +24,9 @@ describe PayTrace::RecurringTransaction do
|
|
24
24
|
recur_type: "A"
|
25
25
|
}
|
26
26
|
|
27
|
-
|
27
|
+
PayTrace::RecurringTransaction.create(params)
|
28
28
|
PayTrace::API::Gateway.last_request.must_equal base_url(PayTrace::RecurringTransaction::CREATE_METHOD) +
|
29
29
|
"CUSTID~foo_bar|FREQUENCY~3|START~4/22/2014|TOTALCOUNT~999|AMOUNT~9.99|TRANXTYPE~sale|DESCRIPTION~Recurring transaction|CUSTRECEIPT~Y|RECURTYPE~A|"
|
30
|
-
|
31
|
-
recur_id.must_equal "12345"
|
32
30
|
end
|
33
31
|
end
|
34
32
|
|
@@ -51,12 +49,10 @@ describe PayTrace::RecurringTransaction do
|
|
51
49
|
recur_receipt: "Y"
|
52
50
|
}
|
53
51
|
|
54
|
-
|
52
|
+
PayTrace::RecurringTransaction.update(params)
|
55
53
|
PayTrace::API::Gateway.last_request.must_equal base_url(PayTrace::RecurringTransaction::UPDATE_METHOD) +
|
56
54
|
"RECURID~12345|CUSTID~foo_bar|FREQUENCY~3|START~4/22/2014|TOTALCOUNT~999|AMOUNT~9.99|TRANXTYPE~sale|" +
|
57
55
|
"DESCRIPTION~Recurring transaction|CUSTRECEIPT~Y|"
|
58
|
-
|
59
|
-
recur_id.must_equal "12345"
|
60
56
|
end
|
61
57
|
|
62
58
|
it "accepts a recur type" do
|
@@ -73,12 +69,10 @@ describe PayTrace::RecurringTransaction do
|
|
73
69
|
recur_type: "A"
|
74
70
|
}
|
75
71
|
|
76
|
-
|
72
|
+
PayTrace::RecurringTransaction.update(params)
|
77
73
|
PayTrace::API::Gateway.last_request.must_equal base_url(PayTrace::RecurringTransaction::UPDATE_METHOD) +
|
78
74
|
"RECURID~12345|CUSTID~foo_bar|FREQUENCY~3|START~4/22/2014|TOTALCOUNT~999|AMOUNT~9.99|TRANXTYPE~sale|" +
|
79
75
|
"DESCRIPTION~Recurring transaction|CUSTRECEIPT~Y|RECURTYPE~A|"
|
80
|
-
|
81
|
-
recur_id.must_equal "12345"
|
82
76
|
end
|
83
77
|
end
|
84
78
|
|
@@ -93,11 +87,9 @@ describe PayTrace::RecurringTransaction do
|
|
93
87
|
recur_id: 12345
|
94
88
|
}
|
95
89
|
|
96
|
-
|
90
|
+
PayTrace::RecurringTransaction.delete(params)
|
97
91
|
PayTrace::API::Gateway.last_request.must_equal base_url(PayTrace::RecurringTransaction::DELETE_METHOD) +
|
98
92
|
"RECURID~12345|"
|
99
|
-
|
100
|
-
recur_id.must_equal "12345"
|
101
93
|
end
|
102
94
|
|
103
95
|
it "works with a customer ID" do
|
@@ -105,11 +97,9 @@ describe PayTrace::RecurringTransaction do
|
|
105
97
|
customer_id: "foo_bar"
|
106
98
|
}
|
107
99
|
|
108
|
-
|
100
|
+
PayTrace::RecurringTransaction.delete(params)
|
109
101
|
PayTrace::API::Gateway.last_request.must_equal base_url(PayTrace::RecurringTransaction::DELETE_METHOD) +
|
110
102
|
"CUSTID~foo_bar|"
|
111
|
-
|
112
|
-
recur_id.must_equal "12345"
|
113
103
|
end
|
114
104
|
end
|
115
105
|
|
@@ -137,7 +127,9 @@ describe PayTrace::RecurringTransaction do
|
|
137
127
|
PayTrace::API::Gateway.last_request.must_equal base_url(PayTrace::RecurringTransaction::EXPORT_SCHEDULED_METHOD) +
|
138
128
|
"CUSTID~john_doe|"
|
139
129
|
|
140
|
-
exported.must_be_instance_of
|
130
|
+
exported.must_be_instance_of Array
|
131
|
+
exported[0].must_be_instance_of Hash
|
132
|
+
exported[0]['AMOUNT'].must_equal '9.99'
|
141
133
|
end
|
142
134
|
end
|
143
135
|
end
|