📄 testjtyhdlg.cpp
字号:
strcpy(vpack->m_Data, tmpStr);
iLen = strlen(vpack->m_Data);
vpack->m_Data[iLen] = 0x01;
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,(char *)&ans.name,sizeof(ans.name));
strcpy(vpack->m_Data, tmpStr);
iLen = strlen(vpack->m_Data);
vpack->m_Data[iLen] = 0x01;
//填包数据区长
memset(tmpStr,0x00,sizeof(tmpStr));
memset(vpack->m_DataLen,0x00,sizeof(vpack->m_DataLen));
iLen = strlen(vpack->m_Data);
sprintf(tmpStr, "%04d", iLen);
memcpy(vpack->m_DataLen, tmpStr, 4);
return 0;
}
else
{
int iLen=0;
memcpy(vpack->m_Fhdm,"9999",sizeof(vpack->m_Fhdm));
memset((char *)vpack->m_Data,0x00,sizeof(vpack->m_Data));
//客户号
strcpy(vpack->m_Data,"1000" );
iLen = strlen(vpack->m_Data);
vpack->m_Data[iLen] = 0x01;
strcpy(vpack->m_Data, "查客户信息失败");
iLen = strlen(vpack->m_Data);
vpack->m_Data[iLen] = 0x01;
//填包数据区长
memset(tmpStr,0x00,sizeof(tmpStr));
memset(vpack->m_DataLen,0x00,sizeof(vpack->m_DataLen));
iLen = strlen(vpack->m_Data);
sprintf(tmpStr, "%04d", iLen);
memcpy(vpack->m_DataLen, tmpStr, 4);
return 0;
}
}
int CTestJtyhDlg::Function_Down_WorkKey(PACKSTRUCT *vpack, char *vbuff)
{
/* char cs_nob[2];
char App_code[2];
char Flag[1];
char Channel_code[2];
char Bank_no[3];
char key_index[7];
char Key_type[1];
char Key_length[2];
*/
int len = 0;
REQ_WORKKEY reqpack;
sprintf(reqpack.cs_nob,"%2d",sizeof(REQ_WORKKEY)-2);
memcpy(reqpack.App_code,"35",2);
reqpack.Flag[0] = '1';
memcpy(reqpack.Channel_code,"09",2);//例如: 09
//例如: 325 苏州
memcpy(reqpack.Bank_no,"325",3);
memcpy(reqpack.key_index,"1234567",7); //索引 设备id:1234567
memcpy(reqpack.Key_type,"0",1);
memcpy(reqpack.Key_length,"32",2);
len = sizeof(REQ_WORKKEY);
return len;
}
//返回秘要长度
int CTestJtyhDlg::Function_Down_ansWorkKey(PACKSTRUCT *pack, char *buff)
{
/*char App_code[2];
char Flag[1];
char ErrCode[2];
char Len[3];
应用代码(2)++响应标示(1位,填0")+错误码(2)+密文长度(2)
+密文值 + 密钥校验值长度(2) + checkvalue
*/
int len = 0;
char tmpStr[100];
ANS_WORKKEY anspack;
memcpy((char *)&anspack,buff,sizeof(anspack));
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,anspack.ErrCode,2);
if(memcmp(tmpStr,"00",2)==0)
{
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,anspack.Len,2);
memset(tmpStr,0x00,sizeof(tmpStr));
len = sizeof(tmpStr);
memcpy(tmpStr,buff + 2 + 1 + 2 + 3,len);
return len;
}
else
{
return -1;
}
}
void CTestJtyhDlg::ltrimSpace(char *s)
{
int i = 0;
char *tmp = s, *p = s;
while(*p == ' ')
{
p++;
}
while(*p != '\0')
{
*tmp = *p;
tmp++;
p++;
}
*tmp = '\0';
}
void CTestJtyhDlg::rtrimSpace(char *s)
{
char *p = s + strlen(s)-1;
while(*p == ' ')
{
p--;
}
*(p+1)= '\0';
}
void CTestJtyhDlg::alltrimSpace(char *s)
{
if( s == NULL ) return;
ltrimSpace(s);
rtrimSpace(s);
}
int CTestJtyhDlg::GetValue(char *src, char *dest, int num, char ch)
{
char *s0 = dest;
dest[0] = 0;
while( *src != 0 && *src != '\0' && num != 1 )
{
if( *src == ch )
num--;
src++;
}
while( *src != 0 && *src != '\0' && *src != ch )
*s0++ = *src++;
*s0 = 0;
if ( num != 1 )
return -1;
else
{
// alltrimSpace ( dest );
return 0;
}
}
//205060(渠道开即办卡)
int CTestJtyhDlg::Function_SFZKK_ReqPack(PACKSTRUCT *vpack, char *vbuff)
{
int len = 0;
char tmpStr[80];
int retVal =0;
REQHEAD reqhead;
REQ_BODY_KK reqbody;
memset((char *)&reqhead,0x00,sizeof(reqhead));
memset((char *)&reqbody,0x00,sizeof(reqbody));
/***********************************head*********************************************/
memcpy(reqhead.TIAFILLER,"TLU6",4);
memcpy(reqhead.TIAAPCODE,"20",2);
memcpy(reqhead.TIATRCODE,"5060",4);
memcpy(reqhead.TIAFECODE,"205060",6); // 前置机号 前置交易码,用于双交易码
memcpy(reqhead.TIATMSEQNO,"TERM099",7); //终端号
memcpy(reqhead.TIATXTYPE,"WEB99",5);//交易来源,填'WEB99'
memcpy(reqhead.TIATXSEQ,"000000000000000",15);//[15]填网银凭证号
memcpy(reqhead.TIATLID,"0000000",7);//[7]虚拟柜员号
reqhead.TIAREQTYPE[0] = 'T';
/*************************可不填
reqhead.TIAAUTH[2];
reqhead.TIASUP1ID[7];
reqhead.TIASUP2ID[7];
reqhead.TIASUP1PSW[6];
reqhead.TIASUP2PSW[6];
reqhead.TIASUP1DEV[1];
reqhead.TIASUP2DEV[1];
//char TIAAUTHRESNTBL Occur 10 I???????????????????
reqhead.TIAAUTHRESNTBL[10];
reqhead.TIAAUTHRESN[6];
reqhead.TIAAUTHLOG[1];
reqhead.TIAJRNNO[9];
*/
reqhead.TIACOMPIND[1]='0';
reqhead.TIAENCRIND[1]='0';
/*
reqhead.TIATRBR[6];
reqhead.TIATLLVL[1];
reqhead.TIAVERNO[8];
reqhead.TIAOUTERTLR[1];
reqhead.m_TIAFILLER[2];
*/
//char TIATRDATA[2048];
/*********************************body*************************************/
//CARDNO
memset( tmpStr, 0x00, sizeof( tmpStr ) );
retVal = GetValue( vpack->m_Data, tmpStr, 1, 0x01 );
alltrimSpace(tmpStr);
strcpy(reqbody.CARDNO,tmpStr);
//SEC-MAG 第二磁道 X(37)
memset( tmpStr, 0x00, sizeof( tmpStr ) );
retVal = GetValue( vpack->m_Data, tmpStr, 1, 0x01 );
alltrimSpace(tmpStr);
strcpy(reqbody.SECMAG,tmpStr);
//THR-MAG 第三磁道 X(104)
memset( tmpStr, 0x00, sizeof( tmpStr ) );
retVal = GetValue( vpack->m_Data, tmpStr, 1, 0x01 );
alltrimSpace(tmpStr);
strcpy(reqbody.THRMAG,tmpStr);
//CARD-CLS 卡类 X(1)
reqbody.CARDCLS[0] =' ';
//ID-TYP 证件种类 X(2)
memcpy(reqbody.IDTYP,"15",2);
//ID-NO 证件号码 M(30)
memset( tmpStr, 0x00, sizeof( tmpStr ) );
retVal = GetValue( vpack->m_Data, tmpStr, 1, 0x01 );
alltrimSpace(tmpStr);
strcpy(reqbody.mIDNO,tmpStr);
//CI-NO 客户号 X(13)
memset( tmpStr, 0x00, sizeof( tmpStr ) );
retVal = GetValue(vpack->m_Data, tmpStr, 1, 0x01 );
alltrimSpace(tmpStr);
strcpy(reqbody.CINO,tmpStr);
//CD-NM 户名 M(30)
memset( tmpStr, 0x00, sizeof( tmpStr ) );
retVal = GetValue( vpack->m_Data, tmpStr, 1, 0x01 );
alltrimSpace(tmpStr);
strcpy(reqbody.CDNM,tmpStr);
//EMP-FLG 行员标志 X(1)
//YFEE-FLG 年费方式 X(2)
//ADDR-FLG 寄对账单方式 X(2)
//POST-COD 邮政编码 X(6)
//POST-ADD 寄对账单地址 M(60)
//M-TX-PSW 主卡交易密码 X(20)
memset( tmpStr, 0x00, sizeof( tmpStr ) );
retVal = GetValue( vpack->m_Data, tmpStr, 1, 0x01 );
alltrimSpace(tmpStr);
strcpy(reqbody.CDNM,tmpStr);
//OPEN-BR 申请网点号 9(6)
//CP-FLG 商务/个人卡标志 X(11)
//MAIN-FLG 主附卡标志 X(1)
//OFR-FLG 卡资料提供第3方标志 X(1)
memcpy(vbuff,(char *)&reqhead,sizeof(reqhead));
memcpy(vbuff+sizeof(reqhead),(char *)&reqbody,sizeof(reqbody));
len = sizeof(reqhead)+sizeof(reqbody);
return len;
}
int CTestJtyhDlg::Function_SFZKK_AnsPack(PACKSTRUCT *vpack, char *vbuff)
{
int len = 0;
char tmpStr[80];
ANS_BODY_KK ans;
memset((char *)&ans,0x00,sizeof(ans));
memset((char *)&ans,0x00,sizeof(ans));
memcpy((char *)&ans,vbuff,sizeof(ans));
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,(char *)&ans.head.TOAMSGCODE,sizeof(ans.head.TOAMSGCODE));
// 判断结果
if(memcmp(tmpStr,"0000",4)==0)// 成功
{
int iLen=0;
memcpy(vpack->m_Fhdm,"0000",sizeof(vpack->m_Fhdm));
memset((char *)vpack->m_Data,0x00,sizeof(vpack->m_Data));
//填包数据区长
memset(tmpStr,0x00,sizeof(tmpStr));
memset(vpack->m_DataLen,0x00,sizeof(vpack->m_DataLen));
iLen = strlen(vpack->m_Data);
sprintf(tmpStr, "%04d", iLen);
memcpy(vpack->m_DataLen, tmpStr, 4);
return 0;
}
else
{
int iLen=0;
memcpy(vpack->m_Fhdm,"9999",sizeof(vpack->m_Fhdm));
memset((char *)vpack->m_Data,0x00,sizeof(vpack->m_Data));
//客户号
strcpy(vpack->m_Data,"1000" );
iLen = strlen(vpack->m_Data);
vpack->m_Data[iLen] = 0x01;
strcpy(vpack->m_Data, "开卡失败");
iLen = strlen(vpack->m_Data);
vpack->m_Data[iLen] = 0x01;
//填包数据区长
memset(tmpStr,0x00,sizeof(tmpStr));
memset(vpack->m_DataLen,0x00,sizeof(vpack->m_DataLen));
iLen = strlen(vpack->m_Data);
sprintf(tmpStr, "%04d", iLen);
memcpy(vpack->m_DataLen, tmpStr, 4);
return 0;
}
}
//自助机具清卡登记(047230)
int CTestJtyhDlg::Function_QK_ReqPack(PACKSTRUCT *vpack, char *vbuff)
{
int len = 0;
char tmpStr[80];
int retVal =0;
REQHEAD reqhead;
REQ_BODY_QKDJ reqbody;
memset((char *)&reqhead,0x00,sizeof(reqhead));
memset((char *)&reqbody,0x00,sizeof(reqbody));
/***********************************head*********************************************/
memcpy(reqhead.TIAFILLER,"TLU6",4);
memcpy(reqhead.TIAAPCODE,"04",2);
memcpy(reqhead.TIATRCODE,"7230",4);
memcpy(reqhead.TIAFECODE,"047230",6); // 前置机号 前置交易码,用于双交易码
memcpy(reqhead.TIATMSEQNO,"TERM099",7); //终端号
memcpy(reqhead.TIATXTYPE,"WEB99",5);//交易来源,填'WEB99'
memcpy(reqhead.TIATXSEQ,"000000000000000",15);//[15]填网银凭证号
memcpy(reqhead.TIATLID,"0000000",7);//[7]虚拟柜员号
reqhead.TIAREQTYPE[0] = 'T';
/*************************可不填
reqhead.TIAAUTH[2];
reqhead.TIASUP1ID[7];
reqhead.TIASUP2ID[7];
reqhead.TIASUP1PSW[6];
reqhead.TIASUP2PSW[6];
reqhead.TIASUP1DEV[1];
reqhead.TIASUP2DEV[1];
//char TIAAUTHRESNTBL Occur 10 I???????????????????
reqhead.TIAAUTHRESNTBL[10];
reqhead.TIAAUTHRESN[6];
reqhead.TIAAUTHLOG[1];
reqhead.TIAJRNNO[9];
*/
reqhead.TIACOMPIND[1]='0';
reqhead.TIAENCRIND[1]='0';
/*
reqhead.TIATRBR[6];
reqhead.TIATLLVL[1];
reqhead.TIAVERNO[8];
reqhead.TIAOUTERTLR[1];
reqhead.m_TIAFILLER[2];
*/
//char TIATRDATA[2048];
//char jjh[7];
//自助机具柜员号 X(7)
memset( tmpStr, 0x00, sizeof( tmpStr ) );
retVal = GetValue( vpack->m_Data, tmpStr, 1, 0x01 );
alltrimSpace(tmpStr);
strcpy(reqbody.jjh,tmpStr);
//char spczksl[8];
//上批次装卡数量 9(8)
memset( tmpStr, 0x00, sizeof( tmpStr ) );
retVal = GetValue( vpack->m_Data, tmpStr, 2, 0x01 );
alltrimSpace(tmpStr);
strcpy(reqbody.spczksl,tmpStr);
//char fksl[8];
//发卡数量 9(8)
memset( tmpStr, 0x00, sizeof( tmpStr ) );
retVal = GetValue( vpack->m_Data, tmpStr, 3, 0x01 );
alltrimSpace(tmpStr);
strcpy(reqbody.fksl,tmpStr);
//char ksye[8];
//卡箱余额 9(8)
memset( tmpStr, 0x00, sizeof( tmpStr ) );
retVal = GetValue( vpack->m_Data, tmpStr, 4, 0x01 );
alltrimSpace(tmpStr);
strcpy(reqbody.ksye,tmpStr);
//char m_fksl[8];
//废卡数量 9(8)
memset( tmpStr, 0x00, sizeof( tmpStr ) );
retVal = GetValue( vpack->m_Data, tmpStr, 5, 0x01 );
alltrimSpace(tmpStr);
strcpy(reqbody.m_fksl,tmpStr);
/*
char fkhsrq[19]; //??????????????????????????????????最多50组卡号废卡卡号输入区
memset( tmpStr, 0x00, sizeof( tmpStr ) );
retVal = GetValue( vpack->m_Data, tmpStr, 6, 0x01 );
alltrimSpace(tmpStr);
strcpy(reqbody.jjh,tmpStr);
*/
//char fkkh[19];// 废卡卡号 X(19)
memset( tmpStr, 0x00, sizeof( tmpStr ) );
retVal = GetValue( vpack->m_Data, tmpStr, 7, 0x01 );
alltrimSpace(tmpStr);
strcpy(reqbody.fkkh,tmpStr);
memcpy(vbuff,(char *)&reqhead,sizeof(reqhead));
memcpy(vbuff+sizeof(reqhead),(char *)&reqbody,sizeof(reqbody));
len = sizeof(reqhead)+sizeof(reqbody);
return len;
}
int CTestJtyhDlg::Function_QK_AnsPack(PACKSTRUCT *vpack, char *vbuff)
{
int len = 0;
char tmpStr[80];
ANS_BODY_QKDJ ans;
memset((char *)&ans,0x00,sizeof(ans));
memset((char *)&ans,0x00,sizeof(ans));
memcpy((char *)&ans,vbuff,sizeof(ans));
memset(tmpStr,0x00,sizeof(tmpStr));
memcpy(tmpStr,(char *)&ans.head.TOAMSGCODE,sizeof(ans.head.TOAMSGCODE));
// 判断结果
if(memcmp(tmpStr,"0000",4)==0)// 成功
{
int iLen=0;
memcpy(vpack->m_Fhdm,"0000",sizeof(vpack->m_Fhdm));
memset((char *)vpack->m_Data,0x00,sizeof(vpack->m_Data));
//填包数据区长
memset(tmpStr,0x00,sizeof(tmpStr));
memset(vpack->m_DataLen,0x00,sizeof(vpack->m_DataLen));
iLen = strlen(vpack->m_Data);
sprintf(tmpStr, "%04d", iLen);
memcpy(vpack->m_DataLen, tmpStr, 4);
return 0;
}
else
{
int iLen=0;
memcpy(vpack->m_Fhdm,"9999",sizeof(vpack->m_Fhdm));
memset((char *)vpack->m_Data,0x00,sizeof(vpack->m_Data));
//客户号
strcpy(vpack->m_Data,"1000" );
iLen = strlen(vpack->m_Data);
vpack->m_Data[iLen] = 0x01;
strcpy(vpack->m_Data, "清卡失败");
iLen = strlen(vpack->m_Data);
vpack->m_Data[iLen] = 0x01;
//填包数据区长
memset(tmpStr,0x00,sizeof(tmpStr));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -