|
@@ -3317,90 +3317,6 @@ int CCardIssuerFSM::PostOnline_RF(SpReqAnsContext<CardIssuerStandService_PostOnl
|
|
|
ctx->Answer(Error_Succeed);
|
|
|
return 0;
|
|
|
}
|
|
|
-int CCardIssuerFSM::WriteCard(SpReqAnsContext<CardIssuerStandService_WriteTrack_Req, CardIssuerStandService_WriteTrack_Ans>::Pointer ctx)
|
|
|
-{
|
|
|
- LOG_FUNCTION();
|
|
|
- ErrorCodeEnum eErr;
|
|
|
- int ret = 0;
|
|
|
- long l_beginTime, l_endTime;
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("WriteCard,t1Len:%d, t2Len:%d, t3Len:%d", ctx->Req.track1.GetLength(), ctx->Req.track2.GetLength(), ctx->Req.track3.GetLength());
|
|
|
- if (ctx->Req.track1.GetLength() <= 0 && ctx->Req.track2.GetLength() <= 0 && ctx->Req.track3.GetLength() <= 0)
|
|
|
- {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("<WriteCard>, write card param is null.");
|
|
|
- ctx->Answer(Error_Param);
|
|
|
- return ret;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- l_beginTime = GetTickCountRVC();
|
|
|
- eErr = m_hDevHelper->MoveCard(CI_MOVECARD_MAG_POSITION);
|
|
|
- l_endTime = GetTickCountRVC();
|
|
|
-
|
|
|
- if (eErr != Error_Succeed)
|
|
|
- {
|
|
|
- DWORD dwCode = SetErrorAndLog(eErr, MEC_DEVAPI_CARDISSUER_CI_MOVECARD_MAG_POSITION, "DevAdapter::MoveCard", __FUNCTION__, IsInBusiness(), l_endTime - l_beginTime, "QLR040220315", "");
|
|
|
- ctx->Answer(Error_Unexpect, dwCode);
|
|
|
- return ret;
|
|
|
- }
|
|
|
- else {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setAPI("DevAdapter::MoveCard").setCostTime(l_endTime - l_beginTime)("WriteCard::MoveCard");
|
|
|
- }
|
|
|
- }
|
|
|
- MagTracks magTrack;
|
|
|
- ZeroMemory(magTrack.track[0].data, MAX_MAG_TRACK_SIZE);
|
|
|
- ZeroMemory(magTrack.track[1].data, MAX_MAG_TRACK_SIZE);
|
|
|
- ZeroMemory(magTrack.track[2].data, MAX_MAG_TRACK_SIZE);
|
|
|
- magTrack.track[0].dwSize = magTrack.track[1].dwSize = magTrack.track[2].dwSize = 0;
|
|
|
- magTrack.track[0].eStatus = magTrack.track[1].eStatus = magTrack.track[2].eStatus = CI_DATA_INVALID;
|
|
|
- TrackRange iT1, iT2, iT3;
|
|
|
- iT1 = iT2 = iT3 = CI_TRACK_RANGE_START;
|
|
|
- if (ctx->Req.track1.GetLength() > 0)
|
|
|
- {
|
|
|
- iT1 = CI_TRACK_RANGE_1;
|
|
|
- CSimpleStringA csT1 = CSimpleStringW2A(ctx->Req.track1);
|
|
|
- strncpy((char*)magTrack.track[0].data, csT1, csT1.GetLength());
|
|
|
- magTrack.track[0].eSource = CI_TRACK_SOURCE_1;
|
|
|
- magTrack.track[0].eStatus = CI_DATA_OK;
|
|
|
- magTrack.track[0].dwSize = csT1.GetLength();
|
|
|
- }
|
|
|
- if (ctx->Req.track2.GetLength() > 0)
|
|
|
- {
|
|
|
- iT2 = CI_TRACK_RANGE_2;
|
|
|
- CSimpleStringA csT2 = CSimpleStringW2A(ctx->Req.track2);
|
|
|
- strncpy((char*)magTrack.track[1].data, csT2, csT2.GetLength());
|
|
|
- magTrack.track[1].eSource = CI_TRACK_SOURCE_2;
|
|
|
- magTrack.track[1].eStatus = CI_DATA_OK;
|
|
|
- magTrack.track[1].dwSize = csT2.GetLength();
|
|
|
- }
|
|
|
- if (ctx->Req.track3.GetLength() > 0)
|
|
|
- {
|
|
|
- iT3 = CI_TRACK_RANGE_3;
|
|
|
- CSimpleStringA csT3 = CSimpleStringW2A(ctx->Req.track3);
|
|
|
- strncpy((char*)magTrack.track[2].data, csT3, csT3.GetLength());
|
|
|
- magTrack.track[2].eSource = CI_TRACK_SOURCE_3;
|
|
|
- magTrack.track[2].eStatus = CI_DATA_OK;
|
|
|
- magTrack.track[2].dwSize = csT3.GetLength();
|
|
|
- }
|
|
|
-
|
|
|
- //TrackRange eAll = iT2 | iT2;
|
|
|
- magTrack.eRange = TrackRange(iT1 | iT2 | iT3);
|
|
|
- l_beginTime = GetTickCountRVC();
|
|
|
- eErr = m_hDevHelper->MagWrite(magTrack, AUTO_CO);
|
|
|
- l_endTime = GetTickCountRVC();
|
|
|
-
|
|
|
- if (eErr != Error_Succeed)
|
|
|
- {
|
|
|
- SetErrorAndLog(eErr, MEC_DEVAPI_CARDISSUER_MagWrite, "DevAdapter::MagWrite", __FUNCTION__, false, l_endTime - l_beginTime, "", "");
|
|
|
- ret = 1;
|
|
|
- }
|
|
|
- else {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::MagWrite").setCostTime(l_endTime - l_beginTime)("WriteCard::MagWrite");
|
|
|
- }
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR040220315")("MagWrite ok");
|
|
|
- ctx->Ans.result = ret;
|
|
|
- ctx->Answer(Error_Succeed);
|
|
|
- return ret;
|
|
|
-}
|
|
|
void CCardIssuerFSM::SelfTest(EntityTestEnum eTestType,CSmartPointer<ITransactionContext> pTransactionContext)
|
|
|
{
|
|
|
OnHardwareShakeHand(pTransactionContext);
|