From 714500017556ca6bf42923f1ac16e12132b45e44 Mon Sep 17 00:00:00 2001 From: moon <56061215+MgKyawLay@users.noreply.github.com> Date: Tue, 2 Jun 2026 13:58:44 +0630 Subject: [PATCH] fix or jcb --- .../baselib/viewModel/EmvBaseViewModel.java | 34 ++++++++++++++++++- baselib/src/main/res/raw/contacts_config.json | 6 ++-- .../core_utils/KernelDataProcessUtil.java | 18 +++++----- 3 files changed, 45 insertions(+), 13 deletions(-) diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/viewModel/EmvBaseViewModel.java b/baselib/src/main/java/com/utsmyanmar/baselib/viewModel/EmvBaseViewModel.java index 5ddec1f..540acac 100644 --- a/baselib/src/main/java/com/utsmyanmar/baselib/viewModel/EmvBaseViewModel.java +++ b/baselib/src/main/java/com/utsmyanmar/baselib/viewModel/EmvBaseViewModel.java @@ -560,6 +560,27 @@ public abstract class EmvBaseViewModel extends BaseViewModel { @Override public void onTransInitBeforeGPO() { + byte[] tag9F15 = emvHandler.getTlv(new byte[]{(byte) 0x9F, (byte) 0x15}, EmvDataSourceEnum.FROM_KERNEL); + Log.d(TAG, "tag9F15 (MCC)-->" + ByteUtils.byteArray2HexString(tag9F15)); + + if (tag9F15 != null) { + emvHandler.setTlv(ByteUtils.hexString2ByteArray("9F15"), ByteUtils.hexString2ByteArray("0000")); + tag9F15 = emvHandler.getTlv(new byte[]{(byte) 0x9F, (byte) 0x15}, EmvDataSourceEnum.FROM_KERNEL); + Log.d(TAG, "after tag9F15-->" + ByteUtils.byteArray2HexString(tag9F15)); + } else { + Log.d(TAG, "tag9F15 not found in kernel"); + } + + byte[] tag9F01 = emvHandler.getTlv(new byte[]{(byte) 0x9F, (byte) 0x01}, EmvDataSourceEnum.FROM_KERNEL); + Log.d(TAG, "tag9F01-->" + ByteUtils.byteArray2HexString(tag9F15)); + + if (tag9F01 != null) { + emvHandler.setTlv(ByteUtils.hexString2ByteArray("9F01"), ByteUtils.hexString2ByteArray("000000000000")); + tag9F01 = emvHandler.getTlv(new byte[]{(byte) 0x9F, (byte) 0x01}, EmvDataSourceEnum.FROM_KERNEL); + Log.d(TAG, "after tag9F01-->" + ByteUtils.byteArray2HexString(tag9F01)); + } else { + Log.d(TAG, "tag9F01 not found in kernel"); + } if (mMPUContactlessConfigured) { LogUtil.d(TAG, "onTransInitBeforeGPO: skipping — MPU contactless already configured"); @@ -1018,7 +1039,7 @@ public abstract class EmvBaseViewModel extends BaseViewModel { "9F2A", "9F26", "9F27", "9F10", "9F37", "9F36", "95", "9A", "9C", "9F02", "5F2A", "5F34", "82", "9F1A", //field 55 tag "9F03", "9F33", "4F", "9F08", "9F34", "9F35", "9F1E", "9F52","9F53", "84", "9F09", "9F41", //field55 tag "9F5B", "8A", "9B", "9F6E", "9F7C", "9F4C", "50", "9F12", "DF01", "9F63", "5F20", "9F0B", "9F42", - "FF31", "9F7B", "8E","9F15" + "FF31", "9F7B", "8E","9F15", "9F01", "9F1B" }; try { @@ -1416,6 +1437,17 @@ private void configJcbContactlessParameter() { Log.d("nexgo", "tag9F53->:" + ByteUtils.byteArray2HexString(tag9F53)); } + + byte[] tag9F15 = emvHandler.getTlv(new byte[]{(byte) 0x9F, (byte) 0x15}, EmvDataSourceEnum.FROM_KERNEL); + Log.d(TAG, "tag9F15 (MCC)-->" + ByteUtils.byteArray2HexString(tag9F15)); + + if (tag9F15 != null) { + emvHandler.setTlv(ByteUtils.hexString2ByteArray("9F15"), ByteUtils.hexString2ByteArray("0000")); + tag9F15 = emvHandler.getTlv(new byte[]{(byte) 0x9F, (byte) 0x15}, EmvDataSourceEnum.FROM_KERNEL); + Log.d(TAG, "after tag9F15-->" + ByteUtils.byteArray2HexString(tag9F15)); + } else { + Log.d(TAG, "tag9F15 not found in kernel"); + } } private byte setBitValue(byte originalByte, int bitPosition, byte bitValue) { diff --git a/baselib/src/main/res/raw/contacts_config.json b/baselib/src/main/res/raw/contacts_config.json index 0723d52..dedb685 100644 --- a/baselib/src/main/res/raw/contacts_config.json +++ b/baselib/src/main/res/raw/contacts_config.json @@ -533,7 +533,7 @@ "aidEnable": true, "aid": "A00000006510", "cardScheme": "JCB", - "applicationVersion": "0030", + "applicationVersion": "0200", "emvDDOL": "9F3704", "emvTDOL": "9F3704", "partialAidSelection": false, @@ -556,7 +556,7 @@ "aidEnable": true, "aid": "A0000000651010", "cardScheme": "JCB", - "applicationVersion": "0030", + "applicationVersion": "0200", "emvDDOL": "9F3704", "emvTDOL": "9F3704", "partialAidSelection": false, @@ -579,7 +579,7 @@ "aidEnable": true, "aid": "A0000001570040", "cardScheme": "JCB", - "applicationVersion": "0030", + "applicationVersion": "0200", "emvDDOL": "9F3704", "emvTDOL": "9F3704", "partialAidSelection": false, diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/KernelDataProcessUtil.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/KernelDataProcessUtil.java index 9b2dc42..4a66265 100644 --- a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/KernelDataProcessUtil.java +++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/KernelDataProcessUtil.java @@ -593,15 +593,15 @@ public class KernelDataProcessUtil { // /* // * merchant category code // * */ - if (tlvMap.get("9F52") != null) { - f55DataStr += "9F5201" + tlvMap.get("9F52").getValue(); - f55WaveDataStr += "9F5201" + tlvMap.get("9F52").getValue(); - } - - if (tlvMap.get("9F53") != null) { - f55DataStr += "9F5301" + tlvMap.get("9F53").getValue(); - f55WaveDataStr += "9F5301" + tlvMap.get("9F53").getValue(); - } +// if (tlvMap.get("9F52") != null) { +// f55DataStr += "9F5201" + tlvMap.get("9F52").getValue(); +// f55WaveDataStr += "9F5201" + tlvMap.get("9F52").getValue(); +// } +// +// if (tlvMap.get("9F53") != null) { +// f55DataStr += "9F5301" + tlvMap.get("9F53").getValue(); +// f55WaveDataStr += "9F5301" + tlvMap.get("9F53").getValue(); +// } // else { // f55DataStr += "9F530150"; // }