123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566 |
- // dllmain.cpp : 定义 DLL 应用程序的入口点。
- #include "stdafx.h"
- #include "cardissuer_impl.h"
- #include "log4vendor.h"
- #include "path.h"
- #ifdef RVC_OS_WIN
- #include <direct.h>
- #define GetCurrentDir _getcwd
- #else
- #include <unistd.h>
- #include<cstring>
- #include <cstdio>
- #include <netdb.h> //gethostbyname
- #include <arpa/inet.h> //ntohl
- #include <unistd.h> // Linux系统中
- #include <netdb.h>
- #include <net/if.h>
- #include <arpa/inet.h>
- #include <sys/ioctl.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define GetCurrentDir getcwd
- #endif
- #define MAX_SHOW 1024
- #define MAX_TRACK_SIZE 512
- #define ENTITY_NAME "CardIssuerStand"
- #ifdef RVC_OS_WIN
- BOOL APIENTRY DllMain(HMODULE hModule,
- DWORD ul_reason_for_call,
- LPVOID lpReserved
- )
- {
- switch (ul_reason_for_call)
- {
- case DLL_PROCESS_ATTACH:
- case DLL_THREAD_ATTACH:
- case DLL_THREAD_DETACH:
- case DLL_PROCESS_DETACH:
- break;
- }
- return TRUE;
- }
- #endif
- string get_current_directory() {
- char buff[256];
- GetCurrentDir(buff, 256);
- string current_working_directory(buff);
- return current_working_directory;
- }
- DEVICEBASE_API ErrorCodeEnum CreateDevComponent(DeviceBaseClass*& pBaseObj)
- {
- pBaseObj = new CardIssuerImpl();
- if (pBaseObj == NULL) {
- return Error_Resource;
- }
- cmb::log_init_config config;
- config.dev_name = ENTITY_NAME;
- #ifdef RVC_OS_WIN
- config.log_dir = ("C:\\rvc\\dbg\\");
- #else
- config.log_dir = ("/opt/rvc/dbg/");
- #endif
- std::string str;
- cmb::log4vendor::init(config, str);
- printf("init after: %s\n", str.c_str());
- return Error_Succeed;
- }
- DEVICEBASE_API ErrorCodeEnum ReleaseDevComponent(DeviceBaseClass*& pBaseObj)
- {
- if (pBaseObj == NULL) {
- return Error_Param;
- }
- if (CardIssuerImpl* pTmp = dynamic_cast<CardIssuerImpl*>(pBaseObj))
- {
- delete pTmp;
- pTmp = NULL;
- return Error_Succeed;
- }
- return Error_Param;
- }
- CardIssuerImpl::CardIssuerImpl()
- {
- }
- CardIssuerImpl::~CardIssuerImpl()
- {
- }
- ErrorCodeEnum CardIssuerImpl::GetDevCategory(DevCategoryInfo& devCategory)
- {
- if (GetDevCategoryHttp(devCategory)) {
- strcpy(devCategory.szModel, "CM=2.0#CID=00000000");
- strcpy(devCategory.szType, "PVER=ACT#MID=ACT-F5-5540-0SH");
- strcpy(devCategory.szVendor, "cmbszSimulator");
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::Reset()
- {
- return Error_Succeed;
- }
- ErrorCodeEnum CardIssuerImpl::DevClose()
- {
- return Error_Succeed;
- }
- ErrorCodeEnum CardIssuerImpl::GetLastErr(DevErrorInfo& devErrInfo)
- {
- static int times = 0;
- char szMessage[1024];
- string lastErr = "{\"Description\": \"test DevAdapter is execute fail\"}";
- //sprintf(szMessage, "这是第 %d 条错误信息", ++times);
- strcpy(devErrInfo.szErrMsg, lastErr.c_str());
- devErrInfo.dwErrMsgLen = lastErr.length();
- return Error_Succeed;
- }
- ErrorCodeEnum CardIssuerImpl::GetDevStatus(CardIssuerStatus& devStatus)
- {
- if (GetDevStatusHttp(devStatus)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::GetDeviceSN(char*& pDevSN)
- {
- if (GetDeviceSNHttp(pDevSN)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::MoveCard(CardPosEnum eCardPos, int hopperNo)
- {
- if (MoveCardHttp(eCardPos, hopperNo)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::SetCardInType(CardInEnum eCardIn)
- {
- if (SetCardInTypeHttp(eCardIn)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::MagRead(MagTracks& magTracks)
- {
- if (MagReadHttp(magTracks)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::MagWrite(MagTracks magTracks, MagWriteModeEnum eWriteMode)
- {
- if (MagWriteHttp(magTracks, eWriteMode)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::ActiveICCard()
- {
- if (ActiveICCardHttp()) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::ContactIC()
- {
- if (ContactICHttp()) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::ReleaseIC()
- {
- if (ReleaseICHttp()) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::WarmReset()
- {
- if (WarmResetHttp()) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::ICCommand(CmdInfo sendBuf, CmdInfo& recvBuf)
- {
- if (ICCommandHttp(sendBuf, recvBuf)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::SAMCommand(CmdInfo sendBuf, CmdInfo& recvBuf)
- {
- if (SAMCommandHttp(sendBuf, recvBuf)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::ActiveICCardATR(CmdInfo& atrBuf)
- {
- if (ActiveICCardATRHttp(atrBuf)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::ActiveContactlessICCard(char fstType, char scdType, char thdType, char& outType)
- {
- if (ActiveContactlessICCardHttp(fstType, scdType, thdType, outType)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::DeactivateICCard()
- {
- if (DeactivateICCardHttp()) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::DeactContactlessICCard()
- {
- if (DeactContactlessICCardHttp()) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::RFTypeABCommand(CmdInfo sendBuf, CmdInfo& recvBuf)
- {
- if (RFTypeABCommandHttp(sendBuf, recvBuf)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::DevOpenEx(DWORD dwPort, DWORD dwBaudRate, BYTE btOpenType, const char* pDevSN, BYTE& btType)
- {
- LOG4VTM(INFO, "当前目录:" << get_current_directory());
- depCfgPath = get_current_directory() + SPLIT_SLASH_STR + "dep" + SPLIT_SLASH_STR + "cmbsz.ini";
- bool ret = iniRead.ReadConfig(depCfgPath);
- if (ret == false)
- {
- LOG4VTM(INFO, "dep ReadConfig is Error,cfg=" << depCfgPath);
- }
- if (DevOpenExHttp(dwPort, dwBaudRate, btOpenType, pDevSN, btType)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::TransferEnInit(int& iStatus, BYTE*& Cr1, int& lenR1, BYTE*& Cr3, int& lenR3, BYTE*& dKey, int& lenKey)
- {
- if (TransferEnInitHttp(iStatus, Cr1, lenR1, Cr3, lenR3, dKey, lenKey)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::SetR2(int& iStatus, BYTE* pCr2, int lenR2)
- {
- if (SetR2Http(iStatus, pCr2, lenR2)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::SendWorkingKey(const char* pWorkingKey)
- {
- if (SendWorkingKeyHttp(pWorkingKey)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::MoveCardToSlot(int slot)
- {
- if (MoveCardToSlotHttp(slot)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::MoveCardFromSlot(int slot)
- {
- if (MoveCardFromSlotHttp(slot)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::ReadAccount(CardNo& cardNo)
- {
- if (ReadAccountHttp(cardNo)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::GetSlotSum(int& sum)
- {
- if (GetSlotSumHttp(sum)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::QuerySlotsStatus(SlotStatus& slots, const int slot, bool bFull /*= false*/)
- {
- if (QuerySlotsStatusHttp(slots, slot, bFull)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- ErrorCodeEnum CardIssuerImpl::PrintCardFaceRightNow(const KakuPrintInfo printInfo)
- {
- if (PrintCardFaceRightNowHttp(printInfo)) {
- return Error_Succeed;
- }
- else {
- return Error_Exception;
- }
- }
- bool CardIssuerImpl::GetDevCategoryHttp(DevCategoryInfo& devCategory)
- {
- LOG4VTM(INFO, "GetDevCategoryHttp");
- return commonSimpleHttp("GetDevCategory");
- }
- /////////////////////////////////////////
- bool CardIssuerImpl::GetDevStatusHttp(CardIssuerStatus& devStatus)
- {
- LOG4VTM(INFO, "GetDevStatusHttp");
- CommonReq cReq;
- CommonRet cRet;
- IHttpFunc* client;
- client = create_http(HttpsLogCallBack);
- Json::Value rootReq;
- Json::FastWriter writer;
- rootReq["ip"] = GetLocalIP();
- rootReq["entityName"] = ENTITY_NAME;
- rootReq["adapterInterName"] = "GetDevStatus";//适配器接口名
- cReq.m_url = getUrl();
- cReq.m_timeOut = 30;
- string jsonReq = writer.write(rootReq);
- cReq.m_reqStr = jsonReq;//请求参数
- bool ret = client->Post(cReq, cRet);
- if (ret) {
- Json::Reader reader;
- Json::Value rootRet;
- if (!reader.parse(cRet.m_retStr, rootRet, false))
- {
- LOG4VTM(INFO, "GetDevStatusHttp parse resp is fail,url=" << cReq.m_url.c_str());
- return false;//失败
- }
- bool isSucc = rootRet["success"].asBool();
- if (isSucc) {
- //解析数据
- if (rootRet.isMember("data")) {
- bool isResult = rootRet["data"]["result"].asBool();
- if (isResult) {
- int eMediaRet = rootRet["data"]["eMedia"].asInt();
- devStatus.eMedia = (CardStatusEnum)eMediaRet;
- int eRetainBinRet = rootRet["data"]["eRetainBin"].asInt();
- devStatus.eRetainBin = (RtBinStatusEnum)eRetainBinRet;
- int dwRetainCountRet = rootRet["data"]["dwRetainCount"].asInt();
- devStatus.dwRetainCount = dwRetainCountRet;
- for (int i = 0; i < 12; i++) {
- int eIssuerBinRet = rootRet["data"]["eIssuerBin"][i].asInt();
- devStatus.eIssuerBin[i] = (IssHopperStatusEnum)eIssuerBinRet;
- }
- for (int i = 0; i < 12; i++) {
- int dwIssuerCountRet = rootRet["data"]["dwIssuerCount"][i].asInt();
- devStatus.dwIssuerCount[i] = dwIssuerCountRet;
- }
- for (int i = 0; i < 8; i++) {
- int eKakuTapeRet = rootRet["data"]["eKakuTape"][i].asInt();
- devStatus.eKakuTape[i] = (KakuPrintStatusEnum)eKakuTapeRet;
- }
- LOG4VTM(INFO, "GetDevStatusHttp devStatus.eMedia=" << devStatus.eMedia);
- LOG4VTM(INFO, "GetDevStatusHttp devStatus.eRetainBin=" << devStatus.eRetainBin);
- LOG4VTM(INFO, "GetDevStatusHttp devStatus.dwRetainCount=" << devStatus.dwRetainCount);
- return true;
- }
- else {
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "GetDevStatusHttp return [data] is null");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "GetDevStatusHttp [success] is false,");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "GetDevStatusHttp req fail,err=%s" << cRet.m_errMsg.c_str());
- return false;
- }
- }
- bool CardIssuerImpl::GetDeviceSNHttp(char*& pDevSN)
- {
- LOG4VTM(INFO, "GetDeviceSNHttp");
- CommonReq cReq;
- CommonRet cRet;
- IHttpFunc* client;
- client = create_http(HttpsLogCallBack);
- Json::Value rootReq;
- Json::FastWriter writer;
- rootReq["ip"] = GetLocalIP();
- rootReq["entityName"] = ENTITY_NAME;
- rootReq["adapterInterName"] = "GetDeviceSN";//适配器接口名
- cReq.m_url = getUrl();
- cReq.m_timeOut = 30;
- string jsonReq = writer.write(rootReq);
- cReq.m_reqStr = jsonReq;//请求参数
- bool ret = client->Post(cReq, cRet);
- if (ret) {
- Json::Reader reader;
- Json::Value rootRet;
- if (!reader.parse(cRet.m_retStr, rootRet, false))
- {
- LOG4VTM(INFO, "GetDeviceSNHttp parse resp is fail,url=" << cReq.m_url.c_str());
- return false;//失败
- }
- bool isSucc = rootRet["success"].asBool();
- if (isSucc) {
- //解析数据
- if (rootRet.isMember("data")) {
- bool isResult = rootRet["data"]["result"].asBool();
- if (isResult) {
- string devSNStr = rootRet["data"]["devSN"].asString();;
- strncpy(pDevSN, devSNStr.c_str(), (128 > devSNStr.length()) ? devSNStr.length() : 128);
- LOG4VTM(INFO, "GetDeviceSNHttp devSN=" << devSNStr);
- return true;
- }
- else {
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "GetDeviceSNHttp return [data] is null");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "GetDeviceSNHttp [success] is false,");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "GetDeviceSNHttp req fail,err=%s" << cRet.m_errMsg.c_str());
- return false;
- }
- }
- bool CardIssuerImpl::MoveCardHttp(CardPosEnum eCardPos, int hopperNo)
- {
- LOG4VTM(INFO, "MoveCardHttp eCardPos=" << eCardPos << " hopperNo=" << hopperNo);
- return commonSimpleHttp("MoveCard");
- }
- bool CardIssuerImpl::SetCardInTypeHttp(CardInEnum eCardIn)
- {
- LOG4VTM(INFO, "SetCardInTypeHttp eCardIn=" << eCardIn);
- return commonSimpleHttp("SetCardInType");
- }
- bool CardIssuerImpl::MagReadHttp(MagTracks& magTracks)
- {
- LOG4VTM(INFO, "MagReadHttp");
- CommonReq cReq;
- CommonRet cRet;
- IHttpFunc* client;
- client = create_http(HttpsLogCallBack);
- Json::Value rootReq;
- Json::FastWriter writer;
- rootReq["ip"] = GetLocalIP();
- rootReq["entityName"] = ENTITY_NAME;
- rootReq["adapterInterName"] = "MagRead";//适配器接口名
- cReq.m_url = getUrl();
- cReq.m_timeOut = 30;
- string jsonReq = writer.write(rootReq);
- cReq.m_reqStr = jsonReq;//请求参数
- bool ret = client->Post(cReq, cRet);
- if (ret) {
- Json::Reader reader;
- Json::Value rootRet;
- if (!reader.parse(cRet.m_retStr, rootRet, false))
- {
- LOG4VTM(INFO, "MagReadHttp parse resp is fail,url=" << cReq.m_url.c_str());
- return false;//失败
- }
- bool isSucc = rootRet["success"].asBool();
- if (isSucc) {
- //解析数据
- if (rootRet.isMember("data")) {
- bool isResult = rootRet["data"]["result"].asBool();
- if (isResult) {
- int eRangeRet = rootRet["data"]["eRange"].asInt();
- magTracks.eRange = (TrackRange)eRangeRet;
- LOG4VTM(INFO, "MagReadHttp magTracks.eRange=" << magTracks.eRange);
- for (int i = 0; i < 3; i++) {
- int eSourceRet = rootRet["data"]["track"][i]["eSource"].asInt();
- magTracks.track[i].eSource = (TrackSrcEnum)eSourceRet;
- int eStatusRet = rootRet["data"]["track"][i]["eStatus"].asInt();
- magTracks.track[i].eStatus = (TrackDataStateEnum)eStatusRet;
- int dwSizeRet = rootRet["data"]["track"][i]["dwSize"].asInt();
- magTracks.track[i].dwSize = dwSizeRet;
- string dataRet = rootRet["data"]["track"][i]["data"].asString();
- //PBYTE pData = new BYTE[MAX_SHOW];
- //ZeroMemory(pData, MAX_SHOW);
- //int dataLen = StrBuf2HexBuf(dataRet.c_str(), &pData);
- //memcpy(magTracks.track[i].data, pData, dataLen);//赋值
- //delete[] pData;
- memcpy(magTracks.track[i].data, dataRet.c_str(), dwSizeRet);//赋值
- LOG4VTM(INFO, "MagReadHttp magTracks.track.eSource=" << magTracks.track[i].eSource);
- LOG4VTM(INFO, "MagReadHttp magTracks.track.eStatus=" << magTracks.track[i].eStatus);
- LOG4VTM(INFO, "MagReadHttp magTracks.track.dwSize=" << magTracks.track[i].dwSize);
- LOG4VTM(INFO, "MagReadHttp magTracks.track.data.len=" << strlen((const char*)magTracks.track[i].data));
- }
- return true;
- }
- else {
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "MagReadHttp return [data] is null");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "MagReadHttp [success] is false,");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "MagReadHttp req fail,err=%s" << cRet.m_errMsg.c_str());
- return false;
- }
- }
- bool CardIssuerImpl::MagWriteHttp(MagTracks magTracks, MagWriteModeEnum eWriteMode)
- {
- LOG4VTM(INFO, "MagWriteHttp eWriteMode=" << eWriteMode);
- return commonSimpleHttp("MagWrite");
- }
- bool CardIssuerImpl::ActiveICCardHttp()
- {
- LOG4VTM(INFO, "ActiveICCardHttp");
- return commonSimpleHttp("ActiveICCard");
- }
- bool CardIssuerImpl::ContactICHttp()
- {
- LOG4VTM(INFO, "ContactICHttp");
- return commonSimpleHttp("ContactIC");
- }
- bool CardIssuerImpl::ReleaseICHttp()
- {
- LOG4VTM(INFO, "ReleaseICHttp");
- return commonSimpleHttp("ReleaseIC");
- }
- bool CardIssuerImpl::WarmResetHttp()
- {
- LOG4VTM(INFO, "WarmResetHttp");
- return commonSimpleHttp("WarmReset");
- }
- bool CardIssuerImpl::ICCommandHttp(CmdInfo sendBuf, CmdInfo& recvBuf)
- {
- char* show = new char[MAX_SHOW];
- ZeroMemory(show, MAX_SHOW);
- HexBuf2StrBuf(sendBuf.data, &show, sendBuf.dwSize);
- LOG4VTM(INFO, "ICCommandHttp sendBuf=" << show);
- CommonReq cReq;
- CommonRet cRet;
- IHttpFunc* client;
- client = create_http(HttpsLogCallBack);
- Json::Value rootReq;
- Json::FastWriter writer;
- rootReq["ip"] = GetLocalIP();
- rootReq["entityName"] = ENTITY_NAME;
- rootReq["adapterInterName"] = "ICCommand";//适配器接口名
- //rootReq["dwSize"] = CSimpleStringA::Format("%d",sendBuf.dwSize).GetData();
- //rootReq["dwData"] = CSimpleStringA::Format("%s",show).GetData();
- cReq.m_url = getUrl();
- cReq.m_timeOut = 30;
- string jsonReq = writer.write(rootReq);
- cReq.m_reqStr = jsonReq;//请求参数
- bool ret = client->Post(cReq, cRet);
- delete[] show;
- if (ret) {
- Json::Reader reader;
- Json::Value rootRet;
- if (!reader.parse(cRet.m_retStr, rootRet, false))
- {
- LOG4VTM(INFO, "ICCommandHttp parse resp is fail,url=" << cReq.m_url.c_str());
- return false;//失败
- }
- bool isSucc = rootRet["success"].asBool();
- if (isSucc) {
- //解析数据
- if (rootRet.isMember("data")) {
- bool isResult = rootRet["data"]["result"].asBool();
- if (isResult) {
- int dwSizeRet = rootRet["data"]["dwSize"].asInt();
- string dataRet = rootRet["data"]["data"].asString();
- LOG4VTM(INFO, "ICCommandHttp recvBuf.dwSize=" << dwSizeRet << ", recvBuf.dwData=" << dataRet);
- //反解析
- PBYTE pData = new BYTE[MAX_SHOW];
- ZeroMemory(pData, MAX_SHOW);
- int dataLen = StrBuf2HexBuf(dataRet.c_str(), &pData);
- ZeroMemory(recvBuf.data, MAX_SHOW);
- memcpy(recvBuf.data, pData, dataLen);//赋值
- recvBuf.dwSize = dataLen;//赋值
- LOG4VTM(INFO, "ICCommandHttp recvBuf.dwSize=" << recvBuf.dwSize << ", recvBuf.dwData=" << dataRet);
- delete[] pData;
- return true;
- }
- else {
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "ICCommandHttp return [data] is null");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "ICCommandHttp [success] is false,");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "ICCommandHttp req fail,err=%s" << cRet.m_errMsg.c_str());
- return false;
- }
- }
- bool CardIssuerImpl::SAMCommandHttp(CmdInfo sendBuf, CmdInfo& recvBuf)
- {
- char* show = new char[MAX_SHOW];
- ZeroMemory(show, MAX_SHOW);
- HexBuf2StrBuf(sendBuf.data, &show, sendBuf.dwSize);
- LOG4VTM(INFO, "SAMCommandHttp sendBuf=" << show);
- CommonReq cReq;
- CommonRet cRet;
- IHttpFunc* client;
- client = create_http(HttpsLogCallBack);
- Json::Value rootReq;
- Json::FastWriter writer;
- rootReq["ip"] = GetLocalIP();
- rootReq["entityName"] = ENTITY_NAME;
- rootReq["adapterInterName"] = "SAMCommand";//适配器接口名
- //rootReq["CmdInfo"]["dwSize"] = CSimpleStringA::Format("%d", sendBuf.dwSize).GetData();
- //rootReq["CmdInfo"]["dwData"] = CSimpleStringA::Format("%s", show).GetData();
- cReq.m_url = getUrl();
- cReq.m_timeOut = 30;
- string jsonReq = writer.write(rootReq);
- cReq.m_reqStr = jsonReq;//请求参数
- bool ret = client->Post(cReq, cRet);
- delete[] show;
- if (ret) {
- Json::Reader reader;
- Json::Value rootRet;
- if (!reader.parse(cRet.m_retStr, rootRet, false))
- {
- LOG4VTM(INFO, "SAMCommandHttp parse resp is fail,url=" << cReq.m_url.c_str());
- return false;//失败
- }
- bool isSucc = rootRet["success"].asBool();
- if (isSucc) {
- //解析数据
- if (rootRet.isMember("data")) {
- bool isResult = rootRet["data"]["result"].asBool();
- if (isResult) {
- int dwSizeRet = rootRet["data"]["dwSize"].asInt();
- string dataRet = rootRet["data"]["data"].asString();
- LOG4VTM(INFO, "SAMCommandHttp recvBuf.dwSize=" << dwSizeRet << ", recvBuf.dwData=" << dataRet);
- //反解析
- PBYTE pData = new BYTE[MAX_SHOW];
- ZeroMemory(pData, MAX_SHOW);
- int dataLen = StrBuf2HexBuf(dataRet.c_str(), &pData);
- ZeroMemory(recvBuf.data, MAX_SHOW);
- memcpy(recvBuf.data, pData, dataLen);//赋值
- recvBuf.dwSize = dataLen;//赋值
- LOG4VTM(INFO, "SAMCommandHttp recvBuf.dwSize=" << recvBuf.dwSize << ", recvBuf.dwData=" << dataRet);
- delete[] pData;
- return true;
- }
- else {
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "SAMCommandHttp return [data] is null");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "SAMCommandHttp [success] is false,");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "SAMCommandHttp req fail,err=%s" << cRet.m_errMsg.c_str());
- return false;
- }
- }
- bool CardIssuerImpl::ActiveICCardATRHttp(CmdInfo& atrBuf)
- {
- LOG4VTM(INFO, "ActiveICCardATRHttp");
- CommonReq cReq;
- CommonRet cRet;
- IHttpFunc* client;
- client = create_http(HttpsLogCallBack);
- Json::Value rootReq;
- Json::FastWriter writer;
- rootReq["ip"] = GetLocalIP();
- rootReq["entityName"] = ENTITY_NAME;
- rootReq["adapterInterName"] = "ActiveICCardATR";//适配器接口名
- cReq.m_url = getUrl();
- cReq.m_timeOut = 30;
- string jsonReq = writer.write(rootReq);
- cReq.m_reqStr = jsonReq;//请求参数
- bool ret = client->Post(cReq, cRet);
- if (ret) {
- Json::Reader reader;
- Json::Value rootRet;
- if (!reader.parse(cRet.m_retStr, rootRet, false))
- {
- LOG4VTM(INFO, "ActiveICCardATRHttp parse resp is fail,url=" << cReq.m_url.c_str());
- return false;//失败
- }
- bool isSucc = rootRet["success"].asBool();
- if (isSucc) {
- //解析数据
- if (rootRet.isMember("data")) {
- bool isResult = rootRet["data"]["result"].asBool();
- if (isResult) {
- int dwSizeRet = rootRet["data"]["dwSize"].asInt();
- string dataRet = rootRet["data"]["data"].asString();
- LOG4VTM(INFO, "ActiveICCardATRHttp recvBuf.dwSize=" << dwSizeRet << ", recvBuf.dwData=" << dataRet);
- //反解析
- PBYTE pData = new BYTE[MAX_SHOW];
- ZeroMemory(pData, MAX_SHOW);
- int dataLen = StrBuf2HexBuf(dataRet.c_str(), &pData);
- ZeroMemory(atrBuf.data, MAX_SHOW);
- memcpy(atrBuf.data, pData, dataLen);//赋值
- atrBuf.dwSize = dataLen;//赋值
- LOG4VTM(INFO, "ActiveICCardATRHttp recvBuf.dwSize=" << atrBuf.dwSize << ", recvBuf.dwData=" << dataRet);
- delete[] pData;
- return true;
- }
- else {
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "ActiveICCardATRHttp return [data] is null");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "ActiveICCardATRHttp [success] is false,");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "ActiveICCardATRHttp req fail,err=%s" << cRet.m_errMsg.c_str());
- return false;
- }
- }
- bool CardIssuerImpl::ActiveContactlessICCardHttp(char fstType, char scdType, char thdType, char& outType)
- {
- LOG4VTM(INFO, "ActiveContactlessICCardHttp fstType=" << fstType << ", scdType=" << scdType << ", thdType=" << thdType);
- CommonReq cReq;
- CommonRet cRet;
- IHttpFunc* client;
- client = create_http(HttpsLogCallBack);
- Json::Value rootReq;
- Json::FastWriter writer;
- rootReq["ip"] = GetLocalIP();
- rootReq["entityName"] = ENTITY_NAME;
- rootReq["adapterInterName"] = "ActiveContactlessICCard";//适配器接口名
- //rootReq["fstType"] = fstType;
- //rootReq["scdType"] = scdType;
- //rootReq["thdType"] = thdType;
- cReq.m_url = getUrl();
- cReq.m_timeOut = 30;
- string jsonReq = writer.write(rootReq);
- cReq.m_reqStr = jsonReq;//请求参数
- bool ret = client->Post(cReq, cRet);
- if (ret) {
- Json::Reader reader;
- Json::Value rootRet;
- if (!reader.parse(cRet.m_retStr, rootRet, false))
- {
- LOG4VTM(INFO, "ActiveContactlessICCardHttp parse resp is fail,url=" << cReq.m_url.c_str());
- return false;//失败
- }
- bool isSucc = rootRet["success"].asBool();
- if (isSucc) {
- //解析数据
- if (rootRet.isMember("data")) {
- bool isResult = rootRet["data"]["result"].asBool();
- if (isResult) {
- string outTypeRet = rootRet["data"]["outType"].asString();
- outType = outTypeRet.c_str()[0];
- return true;
- }
- else {
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "ActiveContactlessICCardHttp return [data] is null");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "ActiveContactlessICCardHttp [success] is false,");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "ActiveContactlessICCardHttp req fail,err=%s" << cRet.m_errMsg.c_str());
- return false;
- }
- }
- bool CardIssuerImpl::DeactivateICCardHttp()
- {
- LOG4VTM(INFO, "DeactivateICCardHttp");
- return commonSimpleHttp("DeactivateICCard");
- }
- bool CardIssuerImpl::DeactContactlessICCardHttp()
- {
- LOG4VTM(INFO, "DeactContactlessICCardHttp");
- return commonSimpleHttp("DeactContactlessICCard");
- }
- bool CardIssuerImpl::RFTypeABCommandHttp(CmdInfo sendBuf, CmdInfo& recvBuf)
- {
- char* show = new char[MAX_SHOW];
- ZeroMemory(show, MAX_SHOW);
- HexBuf2StrBuf(sendBuf.data, &show, sendBuf.dwSize);
- LOG4VTM(INFO, "RFTypeABCommandHttp sendBuf=" << show);
- CommonReq cReq;
- CommonRet cRet;
- IHttpFunc* client;
- client = create_http(HttpsLogCallBack);
- Json::Value rootReq;
- Json::FastWriter writer;
- rootReq["ip"] = GetLocalIP();
- rootReq["entityName"] = ENTITY_NAME;
- rootReq["adapterInterName"] = "RFTypeABCommand";//适配器接口名
- //rootReq["CmdInfo"]["dwSize"] = (int)sendBuf.dwSize;
- //rootReq["CmdInfo"]["dwData"] = show;
- cReq.m_url = getUrl();
- cReq.m_timeOut = 30;
- string jsonReq = writer.write(rootReq);
- cReq.m_reqStr = jsonReq;//请求参数
- bool ret = client->Post(cReq, cRet);
- delete[] show;
- if (ret) {
- Json::Reader reader;
- Json::Value rootRet;
- if (!reader.parse(cRet.m_retStr, rootRet, false))
- {
- LOG4VTM(INFO, "RFTypeABCommandHttp parse resp is fail,url=" << cReq.m_url.c_str());
- return false;//失败
- }
- bool isSucc = rootRet["success"].asBool();
- if (isSucc) {
- //解析数据
- if (rootRet.isMember("data")) {
- bool isResult = rootRet["data"]["result"].asBool();
- if (isResult) {
- int dwSizeRet = rootRet["data"]["dwSize"].asInt();
- string dataRet = rootRet["data"]["data"].asString();
- LOG4VTM(INFO, "RFTypeABCommandHttp recvBuf.dwSize=" << dwSizeRet << ", recvBuf.dwData=" << dataRet);
- //反解析
- PBYTE pData = new BYTE[MAX_SHOW];
- ZeroMemory(pData, MAX_SHOW);
- int dataLen = StrBuf2HexBuf(dataRet.c_str(), &pData);
- ZeroMemory(recvBuf.data, MAX_SHOW);
- memcpy(recvBuf.data, pData, dataLen);//赋值
- recvBuf.dwSize = dataLen;//赋值
- LOG4VTM(INFO, "RFTypeABCommandHttp recvBuf.dwSize=" << recvBuf.dwSize << ", recvBuf.dwData=" << dataRet);
- delete[] pData;
- return true;
- }
- else {
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "RFTypeABCommandHttp return [data] is null");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "RFTypeABCommandHttp [success] is false,");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "RFTypeABCommandHttp req fail,err=%s" << cRet.m_errMsg.c_str());
- return false;
- }
- }
- bool CardIssuerImpl::DevOpenExHttp(DWORD dwPort, DWORD dwBaudRate, BYTE btOpenType, const char* pDevSN, BYTE& btType)
- {
- LOG4VTM(INFO, "DevOpenExHttp dwPort=" << dwPort << " dwBaudRate=" << dwBaudRate << " btOpenType=" << btOpenType << " pDevSN=" << pDevSN);
- CommonReq cReq;
- CommonRet cRet;
- IHttpFunc* client;
- client = create_http(HttpsLogCallBack);
- Json::Value rootReq;
- Json::FastWriter writer;
- rootReq["ip"] = GetLocalIP();
- rootReq["entityName"] = ENTITY_NAME;
- rootReq["adapterInterName"] = "DevOpenEx";//适配器接口名
- cReq.m_url = getUrl();
- cReq.m_timeOut = 30;
- string jsonReq = writer.write(rootReq);
- cReq.m_reqStr = jsonReq;//请求参数
- bool ret = client->Post(cReq, cRet);
- if (ret) {
- Json::Reader reader;
- Json::Value rootRet;
- if (!reader.parse(cRet.m_retStr, rootRet, false))
- {
- LOG4VTM(INFO, "DevOpenExHttp parse resp is fail,url=" << cReq.m_url.c_str());
- return false;//失败
- }
- bool isSucc = rootRet["success"].asBool();
- if (isSucc) {
- //解析数据
- if (rootRet.isMember("data")) {
- bool isResult = rootRet["data"]["result"].asBool();
- if (isResult) {
- int btTypeRet = rootRet["data"]["btType"].asInt();
- btType = btTypeRet;
- return true;
- }
- else {
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "DevOpenExHttp return [data] is null");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "DevOpenExHttp [success] is false,");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "DevOpenExHttp req fail,err=%s" << cRet.m_errMsg.c_str());
- return false;
- }
- }
- bool CardIssuerImpl::TransferEnInitHttp(int& iStatus, BYTE*& Cr1, int& lenR1, BYTE*& Cr3, int& lenR3, BYTE*& dKey, int& lenKey)
- {
- LOG4VTM(INFO, "TransferEnInitHttp");
- CommonReq cReq;
- CommonRet cRet;
- IHttpFunc* client;
- client = create_http(HttpsLogCallBack);
- Json::Value rootReq;
- Json::FastWriter writer;
- rootReq["ip"] = GetLocalIP();
- rootReq["entityName"] = ENTITY_NAME;
- rootReq["adapterInterName"] = "TransferEnInit";//适配器接口名
- cReq.m_url = getUrl();
- cReq.m_timeOut = 30;
- string jsonReq = writer.write(rootReq);
- cReq.m_reqStr = jsonReq;//请求参数
- bool ret = client->Post(cReq, cRet);
- if (ret) {
- Json::Reader reader;
- Json::Value rootRet;
- if (!reader.parse(cRet.m_retStr, rootRet, false))
- {
- LOG4VTM(INFO, "TransferEnInitHttp parse resp is fail,url=" << cReq.m_url.c_str());
- return false;//失败
- }
- bool isSucc = rootRet["success"].asBool();
- if (isSucc) {
- //解析数据
- if (rootRet.isMember("data")) {
- bool isResult = rootRet["data"]["result"].asBool();
- if (isResult) {
- iStatus = rootRet["data"]["iStatus"].asInt();
- if (iStatus == 0) {
- int lenR1Ret = rootRet["data"]["lenR1"].asInt();
- lenR1 = lenR1Ret;
- int lenR3Ret = rootRet["data"]["lenR3"].asInt();
- lenR3 = lenR3Ret;
- int lenKeyRet = rootRet["data"]["lenKey"].asInt();
- lenKey = lenKeyRet;
- string Cr1Ret = rootRet["data"]["Cr1"].asString();
- string Cr3Ret = rootRet["data"]["Cr3"].asString();
- string dKeyRet = rootRet["data"]["dKey"].asString();
- //PBYTE pData = new BYTE[2048];
- //ZeroMemory(pData, 2048);
- //int dataLen = StrBuf2HexBuf(Cr1Ret.c_str(), &pData);
- //memcpy(Cr1, pData, dataLen);//赋值
- //ZeroMemory(pData, MAX_TRACK_SIZE);
- //dataLen = StrBuf2HexBuf(Cr3Ret.c_str(), &pData);
- //memcpy(Cr3, pData, dataLen);//赋值
- //ZeroMemory(pData, MAX_TRACK_SIZE);
- //dataLen = StrBuf2HexBuf(dKeyRet.c_str(), &pData);
- //memcpy(dKey, pData, dataLen);//赋值
- //delete[] pData;
- memcpy(Cr1, Cr1Ret.c_str(), lenR1Ret);//赋值
- memcpy(Cr3, Cr3Ret.c_str(), lenR3Ret);//赋值
- memcpy(dKey, dKeyRet.c_str(), lenKeyRet);//赋值
- LOG4VTM(INFO, "TransferEnInitHttp lenR1" << lenR1);
- LOG4VTM(INFO, "TransferEnInitHttp lenR3" << lenR3);
- LOG4VTM(INFO, "TransferEnInitHttp lenKey" << lenKey);
- LOG4VTM(INFO, "TransferEnInitHttp Cr1=" << sizeof(Cr1));
- LOG4VTM(INFO, "TransferEnInitHttp Cr3=" << sizeof(Cr3));
- LOG4VTM(INFO, "TransferEnInitHttp dKey=" << sizeof(dKey));
- return true;
- }
- else {
- return false;
- }
- }
- else {
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "TransferEnInitHttp return [data] is null");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "TransferEnInitHttp [success] is false,");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "TransferEnInitHttp req fail,err=%s" << cRet.m_errMsg.c_str());
- return false;
- }
- }
- bool CardIssuerImpl::SetR2Http(int& iStatus, BYTE* pCr2, int lenR2)
- {
- LOG4VTM(INFO, "SetR2Http pCr2Len=" << sizeof(pCr2) << ", lenR2=" << lenR2);
- if (commonSimpleHttp("SetR2")) {
- iStatus = 0;
- return true;
- }
- else {
- iStatus = 1;
- return false;
- }
- }
- bool CardIssuerImpl::SendWorkingKeyHttp(const char* pWorkingKey)
- {
- LOG4VTM(INFO, "SendWorkingKeyHttp pWorkingKey=" << pWorkingKey);
- return commonSimpleHttp("SendWorkingKey");
- }
- bool CardIssuerImpl::MoveCardToSlotHttp(int slot)
- {
- LOG4VTM(INFO, "MoveCardToSlotHttp slot=" << slot);
- return commonSimpleHttp("MoveCardToSlot");
- }
- bool CardIssuerImpl::MoveCardFromSlotHttp(int slot)
- {
- LOG4VTM(INFO, "MoveCardFromSlotHttp slot=" << slot);
- return commonSimpleHttp("MoveCardFromSlot");
- }
- bool CardIssuerImpl::ReadAccountHttp(CardNo& cardNo)
- {
- LOG4VTM(INFO, "ReadAccountHttp");
- CommonReq cReq;
- CommonRet cRet;
- IHttpFunc* client;
- client = create_http(HttpsLogCallBack);
- Json::Value rootReq;
- Json::FastWriter writer;
- rootReq["ip"] = GetLocalIP();
- rootReq["entityName"] = ENTITY_NAME;
- rootReq["adapterInterName"] = "ReadAccount";//适配器接口名
- cReq.m_url = getUrl();
- cReq.m_timeOut = 30;
- string jsonReq = writer.write(rootReq);
- cReq.m_reqStr = jsonReq;//请求参数
- bool ret = client->Post(cReq, cRet);
- if (ret) {
- Json::Reader reader;
- Json::Value rootRet;
- if (!reader.parse(cRet.m_retStr, rootRet, false))
- {
- LOG4VTM(INFO, "ReadAccountHttp parse resp is fail,url=" << cReq.m_url.c_str());
- return false;//失败
- }
- bool isSucc = rootRet["success"].asBool();
- if (isSucc) {
- //解析数据
- if (rootRet.isMember("data")) {
- bool isResult = rootRet["data"]["result"].asBool();
- if (isResult) {
- int dwSizeRet = rootRet["data"]["dwSize"].asInt();
- cardNo.dwSize = dwSizeRet;
- int dwTrack2SizeRet = rootRet["data"]["dwTrack2Size"].asInt();
- cardNo.dwTrack2Size = dwTrack2SizeRet;
- int dwTrack3SizeRet = rootRet["data"]["dwTrack3Size"].asInt();
- cardNo.dwTrack3Size = dwTrack3SizeRet;
- string accountRet = rootRet["data"]["account"].asString();
- string track2Ret = rootRet["data"]["track2"].asString();
- string track3Ret = rootRet["data"]["track3"].asString();
- //LOG4VTM(INFO, "ReadAccountHttp cardNo.dwSize=" << cardNo.dwSize);
- //LOG4VTM(INFO, "ReadAccountHttp cardNo.dwTrack2Size=" << cardNo.dwTrack2Size);
- //LOG4VTM(INFO, "ReadAccountHttp cardNo.dwTrack3Size=" << cardNo.dwTrack3Size);
- //LOG4VTM(INFO, "ReadAccountHttp cardNo.account=" << accountRet.c_str());
- //LOG4VTM(INFO, "ReadAccountHttp cardNo.track2=" << track2Ret.c_str());
- //LOG4VTM(INFO, "ReadAccountHttp cardNo.track3=" << track3Ret.c_str());
- //PBYTE pData = new BYTE[MAX_MAG_TRACK_SIZE];
- //ZeroMemory(pData, MAX_MAG_TRACK_SIZE);
- //int dataLen = StrBuf2HexBuf(accountRet.c_str(), &pData);
- //LOG4VTM(INFO, "ReadAccountHttp cardNo.account=" << pData);
- //memcpy(cardNo.account, pData, dataLen);//赋值
- //delete[] pData;
- //pData = new BYTE[MAX_MAG_TRACK_SIZE];
- //ZeroMemory(pData, MAX_MAG_TRACK_SIZE);
- //dataLen = StrBuf2HexBuf(track2Ret.c_str(), &pData);
- //LOG4VTM(INFO, "ReadAccountHttp cardNo.track2=" << pData);
- //memcpy(cardNo.track2, pData, dataLen);//赋值
- //delete[] pData;
- //pData = new BYTE[MAX_MAG_TRACK_SIZE];
- //ZeroMemory(pData, MAX_MAG_TRACK_SIZE);
- //dataLen = StrBuf2HexBuf(track3Ret.c_str(), &pData);
- //LOG4VTM(INFO, "ReadAccountHttp cardNo.track3=" << pData);
- //memcpy(cardNo.track3, pData, dataLen);//赋值
- //delete[] pData;
- memcpy(cardNo.account, accountRet.c_str(), cardNo.dwSize);//赋值
- memcpy(cardNo.track2, track2Ret.c_str(), cardNo.dwTrack2Size);//赋值
- memcpy(cardNo.track3, track3Ret.c_str(), cardNo.dwTrack3Size);//赋值
- LOG4VTM(INFO, "ReadAccountHttp cardNo.dwSize=" << cardNo.dwSize);
- LOG4VTM(INFO, "Before dwTrack2Size");
- LOG4VTM(INFO, "ReadAccountHttp cardNo.dwTrack2Size=" << cardNo.dwTrack2Size);
- LOG4VTM(INFO, "After dwTrack2Size");
- LOG4VTM(INFO, "ReadAccountHttp cardNo.dwTrack3Size=" << cardNo.dwTrack3Size);
- LOG4VTM(INFO, "ReadAccountHttp cardNo.account=" << strlen(cardNo.account));
- LOG4VTM(INFO, "ReadAccountHttp cardNo.track2=" << strlen(cardNo.track2));
- LOG4VTM(INFO, "ReadAccountHttp cardNo.track3=" << strlen(cardNo.track3));
- return true;
- }
- else {
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "ReadAccountHttp return [data] is null");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "ReadAccountHttp [success] is false,");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "ReadAccountHttp req fail,err=%s" << cRet.m_errMsg.c_str());
- return false;
- }
- }
- bool CardIssuerImpl::GetSlotSumHttp(int& sum)
- {
- LOG4VTM(INFO, "GetSlotSumHttp");
- CommonReq cReq;
- CommonRet cRet;
- IHttpFunc* client;
- client = create_http(HttpsLogCallBack);
- Json::Value rootReq;
- Json::FastWriter writer;
- rootReq["ip"] = GetLocalIP();
- rootReq["entityName"] = ENTITY_NAME;
- rootReq["adapterInterName"] = "GetSlotSum";//适配器接口名
- cReq.m_url = getUrl();
- cReq.m_timeOut = 30;
- string jsonReq = writer.write(rootReq);
- cReq.m_reqStr = jsonReq;//请求参数
- bool ret = client->Post(cReq, cRet);
- if (ret) {
- Json::Reader reader;
- Json::Value rootRet;
- if (!reader.parse(cRet.m_retStr, rootRet, false))
- {
- LOG4VTM(INFO, "GetSlotSumHttp parse resp is fail,url=" << cReq.m_url.c_str());
- return false;//失败
- }
- bool isSucc = rootRet["success"].asBool();
- if (isSucc) {
- //解析数据
- if (rootRet.isMember("data")) {
- bool isResult = rootRet["data"]["result"].asBool();
- if (isResult) {
- int sumRet = rootRet["data"]["sum"].asInt();
- sum = sumRet;
- return true;
- }
- else {
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "GetSlotSumHttp return [data] is null");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "GetSlotSumHttp [success] is false,");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "GetSlotSumHttp req fail,err=%s" << cRet.m_errMsg.c_str());
- return false;
- }
- }
- bool CardIssuerImpl::QuerySlotsStatusHttp(SlotStatus& slots, const int slot, bool bFull /*= false*/)
- {
- LOG4VTM(INFO, "QuerySlotsStatusHttp slot=" << slot << " bFull=" << bFull);
- CommonReq cReq;
- CommonRet cRet;
- IHttpFunc* client;
- client = create_http(HttpsLogCallBack);
- Json::Value rootReq;
- Json::FastWriter writer;
- rootReq["ip"] = GetLocalIP();
- rootReq["entityName"] = ENTITY_NAME;
- rootReq["adapterInterName"] = "QuerySlotsStatus";//适配器接口名
- //rootReq["slot"] = slot;
- //rootReq["bFull"] = bFull ? 1 : 0;//转换成0和1表示
- cReq.m_url = getUrl();
- cReq.m_timeOut = 30;
- string jsonReq = writer.write(rootReq);
- cReq.m_reqStr = jsonReq;//请求参数
- bool ret = client->Post(cReq, cRet);
- if (ret) {
- Json::Reader reader;
- Json::Value rootRet;
- if (!reader.parse(cRet.m_retStr, rootRet, false))
- {
- LOG4VTM(INFO, "QuerySlotsStatusHttp parse resp is fail,url=" << cReq.m_url.c_str());
- return false;//失败
- }
- bool isSucc = rootRet["success"].asBool();
- if (isSucc) {
- //解析数据
- if (rootRet.isMember("data")) {
- bool isResult = rootRet["data"]["result"].asBool();
- if (isResult) {
- int sumRet = rootRet["data"]["dwSize"].asInt();
- slots.dwSize = sumRet;
- for (int i = 0; i < sumRet; i++) {
- slots.status[i] = rootRet["data"]["status"][i].asInt();
- }
- return true;
- }
- else {
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "QuerySlotsStatusHttp return [data] is null");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "QuerySlotsStatusHttp [success] is false,");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, "QuerySlotsStatusHttp req fail,err=%s" << cRet.m_errMsg.c_str());
- return false;
- }
- }
- bool CardIssuerImpl::PrintCardFaceRightNowHttp(const KakuPrintInfo printInfo)
- {
- LOG4VTM(INFO, "PrintCardFaceRightNowHttp printInfo.formPath=" << printInfo.formPath << " printInfo.fields=" << printInfo.fields);
- return commonSimpleHttp("PrintCardFaceRightNow");
- }
- string CardIssuerImpl::getUrl()
- {
- string urlStr = iniRead.ReadString("server", "url", "");
- if (urlStr.empty()) {
- LOG4VTM(INFO, "url is empty, use default url");
- return "http://localhost:8080/avs/imitate/simulateDataN";
- }
- else {
- return urlStr;
- }
- }
- bool CardIssuerImpl::commonSimpleHttp(string adapterInterName)
- {
- CommonReq cReq;
- CommonRet cRet;
- IHttpFunc* client;
- client = create_http(HttpsLogCallBack);
- Json::Value rootReq;
- Json::FastWriter writer;
- rootReq["ip"] = GetLocalIP();
- rootReq["entityName"] = ENTITY_NAME;
- rootReq["adapterInterName"] = adapterInterName;//适配器接口名
- string strErrPrefix = adapterInterName + "http";
- cReq.m_url = getUrl();
- cReq.m_timeOut = 30;
- string jsonReq = writer.write(rootReq);
- cReq.m_reqStr = jsonReq;//请求参数
- bool ret = client->Post(cReq, cRet);
- if (ret) {
- Json::Reader reader;
- Json::Value rootRet;
- if (!reader.parse(cRet.m_retStr, rootRet, false))
- {
- LOG4VTM(INFO, strErrPrefix << " parse resp is fail,url=" << cReq.m_url.c_str());
- return false;//失败
- }
- bool isSucc = rootRet["success"].asBool();
- if (isSucc) {
- //解析数据
- if (rootRet.isMember("data")) {
- bool isResult = rootRet["data"]["result"].asBool();
- if (isResult) {
- return true;
- }
- else {
- return false;
- }
- }
- else {
- LOG4VTM(INFO, strErrPrefix << " return [data] is null");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, strErrPrefix << " [success] is false,");
- return false;
- }
- }
- else {
- LOG4VTM(INFO, strErrPrefix << " req fail,err=%s" << cRet.m_errMsg.c_str());
- return false;
- }
- }
|