From cda1901d53b1d99b6c115df6eaad518420e646b1 Mon Sep 17 00:00:00 2001 From: kizzy Date: Mon, 6 Apr 2026 16:53:44 +0700 Subject: [PATCH] fix 1 for 8 digit bin visa --- .../main/java/com/utsmm/kbz/MainFragment.java | 11 ++- .../utsmyanmar/baselib/TerminalKeyUtil.java | 4 +- .../baselib/emv/EmvParamHelper.java | 3 +- baselib/src/main/res/raw/contacts_config.json | 92 +++---------------- baselib/src/main/res/raw/paywave_config.json | 26 +----- 5 files changed, 26 insertions(+), 110 deletions(-) diff --git a/app/src/main/java/com/utsmm/kbz/MainFragment.java b/app/src/main/java/com/utsmm/kbz/MainFragment.java index 91be9b5..d359d3e 100644 --- a/app/src/main/java/com/utsmm/kbz/MainFragment.java +++ b/app/src/main/java/com/utsmm/kbz/MainFragment.java @@ -278,9 +278,14 @@ public class MainFragment extends DataBindingFragment { } } -// for (AidEntity aidEntity : aidList) { -// LogUtil.d(TAG, "AID Entity :" + aidEntity.getAid()); -// } + for (AidEntity aidEntity : aidList) { + LogUtil.d(TAG, "AID Entity :" + aidEntity.getAid()); +// if(aidEntity.getAid().startsWith("A000000003")) { + LogUtil.d(TAG, "AID Entity AID:" + aidEntity.getAid()); + LogUtil.d(TAG, "AID Entity ASI:" + aidEntity.getAsi()); + LogUtil.d(TAG, "AID Entity Version:" + aidEntity.getAppVerNum()); +// } + } } diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/TerminalKeyUtil.java b/baselib/src/main/java/com/utsmyanmar/baselib/TerminalKeyUtil.java index 8ffc84a..8566f02 100644 --- a/baselib/src/main/java/com/utsmyanmar/baselib/TerminalKeyUtil.java +++ b/baselib/src/main/java/com/utsmyanmar/baselib/TerminalKeyUtil.java @@ -41,7 +41,8 @@ public final class TerminalKeyUtil { Arrays.fill(work_key_data, (byte) 0x31); PinPad pinPad = BaseApplication.getInstance().deviceEngine.getPinPad(); int result = pinPad.writeMKey(9, main_key_data, main_key_data.length); - + +// byte[] kcv = pinPad.calcWKeyKCV(9,WorkKeyTypeEnum.TDKEY); // // int resultPINKEY = pinPad.writeWKey(0, WorkKeyTypeEnum.PINKEY, work_key_data, work_key_data.length); @@ -54,6 +55,7 @@ public final class TerminalKeyUtil { // int result = pinPad.dukptKeyInject(9, DukptKeyTypeEnum.BDK,IPEKByte,16,ksn); LogUtil.d(TAG, "save tmk key result: "+result); +// LogUtil.d(TAG, "save tmk kcv: "+ByteUtil.bytes2HexStr(kcv)); // byte[] encryptedPIK = SystemParamsOperation.getInstance().getKeyPIK().get(0); // diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/emv/EmvParamHelper.java b/baselib/src/main/java/com/utsmyanmar/baselib/emv/EmvParamHelper.java index bafad5f..405bd70 100644 --- a/baselib/src/main/java/com/utsmyanmar/baselib/emv/EmvParamHelper.java +++ b/baselib/src/main/java/com/utsmyanmar/baselib/emv/EmvParamHelper.java @@ -412,7 +412,7 @@ public class EmvParamHelper { aidV2.setTransType("FF"); aidV2.setOnlinePinCap(1); - aidV2.setAsi(0); //1 + aidV2.setAsi(1); //1 // aidV2.setThreshold(99); if (!(contactAid.getCvmLimit() < 0)) { @@ -475,6 +475,7 @@ public class EmvParamHelper { private CapkEntity convertRidNex(RidEntity ridEntity) { CapkEntity capkV2 = new CapkEntity(); + if (ridEntity.getRid() != null && !ridEntity.getRid().isEmpty()) { capkV2.setRid(ridEntity.getRid()); } diff --git a/baselib/src/main/res/raw/contacts_config.json b/baselib/src/main/res/raw/contacts_config.json index 3a2aca1..ec4fcce 100644 --- a/baselib/src/main/res/raw/contacts_config.json +++ b/baselib/src/main/res/raw/contacts_config.json @@ -1,32 +1,10 @@ [ - { - "aidEnable": true, - "aid": "A000000003", - "cardScheme": "VISA", - "applicationVersion": "0020", - "emvDDOL": "9F3704", - "emvTDOL": "9F3704", - "partialAidSelection": false, - "targetPercent": "99", - "maxTargetPercent": "99", - "threshold": "00000040", - "tacDefault": "D84000A800", - "tacOnline": "DC4004F800", - "tacDenial": "0010000000", - "floorLimit": "000000000000", - "cvmLimit": 75000, - "transLimit": "999999999999", - "transLimitCDV": "999999999999", - "terminalCapability": "0000000000000000", - "riskManageData": "01", - "cateCode": "2701", - "currencyCode": "0104" - }, + { "aidEnable": true, "aid": "A0000000031010", "cardScheme": "VISA", - "applicationVersion": "0020", + "applicationVersion": "0030", "emvDDOL": "9F3704", "emvTDOL": "9F3704", "partialAidSelection": false, @@ -49,53 +27,7 @@ "aidEnable": true, "aid": "A0000000032010", "cardScheme": "VISA", - "applicationVersion": "0020", - "emvDDOL": "9F3704", - "emvTDOL": "9F3704", - "partialAidSelection": false, - "targetPercent": "99", - "maxTargetPercent": "99", - "threshold": "00000040", - "tacDefault": "D84000A800", - "tacOnline": "DC4004F800", - "tacDenial": "0010000000", - "floorLimit": "000000000000", - "cvmLimit": 75000, - "transLimit": "999999999999", - "transLimitCDV": "999999999999", - "terminalCapability": "0000000000000000", - "riskManageData": "01", - "cateCode": "2701", - "currencyCode": "0104" - }, - { - "aidEnable": true, - "aid": "A0000000030000", - "cardScheme": "VISA", - "applicationVersion": "0020", - "emvDDOL": "9F3704", - "emvTDOL": "9F3704", - "partialAidSelection": false, - "targetPercent": "99", - "maxTargetPercent": "99", - "threshold": "00000040", - "tacDefault": "D84000A800", - "tacOnline": "DC4004F800", - "tacDenial": "0010000000", - "floorLimit": "000000000000", - "cvmLimit": 75000, - "transLimit": "999999999999", - "transLimitCDV": "999999999999", - "terminalCapability": "0000000000000000", - "riskManageData": "01", - "cateCode": "2701", - "currencyCode": "0104" - }, - { - "aidEnable": true, - "aid": "A000000003000000", - "cardScheme": "VISA", - "applicationVersion": "0020", + "applicationVersion": "0030", "emvDDOL": "9F3704", "emvTDOL": "9F3704", "partialAidSelection": false, @@ -118,7 +50,7 @@ "aidEnable": true, "aid": "A000000003101001", "cardScheme": "VISA", - "applicationVersion": "0020", + "applicationVersion": "0030", "emvDDOL": "9F3704", "emvTDOL": "9F3704", "partialAidSelection": false, @@ -141,7 +73,7 @@ "aidEnable": true, "aid": "A000000003101002", "cardScheme": "VISA", - "applicationVersion": "0020", + "applicationVersion": "0030", "emvDDOL": "9F3704", "emvTDOL": "9F3704", "partialAidSelection": false, @@ -164,7 +96,7 @@ "aidEnable": true, "aid": "A000000003101003", "cardScheme": "VISA", - "applicationVersion": "0020", + "applicationVersion": "0030", "emvDDOL": "9F3704", "emvTDOL": "9F3704", "partialAidSelection": false, @@ -187,7 +119,7 @@ "aidEnable": true, "aid": "A000000003101004", "cardScheme": "VISA", - "applicationVersion": "0020", + "applicationVersion": "0030", "emvDDOL": "9F3704", "emvTDOL": "9F3704", "partialAidSelection": false, @@ -210,7 +142,7 @@ "aidEnable": true, "aid": "A000000003101005", "cardScheme": "VISA", - "applicationVersion": "0020", + "applicationVersion": "0030", "emvDDOL": "9F3704", "emvTDOL": "9F3704", "partialAidSelection": false, @@ -233,7 +165,7 @@ "aidEnable": true, "aid": "A0000000033010", "cardScheme": "VISA", - "applicationVersion": "0020", + "applicationVersion": "0030", "emvDDOL": "9F3704", "emvTDOL": "9F3704", "partialAidSelection": false, @@ -256,7 +188,7 @@ "aidEnable": true, "aid": "A0000000038010", "cardScheme": "VISA", - "applicationVersion": "0020", + "applicationVersion": "0030", "emvDDOL": "9F3704", "emvTDOL": "9F3704", "partialAidSelection": false, @@ -279,7 +211,7 @@ "aidEnable": true, "aid": "A000000003101008", "cardScheme": "VISA", - "applicationVersion": "0020", + "applicationVersion": "0030", "emvDDOL": "9F3704", "emvTDOL": "9F3704", "partialAidSelection": false, @@ -302,7 +234,7 @@ "aidEnable": true, "aid": "A000000003101009", "cardScheme": "VISA", - "applicationVersion": "0020", + "applicationVersion": "0030", "emvDDOL": "9F3704", "emvTDOL": "9F3704", "partialAidSelection": false, diff --git a/baselib/src/main/res/raw/paywave_config.json b/baselib/src/main/res/raw/paywave_config.json index f3e6f43..a15cf97 100644 --- a/baselib/src/main/res/raw/paywave_config.json +++ b/baselib/src/main/res/raw/paywave_config.json @@ -1,29 +1,5 @@ [ - { - "aidEnable": true, - "aid": "A000000003", - "cardLabel": "VISA", - "applicationVersion": "0030", - "emvDDOL": "9F3704", - "emvTDOL": "9F3704", - "partialAidSelection": false, - "targetPercent": "00", - "maxTargetPercent": "00", - "threshold": "00000000", - "tacDefault": "DC4000A800", - "tacOnline": "DC4004F800", - "tacDenial": "0010000000", - "floorLimit": "000000000000", - "cvmLimit": 70000, - "transLimit": "999999999999", - "transLimitCDV": "999999999999", - "terminalCapability": "0000000000000000", - "riskManageData": "01", - "kernelType": "03", - "ttq": "32A04000", - "cateCode": "2701", - "currencyCode": "0104" - }, + { "aidEnable": true, "aid": "A0000000031010",