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