· 7 years ago · Jul 26, 2018, 08:22 AM
1package test;
2
3import java.nio.charset.StandardCharsets;
4import java.security.MessageDigest;
5import java.security.NoSuchAlgorithmException;
6
7public class TestGiftcardSignature {
8
9 public static void main(String[] args) {
10
11 String applicationCode = "Gun3aMJiOHs7mxVAOgeKQVzahnxPFqlB";
12 String referenceId = "TRX1708901";
13 String receiptNo = "TRX1708901";
14 String upc = "4715109295337";
15 String pan = "0006375027914901274";
16 String currencyCode = "THB";
17 String amount = "100.00";
18 String storeId = "00799";
19 String terminalId = "00799001";
20 String secretKey = "YRK3AggFlZP7JcsSlDBhnseAEKcmXNIT";
21
22 String preactData = applicationCode + upc + pan + currencyCode + amount + storeId + terminalId + secretKey;
23 String preactDataSignature = md5(preactData);
24 System.out.println("preactData = "+preactDataSignature);
25
26 String actData = applicationCode + referenceId + receiptNo + upc + pan + currencyCode + amount + storeId + terminalId + secretKey;
27 String actDataSignature = md5(actData);
28 System.out.println("actData = "+actDataSignature);
29
30 String deactData = applicationCode + referenceId + receiptNo + upc + pan + currencyCode + amount + storeId + terminalId + secretKey;
31 String deactDataSignature = md5(deactData);
32 System.out.println("deactData = "+deactDataSignature);
33 }
34
35 public static String md5(String data) {
36 try {
37 MessageDigest digest = MessageDigest.getInstance("MD5");
38 byte[] encodedhash = digest.digest(data.getBytes(StandardCharsets.UTF_8));
39
40 return bytesToHex(encodedhash);
41 } catch (NoSuchAlgorithmException e) {
42 throw new RuntimeException("NoSuchAlgorithmException >>> "+e.toString());
43 }
44 }
45
46 private static String bytesToHex(byte[] hash) {
47 StringBuffer hexString = new StringBuffer();
48 for (int i = 0; i < hash.length; i++) {
49 String hex = Integer.toHexString(0xff & hash[i]);
50 if (hex.length() == 1) {
51 hexString.append('0');
52 }
53 hexString.append(hex);
54 }
55 return hexString.toString();
56 }
57}