This commit is contained in:
kizzy 2026-03-04 14:34:03 +07:00
parent 546893e806
commit 8791e6de4c
3 changed files with 10 additions and 6 deletions

View File

@ -652,6 +652,7 @@ public abstract class EmvBaseViewModel extends BaseViewModel {
byte[] aid = emvHandler.getTlv(new byte[]{0x4F}, EmvDataSourceEnum.FROM_KERNEL); byte[] aid = emvHandler.getTlv(new byte[]{0x4F}, EmvDataSourceEnum.FROM_KERNEL);
LogUtil.d(TAG, "onTransInitBeforeGPO :"); LogUtil.d(TAG, "onTransInitBeforeGPO :");
String terminalCapability = SystemParamsOperation.getInstance().getTerminalCapability(); 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}, new byte[]{(byte) 0xE0, (byte) 0x28, (byte) 0xC8});
emvHandler.setTlv(new byte[]{(byte) 0x9F, (byte) 0x33}, ByteUtil.hexStr2Bytes(terminalCapability)); emvHandler.setTlv(new byte[]{(byte) 0x9F, (byte) 0x33}, ByteUtil.hexStr2Bytes(terminalCapability));
if (mPayDetail.getCardType() == CardTypeX.NFC.value) { if (mPayDetail.getCardType() == CardTypeX.NFC.value) {
@ -1214,11 +1215,11 @@ public abstract class EmvBaseViewModel extends BaseViewModel {
emvHandler.setTlv(new byte[]{(byte) 0xDF, (byte) 0x81, (byte) 0x1B}, new byte[]{(byte) 0x30}); 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 //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}); //F8
//EMV mode :amount < contactless cvm limit, set 08 = no cvm //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 emvHandler.setTlv(new byte[]{(byte) 0xDF, (byte) 0x81, (byte) 0x19}, new byte[]{(byte) 0x08}); //08
emvHandler.setTlv(new byte[]{(byte) 0xDF, (byte) 0x81, (byte) 0x25}, ByteUtils.hexString2ByteArray("000999999999")); emvHandler.setTlv(new byte[]{(byte) 0xDF, (byte) 0x81, (byte) 0x25}, ByteUtils.hexString2ByteArray("999999999999"));
if (ByteUtils.byteArray2HexString(aid).toUpperCase().contains("A0000000043060")) { if (ByteUtils.byteArray2HexString(aid).toUpperCase().contains("A0000000043060")) {
Log.d("nexgo", "======maestro===== "); Log.d("nexgo", "======maestro===== ");

View File

@ -7,8 +7,8 @@
"emvDDOL": "9F3704", "emvDDOL": "9F3704",
"emvTDOL": "9F3704", "emvTDOL": "9F3704",
"partialAidSelection": false, "partialAidSelection": false,
"targetPercent": "00", "targetPercent": "99",
"maxTargetPercent": "00", "maxTargetPercent": "99",
"threshold": "00000040", "threshold": "00000040",
"tacDefault": "D84000A800", "tacDefault": "D84000A800",
"tacOnline": "DC4004F800", "tacOnline": "DC4004F800",
@ -32,8 +32,8 @@
"emvDDOL": "9F3704", "emvDDOL": "9F3704",
"emvTDOL": "9F3704", "emvTDOL": "9F3704",
"partialAidSelection": false, "partialAidSelection": false,
"targetPercent": "00", "targetPercent": "99",
"maxTargetPercent": "00", "maxTargetPercent": "99",
"threshold": "00000040", "threshold": "00000040",
"tacDefault": "D84000A800", "tacDefault": "D84000A800",
"tacOnline": "DC4004F800", "tacOnline": "DC4004F800",

View File

@ -434,6 +434,7 @@ public class TransactionsOperation {
} else { } else {
boolean equals = TextUtils.equals(resultStr, Constant.ANSWER_CODE_ACCEPT) || TextUtils.equals(resultStr, Constant.ANSWER_CODE_APPROVED); boolean equals = TextUtils.equals(resultStr, Constant.ANSWER_CODE_ACCEPT) || TextUtils.equals(resultStr, Constant.ANSWER_CODE_APPROVED);
EmvOnlineResultEntity emvOnlineResult = new EmvOnlineResultEntity(); EmvOnlineResultEntity emvOnlineResult = new EmvOnlineResultEntity();
emvOnlineResult.setRejCode("00");
// MsgField field38,field39,field55; // MsgField field38,field39,field55;
// if (resp != null) { // if (resp != null) {
// field38 = resp.get("F038"); // field38 = resp.get("F038");
@ -456,6 +457,8 @@ public class TransactionsOperation {
// //
// } // }
if(equals) { if(equals) {
emvOnlineResult.setRejCode("00");
emvOnlineResult.setRecvField55(null);
importOnlineProcessStatus(SdkResult.Success,emvOnlineResult); importOnlineProcessStatus(SdkResult.Success,emvOnlineResult);
} else { } else {
importOnlineProcessStatus(SdkResult.Fail,emvOnlineResult); importOnlineProcessStatus(SdkResult.Fail,emvOnlineResult);