Function
get tlv data in emv
Parameter
paraName |
type |
description |
tag |
int |
tag |
return value
return value |
description |
void |
|
notice: The method is called to get the tlv data in or after the emv process
@Override
public void
onTransactionResult(int result, Intent data) throws RemoteException
{
Log.d(TAG,
"onTransactionResult");
sb.append("onTransactionResult ---
" + "result = " + result + "\n");
if (result ==
PBOCTransactionResult.QPBOC_ARQC) {
// data is got and pinpad is
called here for non-contact
card
OutputQPBOCResult rf_data = new
OutputQPBOCResult(data);
//get
data
// TLV data of
55 field
String field55String =
rf_data.get55Field();
// card
number
String pan =
rf_data.getPAN();
// half-sheilded card
number
String maskedpan =
rf_data.getMaskedPan();
//
equivalent data of magnetic track
2
// -two magnetic track equivalent
data...
String trackString =
rf_data.getTrack();
Log.d(TAG,
getStr(R.string.two_track_data) +
trackString);
byte[] bcdTrack =
BCDHelper.StrToBCD(trackString,
trackString.length());
Log.d(TAG,
getStr(R.string.two_track_data) + " bcd: = " +
BCDHelper.hex2DebugHexString(bcdTrack,
bcdTrack.length));
// expired
data
// The period of
validity
String expiredate =
rf_data.getExpiredDate();
sb.append(getStr(R.string.quick_pass_call_password_keyboard)
+
"\n");
handler2.sendEmptyMessage(PIN_DIALOG_SHOW);
} else if (result ==
PBOCTransactionResult.APPROVED)
{
sb.append(getStr(R.string.ic_card_transaction_success)
+ "\n");
try
{
sb.append("电子现金余额:"+ServiceManager.getInstence().getPboc().readEcBalance()
+
"\n");
timeTools.stop();
sb.append(getStr(R.string.pboc_time_consuming)
+ timeTools.getProcessTime() / 1000 + getStr(R.string.s) +
timeTools.getProcessTime() % 1000 + getStr(R.string.ms) +
"\n");
Log.d(TAG,
getStr(R.string.pboc_time_consuming) + timeTools.getProcessTime() / 1000 +
getStr(R.string.s) + timeTools.getProcessTime() % 1000 +
getStr(R.string.ms));
showText(sb);
byte[]
data1 =
ServiceManager.getInstence().getPboc().getEmvTlvData(0x9F5D);
if
(data1!=null) {
Log.d(TAG, "data1 = " +
BCDHelper.hex2DebugHexString(data1,
data1.length));
}
byte[]
data2 =
ServiceManager.getInstence().getPboc().getEmvTlvData(0x9F79);
if
(data2!=null) {
Log.d(TAG, "data2 = " +
BCDHelper.hex2DebugHexString(data2,
data2.length));
}
}
catch (Exception e) {
// TODO Auto-generated
catch
block
e.printStackTrace();
}
// IC card transaction
success
} else if (result ==
PBOCTransactionResult.TERMINATED)
// IC card transaction is refused, if
online is successfull, reverse is neened.
//
mechanism
sb.append(getStr(R.string.ic_refuse_trade)
+
"\n");
}
showText(sb);
}