📄 package.cpp.bak
字号:
memcpy(packstruct->m_Data,tmpStr,Ans_PackBodyLen);
memset(packstruct->m_DataLen,0x00,sizeof(packstruct->m_DataLen));
memcpy(packstruct->m_DataLen,Str_message_head.rec_num,3);
return Ans_PackBodyLen;
}
int Cpackage::Function_CxDsf(PACKSTRUCT *packstruct, char *cSendbuf)
{
//储 种 81-代收电话费 82-代收电费 83-代收保险费
/*
//币 种
card_no
password
查询起始日期YYYYMMDD
*/
char tmpStr[ 200 ], tmpstr[ 200 ], Buff[ 20 ], dateBuf[ 20 ];
int RetValue=0;
int FunCode;
information_request Str_info_request;
memset( &Str_info_request, 0x00, sizeof(information_request) );
memset( tmpStr, 0x00, sizeof(tmpStr) );
memset( tmpstr, 0x00, sizeof(tmpstr) );
//信息查询请求
//02 - 信息查询 jylx[2];
/*
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,packstruct->m_Jydm,sizeof(packstruct->m_Jydm));
alltrimSpace(tmpStr);
mempy(Str_info_request.jylx,"02",sizeof(Str_info_request.jylx));
*/
memcpy(Str_info_request.jylx,"02",sizeof(Str_info_request.jylx));
//多媒体查询 设备编号 3
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,packstruct->m_Zdh,sizeof(packstruct->m_Zdh));
alltrimSpace(tmpStr);
memcpy(Str_info_request.pprno,tmpStr,sizeof(Str_info_request.pprno));
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","综合信息请求模块","设备编号",tmpStr);
//处理号 3 ????????????????????
//memset(tmpstr,0x00,sizeof(tmpstr));
//mwmcpy(tmpstr,packstruct->m_Zdh,sizeof(packstruct->m_Zdh));
//alltrimSpace(tmpstr);
memcpy(Str_info_request.pprclh,"000",sizeof(Str_info_request.pprclh));
//card_no 16
memset(tmpStr,0x00,sizeof(tmpstr));
GetValue( packstruct->m_Data, tmpStr, 1, 0x01 );
alltrimSpace(tmpStr);
memcpy(Str_info_request.card_no,tmpStr,sizeof(Str_info_request.card_no));
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","综合信息请求模块","card_no",tmpStr);
//币 种 2
memcpy(Str_info_request.bz,"01",sizeof(Str_info_request.bz));
//储 种 2 ???/??
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,packstruct->m_Jydm,sizeof(packstruct->m_Jydm));
alltrimSpace(tmpStr);
FunCode = atoi(tmpStr);
//81-代收电话费 82-代收电费 83-代收保险费
if(FunCode==4041)
memcpy(Str_info_request.cz,"81",sizeof(Str_info_request.cz));
else if(FunCode==4042)
memcpy(Str_info_request.cz,"82",sizeof(Str_info_request.cz));
else if(FunCode==4043)
memcpy(Str_info_request.cz,"83",sizeof(Str_info_request.cz));
else
memcpy(Str_info_request.cz,"00",sizeof(Str_info_request.cz));
//笔数号,查询通知明细时需要输入 笔数号 (起始页数3)
memset(tmpStr,0x00,sizeof(tmpstr));
strcpy(tmpStr,"0000");
memcpy(Str_info_request.bs,tmpStr,sizeof(Str_info_request.bs));
//查询起始日期YYYYMMDD
memset(tmpStr,0x00,sizeof(tmpstr));
GetValue( packstruct->m_Data, tmpStr, 2, 0x01 );
alltrimSpace(tmpStr);
memcpy(Str_info_request.rq1,tmpStr,sizeof(Str_info_request.rq1));
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","综合信息请求模块","起始日期",tmpStr);
//终止日期00000000
memcpy(Str_info_request.rq2,"00000000",sizeof(Str_info_request.rq2));
//reserve[15];
memcpy(Str_info_request.reserve,"000000000000000",sizeof(Str_info_request.reserve));
RetValue=sizeof(information_request);
return RetValue;
}
//代收费信息
int Cpackage::Function_CxDsf_ans(int jydm, PACKSTRUCT *packstruct, char *cRecvbuf)
{
int head_length,ErrCode;
int Ans_PackRecNum=0;
int Ans_PackBodyLen=0;
int offset=0;
int iLen=0;
char tmpStr[4096];
message_head Str_message_head;
dsf_msg_struct Str_dsf_struct;
offset = sizeof(message_head);
//cccccccccccccccccccccccccccccccccccccccc
iLen = sizeof(dsf_msg_struct);
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(&Str_message_head,cRecvbuf,sizeof(message_head));
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","代收费返回信息模块","Str_message_head.jylx",Str_message_head.jylx);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","代收费回信息模块","Str_message_head.pprno",Str_message_head.pprno);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","代收费返回信息模块","Str_message_head.pprclh",Str_message_head.pprclh);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","代收费返回信息模块","Str_message_head.jgdm",Str_message_head.jgdm);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","代收费返回信息模块","Str_message_head.rec_num",Str_message_head.rec_num);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","代收费返回信息模块","Str_message_head.reserve",Str_message_head.reserve);
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,Str_message_head.jgdm,3);
//判断错误码
if(!memcmp(tmpStr,"000",3) == 0)
{
ErrCode = atoi(tmpStr);
switch(ErrCode)
{
default:
memcpy(packstruct->m_Fhdm,"9001",4);
break;
}
packstruct->m_Blx[0]='1';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后续
memset(packstruct->m_Data,0x00,sizeof(MAX_DATA_LEN));
memset(packstruct->m_DataLen,0x00,sizeof(packstruct->m_DataLen));
return -1;
}
//得到包中记录数
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,Str_message_head.rec_num,3);
alltrimSpace(tmpStr);
Ans_PackRecNum = atoi(tmpStr);
//目前无法知道真样判断是何种返回,分解包
/*********************************************************/
//-------------Str_deposit_structgkq
//得到中记录信息总长度mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
Ans_PackBodyLen = Ans_PackRecNum*iLen;
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%d]","返回信息模块","记录信息总长度",Ans_PackBodyLen);
//复制记录内容
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,cRecvbuf+offset,Ans_PackBodyLen);
memcpy(packstruct->m_Fhdm,"0000",4);
packstruct->m_Blx[0]='1';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后续
memset(packstruct->m_Data,0x00,sizeof(MAX_DATA_LEN));
memcpy(packstruct->m_Data,tmpStr,Ans_PackBodyLen);
memset(packstruct->m_DataLen,0x00,sizeof(packstruct->m_DataLen));
memcpy(packstruct->m_DataLen,Str_message_head.rec_num,3);
return Ans_PackBodyLen;
}
int Cpackage::Function_Mmjy_ans(int jydm, PACKSTRUCT *packstruct, char *cRecvbuf)
{
int kkzz_len,iLen=0;
int offset=0;
int RetValue=0;
char tmpStr[4096];
/*
typedef struct
{
char jylx[2]; /* 01 - 密码校验标志
char pprno[3]; /* 多媒体查询 设备号
char pprclh[3]; /* 多媒体查询 处理号
char jgdm[3]; /* 结果代码 (参看后面)
char reserve[15]; /* 备用
}ReplyPasswd;
*/
ReplyPasswd Str_ReplyPasswd;
memset(&Str_ReplyPasswd,0x00,sizeof(Str_ReplyPasswd));
memcpy(&Str_ReplyPasswd,cRecvbuf,sizeof(Str_ReplyPasswd));
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,Str_ReplyPasswd.jgdm,3);
//WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","信息查询返回信息模块","Str_message_head.jylx",Str_message_head.jylx);
//WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","信息查询返回信息模块","Str_message_head.pprno",Str_message_head.pprno);
//WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","信息查询返回信息模块","Str_message_head.pprclh",Str_message_head.pprclh);
//WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","信息查询返回信息模块","Str_message_head.jgdm",Str_message_head.jgdm);
//WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","信息查询返回信息模块","Str_message_head.rec_num",Str_message_head.rec_num);
//WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","信息查询返回信息模块","Str_message_head.reserve",Str_message_head.reserve);
if(memcmp(tmpStr,"000",3))
{
char str[20];
memcpy(packstruct->m_Fhdm,"0000",4);
packstruct->m_Blx[0]='0';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后续
memset(packstruct->m_Data,0x00,sizeof(packstruct->m_Data));
//填包数据区长
memset(str,0x00,sizeof(str));
memset(packstruct->m_DataLen,0x00,sizeof(packstruct->m_DataLen));
RetValue = strlen(packstruct->m_Data);
sprintf(str, "%04d", RetValue);
memcpy(packstruct->m_DataLen, str, 4);
}
else if(memcmp(tmpStr,"001",3))//卡中无该项存款
{
memcpy(packstruct->m_Fhdm,"1001",4);
packstruct->m_Blx[0]='0';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后续
return 1;
}
else if(memcmp(tmpStr,"002",3))//卡中无该项存款
{
memcpy(packstruct->m_Fhdm,"1002",4);
packstruct->m_Blx[0]='0';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后续
return 2;
}
else if(memcmp(tmpStr,"003",3))//卡中无该项存款
{
memcpy(packstruct->m_Fhdm,"1003",4);
packstruct->m_Blx[0]='0';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后续
return 3;
}
else//其它为通信故障。
{
memcpy(packstruct->m_Fhdm,"9000",4);
packstruct->m_Blx[0]='0';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后续
return 0;
}
RetValue = RetValue + MAX_HEAD_LEN;
return RetValue;
}
int Cpackage::Function_Mmjy(PACKSTRUCT *packstruct, char *cSendbuf)
{
char tmpStr[ 200 ], tmpstr[ 200 ], Buff[ 20 ], dateBuf[ 20 ];
int RetValue=0;
RequestPasswd Str_RequestPasswd;
memset( &Str_RequestPasswd, 0x00, sizeof(RequestPasswd) );
memset( tmpStr, 0x00, sizeof(tmpStr) );
memset( tmpstr, 0x00, sizeof(tmpstr) );
memcpy(Str_RequestPasswd.jylx,"01",sizeof(Str_RequestPasswd.jylx));
//多媒体查询 设备编号 3
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,packstruct->m_Zdh,sizeof(packstruct->m_Zdh));
alltrimSpace(tmpStr);
memcpy(Str_RequestPasswd.pprno,tmpStr,sizeof(Str_RequestPasswd.pprno));
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","卡内转帐请求模块","设备编号",tmpStr);
memcpy(Str_RequestPasswd.pprclh,"000",sizeof(Str_RequestPasswd.pprclh));
//ckh16 卡号
memset(tmpStr,0x00,sizeof(tmpstr));
GetValue( packstruct->m_Data, tmpStr, 1, 0x01 );
alltrimSpace(tmpStr);
memcpy(Str_RequestPasswd.card_no,tmpStr,sizeof(Str_RequestPasswd.card_no));
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","卡内转帐请求模块","卡号",tmpStr);
//mm6];
memset(tmpStr,0x00,sizeof(tmpstr));
GetValue( packstruct->m_Data, tmpStr, 2, 0x01 );
alltrimSpace(tmpStr);
memcpy(Str_RequestPasswd.mm,tmpStr,sizeof(Str_RequestPasswd.mm));
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","卡内转帐请求模块","转入卡号",tmpStr);
//mm[6]; srmm shuru 密码
memset(tmpStr,0x00,sizeof(tmpstr));
GetValue( packstruct->m_Data, tmpStr, 2, 0x01 );
alltrimSpace(tmpStr);
memcpy(Str_RequestPasswd.srmm,tmpStr,sizeof(Str_RequestPasswd.srmm));
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","卡内转帐请求模块","取款密码",tmpStr);
//reserve; 备用
memcpy(Str_RequestPasswd.reserve,"000000000000000",sizeof(Str_RequestPasswd.reserve));
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","卡内转帐请求模块","期限",tmpStr);
RetValue=sizeof(Str_RequestPasswd);
return RetValue;
}
int Cpackage::Funct_Xxcx_Pub(PACKSTRUCT *packstruct, char *jydm, char *cSendbuf)
{
return 0;
}
//解析活期查询包
int Cpackage::ChangeHq(PACKSTRUCT *packstruct, char *buffer, int NumRec)
{
char tmpstr[200],str[10];
int iLen=0;
int tmpoffset=0;
int StructLen,iPackDataLen=0;
deposit_msg_structcxxx TmpRecoBody;
StructLen = sizeof(deposit_msg_structcxxx);
memcpy(packstruct->m_Fhdm,"0000",4);
packstruct->m_Blx[0]='1';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后续
memset(packstruct->m_Data,0x00,sizeof(packstruct->m_Data));
//进行包化间
for(int i=0; i<NumRec; i++)
{
//定义临时结构体
memset((char *)&TmpRecoBody,0x00,StructLen);
tmpoffset = i*StructLen;
memcpy((char *)&TmpRecoBody,buffer+tmpoffset,StructLen);
//填充帐号到前端结构 10
memset(tmpstr,0x00,sizeof(tmpstr));
memcpy(tmpstr,TmpRecoBody.zh,sizeof(TmpRecoBody.zh));
alltrimSpace(tmpstr);
strcat(packstruct->m_Data, tmpstr);//注意不要strcpy
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
//填充发生日到前端结构 8
memset(tmpstr,0x00,sizeof(tmpstr));
memcpy(tmpstr,TmpRecoBody.fsr,sizeof(TmpRecoBody.fsr));
alltrimSpace(tmpstr);
strcat(packstruct->m_Data, tmpstr);
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
//填充状态到前端结构2
memset(tmpstr,0x00,sizeof(tmpstr));
memcpy(tmpstr,TmpRecoBody.zt,sizeof(TmpRecoBody.zt));
alltrimSpace(tmpstr);
//注意第一个为STRCPY
strcat(packstruct->m_Data, tmpstr);
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
//填充发生额 到前端结构 12
memset(tmpstr,0x00,sizeof(tmpstr));
memcpy(tmpstr,TmpRecoBody.fse,sizeof(Tm
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -