3 terminal capability
This commit is contained in:
parent
ecaa5b8eda
commit
56187a6639
@ -582,13 +582,20 @@ public class TMSSetupsImpl implements TMSSetups{
|
||||
|
||||
emvParamOperation.updatePayPassCurrencyCode(data);
|
||||
|
||||
} else if (TextUtils.equals(name,"terminal_capability")) {
|
||||
|
||||
if(!data.isEmpty()) {
|
||||
SystemParamsOperation.getInstance().setTerminalCapability(data);
|
||||
} else if (TextUtils.equals(name, "visa_terminal_capability")) {
|
||||
if(!data.isEmpty()){
|
||||
SystemParamsOperation.getInstance().setVisaTerminalCapability(data);
|
||||
}
|
||||
|
||||
} else if (TextUtils.equals(name,"upi_ttq")) {
|
||||
}else if (TextUtils.equals(name, "master_terminal_capability")) {
|
||||
if(!data.isEmpty()){
|
||||
SystemParamsOperation.getInstance().setMasterTerminalCapability(data);
|
||||
}
|
||||
}
|
||||
else if (TextUtils.equals(name, "upi_terminal_capability")) {
|
||||
if(!data.isEmpty()){
|
||||
SystemParamsOperation.getInstance().setUpiTerminalCapability(data);
|
||||
}
|
||||
}else if (TextUtils.equals(name,"upi_ttq")) {
|
||||
emvParamOperation.updateQuickPassTTQ(data);
|
||||
} else if (TextUtils.equals(name, "upi_tc_enabled")) {
|
||||
SystemParamsOperation.getInstance().setUpiTCEnabled(parseBoolean(data));
|
||||
|
||||
@ -590,39 +590,97 @@ public abstract class EmvBaseViewModel extends BaseViewModel {
|
||||
public void onTransInitBeforeGPO() {
|
||||
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));
|
||||
|
||||
String visaTerminalCapability = SystemParamsOperation.getInstance().getVisaTerminalCapability();
|
||||
String masterTerminalCapability = SystemParamsOperation.getInstance().getMasterTerminalCapability();
|
||||
String upiTerminalCapability = SystemParamsOperation.getInstance().getUpiTerminalCapability();
|
||||
|
||||
String selectedTerminalCapability = "";
|
||||
|
||||
if (aid != null) {
|
||||
String aidStr = ByteUtils.byteArray2HexString(aid).toUpperCase();
|
||||
|
||||
if (aidStr.contains("A000000003")) {
|
||||
// VISA
|
||||
selectedTerminalCapability = visaTerminalCapability;
|
||||
} else if (aidStr.contains("A000000004")) {
|
||||
// MasterCard
|
||||
selectedTerminalCapability = masterTerminalCapability;
|
||||
} else if (aidStr.contains("A000000333") || aidStr.contains("A000000025")) {
|
||||
// UPI
|
||||
selectedTerminalCapability = upiTerminalCapability;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//9F33
|
||||
emvHandler.setTlv(
|
||||
new byte[]{(byte) 0x9F, (byte) 0x33},
|
||||
ByteUtil.hexStr2Bytes(selectedTerminalCapability)
|
||||
);
|
||||
|
||||
// -------- Contactless --------
|
||||
if (mPayDetail.getCardType() == CardTypeX.NFC.value) {
|
||||
if (aid != null) {
|
||||
if (ByteUtils.byteArray2HexString(aid).toUpperCase().contains("A000000004")) {
|
||||
//Paypass
|
||||
String aidStr = ByteUtils.byteArray2HexString(aid).toUpperCase();
|
||||
|
||||
if (aidStr.contains("A000000004")) {
|
||||
configPaypassParameter(aid);
|
||||
} else if (ByteUtils.byteArray2HexString(aid).toUpperCase().contains("A000000003")) {
|
||||
//Paywave
|
||||
} else if (aidStr.contains("A000000003")) {
|
||||
configPaywaveParameters();
|
||||
} else if (ByteUtils.byteArray2HexString(aid).toUpperCase().contains("A000000025")) {
|
||||
//ExpressPay
|
||||
// configExpressPayParameter();
|
||||
} else if (ByteUtils.byteArray2HexString(aid).toUpperCase().contains("A000000541")) {
|
||||
} else if (aidStr.contains("A000000025")) {
|
||||
// //imp
|
||||
} else if (aidStr.contains("A000000541")) {
|
||||
configPureContactlessParameter();
|
||||
} else if (ByteUtils.byteArray2HexString(aid).toUpperCase().contains("A000000065")) {
|
||||
} else if (aidStr.contains("A000000065")) {
|
||||
configJcbContactlessParameter();
|
||||
}
|
||||
}
|
||||
} 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}, ByteUtil.hexStr2Bytes(terminalCapability));
|
||||
// emvHandler.setTlv(new byte[]{(byte) 0xE0, (byte) 0x1D}, ByteUtils.hexString2ByteArray("6C00800000000000"));//terminal risk
|
||||
//
|
||||
// }
|
||||
}
|
||||
|
||||
emvHandler.onSetTransInitBeforeGPOResponse(true);
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public void onTransInitBeforeGPO() {
|
||||
// byte[] aid = emvHandler.getTlv(new byte[]{0x4F}, EmvDataSourceEnum.FROM_KERNEL);
|
||||
// LogUtil.d(TAG, "onTransInitBeforeGPO :");
|
||||
//// String terminalCapability = SystemParamsOperation.getInstance().getTerminalCapability();
|
||||
// String visaTerminalCapability = SystemParamsOperation.getInstance().getVisaTerminalCapability();
|
||||
// String masterTerminalCapability = SystemParamsOperation.getInstance().getMasterTerminalCapability();
|
||||
// String upiTerminalCapability = SystemParamsOperation.getInstance().getUpiTerminalCapability();
|
||||
//// 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) {
|
||||
// if (aid != null) {
|
||||
// if (ByteUtils.byteArray2HexString(aid).toUpperCase().contains("A000000004")) {
|
||||
// //Paypass
|
||||
// configPaypassParameter(aid);
|
||||
// } else if (ByteUtils.byteArray2HexString(aid).toUpperCase().contains("A000000003")) {
|
||||
// //Paywave
|
||||
// configPaywaveParameters();
|
||||
// } else if (ByteUtils.byteArray2HexString(aid).toUpperCase().contains("A000000025")) {
|
||||
// //ExpressPay
|
||||
//// configExpressPayParameter();
|
||||
// } else if (ByteUtils.byteArray2HexString(aid).toUpperCase().contains("A000000541")) {
|
||||
// configPureContactlessParameter();
|
||||
// } else if (ByteUtils.byteArray2HexString(aid).toUpperCase().contains("A000000065")) {
|
||||
// configJcbContactlessParameter();
|
||||
// }
|
||||
// }
|
||||
// } 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}, ByteUtil.hexStr2Bytes(terminalCapability));
|
||||
//// emvHandler.setTlv(new byte[]{(byte) 0xE0, (byte) 0x1D}, ByteUtils.hexString2ByteArray("6C00800000000000"));//terminal risk
|
||||
////
|
||||
//// }
|
||||
// }
|
||||
//
|
||||
// emvHandler.onSetTransInitBeforeGPOResponse(true);
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void onConfirmCardNo(CardInfoEntity cardInfoEntity) {
|
||||
LogUtil.d(TAG, "onConfirmCardNo");
|
||||
|
||||
@ -653,15 +653,45 @@ public class SystemParamsOperation {
|
||||
return CurrencyType.valueOf(params.getCurrencyType());
|
||||
}
|
||||
|
||||
public void setTerminalCapability(String terminalCapability) {
|
||||
// public void setTerminalCapability(String terminalCapability) {
|
||||
// SystemParamsSettings params = getSystemParamsSettings();
|
||||
// params.setTerminalCapability(terminalCapability);
|
||||
// saveSystemParamsSettings(params);
|
||||
// }
|
||||
//
|
||||
// public String getTerminalCapability() {
|
||||
// SystemParamsSettings params = getSystemParamsSettings();
|
||||
// return params.getTerminalCapability();
|
||||
// }
|
||||
public void setVisaTerminalCapability(String visaTerminalCapability){
|
||||
SystemParamsSettings params = getSystemParamsSettings();
|
||||
params.setTerminalCapability(terminalCapability);
|
||||
params.setVisaTerminalCapability(visaTerminalCapability);
|
||||
saveSystemParamsSettings(params);
|
||||
}
|
||||
|
||||
public void setMasterTerminalCapability(String masterTerminalCapability){
|
||||
SystemParamsSettings params = getSystemParamsSettings();
|
||||
params.setMasterTerminalCapability(masterTerminalCapability);
|
||||
saveSystemParamsSettings(params);
|
||||
}
|
||||
|
||||
public String getTerminalCapability() {
|
||||
public void setUpiTerminalCapability(String upiTerminalCapability){
|
||||
SystemParamsSettings params = getSystemParamsSettings();
|
||||
return params.getTerminalCapability();
|
||||
params.setUpiTerminalCapability(upiTerminalCapability);
|
||||
saveSystemParamsSettings(params);
|
||||
}
|
||||
|
||||
public String getVisaTerminalCapability(){
|
||||
SystemParamsSettings params = getSystemParamsSettings();
|
||||
return params.getVisaTerminalCapability();
|
||||
}
|
||||
public String getMasterTerminalCapability(){
|
||||
SystemParamsSettings params = getSystemParamsSettings();
|
||||
return params.getMasterTerminalCapability();
|
||||
}
|
||||
public String getUpiTerminalCapability(){
|
||||
SystemParamsSettings params = getSystemParamsSettings();
|
||||
return params.getUpiTerminalCapability();
|
||||
}
|
||||
|
||||
public void setAuthToken(String authToken) {
|
||||
@ -1885,4 +1915,5 @@ public class SystemParamsOperation {
|
||||
return params.getPreAuthManual();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -51,7 +51,10 @@ public class SystemParamsSettings implements Serializable {
|
||||
|
||||
private String terminalName = "";
|
||||
|
||||
private String terminalCapability = "E0E8C8";
|
||||
// private String terminalCapability = "E0E8C8";
|
||||
private String visaTerminalCapability = "E028C8";
|
||||
private String masterTerminalCapability = "E068C8";
|
||||
private String upiTerminalCapability = "E068C8";
|
||||
|
||||
private String ipAddress = "";
|
||||
|
||||
@ -499,9 +502,31 @@ public class SystemParamsSettings implements Serializable {
|
||||
this.qrpay_inquiry_status = status;
|
||||
}
|
||||
|
||||
protected String getTerminalCapability() { return terminalCapability;}
|
||||
// protected String getTerminalCapability() { return terminalCapability;}
|
||||
protected String getVisaTerminalCapability(){
|
||||
return visaTerminalCapability;
|
||||
}
|
||||
|
||||
protected void setTerminalCapability(String terminalCapability) { this.terminalCapability = terminalCapability; }
|
||||
protected String getMasterTerminalCapability(){
|
||||
return masterTerminalCapability;
|
||||
}
|
||||
|
||||
protected String getUpiTerminalCapability(){
|
||||
return upiTerminalCapability;
|
||||
}
|
||||
// protected void setTerminalCapability(String terminalCapability) { this.terminalCapability = terminalCapability; }
|
||||
|
||||
protected void setVisaTerminalCapability(String visaTerminalCapability){
|
||||
this.visaTerminalCapability = visaTerminalCapability;
|
||||
}
|
||||
|
||||
protected void setMasterTerminalCapability(String masterTerminalCapability){
|
||||
this.masterTerminalCapability = masterTerminalCapability;
|
||||
}
|
||||
|
||||
protected void setUpiTerminalCapability(String upiTerminalCapability){
|
||||
this.upiTerminalCapability = upiTerminalCapability;
|
||||
}
|
||||
protected void setLastTransTime(String lastTransTime) {
|
||||
this.lastTransTime = lastTransTime;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user