Compare commits

...

2 Commits

Author SHA1 Message Date
b808a87f23 Merge remote-tracking branch 'origin/new_history' into new_history 2026-03-04 14:34:16 +07:00
8791e6de4c backup 2026-03-04 14:34:03 +07:00
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);
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) {
@ -1214,11 +1215,11 @@ 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}); //F8
//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) 0x25}, ByteUtils.hexString2ByteArray("000999999999"));
emvHandler.setTlv(new byte[]{(byte) 0xDF, (byte) 0x81, (byte) 0x25}, ByteUtils.hexString2ByteArray("999999999999"));
if (ByteUtils.byteArray2HexString(aid).toUpperCase().contains("A0000000043060")) {
Log.d("nexgo", "======maestro===== ");

View File

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

View File

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