?? package.cpp
字號:
int Cpackage::Function_Kkzz_ans(int jydm, PACKSTRUCT *packstruct, char *cRecvbuf)
{
int kkzz_len,iLen=0;
int offset=0;
int RetValue=0;
char tmpStr[4096],tmpstr[100],str[20];
//message_head Str_message_head;
kkzz_ans_msg Str_kkzz_ans_msg;
kkzz_len = sizeof(kkzz_ans_msg);
memset(&Str_kkzz_ans_msg,0x00,sizeof(Str_kkzz_ans_msg));
memcpy(&Str_kkzz_ans_msg,cRecvbuf,sizeof(Str_kkzz_ans_msg));
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,Str_kkzz_ans_msg.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)==0)
{
/*
char jylx[2]; /* 06 - 交易類型
char ppr_no[3]; /* 多媒體查詢機(jī)號
char ppr_clh[3]; /* 機(jī)器處理號
char jgdm[3]; /* 結(jié)果代碼
char zh1[10]; /* 原卡帳號
char zh2[10]; /* 轉(zhuǎn)入卡帳號
char ye1[12]; /* 原卡余額,單位:分
char ye2[12]; /* 轉(zhuǎn)入卡余額,單位:分
/* 發(fā)生額,單位:分2001.9.20
char zxclh[6]; /* 中心處理號
char by1[15]; /* 備用
*/
memcpy(packstruct->m_Fhdm,"0000",4);
packstruct->m_Blx[0]='0';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后續(xù)
memset(packstruct->m_Data,0x00,sizeof(packstruct->m_Data));
//原卡帳號到前端結(jié)構(gòu) 10
memset(tmpstr,0x00,sizeof(tmpstr));
memcpy(tmpstr,Str_kkzz_ans_msg.zh1,sizeof(Str_kkzz_ans_msg.zh1));
alltrimSpace(tmpstr);
strcpy(packstruct->m_Data, tmpstr);//注意不要strcpy
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
//原卡余額
memset(tmpstr,0x00,sizeof(tmpstr));
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpstr,Str_kkzz_ans_msg.ye1,sizeof(Str_kkzz_ans_msg.ye1));
alltrimSpace(tmpstr);
ChangAnsMoney(tmpstr);
sprintf(tmpStr,"%12.12s",tmpstr);
strcat(packstruct->m_Data, tmpStr);//注意不要strcpy
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
memset(tmpstr,0x00,sizeof(tmpstr));
memcpy(tmpstr,Str_kkzz_ans_msg.zh2,sizeof(Str_kkzz_ans_msg.zh2));
alltrimSpace(tmpstr);
strcat(packstruct->m_Data, tmpstr);//注意不要strcpy
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
//轉(zhuǎn)入卡余額
memset(tmpstr,0x00,sizeof(tmpstr));
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpstr,Str_kkzz_ans_msg.ye2,sizeof(Str_kkzz_ans_msg.ye2));
alltrimSpace(tmpstr);
ChangAnsMoney(tmpstr);
sprintf(tmpStr,"%12.12s",tmpstr);
strcat(packstruct->m_Data, tmpStr);//注意不要strcpy
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
memset(tmpstr,0x00,sizeof(tmpstr));
memcpy(tmpstr,Str_kkzz_ans_msg.zxclh,sizeof(Str_kkzz_ans_msg.zxclh));
alltrimSpace(tmpstr);
strcat(packstruct->m_Data, tmpstr);//注意不要strcpy
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
//填包數(shù)據(jù)區(qū)長
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)==0)//卡中無該項存款
{
memcpy(packstruct->m_Fhdm,"0001",4);
packstruct->m_Blx[0]='0';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后續(xù)
memset(packstruct->m_Data,0x00,sizeof(MAX_DATA_LEN));
strcpy(packstruct->m_Data, "轉(zhuǎn)帳失敗");
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
return -1;
}
else//其它為通信故障。
{
memcpy(packstruct->m_Fhdm,"9001",4);
packstruct->m_Blx[0]='0';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后續(xù)
strcpy(packstruct->m_Data, "通信故障");
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
return -1;
}
RetValue = RetValue + MAX_HEAD_LEN;
return RetValue;
}
//卡內(nèi)轉(zhuǎn)帳
int Cpackage::Function_Knzz_ans(int jydm, PACKSTRUCT *packstruct, char *cRecvbuf)
{
//int head_length;
int zz_len,iLen=0;
int Ans_PackRecNum=0;
int Ans_PackBodyLen=0;
int offset=0;
int RetValue=0;
char tmpStr[4096];
zz_ans_msg1 Str_message_head;
// zz_ans_msg_body1 Str_zz_ans_msg1;;
offset = sizeof(zz_ans_msg1);
zz_len = sizeof(zz_ans_msg_body1);
memset((char *)&Str_message_head,0x00,sizeof(Str_message_head));
memcpy((char *)&Str_message_head,cRecvbuf,sizeof(Str_message_head));
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","卡內(nèi)轉(zhuǎn)帳返回信息模塊","Str_message_head.jylx",Str_message_head.jylx);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","卡內(nèi)轉(zhuǎn)帳返回信息模塊","Str_message_head.pprno",Str_message_head.ppr_no);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","卡內(nèi)轉(zhuǎn)帳返回信息模塊","Str_message_head.pprclh",Str_message_head.ppr_clh);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%s]","卡內(nèi)轉(zhuǎn)帳返回信息模塊","Str_message_head.jgdm",Str_message_head.jgdm);
//目前無法知道真樣判斷是何種返回,分解包
/*********************************************************/
//-------------deposit_msg_structcxxx
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,Str_message_head.jgdm,3);
if(memcmp(tmpStr,"000",3)==0)
{
//得到包中記錄數(shù)
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,Str_message_head.rec_num,sizeof(Str_message_head.rec_num));
alltrimSpace(tmpStr);
Ans_PackRecNum = atoi(tmpStr);
//得到儲蓄信息查詢中記錄信息總長度
Ans_PackBodyLen = Ans_PackRecNum*zz_len;
//判斷包是否過長
if(Ans_PackBodyLen > 4096)
{
memcpy(packstruct->m_Fhdm,"0001",4);
packstruct->m_Blx[0]='1';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后續(xù)
return -1;
}
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,cRecvbuf+offset,Ans_PackBodyLen);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%d]","信息查詢返回信息模塊","記錄信息總長度",Ans_PackBodyLen);
RetValue = ChangeKnzz(packstruct, tmpStr, Ans_PackRecNum);
}
else if(memcmp(tmpStr,"001",3)==0)//卡中無該項存款
{
memcpy(packstruct->m_Fhdm,"0001",4);
packstruct->m_Blx[0]='1';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后續(xù)
memset(packstruct->m_Data,0x00,sizeof(MAX_DATA_LEN));
strcpy(packstruct->m_Data, "轉(zhuǎn)帳失敗");
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
return -1;
}
else//其它為通信故障。
{
memcpy(packstruct->m_Fhdm,"9001",4);
packstruct->m_Blx[0]='1';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后續(xù)
memset(packstruct->m_Data,0x00,sizeof(MAX_DATA_LEN));
strcpy(packstruct->m_Data, "通信故障");
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
return -1;
}
RetValue = RetValue + MAX_HEAD_LEN;
return RetValue;
}
//
int Cpackage::Function_KnzzNext_ans(int jydm, PACKSTRUCT *packstruct, char *cRecvbuf)
{
int knzz_len,iLen=0;
int offset=0;
int RetValue=0;
char tmpStr[4096];
// message_head Str_message_head;
zz_ans_msg2 Str_zz_ans_msg2;
knzz_len = sizeof(zz_ans_msg2);
memset(&Str_zz_ans_msg2,0x00,sizeof(Str_zz_ans_msg2));
memcpy(&Str_zz_ans_msg2,cRecvbuf,sizeof(Str_zz_ans_msg2));
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,Str_zz_ans_msg2.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)==0)
{
char tmpstr[100],str[20];
memcpy(packstruct->m_Fhdm,"0000",4);
packstruct->m_Blx[0]='0';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后續(xù)
memset(packstruct->m_Data,0x00,sizeof(packstruct->m_Data));
//dao期日 中心授權(quán)號到前端結(jié)構(gòu) 8
memset(tmpstr,0x00,sizeof(tmpstr));
memcpy(tmpstr,Str_zz_ans_msg2.datea,sizeof(Str_zz_ans_msg2.datea));
alltrimSpace(tmpstr);
strcpy(packstruct->m_Data, tmpstr);
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
//到期標(biāo)志
memset(tmpstr,0x00,sizeof(tmpstr));
memcpy(tmpstr,Str_zz_ans_msg2.Duemark,sizeof(Str_zz_ans_msg2.Duemark));
alltrimSpace(tmpstr);
strcat(packstruct->m_Data, tmpstr);//注意不要strcpy
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
//余額
memset(tmpStr,0x00,sizeof(tmpStr));
memset(tmpstr,0x00,sizeof(tmpstr));
memcpy(tmpstr,Str_zz_ans_msg2.kyye,sizeof(Str_zz_ans_msg2.kyye));
alltrimSpace(tmpstr);
ChangAnsMoney(tmpstr);
sprintf(tmpStr,"%12.12s",tmpstr);
strcat(packstruct->m_Data, tmpStr);//注意不要strcpy
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
//填包數(shù)據(jù)區(qū)長
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)==0)//卡中無該項存款
{
memcpy(packstruct->m_Fhdm,"0001",4);
packstruct->m_Blx[0]='0';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后續(xù)
memset(packstruct->m_Data,0x00,sizeof(MAX_DATA_LEN));
strcpy(packstruct->m_Data, "轉(zhuǎn)帳失敗");
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
return -1;
}
else//其它為通信故障。
{
memcpy(packstruct->m_Fhdm,"9001",4);
packstruct->m_Blx[0]='0';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后續(xù)
memset(packstruct->m_Data,0x00,sizeof(MAX_DATA_LEN));
strcpy(packstruct->m_Data, "通信故障");
iLen = strlen(packstruct->m_Data);
packstruct->m_Data[iLen] = 0x01;
return -1;
}
RetValue = RetValue + MAX_HEAD_LEN;
return RetValue;
}
int Cpackage::Function_Cxxxcx_ans(int jydm, PACKSTRUCT *packstruct, char *cRecvbuf)
{
int cxxx_len,iLen=0;
int Ans_PackRecNum=0;
int Ans_PackBodyLen=0;
int offset=0;
int RetValue=0;
char tmpStr[4096];
message_head Str_message_head;
offset = sizeof(message_head);
cxxx_len = sizeof(deposit_msg_structcxxx);
memset(&Str_message_head,0x00,sizeof(Str_message_head));
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);
//目前無法知道真樣判斷是何種返回,分解包
/*********************************************************/
//-------------deposit_msg_structcxxx
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,Str_message_head.jgdm,3);
strcpy(tmpStr,"000");
if(memcmp(tmpStr,"000",3)==0)
{
//得到包中記錄數(shù)
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,Str_message_head.rec_num,3);
alltrimSpace(tmpStr);
Ans_PackRecNum = atoi(tmpStr);
//得到儲蓄信息查詢中記錄信息總長度
Ans_PackBodyLen = Ans_PackRecNum*cxxx_len;
//判斷包是否過長
if(Ans_PackBodyLen > 4096)
{
memcpy(packstruct->m_Fhdm,"0001",4);
packstruct->m_Blx[0]='1';//!!!!!!!!!!!!!!!!!!!
packstruct->m_Flag[0]='0';//占用他表示是否有后續(xù)
return -1;
}
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,cRecvbuf+offset,Ans_PackBodyLen);
WriteParseLog(__FILE__,__LINE__,"%s , %s=[%d]","信息查詢返回信息模塊","記錄信息總長度",Ans_PackBodyLen);
switch(jydm)
{
case 4011:
RetValue = ChangeHq(packstruct, tmpStr, Ans_PackRecNum);
break;
case 4012:
RetValue = ChangeDq(packstruct, tmpStr, Ans_PackRecNum);
break;
case 4013:
RetValue = ChangeDhlb(packstruct, tmpStr, Ans_PackRecNum);
break;
case 4015://通知存款查詢基本信息查詢
case 4016://通知存款查詢明細(xì)查詢
RetValue = ChangeTzck(jydm, packstruct, tmpStr, Ans_PackRecNum);
break;
case 4018://外幣儲蓄查詢
RetValue = ChangeWbcxcx(jydm,packstruct, tmpStr, Ans_PackRecNum);
break;
case 4019://外幣儲蓄查詢
RetValue = ChangeWbdq(jydm,packstruct, tmpStr, Ans_PackRecNum);
break;
case 4020://信用卡查詢
RetValue = ChangeXykmx(jydm,packstruct, tmpStr, Ans_PackRecNum);
break;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -