12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553 |
- // 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 "CardIssuerStore"
- #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)
- {
- strcpy(devCategory.szModel, "szModel");
- strcpy(devCategory.szType, "szType");
- strcpy(devCategory.szVendor, "szVendor=cmbszSimulator");
- return Error_Succeed;
- }
- ErrorCodeEnum CardIssuerImpl::Reset()
- {
- return Error_Succeed;
- }
- ErrorCodeEnum CardIssuerImpl::DevClose()
- {
- return Error_Succeed;
- }
- ErrorCodeEnum CardIssuerImpl::GetLastErr(DevErrorInfo& devErrInfo)
- {
- static int times = 0;
- char szMessage[1024];
- sprintf(szMessage, "这是第 %d 条错误信息", ++times);
- strcpy(devErrInfo.szErrMsg, szMessage);
- devErrInfo.dwErrMsgLen = strlen(szMessage);
- 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::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;
- }
- }
|