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

📄 bank_svr.sqc

📁 转发交易接口
💻 SQC
📖 第 1 页 / 共 2 页
字号:
        	strcpy(snddata, errorMsg);        	SendToBank(rcvSocket, retcode, strlen(snddata), snddata);  	        return;  	}         if(Records <= 0)          {  		if(pc[0] == 0x00)    		{        		EXEC SQL SELECT count(*)   	 	 	 INTO :Records   	 	 	 FROM jqxxmx   	 	 	 WHERE Iss21 = :termno;   	 	}   	 	else  		{        		EXEC SQL SELECT count(*)   	 	 	 INTO :Records   	 	 	 FROM jqxxmx   	 	 	 WHERE Iss21 = :termno and Iss3 = :pc;   	 	}   	 	    		if (sqlca.sqlcode != 0)     		{	            SqlInfoGet(errorMsg, &sqlca);  		    debugLog(__FILE__, __LINE__, "select sql false SQLCODE = [%-d]%s\n", sqlca.sqlcode, errorMsg);        	    retcode = abs(sqlca.sqlcode)%10000;         	    strcpy(snddata, errorMsg);        	    SendToBank(rcvSocket, retcode, strlen(snddata), snddata);  		    return;  		}  	 	if(Records <= 0)  /*没有发现记录返回错误*/   	 	{        	    retcode = 1001;         	    strcpy(snddata, "无该发卡机的库存记录");        	    SendToBank(rcvSocket, retcode, strlen(snddata), snddata);  		    return;   	 	   	 	}        	else        	{        		if(pc[0] == 0x00)        		{        			EXEC SQL SELECT max(Iss3)   	 	 	 	 INTO :pc   	 	 	 	 FROM jqxxmx   	 	 	 	 WHERE Iss21 = :termno; 		   		if (sqlca.sqlcode != 0)    				{            				SqlInfoGet(errorMsg, &sqlca);  	    				debugLog(__FILE__, __LINE__, "select sql false SQLCODE = [%-d]%s\n", sqlca.sqlcode, errorMsg);        	    			retcode = abs(sqlca.sqlcode)%10000;         	    			strcpy(snddata, errorMsg);        	    			SendToBank(rcvSocket, retcode, strlen(snddata), snddata);  	    				return;  				}  				Alltrim(pc);  			}  			EXEC SQL SELECT max(Iss4)   	 	 	 INTO :lsh   	 	 	 FROM jqxxmx   	 	 	 WHERE Iss21 = :termno and Iss3 = :pc; 		   	if (sqlca.sqlcode != 0)     			{            			SqlInfoGet(errorMsg, &sqlca);  	    			debugLog(__FILE__, __LINE__, "select sql false SQLCODE = [%-d]%s\n", sqlca.sqlcode, errorMsg);        	    		retcode = abs(sqlca.sqlcode)%10000;         	    		strcpy(snddata, errorMsg);        	    		SendToBank(rcvSocket, retcode, strlen(snddata), snddata);  	    			return;  			}  			        		EXEC SQL SELECT Iss20, Iss8, Iss11, Iss18, Iss17   	 	 	 INTO :jgh, :gyh, :jkks, :yeks, :hsks   	 	 	 FROM jqxxmx   	 	 	 WHERE Iss21 = :termno and Iss3 = :pc and Iss4 = :lsh; 		   	if (sqlca.sqlcode != 0)     			{            			SqlInfoGet(errorMsg, &sqlca);  	    			debugLog(__FILE__, __LINE__, "select sql false SQLCODE = [%-d]%s\n", sqlca.sqlcode, errorMsg);        	    		retcode = abs(sqlca.sqlcode)%10000;         	    		strcpy(snddata, errorMsg);        	    		SendToBank(rcvSocket, retcode, strlen(snddata), snddata);  	    			return;  			}        	}       	}       	else         	{  		if(pc[0] == 0x00)    		{        		EXEC SQL SELECT count(*)   	 	 	 INTO :Records   	 	 	 FROM dr_jqxxmx   	 	 	 WHERE Iss21 = :termno;   	 	}   	 	else  		{        		EXEC SQL SELECT count(*)   	 	 	 INTO :Records   	 	 	 FROM dr_jqxxmx   	 	 	 WHERE Iss21 = :termno and Iss3 = :pc;   	 	}   	 	    		if (sqlca.sqlcode != 0)     		{	            SqlInfoGet(errorMsg, &sqlca);  		    debugLog(__FILE__, __LINE__, "select sql false SQLCODE = [%-d]%s\n", sqlca.sqlcode, errorMsg);        	    retcode = abs(sqlca.sqlcode)%10000;         	    strcpy(snddata, errorMsg);        	    SendToBank(rcvSocket, retcode, strlen(snddata), snddata);  		    return;  		}  	 	if(Records <= 0)     	 	{        	    retcode = 1001;         	    strcpy(snddata, "无该发卡机的库存记录");        	    SendToBank(rcvSocket, retcode, strlen(snddata), snddata);  		    return;   	 	   	 	}        	        	if(pc[0] == 0x00)        	{        		EXEC SQL SELECT max(Iss3)   	 	  	INTO :pc   	 	  	FROM dr_jqxxmx   	 	  	WHERE Iss21 = :termno;     			if (sqlca.sqlcode != 0)     			{	        	       SqlInfoGet(errorMsg, &sqlca);  		 	       debugLog(__FILE__, __LINE__, "select sql false SQLCODE = [%-d]%s\n", sqlca.sqlcode, errorMsg);        	 	       retcode = abs(sqlca.sqlcode)%10000;         	 	       strcpy(snddata, errorMsg);        	  	       SendToBank(rcvSocket, retcode, strlen(snddata), snddata);  		 	       return;  			}  			Alltrim(pc);  		}  		EXEC SQL SELECT max(Iss4)   	 	 INTO :lsh   	 	 FROM dr_jqxxmx   	 	 WHERE Iss21 = :termno and Iss3 = :pc; 		if (sqlca.sqlcode != 0)     		{            		SqlInfoGet(errorMsg, &sqlca);  	    		debugLog(__FILE__, __LINE__, "select sql false SQLCODE = [%-d]%s\n", sqlca.sqlcode, errorMsg);        	        retcode = abs(sqlca.sqlcode)%10000;         	        strcpy(snddata, errorMsg);        	        SendToBank(rcvSocket, retcode, strlen(snddata), snddata);  	    		return;  		}  		EXEC SQL SELECT Iss20, Iss8, Iss11, Iss18, Iss17   	 	 INTO :jgh, :gyh, :jkks, :yeks, :hsks   	 	 FROM dr_jqxxmx   	 	 WHERE Iss21 = :termno and Iss3 = :pc and Iss4 = :lsh; 		if (sqlca.sqlcode != 0)     		{            		SqlInfoGet(errorMsg, &sqlca);  	    		debugLog(__FILE__, __LINE__, "select sql false SQLCODE = [%-d]%s\n", sqlca.sqlcode, errorMsg);        	        retcode = abs(sqlca.sqlcode)%10000;         	        strcpy(snddata, errorMsg);        	        SendToBank(rcvSocket, retcode, strlen(snddata), snddata);  	    		return;  		}  		       	}  	Alltrim(jgh);  	Alltrim(gyh);  	Alltrim(jkks);  	Alltrim(yeks);  	Alltrim(hsks);  		  	retcode = 0;  	sndlen = 0;  	/*	if(strlen(pc) > 15)  		memcpy(snddata, pc, 15);  	else  		memcpy(snddata, pc, strlen(pc));  	sndlen = sndlen + 15;  	if(strlen(jgh) > 7)  		memcpy(snddata + sndlen, jgh, 7);  	else  		memcpy(snddata + sndlen, jgh, strlen(jgh));  	sndlen = sndlen + 7;		if(strlen(termno) > 7)  		memcpy(snddata + sndlen, termno, 7);  	else  		memcpy(snddata + sndlen, termno, strlen(termno));  	sndlen = sndlen + 7;	//日期	X(8)  	memset(snddata + sndlen, '0', 8);  	sndlen = sndlen + 8;	//时间	X(8)  	memset(snddata + sndlen, '0', 8);  	sndlen = sndlen + 8;	//当前加卡柜员	X(07)  	if(strlen(gyh) > 7)  		memcpy(snddata + sndlen, gyh, 7);  	else  		memcpy(snddata + sndlen, gyh, strlen(gyh));  	sndlen = sndlen + 7;	//初始卡数	9(8)	sprintf(tmpstr, "%08d", atol(jkks));  	memcpy(snddata + sndlen, tmpstr, 8);  	sndlen = sndlen + 8;	//剩余卡数	9(8)	sprintf(tmpstr, "%08d", atol(yeks));  	memcpy(snddata + sndlen, tmpstr, 8);  	sndlen = sndlen + 8;	//回收卡数	9(8)	sprintf(tmpstr, "%08d", atol(hsks));  	memcpy(snddata + sndlen, tmpstr, 8);  	sndlen = sndlen + 8;	//成功发卡	9(8)	sprintf(tmpstr, "%08d", atol(jkks) - atol(hsks));  	memcpy(snddata + sndlen, tmpstr, 8);  	sndlen = sndlen + 8;	//可疑卡数	9(8)	sprintf(tmpstr, "%08d", 0);  	memcpy(snddata + sndlen, tmpstr, 8);  	sndlen = sndlen + 8;  	snddata[sndlen] = 0x00;  		  		*/  		  	SendToBank(rcvSocket, retcode, sndlen, snddata);  			return;  	}int SendToBank(int rcvSocket, int retcode, int datalen, char *sndData){	ANS_HEAD anspack;	int sndLen;	char tmpstr[256];	if(retcode == 0)		anspack.TOAMSGTYPE[0] = 'N';	else		anspack.TOAMSGTYPE[0] = 'E';	memset(&anspack, 0x20, sizeof(ANS_HEAD));	sprintf(tmpstr, "%04d", retcode);	memcpy(anspack.TOAMSGCODE, tmpstr, 4);	memset(anspack.TOACURSPOS, '0', 4);	memset(anspack.TOATMSEQNO, '0', 6);	memset(anspack.TOASUBSTRCODE, '0', 4);	memset(anspack.TOASUBSAPCODE, '0', 2);	memset(anspack.TOATRDATE, '0', 8);	memset(anspack.TOATRTIME, '0', 6);	memset(anspack.TOAACDATE, '0', 8);	memset(anspack.TOAJRNNO, '0', 9);	memset(anspack.TOAPAGEIND, '0', 1);	memset(anspack.TOACOMPIND, '0', 1);	memset(anspack.TOAENCRIND, '0', 1);	memset(anspack.TOATRBR, '0', 6);	anspack.TOAFINFLAG[0] = 'N';	memset(anspack.TOAAUTH, '0', 2);	sprintf(tmpstr, "%04d", datalen);	memcpy(anspack.TOAMSGLEN, tmpstr, 4);	sndLen = sizeof(ANS_HEAD)-4096 + datalen;	sprintf(tmpstr, "%08d", sndLen - 8);	memcpy(anspack.PACKLEN, tmpstr, 4);	memcpy(anspack.TOAOUTPDATA, sndData, datalen);	        if (write(rcvSocket, (unsigned char *)&anspack, sndLen) != sndLen)        {            debugLog(__FILE__, __LINE__, "send ans to bank failed");            close(rcvSocket);            return -1;        }	return 0;}void 	sig_child( ){    	while( waitpid( -1, NULL, WNOHANG ) > 0 ) ;}void	sig_Terminate( ){	kill( getpid(), SIGKILL );	exit( 0 );}

⌨️ 快捷键说明

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