reckinfoinput.c

来自「用C 语言开发Tuxedo客户端连接程序」· C语言 代码 · 共 160 行

C
160
字号
#include "stdio.h"#include "string.h"
#include "BankIntf.h"main(int argc,char *argv[]){		int iRet ;
		SBasicInput  sBasicInput;
		SReckInfoInput sReckInfoInput;
		SBasicOutput sBasicOutput;
		
		strcpy(sBasicInput.province_code,"QHAI");
        strcpy(sBasicInput.in_mode_code,"4");
		strcpy(sBasicInput.trade_eparchy_code,argv[6]);
		strcpy(sBasicInput.trade_city_code,"INTF");
        strcpy(sBasicInput.trade_depart_id,"00306");
		strcpy(sBasicInput.trade_staff_id,argv[7]);
        strcpy(sBasicInput.trade_depart_passwd,"0123456789");

		strcpy(sReckInfoInput.channel_code,argv[2]);
        strcpy(sReckInfoInput.start_time,argv[3]);
		strcpy(sReckInfoInput.end_time,argv[4]);
		strcpy(sReckInfoInput.reck_type_code,argv[5]);
		strcpy(sReckInfoInput.eparchy_code,argv[6]);
		tuxputenv("WSNADDR=//135.191.25.225:46500");	
		iRet=fnTReck(&sBasicInput,&sReckInfoInput,&sBasicOutput);
		if (iRet<0)		{			printf("\n[交易执行失败[%d]]\n",iRet);			exit(1);		}
		else
		{
		    printf("%s",argv[1]);  // 5:对帐 1
            printf(";%d",sBasicOutput.x_resultcode);  /*返回结果代码2*/
			printf(";%s",sBasicOutput.x_resultinfo); /*返回结果信息3*/
			printf(";%d",sBasicOutput.x_recordnum); /*返回结果记录数4*/
		
		
			exit(1);
		}			}


 	/*-----------------------------------------------------------------------------
 * Function: fnTReck
 * Purpose : 对帐请求提交
 * Input   :
 *            SBasicInput *                 -- 输入参数,基本输入数据
 *            SReckInfoInput *              -- 输入参数,对帐请求输入数据
 *            SBasicOutput *                -- 输出参数,基本输出数据
 * Return  : 0 成功, -1 失败
 * Remark  :
 * Author   : Luxd
 * Date	    : 2004/07/08
 *-----------------------------------------------------------------------------
 */
 #if defined(__STDC__) || defined(__cplusplus)			
int  fnTReck( SBasicInput * sBasicInput, SReckInfoInput * sReckInfoInput, 
                SBasicOutput * sBasicOutput )
#else    
int  fnTReck( sBasicInput, sReckInfoInput, sBasicOutput)
     SBasicInput * sBasicInput;
     SReckInfoInput * sReckInfoInput;
     SBasicOutput * sBasicOutput;
#endif
{
	
	FBFR *fmlbuf= (FBFR *) NULL;        /* tuxedo服务调用输入输出缓存 */

	int iReturn;
	long lOutLen;
    
    long  xresultcode = 0;                                /*返回结果代码*/
    char  xresultinfo[X_RESULTINFO_LEN] = "\0";           /*返回结果信息*/
    long  xrecordnum = 0;                                 /*返回结果记录数,多行输出时有效*/
    char infotemp[2000];


	/* 建立tuxedo连接 */
    if (tpinit((TPINIT *) NULL) == -1) 
    {
		(void) fprintf(stderr, "Tpinit failed\n");
		return -1;
	}

	fmlbuf = (FBFR *)tpalloc((char *)FMLTYPE, NULL, 4096);
	if (fmlbuf == (FBFR *)NULL)
	{
		tpterm();
		return -1;
	}

	iReturn = Finit(fmlbuf, 4096);

	if(iReturn >= 0)
	{
	    /* 填写tuxedo服务输入数据 */
        iReturn =  
            Fchg(fmlbuf, X_TRANS_CODE,         (FLDOCC)0, (char *)"ITF_INTERFACERECK",              (FLDLEN)0)|
            Fchg(fmlbuf, PROVINCE_CODE,        (FLDOCC)0, (char *)sBasicInput->province_code,       (FLDLEN)0)|
            Fchg(fmlbuf, IN_MODE_CODE,         (FLDOCC)0, (char *)sBasicInput->in_mode_code,        (FLDLEN)0)|
            Fchg(fmlbuf, TRADE_EPARCHY_CODE,   (FLDOCC)0, (char *)sBasicInput->trade_eparchy_code,  (FLDLEN)0)|
            Fchg(fmlbuf, TRADE_CITY_CODE,      (FLDOCC)0, (char *)sBasicInput->trade_city_code,     (FLDLEN)0)|
            Fchg(fmlbuf, TRADE_DEPART_ID,      (FLDOCC)0, (char *)sBasicInput->trade_depart_id,     (FLDLEN)0)|
            Fchg(fmlbuf, TRADE_STAFF_ID,       (FLDOCC)0, (char *)sBasicInput->trade_staff_id,      (FLDLEN)0)|
            Fchg(fmlbuf, TRADE_DEPART_PASSWD,  (FLDOCC)0, (char *)sBasicInput->trade_depart_passwd, (FLDLEN)0);
    }
            
	if (iReturn >= 0)
	{
	    
		iReturn =
			Fchg(fmlbuf, CHANNEL_ID,        (FLDOCC)0, (char *)sReckInfoInput->channel_code,        (FLDLEN)0)|
			Fchg(fmlbuf, START_TIME,        (FLDOCC)0, (char *)sReckInfoInput->start_time,          (FLDLEN)0)|
			Fchg(fmlbuf, END_TIME,          (FLDOCC)0, (char *)sReckInfoInput->end_time,            (FLDLEN)0)|
			Fchg(fmlbuf, RECK_TYPE_CODE,    (FLDOCC)0, (char *)sReckInfoInput->reck_type_code,      (FLDLEN)0)|
            Fchg(fmlbuf, EPARCHY_CODE,      (FLDOCC)0, (char *)sReckInfoInput->eparchy_code,        (FLDLEN)0);
	}

	if (iReturn < 0)
	{
		tpfree((char*)fmlbuf);
		tpterm();
		return -1;
	}
	else
	{
		/* 调用tuxedo服务 */
		iReturn = tpcall("ITF_BKHSVC", (char *)fmlbuf, 0, (char **)&fmlbuf, (long *)&lOutLen, TPNOTRAN);
			
	    if (iReturn >= 0)
	    {
	        /* 取返回数据 */        	
        	Fget(fmlbuf, X_RESULTCODE, (FLDOCC)0, (char *)&xresultcode, (FLDLEN *)NULL);
        	Fget(fmlbuf, X_RESULTINFO, (FLDOCC)0, (char *)infotemp,     (FLDLEN *)NULL);
        	Fget(fmlbuf, X_RECORDNUM,  (FLDOCC)0, (char *)&xrecordnum,  (FLDLEN *)NULL);
        	infotemp[500] = '\0';
        	
        	sBasicOutput->x_resultcode = xresultcode;
        	sprintf(sBasicOutput->x_resultinfo, "%s", infotemp);
        	sBasicOutput->x_recordnum = xrecordnum;
        }
	}

	/* 释放输入、输出缓存,断开tuxedo连接 */
	tpfree((char*)fmlbuf);
	tpterm();

	/* 返回结果 */
	if (iReturn < 0)
	    return -1;

	return 0;
}

⌨️ 快捷键说明

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