From 13617eead1554931d9d20a24a4bb5c37f354c92e Mon Sep 17 00:00:00 2001 From: kizzy Date: Sat, 10 Jan 2026 16:16:43 +0700 Subject: [PATCH] fixed DE55 length --- .../test/java/com/utsmm/kbz/GeneralTest.java | 25 +++++++++++++++++++ .../paylibs/isobuilder/EncodePackage.java | 14 +++++------ .../paylibs/utils/iso_utils/FieldConfig.java | 2 +- 3 files changed, 33 insertions(+), 8 deletions(-) create mode 100644 app/src/test/java/com/utsmm/kbz/GeneralTest.java diff --git a/app/src/test/java/com/utsmm/kbz/GeneralTest.java b/app/src/test/java/com/utsmm/kbz/GeneralTest.java new file mode 100644 index 0000000..4993c87 --- /dev/null +++ b/app/src/test/java/com/utsmm/kbz/GeneralTest.java @@ -0,0 +1,25 @@ +package com.utsmm.kbz; + +import com.utsmyanmar.baselib.util.EReceiptHelper; + +import org.junit.Test; + +public class GeneralTest { + + @Test + public void testSignGeneration() { + String timestamp = String.valueOf(System.currentTimeMillis()); + String signature = generateSignature(timestamp); + + System.out.println("Timestamp: " + timestamp); + System.out.println("Signature: " + signature); + + } + + private static String generateSignature(String timestamp) { + String secret = "y812J21lhha11OS"; + String bodyString = "{}"; + String dataToHash = bodyString + secret + timestamp; + return EReceiptHelper.sha256(dataToHash); + } +} diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/isobuilder/EncodePackage.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/isobuilder/EncodePackage.java index 3868546..c3621e9 100644 --- a/paylibs/src/main/java/com/utsmyanmar/paylibs/isobuilder/EncodePackage.java +++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/isobuilder/EncodePackage.java @@ -237,7 +237,7 @@ public class EncodePackage { int varValueLen; if(entry.getKey().equals("F055")) { varValue = Utils.StrToBCDBytes(String.format("%0" + msgField.getLengthType() + "d", msgField.getDataLength() / 2)); - varValueLen = varValue.length + 1 ; + varValueLen = varValue.length ; // +1 } else { varValue = (String.format("%0" + msgField.getLengthType() + "d", msgField.getDataLength()/2)).getBytes(); varValueLen = varValue.length; @@ -251,12 +251,12 @@ public class EncodePackage { if(hostName == HostName.BPC ) { - if(msgField.getLengthType() == 4) { - varValue = Utils.StrToBCDBytes(String.format("%0"+msgField.getLengthType() + "d",msgField.getDataLength())); - } else { - varValue = (String.format("%0" + msgField.getLengthType() + "d", msgField.getDataLength()/2)).getBytes(); - } - +// if(msgField.getLengthType() == 4) { +// varValue = Utils.StrToBCDBytes(String.format("%0"+msgField.getLengthType() + "d",msgField.getDataLength())); +// } else { +// +// } + varValue = (String.format("%0" + msgField.getLengthType() + "d", msgField.getDataLength()/2)).getBytes(); } else { varValue = Utils.StrToBCDBytes(String.format("%0"+msgField.getLengthType() + "d",msgField.getDataLength())); } diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/iso_utils/FieldConfig.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/iso_utils/FieldConfig.java index 1d1d8df..be8b436 100644 --- a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/iso_utils/FieldConfig.java +++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/iso_utils/FieldConfig.java @@ -108,7 +108,7 @@ public class FieldConfig { /* FLD 53 */ {2, SDK_8583_LEN_ASC, 32, SDK_8583_DATA_BCD, SDK_8583_ALIGN_L, '0'}, /* FLD 54 */ {3, SDK_8583_LEN_BCD, 40, SDK_8583_DATA_ASC, SDK_8583_ALIGN_L, ' '}, - /* FLD 55 */ {3, SDK_8583_LEN_ASC, 255, SDK_8583_DATA_BIT, SDK_8583_ALIGN_L, '0'}, + /* FLD 55 */ {2, SDK_8583_LEN_ASC, 255, SDK_8583_DATA_BIT, SDK_8583_ALIGN_L, '0'}, // /* FLD 55 */ {4, SDK_8583_LEN_BCD, 255, SDK_8583_DATA_BIT, SDK_8583_ALIGN_L, '0'}, /* FLD 56 */ {0, SDK_8583_LEN_BCD, 12, SDK_8583_DATA_BCD, SDK_8583_ALIGN_R, '0'},