Skip to content

Commit b6f831a

Browse files
author
brianmc
committed
Added currency support to SIM fingerprint
1 parent 213fccb commit b6f831a

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

src/main/java/net/authorize/sim/Fingerprint.java

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,26 @@ private Fingerprint() {
3535
* @return A Fingerprint object.
3636
*/
3737
public static Fingerprint createFingerprint(String loginID,
38-
String transactionKey, long sequence, String amount) {
38+
String transactionKey,
39+
long sequence,
40+
String amount) {
41+
42+
return createFingerprint(loginID,transactionKey,sequence,amount,"");
43+
44+
}
45+
46+
/**
47+
* Creates a fingerprint with raw data fields.
48+
*
49+
* @param loginID
50+
* @param transactionKey
51+
* @param sequence : this number will be concatenated with a random value
52+
* @param amount
53+
* @param currency
54+
* @return A Fingerprint object.
55+
*/
56+
public static Fingerprint createFingerprint(String loginID,
57+
String transactionKey, long sequence, String amount, String currency) {
3958

4059
Fingerprint fingerprint = new Fingerprint();
4160

@@ -56,7 +75,7 @@ public static Fingerprint createFingerprint(String loginID,
5675
Mac mac = Mac.getInstance("HmacMD5");
5776
mac.init(key);
5877
String inputstring = loginID + "^" + fingerprint.sequence + "^" +
59-
fingerprint.timeStamp + "^" + amount + "^";
78+
fingerprint.timeStamp + "^" + amount + "^" + currency;
6079
byte[] result = mac.doFinal(inputstring.getBytes());
6180
// Convert the result from byte[] to hexadecimal format
6281
StringBuilder strbuf = new StringBuilder(result.length * 2);

src/test/java/net/authorize/sim/FingerprintTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,18 @@ public void createFingerprintWithRawFields() {
2424
Assert.assertTrue(fingerprint.getTimeStamp() > 0);
2525
}
2626

27+
@Test
28+
public void createFingerprintWithCurrency() {
29+
Fingerprint fingerprint = Fingerprint.createFingerprint("loginID",
30+
"transactionKey", 1, "1.99", "EUR");
31+
32+
Assert.assertNotNull(fingerprint);
33+
Assert.assertNotNull(fingerprint.getFingerprintHash());
34+
Assert.assertEquals(32, fingerprint.getFingerprintHash().length());
35+
Assert.assertTrue(fingerprint.getSequence() >= 0);
36+
Assert.assertTrue(fingerprint.getTimeStamp() > 0);
37+
}
38+
2739
@Test
2840
public void createFingerprintWithObjectFields() {
2941
Fingerprint fingerprint = Fingerprint.createFingerprint(merchant, 1,

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy