jcb fix
This commit is contained in:
parent
14ad87e41f
commit
2eac171a6c
@ -298,7 +298,7 @@ public abstract class EmvBaseViewModel extends BaseViewModel {
|
||||
LogUtil.d(TAG, "TransData :" + transData.getTransAmount());
|
||||
LogUtil.d(TAG, "start emv ");
|
||||
|
||||
// emvHandler.emvDebugLog(true);
|
||||
emvHandler.emvDebugLog(true);
|
||||
emvHandler.emvProcess(transData, emvProcessListener);
|
||||
|
||||
|
||||
@ -1016,13 +1016,11 @@ public abstract class EmvBaseViewModel extends BaseViewModel {
|
||||
/* For Yoma */
|
||||
String[] tagList = {
|
||||
"9F2A", "9F26", "9F27", "9F10", "9F37", "9F36", "95", "9A", "9C", "9F02", "5F2A", "5F34", "82", "9F1A", //field 55 tag
|
||||
"9F03", "9F33", "4F", "9F08", "9F34", "9F35", "9F1E", "9F53", "84", "9F09", "9F41", //field55 tag
|
||||
"9F03", "9F33", "4F", "9F08", "9F34", "9F35", "9F1E", "9F52","9F53", "84", "9F09", "9F41", //field55 tag
|
||||
"9F5B", "8A", "9B", "9F6E", "9F7C", "9F4C", "50", "9F12", "DF01", "9F63", "5F20", "9F0B", "9F42",
|
||||
"FF31", "9F7B", "8E"
|
||||
|
||||
"FF31", "9F7B", "8E","9F15"
|
||||
};
|
||||
|
||||
|
||||
try {
|
||||
String data = emvHandler.getTlvByTags(tagList);
|
||||
LogUtil.d(TAG, "getTlvByTags :" + data);
|
||||
@ -1385,13 +1383,50 @@ public abstract class EmvBaseViewModel extends BaseViewModel {
|
||||
|
||||
|
||||
}
|
||||
// private void configJcbContactlessParameter() {
|
||||
// LogUtil.d(TAG, "configJcbContactlessParameter");
|
||||
//
|
||||
// emvHandler.setJcbContactlessTIP(ByteUtils.hexString2ByteArray("EE8000"));
|
||||
// emvHandler.setTlv(ByteUtils.hexString2ByteArray("9F52"), ByteUtils.hexString2ByteArray("02"));
|
||||
//// emvHandler.setJcbContactlessTIP(ByteUtils.hexString2ByteArray("708000"));
|
||||
//// emvHandler.setTlv(ByteUtils.hexString2ByteArray("9F52"), ByteUtils.hexString2ByteArray("02"));
|
||||
//// emvHandler.setTlv(ByteUtils.hexString2ByteArray("9F53"), ByteUtils.hexString2ByteArray("EE8000"));
|
||||
//// emvHandler.setTlv(ByteUtils.hexString2ByteArray("DF8161"), ByteUtils.hexString2ByteArray("7F00"));
|
||||
//// emvHandler.setJcbContactlessTIP(ByteUtils.hexString2ByteArray("F88000"));
|
||||
// }
|
||||
private void configJcbContactlessParameter() {
|
||||
LogUtil.d(TAG, "configJcbContactlessParameter");
|
||||
//9F52 to set magstripe mode not support
|
||||
byte[] tagff8178 = emvHandler.getTlv(new byte[]{(byte) 0xff, (byte) 0x81,(byte) 0x78}, EmvDataSourceEnum.FROM_KERNEL);
|
||||
LogUtil.d(TAG,"tagff8178-->" + ByteUtils.byteArray2HexString(tagff8178));
|
||||
tagff8178[0] = setBitValue(tagff8178[0], 3, (byte) 0);
|
||||
// tagff8178[0] = setBitValue(tagff8178[0], 1, (byte) 0);
|
||||
emvHandler.setTlv(ByteUtils.hexString2ByteArray("ff8178"),tagff8178);
|
||||
tagff8178 = emvHandler.getTlv(new byte[]{(byte) 0xff, (byte) 0x81,(byte) 0x78}, EmvDataSourceEnum.FROM_KERNEL);
|
||||
LogUtil.d(TAG,"after tagff8178-->" + ByteUtils.byteArray2HexString(tagff8178));
|
||||
|
||||
emvHandler.setJcbContactlessTIP(ByteUtils.hexString2ByteArray("708000"));
|
||||
emvHandler.setTlv(ByteUtils.hexString2ByteArray("9F52"), ByteUtils.hexString2ByteArray("03"));
|
||||
// emvHandler.setTlv(ByteUtils.hexString2ByteArray("9F53"), ByteUtils.hexString2ByteArray("708000"));
|
||||
emvHandler.setTlv(ByteUtils.hexString2ByteArray("DF8161"), ByteUtils.hexString2ByteArray("7F00"));
|
||||
// emvHandler.setJcbContactlessTIP(ByteUtils.hexString2ByteArray("EE8000"));
|
||||
// emvHandler.setTlv(ByteUtils.hexString2ByteArray("9F53"), ByteUtils.hexString2ByteArray("EE8000"));
|
||||
// emvHandler.setTlv(ByteUtils.hexString2ByteArray("DF8161"), ByteUtils.hexString2ByteArray("7F00"));
|
||||
byte[] tag9F53 = emvHandler.getJcbContactlessTIP();
|
||||
Log.d("nexgo", "getJcbContactlessTIP: tag9F53->:" + ByteUtils.byteArray2HexString(tag9F53));
|
||||
if (tag9F53 != null) {
|
||||
tag9F53[1] &= 0x7F; //disable issuer update
|
||||
emvHandler.setJcbContactlessTIP(tag9F53);
|
||||
Log.d("nexgo", "tag9F53->:" + ByteUtils.byteArray2HexString(tag9F53));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private byte setBitValue(byte originalByte, int bitPosition, byte bitValue) {
|
||||
int shift = bitPosition - 1; // convert 1-based to 0-based
|
||||
if (bitValue == 1) {
|
||||
// Set bit to 1
|
||||
return (byte) (originalByte | (1 << shift));
|
||||
} else {
|
||||
// Set bit to 0
|
||||
return (byte) (originalByte & ~(1 << shift));
|
||||
}
|
||||
}
|
||||
|
||||
protected void importOnlineProcess(int sdkResult, EmvOnlineResultEntity emvOnlineResult) {
|
||||
|
||||
@ -593,9 +593,16 @@ public class KernelDataProcessUtil {
|
||||
// /*
|
||||
// * merchant category code
|
||||
// * */
|
||||
// if (tlvMap.get("9F53") != null) {
|
||||
// f55DataStr += "9F5301" + tlvMap.get("9F53").getValue();
|
||||
// } else {
|
||||
if (tlvMap.get("9F52") != null) {
|
||||
f55DataStr += "9F5201" + tlvMap.get("9F52").getValue();
|
||||
f55WaveDataStr += "9F5201" + tlvMap.get("9F52").getValue();
|
||||
}
|
||||
|
||||
if (tlvMap.get("9F53") != null) {
|
||||
f55DataStr += "9F5301" + tlvMap.get("9F53").getValue();
|
||||
f55WaveDataStr += "9F5301" + tlvMap.get("9F53").getValue();
|
||||
}
|
||||
// else {
|
||||
// f55DataStr += "9F530150";
|
||||
// }
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user