diff --git a/app/build.gradle b/app/build.gradle index 274ea31..66c899c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -14,8 +14,8 @@ android { applicationId "com.utsmm.kbz" minSdk 24 targetSdk 33 - versionCode 21 - versionName "2.1" + versionCode 24 + versionName "2.4" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } @@ -49,7 +49,7 @@ android { buildTypes { release { - minifyEnabled true + minifyEnabled false shrinkResources false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } 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 ba2d0f2..2ea4b1d 100644 --- a/baselib/src/main/java/com/utsmyanmar/baselib/viewModel/EmvBaseViewModel.java +++ b/baselib/src/main/java/com/utsmyanmar/baselib/viewModel/EmvBaseViewModel.java @@ -652,6 +652,7 @@ public abstract class EmvBaseViewModel extends BaseViewModel { byte[] aid = emvHandler.getTlv(new byte[]{0x4F}, EmvDataSourceEnum.FROM_KERNEL); LogUtil.d(TAG, "onTransInitBeforeGPO :"); String terminalCapability = SystemParamsOperation.getInstance().getTerminalCapability(); + LogUtil.d(TAG,"Terminal capability : " + terminalCapability ); // emvHandler.setTlv(new byte[]{(byte) 0x9F, (byte) 0x33}, new byte[]{(byte) 0xE0, (byte) 0x28, (byte) 0xC8}); emvHandler.setTlv(new byte[]{(byte) 0x9F, (byte) 0x33}, ByteUtil.hexStr2Bytes(terminalCapability)); if (mPayDetail.getCardType() == CardTypeX.NFC.value) { @@ -674,7 +675,7 @@ public abstract class EmvBaseViewModel extends BaseViewModel { } else { //contact terminal capability ; if different card brand(depend on aid) have different terminal capability if (ByteUtils.byteArray2HexString(aid).toUpperCase().contains("A000000004")) { - emvHandler.setTlv(new byte[]{(byte) 0x9F, (byte) 0x33}, new byte[]{(byte) 0xE0, (byte) 0x28, (byte) 0xC8}); + emvHandler.setTlv(new byte[]{(byte) 0x9F, (byte) 0x33}, new byte[]{(byte) 0xE0, (byte) 0xF0, (byte) 0xC8}); emvHandler.setTlv(new byte[]{(byte) 0x9F, (byte) 0x1D}, ByteUtils.hexString2ByteArray("6C00800000000000"));//terminal risk } @@ -1214,7 +1215,7 @@ public abstract class EmvBaseViewModel extends BaseViewModel { emvHandler.setTlv(new byte[]{(byte) 0xDF, (byte) 0x81, (byte) 0x1B}, new byte[]{(byte) 0x30}); //EMV MODE :amount >contactless cvm limit, set 60 = online pin and signature , set 20 = signature - emvHandler.setTlv(new byte[]{(byte) 0xDF, (byte) 0x81, (byte) 0x18}, new byte[]{(byte) 0xF8}); + emvHandler.setTlv(new byte[]{(byte) 0xDF, (byte) 0x81, (byte) 0x18}, new byte[]{(byte) 0xF0}); //EMV mode :amount < contactless cvm limit, set 08 = no cvm emvHandler.setTlv(new byte[]{(byte) 0xDF, (byte) 0x81, (byte) 0x19}, new byte[]{(byte) 0x08}); //08 @@ -1231,7 +1232,8 @@ public abstract class EmvBaseViewModel extends BaseViewModel { emvHandler.setTlv(new byte[]{(byte) 0x9F, (byte) 0x1d}, ByteUtils.hexString2ByteArray("4C00800000000000")); } else { //set 9F1D terminal risk management - MasterCard. it should be same with the MTIP configuration for 9F1D - emvHandler.setTlv(new byte[]{(byte) 0x9F, (byte) 0x1d}, ByteUtils.hexString2ByteArray("6C00800000000000")); +// emvHandler.setTlv(new byte[]{(byte) 0x9F, (byte) 0x1d}, ByteUtils.hexString2ByteArray("6C00800000000000")); + emvHandler.setTlv(new byte[]{(byte) 0x9F, (byte) 0x1d}, ByteUtils.hexString2ByteArray("6C7A800000000000")); } diff --git a/baselib/src/main/res/raw/paypass_config.json b/baselib/src/main/res/raw/paypass_config.json index 09ef9aa..47dc7cb 100644 --- a/baselib/src/main/res/raw/paypass_config.json +++ b/baselib/src/main/res/raw/paypass_config.json @@ -7,11 +7,11 @@ "emvDDOL": "9F3704", "emvTDOL": "9F3704", "partialAidSelection": false, - "targetPercent": "00", - "maxTargetPercent": "00", + "targetPercent": "99", + "maxTargetPercent": "99", "threshold": "00000040", - "tacDefault": "D84000A800", - "tacOnline": "DC4004F800", + "tacDefault": "F45084800C", + "tacOnline": "F45084800C", "tacDenial": "0000000000", "floorLimit": "000000000000", "cvmLimit": 75000, @@ -32,11 +32,11 @@ "emvDDOL": "9F3704", "emvTDOL": "9F3704", "partialAidSelection": false, - "targetPercent": "00", - "maxTargetPercent": "00", + "targetPercent": "99", + "maxTargetPercent": "99", "threshold": "00000040", - "tacDefault": "D84000A800", - "tacOnline": "DC4004F800", + "tacDefault": "F45084800C", + "tacOnline": "F45084800C", "tacDenial": "0000000000", "floorLimit": "000000000000", "cvmLimit": 75000, @@ -61,8 +61,8 @@ "targetPercent": "99", "maxTargetPercent": "99", "threshold": "00000040", - "tacDefault": "D84000A800", - "tacOnline": "DC4004F800", + "tacDefault": "F45084800C", + "tacOnline": "F45084800C", "tacDenial": "0000000000", "floorLimit": "000000000000", "cvmLimit": 75000, @@ -86,8 +86,8 @@ "targetPercent": "99", "maxTargetPercent": "99", "threshold": "00000040", - "tacDefault": "D84000A800", - "tacOnline": "DC4004F800", + "tacDefault": "F45084800C", + "tacOnline": "F45084800C", "tacDenial": "0000000000", "floorLimit": "000000000000", "cvmLimit": 75000, diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/transactions/TransactionsOperation.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/transactions/TransactionsOperation.java index 6ea2400..2f5ac8f 100644 --- a/paylibs/src/main/java/com/utsmyanmar/paylibs/transactions/TransactionsOperation.java +++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/transactions/TransactionsOperation.java @@ -455,7 +455,10 @@ public class TransactionsOperation { // } // // } + if(equals) { + emvOnlineResult.setRejCode("00"); + emvOnlineResult.setRecvField55(null); importOnlineProcessStatus(SdkResult.Success,emvOnlineResult); } else { importOnlineProcessStatus(SdkResult.Fail,emvOnlineResult);