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 + -
显示快捷键?