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

📄 cms551.sqc

📁 一整套完整的银行卡系统源代码
💻 SQC
字号:
/******************************************************************** **   源码文件名称 : cms551.SQC **   所属子系统   : CMS  **   当前文件版本 : 1.0.0.0 **   作者         : UCCB	ALEX **   版本创建日期 : 2004/10/13 **   功能描述     : 卡写磁子交易 **   修改记录     : **   修改人       修改日期     修改位置 **   Feng			2006-01-09  134行*********************************************************************/#include "code.h"#include "attrdef.h"#include "sysdef.h"#include "pubcom.h"#include "errlog.h"#include "cmscode.h"#include "cmscardinfo.h"#include "cmscardkind.h"#include "cmswritem.h"#include "cmscardinitparam.h"#include "cmsacctm.h"EXEC SQL INCLUDE SQLCA;int cmsCardWriteTrackPro( PUBCOM *pstPubcom ){	/*定义局部变量*/	char	acTrack1[TRACK1_LEN+1]	        ;		char	acTrack2[TRACK2_LEN+1]	        ;		char	acTrack3[TRACK3_LEN+1]	        ;		char	acCardCover[200+1]	        ;		char	acPassWd[PASSWD_LEN+1]	        ;	/*密码*/	char	acHappen[PASSWD_LEN+1]	        ;	/*业务发生地*/	char	acCheckFlag[BIT21_LEN][BIT11_LEN];	/*卡状态检查标志*/	int		iNumx,iNumy;	struct	cmscardinfo			stCardInfo;	struct	cmscardkind			stCardKind;	struct	cmswritem			stWriteM;	struct	cmscardinitparam	stCardInitParam;	struct	cmsacctm			stAcctM;	strcpy( g_acTrcMsg, "子交易: 卡写磁子交易开始..." );	TRCLOG4	memset( &stCardInfo,  0x00, sizeof ( struct  cmscardinfo ) ); 	memset( &stCardKind,  0x00, sizeof ( struct  cmscardkind ) ); 	memset( &stWriteM,    0x00, sizeof ( struct  cmswritem   ) ); 	memset( &stCardInitParam, 0x00, sizeof (struct cmscardinitparam) );	memset( &stAcctM,     0x00, sizeof ( struct  cmsacctm    ) ); 	/* 取数据字典值 */	getstring( "CardNo",	stCardInfo.cardno			); /*卡号  */	getstring( "PassWd",	acPassWd      				); /*卡密码*/	strcpy( acHappen    , 	pstPubcom->acChannelId		);/*业务发生地*/			/* 卡检查状态数组除首位外全置为不检查 */	for ( iNumx = 0; iNumx < BIT21_LEN; iNumx ++ )		for ( iNumy = 0; iNumy < BIT11_LEN; iNumy ++ )		{			if ( iNumy == 0 )				acCheckFlag[iNumx][iNumy] = CHECK_YES;			else				acCheckFlag[iNumx][iNumy] = CHECK_NO;		}		/* 获取卡片信息表 */ 	if( pubReadCmscardinfo( &stCardInfo ) ) 	{		if ( SQLCODE == SQLNOTFOUND )			sprintf( g_acRspMsg, "卡号[%s]不存在", stCardInfo.cardno );		ERRLOG		goto Exit;	}		/* 获取卡片种类表 */ 	strcpy( stCardKind.cardkind,	stCardInfo.cardkind	);	if( pubReadCmscardkind( &stCardKind ) ) 	{		if ( SQLCODE == SQLNOTFOUND )			sprintf( g_acRspMsg, "卡片种类[%s]不存在", stCardInfo.cardkind );		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[BIT4_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT5_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT6_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT7_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT8_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT9_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT11_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT13_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT14_LEN][BIT1_LEN]=CHECK_YES;		/*检查卡状态是否正常*/	if( cmsApiChkCardStatIsNormal( &stCardInfo,  acCheckFlag ) )	{		ERRLOG;		goto Exit;	}	strcpy( g_acTrcMsg, "cardstat is end!" );	TRCLOG3	/*判断卡密码是否正确*/		if( cmsApiChkCardPwd( &stCardInfo,acPassWd,acHappen ) )	{		ERRLOG		goto Exit;	}		/* 获取卡片初始化参数表*/	strcpy( stCardInitParam.cardidkind	, stCardKind.cardidkind		);	if( pubReadCmscardinitparam( &stCardInitParam ) )	{		ERRLOG		goto Exit;	}		/*生成磁道信息*/	/* Modify in 2005-01-09 begin 	if( cmsApiGenCardTrackInfo( stCardInfo.cardno, &stCardInitParam, acTrack1, acTrack2, acTrack3 ) )	*/	if( cmsApiGenMakeCardInfo( stCardInfo.cardno, "", "", "", stCardInfo.vouno, &stCardInitParam, acTrack1, acTrack2, acTrack3, acCardCover ) )	/* Modify in 2005-01-09 end */	{		ERRLOG		goto Exit;	}	/*为登记写磁登记簿赋值*/	strcpy( stWriteM.cardno			,	stCardInfo.cardno			);	strcpy( stWriteM.writedate 		,	pstPubcom->acTranDate		);	stWriteM.serseqno=pstPubcom->lSerSeqNo;	sprintf( stWriteM.vouchno,"%s%08d",pstPubcom->acTranDate8,pstPubcom->lSerSeqNo );	getstring( "IdType"		,		stWriteM.idtype		);	getstring( "IdNo"		,		stWriteM.idcode		);	getstring( "CustName"	,		stWriteM.custname	);	strcpy( stWriteM.issuebrc  		,	stCardInfo.issuebrc 		);	strcpy( stWriteM.teller			,	stCardInfo.teller	  		);	strcpy( stWriteM.cardkind		,	stCardInfo.cardkind 		);	strcpy( stWriteM.writeteller	,	pstPubcom->acTeller  		);	strcpy( stWriteM.writeauthteller,	pstPubcom->acAteller  		);	strcpy( stWriteM.writebrc  		,	pstPubcom->acBrc      		);	getstring( "Reason"				,	stWriteM.reason				);	/*登记卡写磁登记簿*/	if( pubInstCmswritem( &stWriteM ) )	{		ERRLOG		goto Exit;	}	if( cmsApiInsTranLog( pstPubcom, &stCardInfo, &stAcctM, "写磁", "卡写磁" ) )	{		ERRLOG		goto Exit;	}	/* 子交易出口 */ 	strcpy( g_acTrcMsg, "Track2[%s]Track3[%s]" , acTrack2, acTrack3 );	TRCLOG3	setstring( "Track2", acTrack2 );	setstring( "Track3", acTrack3 );		strcpy( g_acTrcMsg, "子交易: 卡写磁结束.." );	TRCLOG4Exit:	if( !strcmp( g_acRspCode, RSP_OK ) )		return SUCCESS;	else 		return FAILED ;}

⌨️ 快捷键说明

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