📄 cispub.cpp
字号:
return TRUE; } // 根据参与行号找出其对应的其它信息BOOL BepsPub::FindBankInfo(BankInfo *struBankInfo,char *sResDesc){ int nResCode; char sSqlCmd[512]; memset(sSqlCmd, 0, sizeof(sSqlCmd)); //根据参与行号找出其对应的参与行名称/清算行号/ if ( strlen(struBankInfo->sBankCode) != 12 ) { strcpy(sResDesc,"非法的行号数据!"); return FALSE; } //支付系统行号 sprintf(sSqlCmd, "SELECT nbkname,sabkcode,bnkcity FROM MBFEWKDB..mbfenetbank WHERE nbkcode = '%s' ", struBankInfo->sBankCode); nResCode = clsSybCommand.GetLastRecord(sSqlCmd, struBankInfo->sBankName,NTBSTRINGBIND, struBankInfo->sSapBkCode,NTBSTRINGBIND, struBankInfo->sNBCityCode,NTBSTRINGBIND); if ( nResCode <= 0 || IsEmptyStr(struBankInfo->sSapBkCode) ) { strcpy(sResDesc,"不存在的参与行号"); return FALSE; } memset(sSqlCmd, '\0', sizeof(sSqlCmd)); //根据清算行号找出其对应的清算行名称/CCPC号码 sprintf(sSqlCmd, "SELECT sabkname,blccpc,bnkcity FROM MBFEWKDB..mbfesabk WHERE sabkcode = '%s' ", struBankInfo->sSapBkCode); nResCode = clsSybCommand.GetLastRecord(sSqlCmd , struBankInfo->sSapBkName,NTBSTRINGBIND , struBankInfo->sCcpcCode,NTBSTRINGBIND , struBankInfo->sSBCityCode,NTBSTRINGBIND); if ( nResCode <= 0 || IsEmptyStr(struBankInfo->sCcpcCode) ) { strcpy(sResDesc,"不存在的参与行号对应的清算行号"); return FALSE; } strcpy(sResDesc,"已找出参与号对应的其它信息请确定!"); return TRUE; } //获取业务类型对应关系BOOL BepsPub::GetTrxsType(char *CisTrType,char *CisReTrType,int flag){ int nResCode; char sSqlCmd[512]; char sResDesc[255]; memset(sSqlCmd, 0, sizeof(sSqlCmd)); memset(sResDesc, 0, sizeof(sResDesc)); //获取业务类型对应关系 if( flag == MBFETOCIS ) { sprintf(sSqlCmd,"SELECT CisTrType FROM CISTRTYPE WHERE CisReTrType='%s'", CisReTrType); nResCode = clsSybCommand.GetLastRecord(sSqlCmd,CisTrType,NTBSTRINGBIND); if ( nResCode <= 0 ) { sprintf(sResDesc,"获取业务类型对应关系[%s]失败!",CisReTrType); return FALSE; } }else { sprintf(sSqlCmd,"SELECT CisReTrType FROM CISTRTYPE WHERE CisTrType='%s'", CisTrType); nResCode = clsSybCommand.GetLastRecord(sSqlCmd,CisReTrType,NTBSTRINGBIND); if ( nResCode <= 0 ) { sprintf(sResDesc,"获取业务类型对应关系[%s]失败!",CisTrType); return FALSE; } } return TRUE;}//获取代理行机构号BOOL BepsPub::GetOprBankNo(char *BankNo,char *BankNo_D){ int nResCode; char sSqlCmd[512]; char sResDesc[255]; memset(sSqlCmd, 0, sizeof(sSqlCmd)); memset(sResDesc, 0, sizeof(sResDesc)); //获取代理行机构号 sprintf(sSqlCmd,"SELECT BankNo_D FROM OPRBANKNO WHERE BankNo='%s'", BankNo); nResCode = clsSybCommand.GetLastRecord(sSqlCmd,BankNo_D,NTBSTRINGBIND); if ( nResCode <= 0 ) { sprintf(sResDesc,"获取代理行机构[%s]失败!",BankNo_D); return FALSE; } return TRUE;} //接收柜台服务程序BOOL BepsPub::CisServer(char *TrNo,char *RecvBuf,char *Result,char *sResDesc){ BOOL bret; memset(sResDesc, 0, MAX_MBFE_BUFFER); switch(atoi(TrNo+3)) { //提出录入,电子信息+图象 case 100: /*if(strlen(RecvBuf)!=1420) { printf("CIS100 message invalid long\n"); filelog(CIS_INTER_MB, "CIS100 message invalid long"); return FALSE; }*/ RecvBuf+=6; bret = TrCIS100(RecvBuf, Result, sResDesc); break; case 101: /*if(strlen(RecvBuf)!=1946) { printf("CIS101 message invalid long\n"); filelog(CIS_INTER_MB, "CIS101 message invalid long"); return FALSE; }*/ RecvBuf+=6; bret = TrCIS101(RecvBuf, Result, sResDesc); break; case 309: RecvBuf+=6; bret = TrCIS309(RecvBuf, Result, sResDesc); break; case 310: RecvBuf+=6; bret = TrCIS310(RecvBuf, Result, sResDesc); break; case 602: RecvBuf+=6; bret = TrCIS602(RecvBuf, Result, sResDesc); break; default: sprintf(sResDesc , "非法交易码[%s]\n", TrNo); filelog(CIS_INTER_MB, "非法交易码[%s]\n", TrNo); return FALSE; } return bret;}/****************************************************************************函数说明:从收到的信息中分离出业务要素信息*输入参数:char *trxNo :接收信息中的交易号 char *recvBuf:接收到的行内的请求信息*输出参数:MainInfo *mainInfo:保存行内请求信息中的业务要素* * *返回值 :TRUE :处理成功* FALSE:处理失败*作 者:zhanglongping *日 期: 2006-09-30****************************************************************************/BOOL BepsPub::InitUserStatus(char *clientIp){ filelog(CIS_INTER_MB, "Enter BepsPub::InitUserStatus"); if(strlen(m_UserNo)<3 || strlen(m_UserName)<3) { filelog(CIS_INTER_MB, "This instance isn't login"); return TRUE; } char sqlCmd[1024]; char db_ip[16]; memset(db_ip, 0, 16); memcpy(db_ip, clientIp, strlen(clientIp)); memset(sqlCmd, 0, 0124); sprintf(sqlCmd, "update CISUSER set UserStatus='0' where IpAddress='%s'", db_ip); BeginTrans(); if(0>=clsSybCommand.Update(sqlCmd)) { filelog(CIS_INTER_MB, "Database operator return[%d][%s][%s]" " at file=%s in line=%d\n", sqlca.sqlcode, sqlca.sqlerrtext,sqlCmd, __FILE__, __LINE__); RollbackTrans(); return FALSE; } CommitTrans(); filelog(CIS_INTER_MB, "Enter BepsPub::InitUserStatus"); return TRUE;}/****************************************************************************函数说明:从收到的信息中分离出业务要素信息*输入参数:char *trxNo :接收信息中的交易号 char *recvBuf:接收到的行内的请求信息*输出参数:MainInfo *mainInfo:保存行内请求信息中的业务要素* * *返回值 :TRUE :处理成功* FALSE:处理失败*作 者:zhanglongping *日 期: 2006-09-30****************************************************************************/BOOL BepsPub::PreserRevcBankInfo(char *RecvBuf, char* RecvAcc, char* RecvName, char* strSumMoney, char* strTicketNo, char* strPicName, char* SendAcc, char* SendName){ filelog(CIS_INTER_MB, "Enter PreserRevcBankInfo"); if(NULL == RecvBuf || NULL == RecvAcc || NULL == RecvName || NULL ==strSumMoney || NULL == strTicketNo || NULL == strPicName || NULL ==SendAcc || NULL == SendName) { filelog(CIS_INTER_MB, "Error:parameter invalid in file=%s at line=%d\n", __FILE__, __LINE__); return FALSE; } int len = 0; char *strFind=NULL; char *strFindEnd=NULL; char *recvAccStart=NULL; char *recvNameStart=NULL; char *sumMoneyStart=NULL; char *picNameStart=NULL; char *sendAccStart=NULL; char *sendNameStart=NULL; char *ticketNoStart=NULL; //filelog(CIS_INTER_MB, "RecvBuf=[%d][%s]", strlen(RecvBuf), RecvBuf); //分析收款行账号 if(NULL!=(strFind=strstr(RecvBuf, ":59C:"))) { sendAccStart=strFind+5; } else { filelog(CIS_INTER_MB, "RevcBuf is not :59C>>sendBankAcc"); return FALSE; } strFind+=5; if(NULL!=(strFindEnd=strchr(strFind, ':'))) { len = strFindEnd-sendAccStart; memcpy(SendAcc, sendAccStart, len); } else { filelog(CIS_INTER_MB, "Tag :59C: invalid"); return FALSE; } strFind=NULL; strFindEnd=NULL; //分析收款人名称 if(NULL!=(strFind=strstr(RecvBuf, ":59A:"))) { sendNameStart=strFind+5; } else { filelog(CIS_INTER_MB, "RevcBuf is not :59A>>sendBankName"); return FALSE; } strFind+=5; if(NULL!=(strFindEnd=strchr(strFind, ':'))) { len = strFindEnd-sendNameStart; memcpy(SendName, sendNameStart, len); } else { filelog(CIS_INTER_MB, "Tag :59A: invalid"); return FALSE; } strFind=NULL; strFindEnd=NULL; //分析付款行账号 if(NULL!=(strFind=strstr(RecvBuf, ":D23:"))) { recvAccStart=strFind+5; } else { filelog(CIS_INTER_MB, "RevcBuf is not :D23>>recvAcc"); return FALSE; } strFind+=5; if(NULL!=(strFindEnd=strchr(strFind, ':'))) { len = strFindEnd-recvAccStart; memcpy(RecvAcc, recvAccStart, len); } else { filelog(CIS_INTER_MB, "Tag :D23: invalid"); return FALSE; } strFind=NULL; strFindEnd=NULL; //分析付款行名称 if(NULL!=(strFind=strstr(RecvBuf, ":D22:"))) { recvNameStart=strFind+5; } else { filelog(CIS_INTER_MB, "RevcBuf is not :D22>>recvName"); return FALSE; } strFind+=5; if(NULL!=(strFindEnd=strchr(strFind, ':'))) { len = strFindEnd-recvNameStart; memcpy(RecvName, recvNameStart, len); } else { filelog(CIS_INTER_MB, "Tag :D22: invalid"); return FALSE; } strFind=NULL; strFindEnd=NULL; //分析票据金额 if(NULL!=(strFind=strstr(RecvBuf, ":32A:"))) { sumMoneyStart = strFind+5; } else { filelog(CIS_INTER_MB, "RecvBuf is not :32A>>sumMoney"); return FALSE; } strFind+=5; if(NULL!=(strFindEnd=strchr(strFind, ':'))) { len = strFindEnd-sumMoneyStart; memcpy(strSumMoney, sumMoneyStart+3, len-3);//去掉RMB字符 } else { filelog(CIS_INTER_MB, "Tag :32A: invalid"); return FALSE; } strFind=NULL; strFindEnd=NULL; //分析支票号码 if(NULL!=(strFind=strstr(RecvBuf, ":D01:"))) { ticketNoStart = strFind+5; } else { filelog(CIS_INTER_MB, "RecvBuf is not :D01>>ticketNo"); return FALSE; } strFind+=5; if(NULL!=(strFindEnd=strchr(strFind, ':'))) { len = strFindEnd-ticketNoStart; memcpy(strTicketNo, ticketNoStart, len); } else { filelog(CIS_INTER_MB, "Tag :D01: invalid"); return FALSE; } strFind=NULL; strFindEnd=NULL; //分析支票正面文件名 if(NULL!=(strFind=strstr(RecvBuf, ":72E:"))) { picNameStart = strFind+5; } else { filelog(CIS_INTER_MB, "RecvBuf is not :72E>>picFrontName"); return FALSE; } strFind+=5; if(NULL!=(strFindEnd=strchr(strFind, ':'))) { len = strFindEnd-picNameStart; memcpy(strPicName, picNameStart, len); } else { filelog(CIS_INTER_MB, "Tag :72E: invalid"); return FALSE; } strFind=NULL; strFindEnd=NULL; filelog(CIS_INTER_MB, "recvBankAcc=[%d][%s] recvBankName=[%d][%s]", strlen(RecvAcc), RecvAcc, strlen(RecvName), RecvName); filelog(CIS_INTER_MB, "sumMoeny=[%d][%s] ticketNo=[%d][%s]", strlen(strSumMoney), strSumMoney, strlen(strTicketNo), strTicketNo); filelog(CIS_INTER_MB, "sendBankAcc=[%d][%s] sendBankName=[%d][%s]", strlen(SendAcc), SendAcc, strlen(SendName), SendName); filelog(CIS_INTER_MB, "fronPicName=[%d][%s]", strlen(strPicName), strPicName); filelog(CIS_INTER_MB, "Exit PreserRevcBankInfo"); return TRUE;}/****************************************************************************函数说明:从收到的信息中分离出业务要素信息*输入参数:char *trxNo :接收信息中的交易号 char *recvBuf:接收到的行内的请求信息*输出参数:MainInfo *mainInfo:保存行内请求信息中的业务要素* * *返回值 :TRUE :处理成功* FALSE:处理失败*作 者:zhanglongping *日 期: 2006-09-30****************************************************************************/BOOL BepsPub::GetMainInfo(char *recvBuf, MainInfo *mainInfo){ filelog(CIS_INTER_MB, "Enter BepsPub::GetMainInfo\n"); if((NULL == recvBuf) || (NULL == mainInfo)) { filelog(CIS_INTER_MB, "Error:parameter invalid in file=%s at line=%d\n", __FILE__, __LINE__);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -