📄 svrdef.hpp
字号:
/* 小额批量支付系统MBFE*/#ifndef __SvrDef__#define __SvrDef__#include <strings.h>#include <sys/socket.h>#include <arpa/inet.h>#include <netinet/in.h>#include <math.h>#include "sybdblib.hpp"//转换标志 CNAPS MB#define CNAPS 0#define MB 1#undef BOOL#undef TRUE#undef FALSE#include "common.hpp"//长度定义#define MAINCTLLEN 20 //服务进 程名称长度#define MAXCMTLEN 28*1024 //报文最大长度#define MAXPKGLEN 64*1024 //DBLIBRAY最大处理报文字节数#define MAINCTLCNT 9 //作为SO CKET客户端的主控服务程序的数量#define MAXINFOLEN 1024 //最大信息字节数#define ONEREADLEN 128 //一次从BUFFER读取字节数量#define MAX_PKG_LEN 28*1024 //包最大长度#define MONTIM 30 //监控组包时间间隔#define SENDCOUNT 3 //发送次数//序号类型定义#define DATAID "0" //大文本数据索引号#define CISID "1" //CIS数据索引#define MBFEID "2" //MBFE数据索引#define CISRID "3" //CIS回执数据索引#define MBFERID "4" //MBFE回执数据索引#define TRXNO "5" //交易序号//处理状态标志定义#define PKGDATA_NO "0" //处理标志 0-未处理#define PKGDATA_SUCCESS "1" //处理标志 1-已处理#define PKGDATA_FAILED "2" //处理标志 2-处理失败#define PKGDATA_MB "0" //数据类型 0-转换后报文#define PKGDATA_PKG "0" //数据类型 1-PKG报文#define PKGDATA_SEND "0" //往来标志 0-往报#define PKGDATA_RECV "1" //往来标志 1-来报#define PKGDATA_CANC "3" //往来标志 3-已撤消#define PKGDATA_NPL "8" //往来标志 8-待销记#define PKGDATA_CPL "9" //往来标志 9-已销记//CIS处理状态标志定义#define CIS_NO "00" //未处理#define AUTOCHK_SUC "01" //自动验印成功#define AUTOCHK_FAL "02" //自动验印失败转手工验印#define MANCHK_SUC "03" //手工验印成功#define MANCHK_FAL "04" //手工验印失败#define FINCHK_SUC "05" //审票成功#define FINCHK_FAL "06" //审票失败#define PACK_NO "10" //往报未组包#define PACK_FAL "11" //往报组包失败#define SEND_NO "12" //往报已组包未发送#define SEND_FAL "13" //往报发送失败#define SEND_SUC "14" //往报已发送#define SEND_OK "15" //往报已回执//来往标志定义#define CISOUT "0" //CIS往报#define CISIN "1" //CIS来报//业务类型标志定义#define MBFETOCIS 0 //截留转回执#define CISTOMBFE 1 //回执转截留//系统参数定义#define WKDATE "01" //当前工作日期#define AMTLMT "02" //金额上限#define BANKNO "03" //发起清算行#define CISNO "04" //当前系统状态#define STATUS "05" //票据交换机构号#define PKGTAIL "{C:kkkkkkkkkk }" //包尾//数据库表定义#define T_PKGDATA "CISPKGDATA" //大文本数据存储表#define T_CISDATA "CISDATA" //支票截留报文存储表#define T_MBFEDATA "MBFEDATA" //普通借记登记表#define T_CISRETURN "CISRETURN" //CIS回执业务处理表#define T_MBFERE "MBFERE" //普通回执业务处理表 typedef struct{ char m_sBankCode[13]; //发起行号或发起清算行号或工作日期(yyyymmdd) char m_sTableName[30]; //数据表名 char m_sFieldName[30]; //字段名称 int m_nSerialNoVal; //序列序号} TrxsSerialNo; ////业务序列序号结构 typedef struct{ char sBankCode[13]; // 参与行号 char sBankName[61]; // 参与名称 char sNBCityCode[5]; // 参与行所在的城市代码 char sSapBkCode[13]; // 清算行号 char sSapBkName[61]; // 清算行名称 char sCcpcCode[5]; // CCPC号码 char sSBCityCode[5]; // 清算行所在的城市代码} BankInfo; //行号基本信息结构typedef struct{ char VerId[1+1]; //版本识别码 char MsgLen[6+1]; //报文长度 char AppTradeCode[1+1]; //子系统识别 char CMT_No[3+1]; //报文类型 char reserv[4+1]; //预留 char StartAddr[12+1]; //源地址 char DestAddr[12+1]; //目的地址 char MesgPurp[1+1]; //报文用途 char OutForm[1+1]; //输出识别 char MesgID[20+1]; //报文标识号 char MesgReqNo[20+1]; //报文参考号 char WorkDate[8+1]; //工作日期 char SentTime[14+1]; //发送时间 char ExpTime[4+1]; //有效时间 char DelTime[6+1]; //提交时间 char MesgPri[1+1]; //信息优先级 char Reserve[20+1]; //预留}MsgHeader;//报文头结构typedef struct{ int nDataIdx; //数据索引号 char WorkDate[9]; //工作日期 char CmtNo[4]; //报文类型 char PkgNo[9]; //批量包号CMT类为支付交易序号 char SendBank[13]; //发起行 char RecvBank[13]; //接收行 char ChkStatus[3]; //核炎标志 char RsFlag[2]; //往来标志 0-往报 1-来报 char DoFlag[2]; //处理标志 0-未处理 1-已处理 2-处理失败 char CnapsData[MAXPKGLEN]; //报体内容 CNAPS}PkgData;//大文本数据存储结构typedef struct{ int nCnapsIdx; //数据索引号 int nDataIdx; //数据索引号 char WorkDate[9]; //工作日期 char CmtNo[4]; //报文类型 char PkgNo[9]; //包序号,匹配CNAPS包与拆分后报文 char RsFlag[2]; //往来标志0-往报 1-来报 char DoFlag[2]; //处理标志 0-未处理 1-已处理 2-处理失败 char MsgData[MAXCMTLEN]; //报体内容 MB char CnapsData[MAXCMTLEN]; //报体内容 CNAPS}PkgCmt;//大文本数据存储结构typedef struct{ char OprNo[10+1]; //工作日期 char WorkDate[9]; //工作日期 char SendBank[13]; //发起清算行 char RecvBank[13]; //接收清算行 char TrxNo[9]; //支付交易序号 char AccKind[3]; //支票种类 char AccDate[9]; //提示付款日期 char PicFrt[30]; //正面影象 char PicBck[30]; //反面影象}MainInfo;//业务要素typedef struct{ int MbfeIdx; int CisIdx; char doflag[2+1]; //处理标志 char rsflag[1+1]; //来往标志 char PkgType[3+1]; //包类型号 char ISDfiCode[12+1]; //发起清算行号 char OSDfiCode[12+1]; //接收清算行号 char RtnLimted[8+1]; //回执期限 char PkgPreDate[8+1]; //包委托日期 char PkgSerNo[8+1]; //包序号 char RNTurnDate[8+1]; //转发日期 char PkgExpData[64+1]; //包附加数据 char TrxsType[5+1]; //业务类型号 char IDfiCode[12+1]; //发起行号 char ODfiCode[12+1]; //接收行号 char PreDate[8+1]; //委托日期 char TrxNo[8+1]; //支付交易序号 char MEYSYB[3+1]; //货币符号 char Amount[15+1]; //金额 char PayerBKCD[12+1]; //付款人开户行行号 char PayerACC[32+1]; //付款人账号 char PayerName[60+1]; //付款人姓名 char PayerAddr[60+1]; //付款人地址 char RecverBKCD[12+1]; //收款人开户行 char RecverACC[32+1]; //收款人账号 char RecverName[60+1]; //收款人名称 char RecverAddr[60+1]; //收款人地址 char OprtType[12+1]; //业务种类 char RtnInfo[60+1]; //退汇附言 char ExpDataLen[8+1]; //附加数据长度 char ExpType[1+1]; //附加数据类型 char ChkDate[8+1]; //出票日期 char AccNo[12+1]; //票据号码 char Info[60+1]; //用途 char RedoCount[2+1]; //背书次数 char RedoInfo[1000+1]; //背书人清单 char RedoInfo1[60+1]; //背书人名称 char ChkModel[2+1]; //校验模式 char ChkPsw[512+1]; //校验密码 char MbfeData[4096+1]; //MBFE报文数据 char TagData[4096+1]; //TAG值数据}MBFEDATA;//支付系统业务明细typedef struct{ int CisIdx; int MbfeIdx; char doflag[2+1]; //处理标志 char rsflag[1+1]; //来往标志 char OprNo[10+1]; //柜员号 char PkgType[3+1]; //包类型号 char TrxsType[5+1]; //业务类型号 char PreDate[8+1]; //委托日期 char TrxNo[8+1]; //交易序号 char RecverBKCD[12+1]; //收款人开户行 char RecverACC[32+1]; //收款人账号 char RecverName[60+1]; //收款人名称 char PayerBKCD[12+1]; //付款人开户行行 char PayerACC[32+1]; //付款人账号 char PayerName[60+1]; //收款人名称 char MEYSYB[3+1]; //货币符号 char Amount[15+1]; //金额 char AccKind[2+1]; //支票种类 char AccNo[12+1]; //票据号码 char ChkDate[8+1]; //出票日期 char AccDate[8+1]; //提示付款日期 char AccPsw[20+1]; //支付密码 char Info[60+1]; //用途 char Remark[120+1]; //备注 char SysDate[8+1]; //系统受理日期 char RtnLimted[8+1]; //回执期限 char SRCFlag[1+1]; //补发标志 char ChkSatus[2+1]; //核签状态 char PicFront[29+1]; //正面图像 char PicBack[29+1]; //背面图像 char SignInfo[1800+1]; //数字签名 char RedoCount[2+1]; //背书次数 char RedoInfo[1000+1]; //背书人清单 char CisData[4096+1]; //CIS报文数据 char TagData[4096+1]; //TAG值数据}CISDATA;//支票截留业务明细typedef struct{ int CisIdx; int MbfeIdx; char doflag[2+1]; char rsflag[1+1]; char PkgType[3+1]; //包类型号 char ISDfiCode[12+1]; //发起清算行号 char OSDfiCode[12+1]; //接收清算行号 char PkgPreDate[8+1]; //包委托日期 char PkgSerNo[8+1]; //包序号 char RollNet[1+1]; //轧差节点 char RollDate[8+1]; //轧差日期 char RollNo[2+1]; //轧差场次 char SRCFlag[1+1]; //补发标志 char SapsDate[8+1]; //清算日期 char ProcState[2+1]; //处理状态 char PkgExpData[64+1]; //包附加数据 char OrgPkgType[3+1]; //原包类型号 char OrgPkgISDfiCode[12+1]; //原包发起清算行号 char OrgPkgPreDate[8+1]; //原包委托日期 char OrgPkgSerNo[8+1]; //原包序号 char PreDate[8+1]; //委托日期 char TrxNo[8+1]; //支付交易序号 char OrgTrxType[5+1]; //原业务类型号 char OrgOdfiCode[12+1]; //原发起行行号 char OrgRdfiCode[12+1]; //原接收行行号 char OrgPreDate[8+1]; //原委托日期
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -