|
@@ -1407,28 +1407,6 @@ ErrorCodeEnum CCardIssuerFSM::OnInit()
|
|
|
m_terminalNo = sysInfo.strTerminalID;
|
|
|
m_majorVerion = sysInfo.MachineVersion.GetMajor();
|
|
|
m_minorVerion = sysInfo.MachineVersion.GetMinor();
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)(CSimpleStringA::Format("CardIssuer, MachineType:%s, TerminalNo:%s, MachineVersion:%d.%d",
|
|
|
- m_csMachineType.GetData(), m_terminalNo.GetData(), m_majorVerion, m_minorVerion));
|
|
|
-
|
|
|
-
|
|
|
- CSimpleStringA runinfoPath(true);
|
|
|
- ErrorCodeEnum err = GetEntityBase()->GetFunction()->GetPath("RunInfo", runinfoPath);
|
|
|
- if (err != Error_Succeed) {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("get system RunInfo value failed.");
|
|
|
- }
|
|
|
- CSimpleStringA runinfoOldFile = runinfoPath + SPLIT_SLASH_STR + "runcfg" + SPLIT_SLASH_STR + "CardIssuer.ini";
|
|
|
- CSimpleStringA runinfoNewFile = runinfoPath + SPLIT_SLASH_STR + "runcfg" + SPLIT_SLASH_STR + "CardIssuerStand.ini";
|
|
|
- if (ExistsFile(runinfoNewFile.GetData())) {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("CardIssuerStand.ini is Exist.");
|
|
|
- }
|
|
|
- else {
|
|
|
- if (ExistsFile(runinfoOldFile)) {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("CardIssuerStand.ini is not Exist. CardIssuer.ini is Exist");
|
|
|
- }
|
|
|
- else {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("CardIssuerStand.ini is not Exist. CardIssuer.ini is not Exist");
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
m_devStatus.eMedia = CI_MEDIA_NOTPRESENT;
|
|
|
m_bHasHopper[0] = false;
|
|
@@ -1620,7 +1598,7 @@ bool CCardIssuerFSM::LoadCMBPrint(CSimpleStringA csBinPath)
|
|
|
return false;
|
|
|
}
|
|
|
#endif
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Load %s suc.", (const char*)csCMBPrint);
|
|
|
+ DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("Load %s suc.", (const char*)csCMBPrint);
|
|
|
}
|
|
|
|
|
|
return true;
|
|
@@ -1659,7 +1637,7 @@ ErrorCodeEnum CCardIssuerFSM::OpenDevice(BYTE btOpenType, const char* pDevSN)
|
|
|
GetEntityBase()->GetFunction()->ShowFatalError("加载厂商适配器失败!请检查root.ini配置是否正确。");
|
|
|
return Error_DevLoadFileFailed;
|
|
|
}
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)(CSimpleStringA::Format("Get ReleGet vendor function suc."));
|
|
|
+
|
|
|
for (int i = 0; i < HOPPER_NUM; ++i)
|
|
|
{
|
|
|
m_CardBoxNoEx[i] = "";
|
|
@@ -1676,16 +1654,13 @@ ErrorCodeEnum CCardIssuerFSM::OpenDevice(BYTE btOpenType, const char* pDevSN)
|
|
|
}
|
|
|
long l_beginTime,l_endTime;
|
|
|
do {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("CreateDevComponent suc. port:%d, baudRate:%d, pDevSN:%s",
|
|
|
- m_adapterInfo.GetPortInt(), m_adapterInfo.GetBaudrateInt(), pDevSN);
|
|
|
-
|
|
|
l_beginTime = GetTickCountRVC();
|
|
|
eErrDev = m_hDevHelper->DevOpenEx(m_adapterInfo.GetPortInt(), m_adapterInfo.GetBaudrateInt(), btOpenType, pDevSN, m_connectType);
|
|
|
l_endTime = GetTickCountRVC();
|
|
|
|
|
|
if (eErrDev == Error_Succeed)
|
|
|
{
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::DevOpenEx").setCostTime(l_endTime - l_beginTime)("OpenDevice::DevOpenEx, openType:%d, connectType:%d", btOpenType, m_connectType);
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::DevOpenEx").setCostTime(l_endTime - l_beginTime)("OpenDevice::DevOpenEx succ, port:%d, baudRate:%d, openType:%d, connectType:%d", m_adapterInfo.GetPortInt(), m_adapterInfo.GetBaudrateInt(),btOpenType, m_connectType);
|
|
|
SetDevInitFlag(true);
|
|
|
m_devOpenFailedCount = 0;
|
|
|
ZeroMemory(m_devCat.szModel, sizeof(m_devCat.szModel));
|
|
@@ -1697,10 +1672,8 @@ ErrorCodeEnum CCardIssuerFSM::OpenDevice(BYTE btOpenType, const char* pDevSN)
|
|
|
|
|
|
if (eErrDev == Error_Succeed)
|
|
|
{
|
|
|
- CSimpleStringA tmpVersion = CSimpleStringA::Format("%d.%d.%d.%d", m_devCat.version.wMajor, m_devCat.version.wMinor, m_devCat.version.wRevision, m_devCat.version.wBuild);
|
|
|
int ret = SplitDevModelInfo();
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::GetDevCategory").setCostTime(l_endTime - l_beginTime)("OpenDevice, szVendor:%s, szType:%s, szModel:%s, version:%s, ret:%d",
|
|
|
- m_devCat.szVendor, m_devCat.szType, m_devCat.szModel, tmpVersion.GetData(), ret);
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::GetDevCategory").setCostTime(l_endTime - l_beginTime)("DevAdapter::GetDevCategory SplitDevModelInfo=%d",ret);
|
|
|
m_adapterInfo.FulfillCategoryInfo(m_devCat);
|
|
|
}
|
|
|
else
|
|
@@ -1719,7 +1692,7 @@ ErrorCodeEnum CCardIssuerFSM::OpenDevice(BYTE btOpenType, const char* pDevSN)
|
|
|
break;
|
|
|
}
|
|
|
else {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("OpenDevice::DevOpenEx err, openType:%d, connectType:%d", btOpenType, m_connectType);
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("OpenDevice::DevOpenEx err, port:%d, baudRate:%d, openType:%d, connectType:%d", m_adapterInfo.GetPortInt(), m_adapterInfo.GetBaudrateInt(), btOpenType, m_connectType);
|
|
|
SetErrorAndLog(eErrDev, MEC_DEVAPI_CARDISSUER_DevOpenEx, "DevAdapter::DevOpenEx", __FUNCTION__, false, l_endTime - l_beginTime, "", "");
|
|
|
|
|
|
DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("CardIssuer启动失败:DevOpenEx failed.重试:%d", initTries);
|
|
@@ -1812,20 +1785,12 @@ ErrorCodeEnum CCardIssuerFSM::OpenDevice(BYTE btOpenType, const char* pDevSN)
|
|
|
spConfigCS->ReadConfigValueInt(GetEntityBase()->GetEntityName(), "StopUseRF", tmpStopUseRF);
|
|
|
spConfigCS->ReadConfigValue(GetEntityBase()->GetEntityName(), "RFVendorList", m_rfVendorList);
|
|
|
spConfigCS->ReadConfigValue(GetEntityBase()->GetEntityName(), "SwallowCardUrl", m_csSwallowCardUrl);
|
|
|
- if (0 != m_csSwallowCardUrl.GetLength()) {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("m_csSwallowCardUrl:%s", m_csSwallowCardUrl.GetData());
|
|
|
- }
|
|
|
spConfigCS->ReadConfigValue(GetEntityBase()->GetEntityName(), "SyncMaterialUrl", m_csSyncMaterialUrl);
|
|
|
- if (0 != m_csSyncMaterialUrl.GetLength()) {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("m_csSyncMaterialUrl:%s", m_csSyncMaterialUrl.GetData());
|
|
|
- }
|
|
|
spConfigCS->ReadConfigValueInt(GetEntityBase()->GetEntityName(), "SelfcheckSleepTime", tmpSelfcheckSleepTime);
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("tmpSelfcheckSleepTime:%d", tmpSelfcheckSleepTime);
|
|
|
-
|
|
|
-
|
|
|
spConfigCS->ReadConfigValue("Common", "EacQueryHost", m_EacQueryHost);
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("EacQueryFlag:%d,EacQueryHost:%s,UseCardnoMismatch:%d,ICRetryTimes:%d"
|
|
|
- , m_eacQueryFlag, m_EacQueryHost.GetData(), tmpCardnoMismatch,tmpICRetryTimes);
|
|
|
+
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("EacQueryFlag:%d,EacQueryHost:%s,UseCardnoMismatch:%d,ICRetryTimes:%d,SelfcheckSleepTime:%d"
|
|
|
+ , m_eacQueryFlag, m_EacQueryHost.GetData(), tmpCardnoMismatch, tmpICRetryTimes, tmpSelfcheckSleepTime);
|
|
|
|
|
|
if (tmpCardnoMismatch == 1)
|
|
|
m_bUseCardnoMismatch = true;
|
|
@@ -1865,7 +1830,7 @@ ErrorCodeEnum CCardIssuerFSM::OpenDevice(BYTE btOpenType, const char* pDevSN)
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::GetDevStatus").setCostTime(l_endTime - l_beginTime)("device max retain count:%d, cis.eRetainBin:%d", cis.dwRetainCount, cis.eRetainBin);
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::GetDevStatus").setCostTime(l_endTime - l_beginTime)("DevAdapter::GetDevStatus device max retain count:%d, cis.eRetainBin:%d", cis.dwRetainCount, cis.eRetainBin);
|
|
|
if (cis.dwRetainCount > 0 && cis.dwRetainCount <= 5)
|
|
|
m_maxRetainCount = cis.dwRetainCount;
|
|
|
else
|
|
@@ -2686,9 +2651,10 @@ int CCardIssuerFSM::ReadCard_Contact(SpReqAnsContext<CardIssuerStandService_Read
|
|
|
if (magTracks.track[1].data[i] == 0x3d || magTracks.track[1].data[i] == 0x3e || magTracks.track[1].data[i] == 0x44)// fixpoint (3d是=,3e是 >), 运通卡要考虑分隔符为D的情况
|
|
|
break;
|
|
|
}
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)(CSimpleString::Format("<ReadCard::MagRead>, split pos:%d", pos));
|
|
|
+
|
|
|
if (pos <= 0 || pos == magTracks.track[1].dwSize)
|
|
|
{
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("<ReadCard::MagRead>, split track is err, pos:%d", pos);
|
|
|
ctx->Ans.status = 1;
|
|
|
if (tmpMag2 != NULL)
|
|
|
{
|
|
@@ -2741,8 +2707,6 @@ int CCardIssuerFSM::ReadCard_Contact(SpReqAnsContext<CardIssuerStandService_Read
|
|
|
delete[]tmpMag2;
|
|
|
tmpMag2 = NULL;
|
|
|
}
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)(CSimpleStringA::Format("<ReadCard::MagRead>, t2Account len:%d, %s****%s", ctx->Ans.t2Account.GetLength(),
|
|
|
- (LPCTSTR)ctx->Ans.t2Account.SubString(0, 6), (LPCTSTR)ctx->Ans.t2Account.SubString(ctx->Ans.t2Account.GetLength() - 4, 4)));
|
|
|
|
|
|
CSimpleStringA cardInfo(true);
|
|
|
if (!ctx->Ans.track2.IsNullOrEmpty() && (pos + 8) < magTracks.track[1].dwSize)
|
|
@@ -2750,7 +2714,7 @@ int CCardIssuerFSM::ReadCard_Contact(SpReqAnsContext<CardIssuerStandService_Read
|
|
|
cardInfo = CSimpleStringA::Format("cardServiceCode:%s", (ctx->Ans.track2.SubString(pos + 1, 7)).GetData());
|
|
|
LogWarn(Severity_Low, Error_Unexpect, CardIssuer_UserErrorCode_Track2_ServiceCode, cardInfo.GetData());
|
|
|
}
|
|
|
- cardInfo = CSimpleStringA::Format("cardBin:%s****%s", (LPCTSTR)ctx->Ans.t2Account.SubString(0, 6), (LPCTSTR)ctx->Ans.t2Account.SubString(ctx->Ans.t2Account.GetLength() - 4, 4));
|
|
|
+ cardInfo = CSimpleStringA::Format("cardBin:%s****%s , len:%d", (LPCTSTR)ctx->Ans.t2Account.SubString(0, 6), (LPCTSTR)ctx->Ans.t2Account.SubString(ctx->Ans.t2Account.GetLength() - 4, 4), ctx->Ans.t2Account.GetLength());
|
|
|
LogWarn(Severity_Low, Error_Unexpect, CardIssuer_UserErrorCode_CardBin, cardInfo.GetData());
|
|
|
|
|
|
break;
|
|
@@ -2798,7 +2762,7 @@ int CCardIssuerFSM::ReadCard_Contact(SpReqAnsContext<CardIssuerStandService_Read
|
|
|
if (icRetryTimes >= m_ICRetryTimes)
|
|
|
break;
|
|
|
}
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)(CSimpleString::Format("<ReadCard::DetectIfICCard>, bIC:%d", bIC));
|
|
|
+ DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("<ReadCard::DetectIfICCard>, bIC:%d", bIC);
|
|
|
if (Error_Succeed == eMagReadErr && magTracks.track[1].eStatus == CI_DATA_OK)
|
|
|
{
|
|
|
if (bIC)
|
|
@@ -2961,9 +2925,10 @@ int CCardIssuerFSM::ReadCard_RF(SpReqAnsContext<CardIssuerStandService_Read_Req,
|
|
|
if (magTracks.track[1].data[i] == 0x3d || magTracks.track[1].data[i] == 0x3e || magTracks.track[1].data[i] == 0x44)// fixpoint (3d是=,3e是 >), 运通卡要考虑分隔符为D的情况
|
|
|
break;
|
|
|
}
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)(CSimpleString::Format("<ReadCard::MagRead>, split pos:%d", pos));
|
|
|
+
|
|
|
if (pos <= 0 || pos == magTracks.track[1].dwSize)
|
|
|
{
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("<ReadCard::MagRead>, split track is err, pos:%d", pos);
|
|
|
ctx->Ans.status = 1;
|
|
|
if (tmpMag2 != NULL)
|
|
|
{
|
|
@@ -3016,8 +2981,6 @@ int CCardIssuerFSM::ReadCard_RF(SpReqAnsContext<CardIssuerStandService_Read_Req,
|
|
|
delete[]tmpMag2;
|
|
|
tmpMag2 = NULL;
|
|
|
}
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)(CSimpleStringA::Format("<ReadCard::MagRead>, t2Account len:%d, %s****%s", ctx->Ans.t2Account.GetLength(),
|
|
|
- (LPCTSTR)ctx->Ans.t2Account.SubString(0, 6), (LPCTSTR)ctx->Ans.t2Account.SubString(ctx->Ans.t2Account.GetLength() - 4, 4)));
|
|
|
|
|
|
CSimpleStringA cardInfo(true);
|
|
|
if (!ctx->Ans.track2.IsNullOrEmpty() && (pos + 8) < magTracks.track[1].dwSize)
|
|
@@ -3025,7 +2988,7 @@ int CCardIssuerFSM::ReadCard_RF(SpReqAnsContext<CardIssuerStandService_Read_Req,
|
|
|
cardInfo = CSimpleStringA::Format("cardServiceCode:%s", (ctx->Ans.track2.SubString(pos + 1, 7)).GetData());
|
|
|
LogWarn(Severity_Low, Error_Unexpect, CardIssuer_UserErrorCode_Track2_ServiceCode, cardInfo.GetData());
|
|
|
}
|
|
|
- cardInfo = CSimpleStringA::Format("cardBin:%s****%s", (LPCTSTR)ctx->Ans.t2Account.SubString(0, 6), (LPCTSTR)ctx->Ans.t2Account.SubString(ctx->Ans.t2Account.GetLength() - 4, 4));
|
|
|
+ cardInfo = CSimpleStringA::Format("cardBin:%s****%s , len:%d", (LPCTSTR)ctx->Ans.t2Account.SubString(0, 6), (LPCTSTR)ctx->Ans.t2Account.SubString(ctx->Ans.t2Account.GetLength() - 4, 4), ctx->Ans.t2Account.GetLength());
|
|
|
LogWarn(Severity_Low, Error_Unexpect, CardIssuer_UserErrorCode_CardBin, cardInfo.GetData());
|
|
|
|
|
|
break;
|
|
@@ -3062,7 +3025,7 @@ int CCardIssuerFSM::ReadCard_RF(SpReqAnsContext<CardIssuerStandService_Read_Req,
|
|
|
if (icRetryTimes >= m_ICRetryTimes)
|
|
|
break;
|
|
|
}
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)(CSimpleString::Format("<ReadCard::DetectIfICCard>, bIC:%d", bIC));
|
|
|
+ DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("<ReadCard::DetectIfICCard>, bIC:%d", bIC);
|
|
|
if (!(bIC && activeCardType == 'A'))
|
|
|
bIC = false;
|
|
|
if (Error_Succeed == eMagReadErr && magTracks.track[1].eStatus == CI_DATA_OK)
|
|
@@ -3138,7 +3101,6 @@ int CCardIssuerFSM::PreOnline_Contact(SpReqAnsContext<CardIssuerStandService_Pre
|
|
|
bool bCrossPreOnline = false;
|
|
|
long l_beginTime, l_endTime;
|
|
|
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("PreOnline, bussiness data[%s], req.reserved1:%s", ctx->Req.businessData.GetData(), ctx->Req.reserved1.GetData());
|
|
|
CSimpleStringA csMagT2Track(""), csMagT3Track(""), csMagAccout(""), csMagRegion(""), csMagCardSerial(""), csMagCVC(""), csMagExpireDate("");
|
|
|
int slot = 0;
|
|
|
m_pCardProcess->SplitBusinessData(ctx->Req.businessData,ctx->Req.businessData.GetLength());
|
|
@@ -3203,9 +3165,7 @@ int CCardIssuerFSM::PreOnline_Contact(SpReqAnsContext<CardIssuerStandService_Pre
|
|
|
CSimpleStringA lastErrMsg = "";
|
|
|
CSimpleStringA lastApiName = "";
|
|
|
m_pCardProcess->getCardAssistLastErr(lastErrCode, lastErrMsg, lastApiName);
|
|
|
- //const CSimpleStringA alarmMsg = CSimpleStringA::Format("{\"Function\":\"%s\", \"DevApi\":\"%s\", \"ReturnCode\":\"%s\", \"Msg\":\"%s\", \"Context\":\"%s\"}"
|
|
|
- // , __FUNCTION__, lastApiName.GetData(), SpStrError(lastErrCode), lastErrMsg.GetData(), "");
|
|
|
- //CSimpleStringA csErrMsgWithReturnCode = CSimpleStringA::Format("{\"ReturnCode\":\"%s\", \"ErrMsg\":\"%s\", \"Context\":\"%s\"}", SpStrError(lastErrCode), lastErrMsg.GetData(), "");
|
|
|
+
|
|
|
|
|
|
const CSimpleStringA alarmMsg = CSimpleStringA::Format("{\"Function\":\"%s\", \"DevApi\":\"%s\", \"ReturnCode\":\"%s\", \"Msg\":\"%s\", \"Context\":\"%s\"}"
|
|
|
, __FUNCTION__, lastApiName.GetData(), SpStrError(lastErrCode), lastErrMsg.GetData(), "");
|
|
@@ -3316,7 +3276,9 @@ int CCardIssuerFSM::PreOnline_Contact(SpReqAnsContext<CardIssuerStandService_Pre
|
|
|
CSimpleStringA taaResult;
|
|
|
BYTE bt9f27 = 0;
|
|
|
int retTAA = m_pCardProcess->TermActionAnalyze(CARD_MACHINE_ISSUER,m_hDevHelper,taaResult,true,m_bCDA,bt9f27);
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("<PreOnline>, TermActionAnalyze, retTAA:%d, taaResult:%s", retTAA, taaResult.GetData());
|
|
|
+ if (retTAA != 0 || taaResult.GetLength() == 0) {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("<PreOnline>, TermActionAnalyze , retTAA:%d, taaResult:%s", retTAA, taaResult.GetData());
|
|
|
+ }
|
|
|
switch(retTAA)
|
|
|
{//to be added oiltmp 20140929
|
|
|
case -1: //some data may be wrong
|
|
@@ -3329,8 +3291,7 @@ int CCardIssuerFSM::PreOnline_Contact(SpReqAnsContext<CardIssuerStandService_Pre
|
|
|
break;
|
|
|
}
|
|
|
ctx->Ans.result = taaResult;
|
|
|
- // Dbg("[%d,%d,%d,%d]",m_TVR[0],m_TVR[1],m_TVR[2],m_TVR[3]);
|
|
|
- //}
|
|
|
+
|
|
|
if (ctx->Ans.result.GetLength() == 0)
|
|
|
{
|
|
|
if (!IfUseRf())
|
|
@@ -3398,7 +3359,7 @@ int CCardIssuerFSM::PreOnline_Contact(SpReqAnsContext<CardIssuerStandService_Pre
|
|
|
ZeroMemory(pICTrack2,128);
|
|
|
HexBuf2StrBuf(track2.value,&pICTrack2,track2.lenth);
|
|
|
pICTrack2[37] = '\0';
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)(CSimpleStringA::Format("<PreOnline>, ic.track2, split pos:%d", pos));
|
|
|
+ DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)(CSimpleStringA::Format("<PreOnline>, ic.track2, split pos:%d", pos));
|
|
|
|
|
|
char *ddd = new char[40];
|
|
|
memset(ddd,0,40);
|
|
@@ -3444,11 +3405,12 @@ int CCardIssuerFSM::PreOnline_Contact(SpReqAnsContext<CardIssuerStandService_Pre
|
|
|
|
|
|
//80 1e 80 0008 328ab54bfc986b85 07010103a0b000010a010000000000754048769000
|
|
|
if (m_pCardProcess->GetP1() == 0x1) {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("<PreOnline>, actionType:%s", actionType.c_str());
|
|
|
actionType = "ARQC";
|
|
|
}
|
|
|
- else
|
|
|
+ else {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("<PreOnline>, actionType:%s", actionType.c_str());
|
|
|
actionType = "";
|
|
|
+ }
|
|
|
//【55域】
|
|
|
// 基本域:
|
|
|
// 9F26 8b 应用密文AC
|
|
@@ -3530,7 +3492,6 @@ int CCardIssuerFSM::PreOnline_RF(SpReqAnsContext<CardIssuerStandService_PreOnlin
|
|
|
}
|
|
|
bool bCrossPreOnline = false;
|
|
|
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("PreOnline, bussiness data[%s], req.reserved1:%s", ctx->Req.businessData.GetData(), ctx->Req.reserved1.GetData());
|
|
|
CSimpleStringA csMagT2Track(""), csMagT3Track(""), csMagAccout(""), csMagRegion(""), csMagCardSerial(""), csMagCVC(""), csMagExpireDate("");
|
|
|
int slot = 0;
|
|
|
m_pCardProcess->SplitBusinessData(ctx->Req.businessData, ctx->Req.businessData.GetLength());
|
|
@@ -3542,7 +3503,7 @@ int CCardIssuerFSM::PreOnline_RF(SpReqAnsContext<CardIssuerStandService_PreOnlin
|
|
|
ICData aidFromBus(false, 0x4f, 0x00);
|
|
|
if (m_pCardProcess->FindTagValue(TAG_VECTOR_BUS, aidFromBus, false, 0) == -1)
|
|
|
{
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("<PreOnline>, the front BusinessData han't provide aid data.");
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("<PreOnline_RF>, the front BusinessData han't provide aid data.");
|
|
|
int icRetryTimes = 0;
|
|
|
while (1)
|
|
|
{
|
|
@@ -3562,7 +3523,7 @@ int CCardIssuerFSM::PreOnline_RF(SpReqAnsContext<CardIssuerStandService_PreOnlin
|
|
|
char* pAIDTmp = new char[64];
|
|
|
memset(pAIDTmp, 0, 64);
|
|
|
HexBuf2StrBuf(aidFromBus.value, &pAIDTmp, aidFromBus.lenth);
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("<PreOnline>, the aid from bussiness is[%s],len:%d .", pAIDTmp, strlen(pAIDTmp));
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("<PreOnline_RF>, the aid from bussiness is[%s],len:%d .", pAIDTmp, strlen(pAIDTmp));
|
|
|
CAutoArray<CSimpleString> preAIDs;
|
|
|
preAIDs.Init(1);
|
|
|
preAIDs[0] = (CSimpleStringA)pAIDTmp;
|
|
@@ -3583,7 +3544,7 @@ int CCardIssuerFSM::PreOnline_RF(SpReqAnsContext<CardIssuerStandService_PreOnlin
|
|
|
if (pAIDTmp != NULL)
|
|
|
delete[]pAIDTmp;
|
|
|
}
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("<PreOnline>, After invoke DetectAndReadICData, retDetectAndRead:%d, activeCardType:%d", retDetectAndRead, activeCardType);
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("<PreOnline_RF>, After invoke DetectAndReadICData, retDetectAndRead:%d, activeCardType:%d", retDetectAndRead, activeCardType);
|
|
|
if (retDetectAndRead < 0)
|
|
|
{
|
|
|
CSimpleStringA xCardName("");
|
|
@@ -3594,10 +3555,6 @@ int CCardIssuerFSM::PreOnline_RF(SpReqAnsContext<CardIssuerStandService_PreOnlin
|
|
|
CSimpleStringA lastErrMsg = "";
|
|
|
CSimpleStringA lastApiName = "";
|
|
|
m_pCardProcess->getCardAssistLastErr(lastErrCode, lastErrMsg, lastApiName);
|
|
|
- //const CSimpleStringA alarmMsg = CSimpleStringA::Format("{\"Function\":\"%s\", \"DevApi\":\"%s\", \"ReturnCode\":\"%s\", \"Msg\":\"%s\", \"Context\":\"%s\"}"
|
|
|
- // , __FUNCTION__, lastApiName.GetData(), SpStrError(lastErrCode), lastErrMsg.GetData(), "");
|
|
|
- //CSimpleStringA csErrMsgWithReturnCode = CSimpleStringA::Format("{\"ReturnCode\":\"%s\", \"ErrMsg\":\"%s\", \"Context\":\"%s\"}", SpStrError(lastErrCode), lastErrMsg.GetData(), "");
|
|
|
-
|
|
|
|
|
|
const CSimpleStringA alarmMsg = CSimpleStringA::Format("{\"Function\":\"%s\", \"DevApi\":\"%s\", \"ReturnCode\":\"%s\", \"Msg\":\"%s\", \"Context\":\"%s\"}"
|
|
|
, __FUNCTION__, lastApiName.GetData(), SpStrError(lastErrCode), lastErrMsg.GetData(), "");
|
|
@@ -3671,7 +3628,9 @@ int CCardIssuerFSM::PreOnline_RF(SpReqAnsContext<CardIssuerStandService_PreOnlin
|
|
|
CSimpleStringA taaResult;
|
|
|
BYTE bt9f27 = 0;
|
|
|
int retTAA = m_pCardProcess->TermActionAnalyze(CARD_MACHINE_ISSUER_RF, m_hDevHelper, taaResult, true, m_bCDA, bt9f27);
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("<PreOnline>, TermActionAnalyze, retTAA:%d, taaResult:%s", retTAA, taaResult.GetData());
|
|
|
+ if (retTAA != 0 || taaResult.GetLength() == 0) {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("<PreOnline_RF>, TermActionAnalyze, retTAA:%d, taaResult:%s", retTAA, taaResult.GetData());
|
|
|
+ }
|
|
|
switch (retTAA)
|
|
|
{//to be added oiltmp 20140929
|
|
|
case -1: //some data may be wrong
|
|
@@ -3705,7 +3664,7 @@ int CCardIssuerFSM::PreOnline_RF(SpReqAnsContext<CardIssuerStandService_PreOnlin
|
|
|
ICData appExpiryDate(false, 0x5f, 0x24);
|
|
|
if (m_pCardProcess->FindTagValue(TAG_VECTOR_IC, appExpiryDate, false, 0) == -1)
|
|
|
{
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("<PreOnline>, can't find expire date");
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("<PreOnline_RF>, can't find expire date");
|
|
|
ctx->Answer(Error_Succeed);
|
|
|
return 0;
|
|
|
}
|
|
@@ -3719,7 +3678,7 @@ int CCardIssuerFSM::PreOnline_RF(SpReqAnsContext<CardIssuerStandService_PreOnlin
|
|
|
ZeroMemory(pICCardSerial, 4);
|
|
|
if (m_pCardProcess->FindTagValue(TAG_VECTOR_IC, ICCardSerial, false) == -1)
|
|
|
{
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("<PreOnline>, can't find card serial.");
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("<PreOnline_RF>, can't find card serial.");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -3727,7 +3686,7 @@ int CCardIssuerFSM::PreOnline_RF(SpReqAnsContext<CardIssuerStandService_PreOnlin
|
|
|
}
|
|
|
if (m_pCardProcess->FindTagValue(TAG_VECTOR_IC, track2, false, 0) == -1)
|
|
|
{
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("<PreOnline>, [ic]no track2 data");
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("<PreOnline_RF>, [ic]no track2 data");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -3737,7 +3696,7 @@ int CCardIssuerFSM::PreOnline_RF(SpReqAnsContext<CardIssuerStandService_PreOnlin
|
|
|
ZeroMemory(pICTrack2, 128);
|
|
|
HexBuf2StrBuf(track2.value, &pICTrack2, track2.lenth);
|
|
|
pICTrack2[37] = '\0';
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)(CSimpleStringA::Format("<PreOnline>, ic.track2, split pos:%d", pos));
|
|
|
+ DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)(CSimpleStringA::Format("<PreOnline_RF>, ic.track2, split pos:%d", pos));
|
|
|
|
|
|
char* ddd = new char[40];
|
|
|
memset(ddd, 0, 40);
|
|
@@ -3778,11 +3737,12 @@ int CCardIssuerFSM::PreOnline_RF(SpReqAnsContext<CardIssuerStandService_PreOnlin
|
|
|
|
|
|
//80 1e 80 0008 328ab54bfc986b85 07010103a0b000010a010000000000754048769000
|
|
|
if (m_pCardProcess->GetP1() == 0x1) {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("<PreOnline>, actionType:%s", actionType.c_str());
|
|
|
actionType = "ARQC";
|
|
|
}
|
|
|
- else
|
|
|
+ else {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("<PreOnline_RF>, actionType:%s", actionType.c_str());
|
|
|
actionType = "";
|
|
|
+ }
|
|
|
//【55域】
|
|
|
// 基本域:
|
|
|
// 9F26 8b 应用密文AC
|
|
@@ -3829,7 +3789,7 @@ int CCardIssuerFSM::PreOnline_RF(SpReqAnsContext<CardIssuerStandService_PreOnlin
|
|
|
+ "ARQCDATA," + m_pDataToARQC + "|T2ACCOUNT(F6)," + t2ICAccount.substr(0, 6) + "|T2ACCOUNT(L4)," + t2ICAccount.substr(t2ICAccount.length() - 4, 4)
|
|
|
+ "|T2CARDSERIAL(len)," + t2ICCardSerial + "|CARDCAT," + cardType;
|
|
|
m_currCardNo = t2ICAccount.c_str();
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("<PreOnline>, data to host(less)[%s],baseICData length:%d", txtresult.c_str(), baseICData.length());
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("<PreOnline_RF>, data to host(less)[%s],baseICData length:%d", txtresult.c_str(), baseICData.length());
|
|
|
|
|
|
if (pCID != NULL)
|
|
|
delete[]pCID;
|