⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testjtyhdlg.cpp

📁 转发交易接口
💻 CPP
📖 第 1 页 / 共 4 页
字号:
		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 + -