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

📄 cms536.sqc

📁 一整套完整的银行卡系统源代码
💻 SQC
字号:
/******************************************************************** **   源码文件名称 : cms536.SQC **   所属子系统   : CMS  **   当前文件版本 : 1.0.0.0 **   作者         : UCCB	ALEX **   版本创建日期 : 2004/10/11 **   功能描述     : 修改密码处理子交易  **    				按照密码类型修改密码  卡密码 **   修改记录     : **   修改人       修改日期     修改日期*********************************************************************/#include "code.h"#include "attrdef.h"#include "sysdef.h"#include "pubcom.h"#include "cmscode.h"#include "cmscardinfo.h"#include "cmsacctm.h"EXEC SQL INCLUDE SQLCA;int cmsUpdateCardPwdPro( PUBCOM *pstPubcom ){	/*定义局部变量*/	char	acOldPassWd[PASSWD_LEN+1]	        ;	/* 旧密码			*/	char	acNewPassWd[PASSWD_LEN+1]	        ;	/* 新密码			*/	char	acModFlag[ FLAG_LEN + 1 ]			;	/* 密码修改方式		*/													/* 0 正常改密		*/													/* 1 批量发卡启用	*/	char	acCheckFlag[BIT21_LEN][BIT11_LEN]	;	char	acChkTrkFlg[ FLAG_LEN+1 ]			;	/* 卡磁道检查标志	*/	char	acTrack2[ TRACK2_LEN + 1 ]			;	/* 二磁道			*/	char	acTrack3[ TRACK3_LEN + 1 ]			;	/* 三磁道			*/	int		iRtn;	struct	cmscardinfo		stCardInfo;	struct	cmsacctm    	stAcctM   ;	strcpy( g_acRspCode, RSP_OK );	strcpy( g_acTrcMsg, "子交易: 密码修改处理子交易开始...");	TRCLOG4	memset( &stCardInfo,	0x00,	sizeof( struct cmscardinfo )  ); 	memset( acOldPassWd, 	0x00,	sizeof( acOldPassWd )         ); 	memset( acNewPassWd, 	0x00,	sizeof( acNewPassWd )         ); 	memset( acCheckFlag,	0x00,	sizeof( acCheckFlag )         ); 	memset( acTrack2,		0x00,	sizeof( acTrack2 ) );	memset( acTrack3,		0x00,	sizeof( acTrack3 ) );	memset( acModFlag,		0x00,	sizeof( acModFlag ) );	/* 取数据字典值 */	getstring( "OldPassWd",		 acOldPassWd 	   ); /*卡密码*/	getstring( "NewPassWd",		 acNewPassWd 	   ); /*卡密码*/	getstring( "CardNo"	  ,		 stCardInfo.cardno ); /*卡号*/	getstring( "Track2",	acTrack2				);	getstring( "Track3",	acTrack3				);	getstring( "Flag1",		acChkTrkFlg				);	getstring( "Flag",		acModFlag				);		/*生成新密码*/	/*使用银行算法*/		/* 获取卡片信息表 */ 	if( pubReadCmscardinfo( &stCardInfo ) ) 	{		if ( SQLCODE == SQLNOTFOUND )			sprintf( g_acRspMsg,"卡号[%s]不存在",stCardInfo.cardno );		ERRLOG		goto Exit;	}				/*置卡状态检查标志*/	acCheckFlag[BIT1_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT2_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT3_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT5_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT6_LEN][BIT1_LEN]=CHECK_YES;	if( !strcmp(pstPubcom->acChannelId,CHANNALID_GUIMIAN)!=0 			&& acModFlag[ BIT1_LEN ] == '1' ) /* 批量发卡启用 */	{		acCheckFlag[BIT7_LEN][BIT1_LEN]=CHECK_NO;		acCheckFlag[BIT7_LEN][BIT2_LEN]=CHECK_YES;	}	else 	{		acCheckFlag[BIT7_LEN][BIT1_LEN]=CHECK_YES;		acCheckFlag[BIT7_LEN][BIT2_LEN]=CHECK_NO;	}	acCheckFlag[BIT8_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT9_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT14_LEN][BIT1_LEN]=CHECK_YES;	/*检查主卡状态是否正常*/	if( cmsApiChkCardStatIsNormal( &stCardInfo, acCheckFlag ) )	{		ERRLOG;		goto Exit;	}	/*判断卡密码是否正确*/	if( cmsApiChkCardPwd( &stCardInfo,acOldPassWd,pstPubcom->acChannelId ) )	{		ERRLOG		goto Exit;	}	/* 检查卡磁道 */	if ( acChkTrkFlg[ BIT1_LEN ] == CHECK_YES )	{		sprintf( g_acTrcMsg, "acTrack2[%s]acTrack3[%s]",acTrack2,acTrack3);		TRCLOG3		/*			iRtn = cmsCardVerify( acTrack2, acTrack3 );			if ( iRtn )			{				strcpy( g_acRspCode, "CMS1D1" );				pubCrtRspInfo( );				ERRLOG				goto Exit;			}			strcpy( g_acTrcMsg, "PubKjy finish " );			TRCLOG1		*/	}	strcpy( cmscardinfo_cardno, stCardInfo.cardno );	sprintf( g_acTrcMsg, "passwd[%s]DB[%s]",acNewPassWd,cmscardinfo_passwd);	TRCLOG3	if ( OverPINBLOCK( acNewPassWd, stCardInfo.cardno, cmscardinfo_passwd ))	{		ERRLOG		goto Exit;	}	if ( acModFlag[ BIT1_LEN ] == '1' ) /* 批量发卡启用 */		cmscardinfo_cardstat[BIT7_LEN]='0';	EXEC SQL	UPDATE	cmscardinfo 				SET		passwd   =:cmscardinfo_passwd,						cardstat = :cmscardinfo_cardstat				WHERE	cardno=:cmscardinfo_cardno;	if( SQLCODE )	{		sprintf(g_acRspMsg,"修改卡片信息表密码错误次数清零错SQLCODE[%d]",SQLCODE);		ERRLOG		sprintf(g_acRspCode,"999997");		pubCrtRspInfo( "cmscardinfo", SQLCODE);		ERRLOG		goto Exit;	}	if( cmsApiInsTranLog( pstPubcom, &stCardInfo, &stAcctM, "改密", "改密" ) )	{		ERRLOG		goto Exit;	}	/* 子交易出口 */ 		strcpy( g_acTrcMsg, "子交易: 密码修改处理子交易结束...");	TRCLOG4Exit:	if( !strcmp( g_acRspCode, RSP_OK ) )		return SUCCESS;	else 		return FAILED ;	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -