📄 recvfee.c
字号:
#include "stdio.h"#include "string.h"
#include "BankIntf.h"main(int argc,char *argv[]){ int iRet ;
int i;
SBasicInput sBasicInput;
SRecvFeeInput sRecvFeeInput;
SBasicOutput sBasicOutput;
SRecvFeeOutput recvFeeOutput;
SRecvFeeDetailBillInfo sRecvFeeDetailBillInfo[50];
strcpy(sBasicInput.province_code,"QHAI");
strcpy(sBasicInput.in_mode_code,"D");
strcpy(sBasicInput.trade_eparchy_code,"0898");
strcpy(sBasicInput.trade_city_code,argv[6]);
strcpy(sBasicInput.trade_depart_id,"99330");
strcpy(sBasicInput.trade_staff_id,argv[7]);
strcpy(sBasicInput.trade_depart_passwd,"0123456789");
strcpy(sRecvFeeInput.serial_number,argv[2]);
strcpy(sRecvFeeInput.writeoff_mode,"1");
strcpy(sRecvFeeInput.recover_tag,"1");
strcpy(sRecvFeeInput.x_fpay_fee,argv[3]);
strcpy(sRecvFeeInput.remove_tag,"0");
strcpy(sRecvFeeInput.channel_trade_id,argv[5]);
strcpy(sRecvFeeInput.channel_accept_time,argv[4]);
//memset((char *)&sBasicInput,0,sizeof(sBasicInput));
//memset((char *)&sBasicOutput,0,sizeof(sBasicOutput)); tuxputenv("WSNADDR=//135.191.25.225:46500");
iRet=fnTRecvFee(&sBasicInput,&sRecvFeeInput,&sBasicOutput,&recvFeeOutput,sRecvFeeDetailBillInfo);
if (iRet<0) { printf("\n[交易执行失败[%d]]\n",iRet); exit(1); }
else
{
printf("%s",argv[1]); // 2:交费
printf(";%d",sBasicOutput.x_resultcode); /*返回结果代码*/
printf(";%s",sBasicOutput.x_resultinfo); /*返回结果信息*/
printf(";%d",sBasicOutput.x_recordnum); /*返回结果记录数*/
printf(";%s",recvFeeOutput.serial_number); /*用户号码*/
printf(";%s",recvFeeOutput.pay_name); /*客户名*/
printf(";%s",recvFeeOutput.brand);/*用户品牌*/
printf(";%s",recvFeeOutput.last_balance); /*上月节余*/
printf(";%s",recvFeeOutput.total_fee); /*上月费用*/
printf(";%s",recvFeeOutput.allrowe_fee); /*本月费用*/
printf(";%s",recvFeeOutput.recv_fee); /*本次缴纳 小写*/
printf(";%s",recvFeeOutput.x_remark1); /*本次缴纳 大写*/
printf(";%s",recvFeeOutput.all_new_money); /*交费后预存款*/
printf(";%s",recvFeeOutput.all_new_balance); /*本次节余*/
printf(";%s",recvFeeOutput.charge_id); /*缴费流水*/
printf(";%s",recvFeeOutput.recv_time); /*缴费时间*/
printf(";%s",recvFeeOutput.recv_staff_id); /*收费员工*/
printf(";%s",recvFeeOutput.user_id); /*用户标识*/
printf(";%d",recvFeeOutput.records); /*明细费用项个数*/
for (i=0;i<recvFeeOutput.records;i++)
{
printf(";%d",sRecvFeeDetailBillInfo[i].integrate_item_code); /*综合帐目编码*/
printf(";%s",sRecvFeeDetailBillInfo[i].integrate_item); /*综合帐目名称*/
printf(";%s",sRecvFeeDetailBillInfo[i].fee); /*帐目金额*/
}
exit(1);
} }
/*-----------------------------------------------------------------------------
* Function: fnTRecvFee
* Purpose : 正常收费收费提交
* Input :
* SBasicInput * -- 输入参数,基本输入数据
* SRecvFeeInput * -- 输入参数,提交数据:用户实际缴纳金额/用户交费方式
* SBasicOutput * -- 输出参数,基本输出数据
* SRecvFeeOutput * -- 输出参数,缴费返回数据
* sRecvFeeDetailBillInfo[50] -- 输出参数,帐单明细信息
* Return : 0 成功, -1 失败
* Remark :
* Author : Luxd
* Date : 2004/07/07
*-----------------------------------------------------------------------------
*/
#if defined(__STDC__) || defined(__cplusplus)
int fnTRecvFee(SBasicInput * sBasicInput, SRecvFeeInput * sRecvFeeInput,
SBasicOutput * sBasicOutput, SRecvFeeOutput * sRecvFeeOutput,
SRecvFeeDetailBillInfo sRecvFeeDetailBillInfo[50])
#else
int fnTRecvFee( sBasicInput, sRecvFeeInput, sBasicOutput, sRecvFeeOutput, sRecvFeeDetailBillInfo )
SBasicInput * sBasicInput;
SRecvFeeInput * sRecvFeeInput;
SBasicOutput * sBasicOutput;
SRecvFeeOutput * sRecvFeeOutput;
SRecvFeeDetailBillInfo sRecvFeeDetailBillInfo[50];
#endif
{
FBFR *fmlbuf= (FBFR *) NULL; /* tuxedo服务调用输入输出缓存 */
int iReturn, i;
long lOutLen;
char serialnumber[SERIAL_NUMBER_LEN] = "\0"; /*用户号码*/
char payname[PAY_NAME_LEN] = "\0"; /*客户名*/
char brand[BRAND_LEN] = "\0"; /*用户品牌*/
char lastbalance[LAST_BALANCE_LEN] = "\0"; /*上月节余*/
char totalfee[TOTAL_FEE_LEN] = "\0"; /*上月费用*/
char allrowefee[ALLROWE_FEE_LEN] = "\0"; /*本月费用*/
char recvfee[RECV_FEE_LEN] = "\0"; /*本次缴纳 小写*/
char xremark1[X_REMARK_LEN] = "\0"; /*本次缴纳 大写*/
char allnewmoney[ALL_NEW_MONEY_LEN] = "\0"; /*本月缴纳*/
char allnewbalance[ALL_NEW_BALANCE_LEN] = "\0"; /*本次节余*/
char chargeid[CHARGE_ID_LEN] = "\0"; /*缴费流水*/
char recvtime[RECV_TIME_LEN] = "\0"; /*缴费时间*/
char recvstaffid[RECV_STAFF_ID_LEN] = "\0"; /*收费员工*/
char userid[USER_ID_LEN] = "\0"; /*用户标识*/
long lResultrecord = 0; /*明细费用项个数*/
long integrateitemcode = 0; /*综合帐目编码*/
char integrateitem[INTEGRATE_ITEM_LEN] = "\0"; /*综合帐目名称*/
char fee[RECV_FEE_LEN] = "\0"; /*帐目金额*/
long xresultcode = 0; /*返回结果代码*/
char xresultinfo[X_RESULTINFO_LEN] = "\0"; /*返回结果信息*/
long xrecordnum = 0; /*返回结果记录数,多行输出时有效*/
char infotemp[2000];
long chargesourcecode = 37;
long payfeemodecode=17;
/* 建立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 -2;
}
iReturn = Finit(fmlbuf, 4096);
if(iReturn >= 0)
{
/* 填写tuxedo服务输入数据 */
if(strcmp(sBasicInput->trade_staff_id, "ITFUA000") ==0)
iReturn =
Fchg(fmlbuf, X_TRANS_CODE, (FLDOCC)0, (char *)"ITF_BKHT_RECVFEE", (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);
else
iReturn =
Fchg(fmlbuf, X_TRANS_CODE, (FLDOCC)0, (char *)"ITF_BKHT_RECVFEE_BANK", (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, SERIAL_NUMBER, (FLDOCC)0, (char *)sRecvFeeInput->serial_number, (FLDLEN)0)|
Fchg(fmlbuf, WRITEOFF_MODE, (FLDOCC)0, (char *)sRecvFeeInput->writeoff_mode, (FLDLEN)0)|
Fchg(fmlbuf, REMOVE_TAG, (FLDOCC)0, (char *)sRecvFeeInput->remove_tag, (FLDLEN)0)|
Fchg(fmlbuf, RECOVER_TAG, (FLDOCC)0, (char *)sRecvFeeInput->recover_tag, (FLDLEN)0)|
Fchg(fmlbuf, X_FPAY_FEE, (FLDOCC)0, (char *)sRecvFeeInput->x_fpay_fee, (FLDLEN)0)|
Fchg(fmlbuf, CHARGE_SOURCE_CODE, (FLDOCC)0, (char *)&chargesourcecode, (FLDLEN)0)|
Fchg(fmlbuf, PAY_FEE_MODE_CODE, (FLDOCC)0, (char *)&payfeemodecode, (FLDLEN)0)|
Fchg(fmlbuf, CHANNEL_TRADE_ID, (FLDOCC)0, (char *)sRecvFeeInput->channel_trade_id, (FLDLEN)0)|
Fchg(fmlbuf, CHANNEL_ACCEPT_TIME, (FLDOCC)0, (char *)sRecvFeeInput->channel_accept_time, (FLDLEN)0);
}
if (iReturn < 0)
{
tpfree((char*)fmlbuf);
tpterm();
return -3;
}
else
{
/* 调用tuxedo服务 */
iReturn = tpcall("ITF_BKHSVC", (char *)fmlbuf, 0, (char **)&fmlbuf, (long *)&lOutLen, TPNOTRAN);
/* 取返回数据 */
if (iReturn >= 0)
{
/* 取发票数据 */
Fget(fmlbuf, SERIAL_NUMBER, (FLDOCC)0, (char *)serialnumber, (FLDLEN *)NULL);
Fget(fmlbuf, PAY_NAME, (FLDOCC)0, (char *)payname, (FLDLEN *)NULL);
Fget(fmlbuf, BRAND, (FLDOCC)0, (char *)brand, (FLDLEN *)NULL);
Fget(fmlbuf, LAST_BALANCE, (FLDOCC)0, (char *)lastbalance, (FLDLEN *)NULL);
Fget(fmlbuf, TOTAL_FEE, (FLDOCC)0, (char *)totalfee, (FLDLEN *)NULL);
Fget(fmlbuf, ALLROWE_FEE, (FLDOCC)0, (char *)allrowefee, (FLDLEN *)NULL);
Fget(fmlbuf, RECV_FEE, (FLDOCC)0, (char *)recvfee, (FLDLEN *)NULL);
Fget(fmlbuf, X_REMARK1, (FLDOCC)0, (char *)xremark1, (FLDLEN *)NULL);
Fget(fmlbuf, ALL_NEW_MONEY, (FLDOCC)0, (char *)allnewmoney, (FLDLEN *)NULL);
Fget(fmlbuf, ALL_NEW_BALANCE, (FLDOCC)0, (char *)allnewbalance, (FLDLEN *)NULL);
Fget(fmlbuf, CHARGE_ID, (FLDOCC)0, (char *)chargeid, (FLDLEN *)NULL);
Fget(fmlbuf, RECV_TIME, (FLDOCC)0, (char *)recvtime, (FLDLEN *)NULL);
Fget(fmlbuf, RECV_STAFF_ID, (FLDOCC)0, (char *)recvstaffid, (FLDLEN *)NULL);
Fget(fmlbuf, USER_ID, (FLDOCC)0, (char *)userid, (FLDLEN *)NULL);
Fget(fmlbuf, X_RECORDNUM, (FLDOCC)0, (char *)&lResultrecord, (FLDLEN *)NULL);
sprintf(sRecvFeeOutput->serial_number, "%s", serialnumber);
sprintf(sRecvFeeOutput->pay_name, "%s", payname);
sprintf(sRecvFeeOutput->brand, "%s", brand);
sprintf(sRecvFeeOutput->last_balance, "%s", lastbalance);
sprintf(sRecvFeeOutput->total_fee, "%s", totalfee);
sprintf(sRecvFeeOutput->allrowe_fee, "%s", allrowefee);
sprintf(sRecvFeeOutput->recv_fee, "%s", recvfee);
sprintf(sRecvFeeOutput->x_remark1, "%s", xremark1);
sprintf(sRecvFeeOutput->all_new_money, "%s", allnewmoney);
sprintf(sRecvFeeOutput->all_new_balance,"%s", allnewbalance);
sprintf(sRecvFeeOutput->charge_id, "%s", chargeid);
sprintf(sRecvFeeOutput->recv_time, "%s", recvtime);
sprintf(sRecvFeeOutput->recv_staff_id, "%s", recvstaffid);
sprintf(sRecvFeeOutput->user_id, "%s", userid);
sRecvFeeOutput->records = lResultrecord;
/* 发票打印明细费用项数据 */
for(i = 0; i < lResultrecord; i++)
{
Fget(fmlbuf, INTEGRATE_ITEM_CODE, (FLDOCC)i, (char *)&integrateitemcode, (FLDLEN *)NULL);
Fget(fmlbuf, INTEGRATE_ITEM, (FLDOCC)i, (char *)integrateitem, (FLDLEN *)NULL);
Fget(fmlbuf, FEE, (FLDOCC)i, (char *)fee, (FLDLEN *)NULL);
sRecvFeeDetailBillInfo[i].integrate_item_code = integrateitemcode;
sprintf(sRecvFeeDetailBillInfo[i].integrate_item, "%s", integrateitem);
sprintf(sRecvFeeDetailBillInfo[i].fee, "%s", fee);
}
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -