merchant_e_solutions 0.4.1 → 0.4.2
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 711eff0d6ae2129abe6b4ca1870bf1e41e282c55
|
4
|
+
data.tar.gz: 19c5204ecbd1dd9f4559151c552c5f724ef16f6f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6598c2a6dcb1601be52e6bdcb279c1aed463b6e6a9e96bc6ea4b784e47983ade0b02fe3107e48041dbe85565491e0919479af7a71dae4ea400692e43229f1f66
|
7
|
+
data.tar.gz: aad781319bb3f9f950e4099519f45c5f1b4f819acdabaf0041568c2d909e58f4ed04911fe0fa5281faa06a870b5711d794992401fb2b2903e217cf08e05735b8
|
data/README.md
CHANGED
@@ -45,6 +45,34 @@ echo $MERCHANT_E_SOLUTIONS_USER_ID # yourUserID
|
|
45
45
|
echo $MERCHANT_E_SOLUTIONS_PASSWORD # yourPassword
|
46
46
|
```
|
47
47
|
|
48
|
+
## A Note on Acquirer Reference Numbers (ARNs)
|
49
|
+
|
50
|
+
The MeS detailed report APIs return an acquirer reference number for every
|
51
|
+
transaction. Take a look at the MeS reporting API documentation under 'Links'
|
52
|
+
for more.
|
53
|
+
|
54
|
+
One issue we've seen is that the MeS API always returns reference numbers
|
55
|
+
pre-pended with an apostrophe. Instead of `123456789`, we consistently see
|
56
|
+
`'123456789`.
|
57
|
+
|
58
|
+
The MeS docs are inconsistent in its examples, showing apostrophes pre-pended
|
59
|
+
to some and none pre-pended to others. The MeS reporting front-end never shows
|
60
|
+
apostrophes in reference numbers, and the apostrophe is never addressed in the
|
61
|
+
documentation.
|
62
|
+
|
63
|
+
Further, the reference number is documented as a 23-character field. The apostrophe
|
64
|
+
consistently brings this field's length to 24 characters.
|
65
|
+
|
66
|
+
This is probably sloppiness on MeS' end, so by default this library removes these
|
67
|
+
apostrophes. If you want to keep the apostrophe for any reason -- personal preference,
|
68
|
+
interfacing with legacy records that have them -- you can get the reference number
|
69
|
+
unchanged from a record thusly:
|
70
|
+
|
71
|
+
reference_number = record.reference_number(:unchanged => true)
|
72
|
+
|
73
|
+
## Links
|
74
|
+
|
75
|
+
* [MeS Reporting API documentation](http://resources.merchante-solutions.com/display/TPGPUB/MeS+Payment+Gateway+Developer's+Guide#MeSPaymentGatewayDeveloper%27sGuide-5.ReportingOptions)
|
48
76
|
|
49
77
|
## Contributing
|
50
78
|
|
@@ -4,7 +4,7 @@ module MerchantESolutions
|
|
4
4
|
class DetailRecord < Record
|
5
5
|
|
6
6
|
attr_reader :organization_id, :organization_name, :term_number, :batch_number, :batch_date,
|
7
|
-
:transaction_date, :card_code, :card_number, :
|
7
|
+
:transaction_date, :card_code, :card_number, :purchase_id, :auth_code,
|
8
8
|
:entry_mode, :transaction_amount, :trident_transaction_id, :client_reference_number
|
9
9
|
|
10
10
|
def initialize(row)
|
@@ -25,6 +25,11 @@ module MerchantESolutions
|
|
25
25
|
@client_reference_number = row[14]
|
26
26
|
end
|
27
27
|
|
28
|
+
def reference_number(options={})
|
29
|
+
return @reference_number if options[:unchanged]
|
30
|
+
cleaned_reference_number
|
31
|
+
end
|
32
|
+
|
28
33
|
def credit_company
|
29
34
|
{
|
30
35
|
"AM" => "American Express",
|
@@ -47,5 +52,16 @@ module MerchantESolutions
|
|
47
52
|
"Business"
|
48
53
|
end
|
49
54
|
end
|
55
|
+
|
56
|
+
|
57
|
+
private
|
58
|
+
|
59
|
+
def cleaned_reference_number
|
60
|
+
if @reference_number.start_with?("'")
|
61
|
+
@reference_number[1..-1]
|
62
|
+
else
|
63
|
+
@reference_number
|
64
|
+
end
|
65
|
+
end
|
50
66
|
end
|
51
67
|
end
|
@@ -24,15 +24,41 @@ describe MerchantESolutions::DetailRecord do
|
|
24
24
|
its("transaction_date.month") { should == 10 }
|
25
25
|
its(:card_code) { should == "AM" }
|
26
26
|
its(:card_number) { should == "000000xxxxxx1234" }
|
27
|
-
its(:reference_number) { "
|
28
|
-
its(:purchase_id) { "AAAAAAAAAAA0" }
|
29
|
-
its(:auth_code) { "
|
30
|
-
its(:entry_mode) { "
|
27
|
+
its(:reference_number) { should == "0000213"}
|
28
|
+
its(:purchase_id) { should == "AAAAAAAAAAA0" }
|
29
|
+
its(:auth_code) { should == "100000" }
|
30
|
+
its(:entry_mode) { should == "KEYED" }
|
31
31
|
its(:transaction_amount) { should == 7.09 }
|
32
32
|
its(:trident_transaction_id) { should == "T.T.ID" }
|
33
33
|
its(:client_reference_number) { should == "clientRefNumber" }
|
34
34
|
end
|
35
35
|
|
36
|
+
describe "#reference_number" do
|
37
|
+
let(:reference_number) { "'0000213" }
|
38
|
+
let(:record) { MerchantESolutions::DetailRecord.new([nil, nil, nil, nil, nil, nil, nil, nil, reference_number])}
|
39
|
+
|
40
|
+
context "when no arguments are given" do
|
41
|
+
it "removes the pre-pended apostrophe from the reference number" do
|
42
|
+
record.reference_number.should == "0000213"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
context "when the :unchanged option is set to true" do
|
47
|
+
it "returns the reference number verbatim, the pre-pended apostrophe intact" do
|
48
|
+
record.reference_number(:unchanged => true).should == "'0000213"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
context "when the reference number doesn't contain an apostrophe" do
|
53
|
+
let (:reference_number) { "0000213" }
|
54
|
+
|
55
|
+
it "returns the reference number verbatim, regardless of the :unchanged argument" do
|
56
|
+
record.reference_number.should == "0000213"
|
57
|
+
record.reference_number(:unchanged => true).should == "0000213"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
36
62
|
describe "credit cards" do
|
37
63
|
subject { MerchantESolutions::DetailRecord.new([nil, nil, nil, nil, nil, nil, card_code]) }
|
38
64
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: merchant_e_solutions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Ellis
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-11-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|