cisproc.cpp
来自「液晶电视完整代码可实现人机界面」· C++ 代码 · 共 2,145 行 · 第 1/5 页
CPP
2,145 行
{ filelog( ERRLOG, "Parser file content failed\n"); return FALSE; } //得到委托日期 if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":30A:", strCis->precativedate)) { strcpy( RetMsg, "Can't find TAG:[:30A:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":0BC:", strCis->businessno)) { strcpy( RetMsg, "Can't find TAG:[:0BC:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":CC5:", strCis->recvbankno)) { strcpy( RetMsg, "Can't find TAG:[:CC5:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":59C:", strCis->recvaccounts)) { strcpy( RetMsg, "Can't find TAG:[:59C:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":59A:", strCis->recvname)) { strcpy( RetMsg, "Can't find TAG:[:59A:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D21:", strCis->paybankno)) { strcpy( RetMsg, "Can't find TAG:[:D21:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D23:", strCis->payaccounts)) { strcpy( RetMsg, "Can't find TAG:[:D23:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D22:", strCis->payname)) { strcpy( RetMsg, "Can't find TAG:[:D22:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":32A:", strCis->moneysum)) { strcpy( RetMsg, "Can't find TAG:[:32A:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D32:", strCis->billtype)) { strcpy( RetMsg, "Can't find TAG:[:D32:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D01:", strCis->billnum)) { strcpy( RetMsg, "Can't find TAG:[:D01:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D35:", strCis->outbilldate)) { strcpy( RetMsg, "Can't find TAG:[:D35:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D36:", strCis->promptpaydate)) { strcpy( RetMsg, "Can't find TAG:[:D36:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D51:", strCis->bankposignature)) { strcpy( RetMsg, "Can't find TAG:[:D51:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":33H:", strCis->outbillmoney)) { strcpy( RetMsg, "Can't find TAG:[:33H:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D61:", strCis->potermdate)) { strcpy( RetMsg, "Can't find TAG:[:D61:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D62:", strCis->acceptprotocol)) { strcpy( RetMsg, "Can't find TAG:[:D62:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D63:", strCis->businessbargain)) { strcpy( RetMsg, "Can't find TAG:[:D63:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D64:", strCis->acceptdate)) { strcpy( RetMsg, "Can't find TAG:[:D64:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D65:", strCis->acceptbank)) { strcpy( RetMsg, "Can't find TAG:[:D65:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D66:", strCis->acceptname)) { strcpy( RetMsg, "Can't find TAG:[:D66:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D37:", strCis->purpose)) { strcpy( RetMsg, "Can't find TAG:[:D37:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D38:", strCis->postscript)) { strcpy( RetMsg, "Can't find TAG:[:D38:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D41:", strCis->authornum)) { strcpy( RetMsg, "Can't find TAG:[:D41:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D42:", strCis->authorlist)) { strcpy( RetMsg, "Can't find TAG:[:D42:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D34:", strCis->sysacceptdate)) { strcpy( RetMsg, "Can't find TAG:[:D34:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":BS6:", strCis->returnterm)) { strcpy( RetMsg, "Can't find TAG:[:BS6:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":BS4:", strCis->reissueflag)) { strcpy( strCis->reissueflag,"0"); strcpy( RetMsg, "Can't find TAG:[:BS4:]!\n" );// return FALSE; } //modify by limh 0525 增加了补发标志默认值 begin STRTRIM( strCis->reissueflag ,' '); if( strlen( strCis->reissueflag) == 0) strcpy(strCis->reissueflag , "0"); //modify by limh 0525 增加了补发标志默认值 end if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":DA0:", strCis->checksignature)) { strcpy( RetMsg, "Can't find TAG:[:DA0:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":DA9:", strCis->signature)) { strcpy( RetMsg, "Can't find TAG:[:DA9:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":72E:", strCis->frontpicimage)) { strcpy( RetMsg, "Can't find TAG:[:72E:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":72F:", strCis->backpicimage)) { strcpy( RetMsg, "Can't find TAG:[:72F:]!\n" ); //return FALSE; } //将正面图像保存在文件中 ret = SaveCisPicDataToFile(FrontPicFilename,strCis->frontpicimage); if( ret<=0 ) { filelog(ERRLOG,"写入文件失败[%s]",FrontPicFilename); return FALSE; } //将反面图像保存在文件中 ret = SaveCisPicDataToFile(BackPicFilename,strCis->backpicimage); if( ret<=0 ) { filelog(ERRLOG,"写入文件失败[%s]",BackPicFilename); return FALSE; } /*补充其它信息*/ strncpy( strCis->organizeno, ZERO, sizeof(strCis->organizeno)-1 ); strncpy( strCis->inputuserno,ZERO, sizeof(strCis->inputuserno)-1 ); strncpy( strCis->inputtime, ZERO, sizeof(strCis->inputtime)-1 ); strncpy( strCis->checkuserno,ZERO, sizeof(strCis->checkuserno)-1 ); strncpy( strCis->checktime, ZERO, sizeof(strCis->checktime)-1 ); strncpy( strCis->modifytime, ZERO, sizeof(strCis->modifytime)-1 ); strncpy( strCis->outuserno, ZERO, sizeof(strCis->outuserno)-1 ); strncpy( strCis->outtime, ZERO, sizeof(strCis->outtime)-1 ); char Body[8096]; char *Begin = NULL; char *End = NULL; char Tmp[4096],Zero29[30],SendMbData[4096]; memset( Body , 0 ,sizeof( Body )); memset( Tmp , 0 , sizeof( Tmp )); memset( Zero29 , 0 ,sizeof( Zero29 )); memset( SendMbData , 0 ,sizeof( SendMbData )); //处理发送到行内包begin Begin = strstr(cmsgbuf , ":DA9:"); if( Begin != NULL ) { memcpy( SendMbData , cmsgbuf, Begin - &cmsgbuf[0]); strcat( SendMbData, ":DA9::72E:"); strcat( SendMbData, Zero29); strcat( SendMbData , ":72F:"); strcat( SendMbData, Zero29); strcat( SendMbData , "}{C }"); } Begin = NULL; //处理发送到行内包end Begin = strstr(cmsgbuf,"{3:"); End = strstr( Begin , ":72E:"); if( End != NULL ) { memcpy( Tmp , Begin+3 , End - Begin -3 ); } printf("101Tmp = [%s]\n", Tmp ); sprintf( Body , "%s:72F:%sBACK:72E:%sFRONT}",Tmp ,filename,filename); printf("101Body = [%s]\n", Body ); //modify by limh 0603 接收来报机构号为提入行 begin strcpy( strCis->organizeno , strCis->paybankno); //modify by limh 0603 接收来报机构号为提入行 begin char WorkDate[9]; memset( WorkDate , 0 , sizeof(WorkDate)); sCis.GetWorkDate(WorkDate); strcpy( Table, "cis101" ); sprintf( sSqlCmd, "INSERT INTO %s VALUES('%s','%s','%s','%s','%s','%s'," "'%s','%s','%s','%s','%s','%s', '%s','%s','%s','%s', %d,'%s','%s','%s'," "'%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s'," "'%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s'," "'%s','%s')", Table, strCis->organizeno, strCis->inputuserno, strCis->inputtime, strCis->checkuserno, strCis->checktime, strCis->modifytime, strCis->outuserno, WorkDate,//strCis->outtime, "20",SPACE,SPACE,"00",LFLAG,SPACE,SPACE, strCis->precativedate, atoi(strCis->businessno), strCis->recvbankno, strCis->recvaccounts, strCis->recvname, strCis->paybankno, strCis->payaccounts, strCis->payname, strCis->moneysum, strCis->billtype, strCis->billnum, strCis->outbilldate, strCis->promptpaydate, strCis->bankposignature, strCis->outbillmoney, strCis->potermdate, strCis->acceptprotocol, strCis->businessbargain, strCis->acceptdate, strCis->acceptbank, strCis->acceptname, strCis->purpose, strCis->postscript, strCis->authornum, strCis->authorlist, strCis->sysacceptdate, strCis->returnterm, strCis->reissueflag, strCis->checksignature, strCis->signature, FrontPicFilename,BackPicFilename, SPACE, SPACE, Body ); filelog("Sql.log","[%s]\n", sSqlCmd ); sCis.BeginTrans(); //保存入库 ret = sCis.SaveCisData ( Table, sSqlCmd, RetMsg ); if( ret <= 0 ) { printf("保存报文失败!\n"); filelog(CISPROLOG, "保存CIS101报文失败!\n"); sCis.RollbackTrans(); return FALSE; } /////////////发送行内处理///////////////// //modify by limh 0520 发送队列表日期取应用系统日期 char *pDataid = NULL; memset( sSqlCmd , 0 , sizeof( sSqlCmd )); memset( Table , 0 , sizeof( Table )); //modify by limh 0520 暂存临时表,等待核验结果发送行内 //主键:委托日期+发起行+支付交易序号 strcpy( Table, "sendmb_data_tmp" ); pDataid = sCis.getSerialNo('3'); sprintf(sSqlCmd,"INSERT INTO %s VALUES(%d,'%s','%s',%d,'%s','%s','%s','%s')", Table,atoi(pDataid),strCis->precativedate,strCis->recvbankno,atoi(strCis->businessno),"9","CIS101",SendMbData,""); ret = sCis.SaveCisData ( Table, sSqlCmd, RetMsg ); if( ret <= 0 ) { printf("保存报文失败!\n %s",sSqlCmd); filelog(CISPROLOG, "保存CIS100报文失败!\n"); sCis.RollbackTrans(); return FALSE; }//[改]根据配置进行发送行内处理 ret = SendtoMb(); //视情况进行发送行内操作 sCis.CommitTrans(); return TRUE;}//解析CIS201业务计费清单报文int Parse201( TCnapsTagMML *pTagMML, RECVDATA *pRecvData, char *RetMsg ){ int ret; char Table[20]; char sSqlCmd[1024*10]; CIS201 *strCis = NULL; CIS201 TmpCis; strCis = &TmpCis; memset( Table, 0, sizeof(Table) ); memset( sSqlCmd, 0, sizeof(sSqlCmd) ); memset( &TmpCis, 0, sizeof(TmpCis) ); pTagMML->mmlInfo = pRecvData->msgcontent; pTagMML->mmlInfoLen = strlen( pRecvData->msgcontent ); if(FALSE == pTagMML->parserMmlcmd()) { filelog( CISPROLOG, "Parser file content failed\n"); return FALSE; } //得到委托日期 if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":30A:", strCis->precativedate)) { strcpy( RetMsg, "Can't find TAG:[:30A:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":C30:", strCis->sendnodenum)) { strcpy( RetMsg, "Can't find TAG:[:C30:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":C37:", strCis->recvcode)) { strcpy( RetMsg, "Can't find TAG:[:C37:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":B21:", strCis->billmonth)) { strcpy( RetMsg, "Can't find TAG:[:B21:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":B22:", strCis->billstartdate)) { strcpy( RetMsg, "Can't find TAG:[:B22:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":B23:", strCis->billenddate)) { strcpy( RetMsg, "Can't find TAG:[:B23:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":DB7:", strCis->billsummoney)) { strcpy( RetMsg, "Can't find TAG:[:DB7:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":DB8:", strCis->subbillrate)) { strcpy( RetMsg, "Can't find TAG:[:DB8:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":DB9:", strCis->totaltrade)) { strcpy( RetMsg, "Can't find TAG:[:DB9:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":DC1:", strCis->totalbillrate)) { strcpy( RetMsg, "Can't find TAG:[:DC1:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":DC2:", strCis->billlistnum)) { strcpy( RetMsg, "Can't find TAG:[:DC2:]!\n" ); return FALSE; } if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":B8R:", strCis->billlist)) { strcpy( RetMsg, "Can't find TAG:[:B8R:]!\n" ); return FALSE; } strcpy( Table, "cis201" ); sprintf( sSqlCmd, "INSERT INTO %s VALUES('%s','%s','%s','%s','%s','%s','%s','%s',%d,'%s',%d,'%s','%s')", Table, strCis->precativedate, strCis->sendnodenum, strCis->recvcode, strCis->billmonth, strCis->billstartdate,
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?