|
@@ -510,52 +510,6 @@ bool CAccessAuthEntity::HasPinPad()
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("MachineType[%s], not exist pinpad", m_info.strMachineType);
|
|
|
return false;
|
|
|
}
|
|
|
- else if (stricmp(m_info.strMachineType, "RVC.PAD") == 0) // Pad机型
|
|
|
- {
|
|
|
- // 根据PinPad实体状态确定是否连接密码键盘
|
|
|
- bool bPinPadExist = false;
|
|
|
- auto pPinPadClient = new PinPadService_ClientBase(this);
|
|
|
-
|
|
|
- if (pPinPadClient->Connect() != Error_Succeed)
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setResultCode("RTA5204")("连接密码键盘异常");
|
|
|
- m_FSM.doWarnMsg(ERR_ACCESSAUTH_CONNECT_PINPAD,
|
|
|
- GetOutPutStr("%s%s", "连接pinpad错误", "False").c_str());
|
|
|
- pPinPadClient->SafeDelete();
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- PinPadService_GetDevInfo_Req req = {};
|
|
|
- PinPadService_GetDevInfo_Ans ans = {};
|
|
|
-
|
|
|
-#ifdef RVC_OS_WIN
|
|
|
- auto rc = pPinPadClient->GetDevInfo(req, ans, 3000);
|
|
|
-#else
|
|
|
- auto rc = (*pPinPadClient)(EntityResource::getLink().upgradeLink())->GetDevInfo(req, ans, 3000);
|
|
|
-#endif // RVC_OS_WIN
|
|
|
-
|
|
|
- if (rc != Error_Succeed)
|
|
|
- {
|
|
|
- strErrMsg = "PinPad::GetDevInfo() fail";
|
|
|
- SetAuthErrMsg((const char *)strErrMsg);
|
|
|
-
|
|
|
- m_FSM.doWarnMsg(ERR_ACCESSAUTH_FROM_PINPAD,
|
|
|
- GetOutPutStr("%s%08X%s", "来自pinpad的错误", rc, strErrMsg.GetData()).c_str());
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setResultCode("RTA5205")
|
|
|
- (GetOutPutStr("%s%08X%s", "来自pinpad的错误", rc, strErrMsg.GetData()).c_str());
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("PinPad::GetDevInfo() return state: %d", ans.state);
|
|
|
- bPinPadExist = ans.state != DEVICE_STATUS_NOT_READY;
|
|
|
- }
|
|
|
-
|
|
|
- pPinPadClient->GetFunction()->CloseSession();
|
|
|
- }
|
|
|
-
|
|
|
- pPinPadClient = NULL;
|
|
|
- return bPinPadExist;
|
|
|
- }
|
|
|
else
|
|
|
{
|
|
|
// 其它VTM机型,全部有内置密码键盘
|
|
@@ -1140,16 +1094,15 @@ int CAccessAuthEntity::GetPinPadIDAndDeviceID(CSimpleStringA &strPinPadID, CSimp
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if (m_info.strMachineType.IsStartWith("RVC.PAD", true))
|
|
|
+ if (!HasPinPad())
|
|
|
isPinPadMac = false;
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("pinpad not exist, state: %d", ans.state);
|
|
|
-
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("pinpad STATUS ERROR!, state: %d", ans.state);
|
|
|
return nRet; //此时nRet = -1, pinpad调用失败
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if (m_info.strMachineType.IsStartWith("RVC.PAD", true))
|
|
|
+ if (!HasPinPad())
|
|
|
isPinPadMac = false;
|
|
|
strErrMsg = "调用PinPad实体的GetDevInfo方法失败";
|
|
|
SetAuthErrMsg((const char*)strErrMsg);
|
|
@@ -1165,7 +1118,7 @@ int CAccessAuthEntity::GetPinPadIDAndDeviceID(CSimpleStringA &strPinPadID, CSimp
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if (m_info.strMachineType.IsStartWith("RVC.PAD", true))
|
|
|
+ if (!HasPinPad())
|
|
|
isPinPadMac = false;
|
|
|
strErrMsg = "连接PinPad实体失败";
|
|
|
SetAuthErrMsg((const char*)strErrMsg);
|
|
@@ -1360,45 +1313,25 @@ BOOL CAccessAuthEntity::SetLocalTimeZoneByKeyName(const TCHAR* szTimeZoneKeyName
|
|
|
|
|
|
bool CAccessAuthEntity::IsMachineTypeConfigurePinPad(CSimpleStringA strMachineType)
|
|
|
{
|
|
|
- // PAD单独判定
|
|
|
- if (strMachineType.Compare("RVC.PAD", true) == 0)
|
|
|
+ CSmartPointer<IConfigInfo> spConfig;
|
|
|
+ ErrorCodeEnum Error = GetFunction()->OpenConfig(Config_CenterSetting, spConfig);
|
|
|
+
|
|
|
+ CSimpleStringA mcType = CSimpleStringA("CoreBootList.") + strMachineType;
|
|
|
+ CSimpleStringA loaderConifg("");
|
|
|
+ ErrorCodeEnum errCode = spConfig->ReadConfigValue("VtmLoader", mcType.GetData(), loaderConifg);
|
|
|
+
|
|
|
+ if (errCode != Error_Succeed)
|
|
|
{
|
|
|
-#ifdef RVC_OS_WIN
|
|
|
- //oilyang@20220413 except RVC.PAD without FWB
|
|
|
- CSimpleStringA tmpFWBDevSN("");
|
|
|
- GetFunction()->GetSysVar("FWBDevSN", tmpFWBDevSN);
|
|
|
- if (tmpFWBDevSN.IsNullOrEmpty())
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- return true;
|
|
|
- }
|
|
|
-#endif // RVC_OS_WIN
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Get VtmLoader config failed!");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (string(loaderConifg.GetData()).find("PinPad") != string::npos) //集中配置配了启动pinpad实体
|
|
|
+ {
|
|
|
+ return true;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- CSmartPointer<IConfigInfo> spConfig;
|
|
|
- ErrorCodeEnum Error = GetFunction()->OpenConfig(Config_CenterSetting, spConfig);
|
|
|
-
|
|
|
- CSimpleStringA mcType = CSimpleStringA("CoreBootList.") + strMachineType;
|
|
|
- CSimpleStringA loaderConifg("");
|
|
|
- ErrorCodeEnum errCode = spConfig->ReadConfigValue("VtmLoader", mcType.GetData(), loaderConifg);
|
|
|
-
|
|
|
- if (errCode != Error_Succeed)
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Get VtmLoader config failed!");
|
|
|
- }
|
|
|
-
|
|
|
- if (string(loaderConifg.GetData()).find("PinPad") != string::npos) //集中配置配了启动pinpad实体
|
|
|
- {
|
|
|
- return true;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
+ return false;
|
|
|
}
|
|
|
}
|
|
|
|