diff --git a/app/src/androidTest/java/com/utsmm/kbz/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/utsmm/kbz/ExampleInstrumentedTest.java index 61fbc0b..4080162 100644 --- a/app/src/androidTest/java/com/utsmm/kbz/ExampleInstrumentedTest.java +++ b/app/src/androidTest/java/com/utsmm/kbz/ExampleInstrumentedTest.java @@ -88,6 +88,7 @@ public class ExampleInstrumentedTest { PayDetail payDetail = tradeData.getPayDetail(); + payDetail.setProcessCode("000000"); payDetail.setTransactionType(TransactionType.SALE); String bitmap = BitmapConfig.BPC_SALE; MessageType messageType = MessageType.FINANCIAL; 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 e96e804..3868546 100644 --- a/paylibs/src/main/java/com/utsmyanmar/paylibs/isobuilder/EncodePackage.java +++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/isobuilder/EncodePackage.java @@ -234,15 +234,18 @@ public class EncodePackage { int dataType = msgField.getDataType(); if (dataType == FieldConfig.SDK_8583_DATA_BIT) { byte[] varValue; + int varValueLen; if(entry.getKey().equals("F055")) { varValue = Utils.StrToBCDBytes(String.format("%0" + msgField.getLengthType() + "d", msgField.getDataLength() / 2)); + varValueLen = varValue.length + 1 ; } else { varValue = (String.format("%0" + msgField.getLengthType() + "d", msgField.getDataLength()/2)).getBytes(); + varValueLen = varValue.length; } // System.arraycopy(varValue, 0, body, index, varValue.length); - index += varValue.length; + index += varValueLen; } else if (dataType == FieldConfig.SDK_8583_DATA_BCD) { byte[] varValue;