




已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 石家莊商石家莊商業(yè)銀業(yè)銀行行 現(xiàn)現(xiàn)代化支付接口系代化支付接口系統(tǒng)統(tǒng) 詳詳 細(xì)細(xì) 設(shè)設(shè) 計(jì)計(jì) 上海上海華騰軟華騰軟件系件系統(tǒng)統(tǒng)有限公司有限公司 2003 年年 5 月月 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 石石 家家 莊莊 商商 業(yè)業(yè) 銀銀 行行 現(xiàn)代化支付接口系統(tǒng)現(xiàn)代化支付接口系統(tǒng) 詳細(xì)設(shè)計(jì)文檔詳細(xì)設(shè)計(jì)文檔 文檔異動(dòng)歷史文檔異動(dòng)歷史 版本號(hào)版本號(hào)日期日期說(shuō)明說(shuō)明作者作者/審閱審閱 V 1.02003/05/19初稿陳亮 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司I 目目 錄錄 1引用標(biāo)準(zhǔn)系統(tǒng)框架引用標(biāo)準(zhǔn)系統(tǒng)框架.4 1.1系統(tǒng)結(jié)構(gòu)圖.4 1.2外部接口.4 1.2.1CNAPS接口.4 1.2.2帳務(wù)主機(jī)接口.4 1.2.3本系統(tǒng)內(nèi)部接口.5 2交換處理摸塊交換處理摸塊 SWITCH.6 2.1SWITCH 模塊的功能 6 2.2SWITCH 模塊與其他模塊的關(guān)系 6 2.3SWITCH 模塊交易處理流程.7 2.4SWITCH 模塊程序設(shè)計(jì)說(shuō)明 8 2.4.1main()8 2.4.2InitSwitch ().9 2.4.3HandleMbfeReqMsg ()10 2.4.4HandleMbfeRspMsg ()10 2.4.5HandleHostReqMsg ().11 2.4.6HandleHostRspMsg ().11 2.4.7HandleTOCTLMsg().12 2.4.8ReplyFromMbfe ().13 2.4.9Send2FromMbfe().13 2.4.10Send2ToMbfe()14 2.4.11Send2FromHost()14 2.4.12Send2ToHost() 15 2.4.13Send2TO().15 2.4.14UpdateTable().16 2.4.15SelectTable() .17 2.4.16InsertTxnMon () 17 2.4.17InsertRvslTable().18 2.4.18DeleteRvslTable()18 2.4.19Txn_Process () 19 2.4.20MakePgHead()19 2.4.21MakeBaYwHead().20 2.4.22MakeYwHead()21 2.4.23CheckDulplicatedTxn ()21 2.4.24GetdbSysMain () .22 2.4.25cmtXXX_req_in () .22 2.4.26cmtXXX_req_out () .23 2.5接口及其數(shù)據(jù)結(jié)構(gòu).23 2.5.1與MBFECOMM模塊23 2.5.2與HOSTCOMM模塊23 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司II 2.5.3與TOCTL模塊24 2.5.4與SFDSVR模塊24 2.6相關(guān)數(shù)據(jù)庫(kù)表.24 2.6.1TBL_TXNMON 表.24 2.6.2TBL_FWDMSG 表24 2.6.3TBL_SYSMAIN 表.24 3超時(shí)控制摸塊超時(shí)控制摸塊 TOCTL26 3.1TOCTL 模塊的功能.26 3.2TOCTL 模塊與其他模塊的關(guān)系.26 3.3TOCTL 模塊處理流程.26 3.4TOCTL 模塊程序設(shè)計(jì)說(shuō)明.27 3.4.1main()27 3.4.2GetSSN()28 3.4.3HandleRequest ().29 3.4.4CalcTimeElapsed ().29 3.4.5ToRelease ().30 3.4.6HandleTickOut ().31 3.5接口及其數(shù)據(jù)結(jié)構(gòu).31 3.5.1與SWITCH模塊31 3.6相關(guān)數(shù)據(jù)庫(kù)表.31 4存儲(chǔ)轉(zhuǎn)發(fā)摸塊存儲(chǔ)轉(zhuǎn)發(fā)摸塊 SFDSVR32 4.1SFDSVR 模塊的功能.32 4.2SFDSVR 模塊與其他模塊的關(guān)系.32 4.3SFDSVR 模塊處理流程.33 4.4SFDSVR 模塊程序設(shè)計(jì)說(shuō)明.33 4.4.1main()33 4.4.2InitSaveForward()34 4.4.3SaveForward()34 4.4.4HandleReversalMsg ()35 4.4.5HandleErrorMsg() .36 4.4.6Send2ToMbfe ().36 4.4.7Send2ToHost() 37 4.5接口及其數(shù)據(jù)結(jié)構(gòu).37 4.5.1與MBFECOMM模塊37 4.5.2與HOSTCOMM模塊37 4.6相關(guān)數(shù)據(jù)庫(kù)表.37 4.6.1TBL_TXNMON 表.37 4.6.2TBL_FWDMSG 表37 5CNAPS 的的 TAG 報(bào)文格式轉(zhuǎn)換函數(shù)庫(kù)報(bào)文格式轉(zhuǎn)換函數(shù)庫(kù) CONVERT(LIBCONV.A)38 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司III 5.1CONVERT 函數(shù)庫(kù)的主要功能.38 5.2CONVERT 函數(shù)庫(kù)的轉(zhuǎn)換規(guī)則描述.38 5.3調(diào)用關(guān)系.38 5.4CONVERT 函數(shù)接口.38 5.4.1ConvInit()38 5.4.2ConvInToOut()39 5.4.3ConvOutToIn()40 5.5相關(guān)數(shù)據(jù)庫(kù)表.40 5.5.1TBL_CONVRULE 表40 6數(shù)據(jù)庫(kù)操作程序庫(kù)數(shù)據(jù)庫(kù)操作程序庫(kù) DATABASE ROUTINE(LIBDB.A)41 6.1DATABASE ROUTINE 函數(shù)庫(kù)的主要功能41 6.2函數(shù)接口.41 6.2.1ConnectDatabase () 41 6.2.2DisconnectDatabase().41 6.2.3InsertTable()42 6.2.4ClearTable()42 6.2.5DeleteRecord()42 6.2.6Select() 43 6.2.7SelectRecord().45 6.2.8UpdateRecord().45 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司4 1 1引用標(biāo)準(zhǔn)系統(tǒng)框架引用標(biāo)準(zhǔn)系統(tǒng)框架 1.11.1系統(tǒng)結(jié)構(gòu)圖系統(tǒng)結(jié)構(gòu)圖 CNAPS(MBFE) HOST SWITCH TOCTL SFDSVR MBFECOMM DB HOST COMM 接口系統(tǒng) SYNCOMM TCP/IP API CONSOLE ODBC 1.21.2外部接口外部接口 1.2.11.2.1CNAPSCNAPS 接口接口 本系統(tǒng)與 CNAPS 的通訊采用 CALL API 方式。 接口報(bào)文參照中國(guó)現(xiàn)代化支付系統(tǒng)技術(shù)規(guī)范的接口說(shuō)明。 1.2.21.2.2帳務(wù)主機(jī)接口帳務(wù)主機(jī)接口 本系統(tǒng)與帳務(wù)主機(jī)的通訊采用中間件 TCP/IP 連接。 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司5 接口報(bào)文參照商行 TITA/TOTA 的接口說(shuō)明。 1.2.31.2.3本系統(tǒng)內(nèi)部接口本系統(tǒng)內(nèi)部接口 1.2.3.1 CMT 交易報(bào)頭信息 IPCPgHeadDef KBIAOS3塊標(biāo)識(shí) BWENCHDU6報(bào)文長(zhǎng)度 BWENYTU報(bào)文用途 LAIWBIAOJ來(lái)往標(biāo)記 YWULX業(yè)務(wù)類型 YWUZTM3業(yè)務(wù)狀態(tài)碼 BWENBIAOSH8報(bào)文標(biāo)識(shí)號(hào) BWENCKAOH20報(bào)文參考號(hào) FASSHIJ14報(bào)文發(fā)送時(shí)間 CMTHAOM3CMT 交易號(hào)碼 GZUORQ8工作日期 JIESBIAOS塊結(jié)束標(biāo)識(shí) 1.2.3.2 CMT 交易批量業(yè)務(wù)頭信息 IPCBaYwHeadDef KBIAOS3塊標(biāo)識(shí) LAIZJJIBIS10來(lái)帳借記筆數(shù) LAIZDJIBIS10來(lái)帳貸記筆數(shù) WANGZJJIBIS10往帳借記筆數(shù) WANGZDJIBIS10往帳貸記筆數(shù) JIESBIAOS塊結(jié)束標(biāo)識(shí) 1.2.3.3 CMT 交易業(yè)務(wù)頭信息 IPCYwHeadDef KBIAOS3塊標(biāo)識(shí) CMTHAOM3CMT 交易號(hào)碼 ZHFUYOUXJ支付優(yōu)先級(jí) YULIUWEI16預(yù)留位 JIESBIAOS塊結(jié)束標(biāo)識(shí) 1.2.3.4 CMT 交易報(bào)文信息 IPCTxnMsgDef ipcPgHeadMsgCMT 交易報(bào)頭信息 ipcBaYwHeadMsgCMT 交易批量業(yè)務(wù)頭信息 ipcYwHeadMsgCMT 交易業(yè)務(wù)頭信息 szBody1024正文體信息 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司6 2 2交換處理摸塊交換處理摸塊 SWITCHSWITCH 2.12.1SWITCHSWITCH 模塊的功能模塊的功能 SWITCH 模塊是一個(gè)處理聯(lián)機(jī)交易的子模塊,該模塊主要完成聯(lián)機(jī) 交易報(bào)文的格式的轉(zhuǎn)換,交易流水的記錄,交易流程的控制等功能,,以 保證在線交易的一致性。 經(jīng)過(guò) SWITCH 模塊處理的聯(lián)機(jī)交易包括來(lái)帳/往帳的大額實(shí)時(shí)支付 交易、小額批量支付交易、清算帳戶信息交易、管理交易。 2.22.2SWITCH 模塊與其他模塊的關(guān)系模塊與其他模塊的關(guān)系 與 SWITCH 模塊有關(guān)的模塊包括: MBFECOMM 模塊 SWITCH 模塊通過(guò) MBFECOMM 模塊實(shí)現(xiàn)與交換中心的報(bào)文通訊。 MBFECOMM 模塊通過(guò)調(diào)用 CNAPS(MBFE)的 API,將從 CNAPS(MBFE)收到的報(bào)文由消息隊(duì)列(Message Queue)轉(zhuǎn)發(fā)給 SWITCH 模塊處理。SWITCH 模塊發(fā)往交換中心的報(bào)文也通過(guò)消息隊(duì)列 由 MBFECOMM 模塊調(diào)用 CNAPS(MBFE)的 API,轉(zhuǎn)發(fā)給 CNAPS(MBFE),SWITCH 模塊與 MBFECOMM 接口的數(shù)據(jù)格式為 CNAPS(MBFE)TAG 報(bào)文格式。 HOSTCOMM 模塊 SWITCH 模塊通過(guò) HOSTCOMM 模塊實(shí)現(xiàn)與后臺(tái)帳務(wù)主機(jī)的報(bào)文 通訊。HOSTCOMM 模塊將從后臺(tái)帳務(wù)主機(jī)收到的報(bào)文由消息隊(duì)列 (Message Queue)轉(zhuǎn)發(fā)給 SWITCH 模塊處理。SWITCH 模塊發(fā)往后臺(tái) 的報(bào)文也通過(guò)消息隊(duì)列(Message Queue)由 HOSTOMM 模塊轉(zhuǎn)發(fā)給后 臺(tái)帳務(wù)主機(jī)。SWITCH 模塊與 HOSTCOMM 接口的數(shù)據(jù)格式為 TITA/TOTA 報(bào)文格式。 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司7 TOCTL 模塊 SWITCH 模塊通過(guò)消息隊(duì)列(Message Queue)向 TOCTL 模塊申 請(qǐng)系統(tǒng)流水號(hào),并由 TOCTL 模塊對(duì)該系統(tǒng)流水號(hào)所屬的交易進(jìn)行超時(shí) 控制。TOCTL 模塊與 SWITCH 模塊的接口的數(shù)據(jù)格式為內(nèi)部的 IPC 格 式。 SFDSVR 模塊 SWITCH 對(duì)聯(lián)機(jī)需重發(fā)交易的重復(fù)發(fā)送處理是通過(guò) SFDSVR 模塊 來(lái)進(jìn)行的。SWITCH 將需要重發(fā)的消息記入 TBL_FWDMSG 表中,具體 的重發(fā)送操作由 SFDSVR 模塊來(lái)完成。 SWITCH 模塊與系統(tǒng)其他模塊的關(guān)系如下圖所示: SWITCH MBFECOMM HOSTCOMM TOCTL MSQ_TOMBFE MSQ_SWITCH MSQ_TOIN MSQ_TOOUT TBL_TXNMON TBL_FWDMSG TBL_SYSMAIN MSQ_FROMMBFE MSQ_TOHOST MSQ_FROMHOST TBL_CONVRULE 2.32.3SWITCHSWITCH 模塊模塊交易處理流程交易處理流程 MBFECOMM 模塊發(fā)來(lái)的交易請(qǐng)求 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司8 SWITCH 模塊接收從 MBFECOMM 模塊 FROMBFE 進(jìn)程發(fā)來(lái)的聯(lián) 機(jī)交易請(qǐng)求,將消息格式由 CNAPS 的 TAG 報(bào)文轉(zhuǎn)換為內(nèi)部 IPC 結(jié)構(gòu), 按交易類型做相應(yīng)處理,并通過(guò) TOCTL 模塊獲得系統(tǒng)流水號(hào)和進(jìn)行超 時(shí)控制,記錄交易日志,然后將交易轉(zhuǎn)發(fā) HOSTCOMM 模塊的 T_HOSTTCP 進(jìn)程。 MBFECOMM 模塊發(fā)來(lái)的交易應(yīng)答 SWITCH 模塊接收從 MBFECOMM 模塊 TOMBFE 進(jìn)程發(fā)來(lái)的聯(lián)機(jī) 交易應(yīng)答,通過(guò) TOCTL 模塊確認(rèn)交易是否超時(shí),在交易日志中查找原 交易日志,更新交易日志;若交易未超時(shí),則將應(yīng)答報(bào)文發(fā)往 HOSTCOMM 模塊的 F_HOSTTCP 進(jìn)程。 HOSTCOMM 模塊發(fā)來(lái)的交易請(qǐng)求 SWITCH 模塊接收從 HOSTCOMM 模塊的 F_HOSTTCP 進(jìn)程發(fā)來(lái) 的聯(lián)機(jī)交易請(qǐng)求,按交易類型作相應(yīng)處理,并通過(guò) TOCTL 模塊獲得系 統(tǒng)流水號(hào)和進(jìn)行超時(shí)控制,記錄交易日志, 然后將消息格式轉(zhuǎn)換成 CNAPS 的 TAG 報(bào)文格式,發(fā)往 MBFECOMM 模塊的 TOMBFE 進(jìn)程。 HOSTCOMM 模塊發(fā)來(lái)的交易應(yīng)答 SWITCH 模塊接收從 HOSTCOMM 模塊 T_HOSTTCP 發(fā)來(lái)的聯(lián)機(jī) 交易應(yīng)答,通過(guò) TOCTL 模塊確認(rèn)交易是否超時(shí),在交易日志中查找原 交易日志,更新交易日志;若交易未超時(shí),則構(gòu)造來(lái)帳同步確認(rèn)應(yīng)答報(bào) 文,發(fā)往 MBFECOMM 模塊的 FROMMBFE 進(jìn)程。 2.42.4SWITCHSWITCH 模塊程序設(shè)計(jì)說(shuō)明模塊程序設(shè)計(jì)說(shuō)明 2.4.12.4.1main()main() 功能描述: SWITCH 模塊主函數(shù) 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司9 函數(shù)原型: void main(); 參數(shù)說(shuō)明: 無(wú) 返回值: 無(wú) 相關(guān)的數(shù)據(jù)庫(kù)表: 無(wú) 程序流程: 1)調(diào)用 InitSwitch()進(jìn)行初始化準(zhǔn)備工作。 2)從對(duì)列 MSQ_SWITCH 中讀取消息。 3)通過(guò)消息來(lái)源標(biāo)志將消息分別送往: HandleMbfeRspMsg()往帳同步確認(rèn)應(yīng)答處理模塊 HandleMbfeReqMsg()來(lái)帳請(qǐng)求或往帳異步回執(zhí)應(yīng)答處理模塊 HandleHostRspMsg()往帳請(qǐng)求處理模塊 HandleHostRspMsg()來(lái)帳同步回應(yīng)處理模塊 HandleTOCTLMsg()超時(shí)消息處理模塊進(jìn)行處理。 4)重復(fù)步驟 2。 2.4.22.4.2InitSwitchInitSwitch ()() 功能描述: 連接數(shù)據(jù)庫(kù),初始化 CNAPS 的 TAG 報(bào)文轉(zhuǎn)換表、消息隊(duì)列等 函數(shù)原型: int InitSwitch(); 參數(shù)說(shuō)明: 無(wú) 返回值: 0,初始化成功 -1,連接數(shù)據(jù)庫(kù)失敗 -2,初始化消息隊(duì)列失敗 -3,初始化 CNAPS 的 TAG 報(bào)文轉(zhuǎn)換表失敗 相關(guān)的數(shù)據(jù)庫(kù)表: TBL_CONVRULE 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司10 程序流程: 1)打開數(shù)據(jù)庫(kù)。 2)初始化消息對(duì)列 3)將格式轉(zhuǎn)換規(guī)則表導(dǎo)入系統(tǒng)內(nèi)存(用于內(nèi)外格式轉(zhuǎn)換的函數(shù)調(diào)用)。 4)返回 2.4.32.4.3HandleMbfeReqMsgHandleMbfeReqMsg ()() 功能描述: 對(duì)來(lái)自 MBFECOMM 模塊的 FROMMBFE 進(jìn)程的來(lái)帳交易報(bào)文進(jìn)行格式轉(zhuǎn)換,并通過(guò) 交易類型碼調(diào)用交易處理函數(shù) 函數(shù)原型: void HandleMbfeReqMsg ( char * sMbfeReqMsg, int nDataLen ) 參數(shù)說(shuō)明: sMbfeReqMsg,MBFECOMM 模塊的 FROMMBFE 進(jìn)程的來(lái)帳交易報(bào)文 nDataLen,交易報(bào)文長(zhǎng)度 返回值: 無(wú) 相關(guān)的數(shù)據(jù)庫(kù)表: 無(wú) 程序流程: 1)調(diào)用 ConvOutoIn()對(duì)消息進(jìn)行的格式轉(zhuǎn)換。 2)通過(guò)交易類型碼調(diào)用交易處理函數(shù) Txn_Process()。 3)返回 2.4.42.4.4HandleMbfeRspMsgHandleMbfeRspMsg ()() 功能描述: 對(duì)來(lái)自 MBFECOMM 模塊的 TOMBFE 進(jìn)程的往帳同步確認(rèn)應(yīng)答報(bào)文進(jìn)行處理。 函數(shù)原型: void HandleMbfeRspMsg ( char * sMbfeRspMsg, int nDataLen ) 參數(shù)說(shuō)明: sMbfeRspMsg,MBFECOMM 模塊的 TOMBFE 進(jìn)程的往帳同步確認(rèn)應(yīng)答報(bào)文 nDataLen,交易報(bào)文長(zhǎng)度 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司11 返回值: 無(wú) 相關(guān)的數(shù)據(jù)庫(kù)表: TBL_TXNMON 程序流程: 1)根據(jù) MBFECOMM 的 TOMBFE 進(jìn)程返回的同步確認(rèn)應(yīng)答的相關(guān)數(shù)據(jù),從 TBL_TXNMON 交易流水表中查找原始交易。 2)更新 TBL_TXNMON 交易流水表。 3)向 HOSTCOMM 的 F_HOSTTCP 進(jìn)程發(fā)送應(yīng)答報(bào)文。 4)返回。 2.4.52.4.5HandleHostReqMsgHandleHostReqMsg ()() 功能描述: 通過(guò)交易類型碼調(diào)用交易處理函數(shù) 函數(shù)原型: void HandleHostReqMsg (char * sHostReqMsg, int nDataLen ) 參數(shù)說(shuō)明: sHostReqMsg,HOSTCOMM 模塊的 F_HOSTTCP 進(jìn)程的往帳請(qǐng)求報(bào)文 nDataLen,交易報(bào)文長(zhǎng)度 返回值: 無(wú) 相關(guān)的數(shù)據(jù)庫(kù)表: 無(wú) 程序流程: 1)通過(guò)交易類型碼調(diào)用交易處理函數(shù) Txn_Process()。 2)返回。 2.4.62.4.6HandleHostRspMsgHandleHostRspMsg ()() 功能描述: 對(duì)來(lái)自 HOSTCOMM 模塊的 T_HOSTTCP 進(jìn)程的來(lái)帳同步確認(rèn)應(yīng)答報(bào)文進(jìn)行處 理。 函數(shù)原型: void HandleHostRspMsg (char * sHostRspMsg, int nDataLen ) 參數(shù)說(shuō)明: 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司12 sHostRspMsg,HOSTCOMM 模塊的 T_HOSTTCP 進(jìn)程的來(lái)帳同步確認(rèn)應(yīng)答 報(bào)文 nDataLen,交易報(bào)文長(zhǎng)度 返回值: 無(wú) 相關(guān)的數(shù)據(jù)庫(kù)表: TBL_TXNMON 程序流程: 1)根據(jù) HOSTCOMM 的 T_HOSTTCP 進(jìn)程返回的同步確認(rèn)應(yīng)答的相關(guān)數(shù)據(jù),從 TBL_TXNMON 交易流水表中查找原始交易。 2)更新 TBL_TXNMON 交易流水表。 3)向 MBFECOMM 模塊的 FROMMBFE 進(jìn)程發(fā)送應(yīng)答報(bào)文。 4)返回。 2.4.72.4.7HandleTOCTLMsg()HandleTOCTLMsg() 功能描述: 接收超時(shí)控制模塊(TOCTL)消息,對(duì)已超時(shí)交易的受理方給予超時(shí)的拒絕應(yīng) 答。 函數(shù)原型: void HandleTOCTLMsg( SwtTocDef * pipcSwtToc ) 參數(shù)說(shuō)明: pipcSwtToc,來(lái)自超時(shí)控制模塊(TOCTL)的消息 返回值: 無(wú) 相關(guān)的數(shù)據(jù)庫(kù)表: TXNLOG 程序流程: 1)根據(jù)消息報(bào)中的系統(tǒng)流水號(hào),從交易流水表 TBL_TXNMON 找出原交易。 2)在原交易的記錄中標(biāo)志該交易已超時(shí)。 3)若超時(shí)交易為撤消交易,需將被撤銷交易的撤消標(biāo)志恢復(fù)成 0(未被撤銷)。 4)通過(guò)原交易記錄中的發(fā)送方代碼(forwarding_code)判別原交易的發(fā)送方和 接收方, 5)對(duì)發(fā)送方給予超時(shí)的拒絕應(yīng)答,若該交易涉及帳務(wù),需對(duì)交易的接收方發(fā)送沖 正。 6)同時(shí)在伺機(jī)重發(fā)表中插入該條沖正紀(jì)錄。并修改原超時(shí)交易紀(jì)錄的 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司13 沖正標(biāo)示位。 7)返回 2.4.82.4.8ReplyFromMbfeReplyFromMbfe ()() 功能描述: 組給 MBFECOMM 模塊的 FROMMBFE 進(jìn)程的來(lái)帳同步確認(rèn)回應(yīng)報(bào)文,并發(fā) 送。 函數(shù)原型: void ReplyFromMbfe ( char *sRspCode, char *sSystemSsn ) 參數(shù)說(shuō)明: sRspCode,來(lái)帳同步確認(rèn)應(yīng)答碼。 sSystemSsn,原始交易的塊標(biāo)識(shí)號(hào)。 返回值: 無(wú) 相關(guān)的數(shù)據(jù)庫(kù)表: 無(wú) 程序流程: 1)拼裝來(lái)帳同步確認(rèn)回應(yīng)報(bào)文(2 位應(yīng)答碼+8 位原始?jí)K標(biāo)識(shí)號(hào))。 2)調(diào)用 Send2FromMbfe 函數(shù)發(fā)送報(bào)文。 2.4.92.4.9Send2FromMbfe()Send2FromMbfe() 功能描述: 向 MBFECOMM 模塊的 FROMMBFE 進(jìn)程發(fā)送報(bào)文。 函數(shù)原型: int Send2FromMbfe( void* sMsgBuf, int nMsgLen ) 參數(shù)說(shuō)明: sMsgBuf,發(fā)往 MBFECOMM 模塊的 FROMMBFE 進(jìn)程的報(bào)文 nMsgLen,報(bào)文長(zhǎng)度 返回值: 0,成功 -1,發(fā)送消息失敗 相關(guān)的數(shù)據(jù)庫(kù)表: 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司14 無(wú) 程序流程: 1)向 MBFECOMM 模塊的 FROMMBFE 進(jìn)程發(fā)送消息包 2)若失敗,則返回-1。 3)成功,則返回 0 2.4.102.4.10 Send2ToMbfe()Send2ToMbfe() 功能描述: 向 MBFECOMM 模塊的 TOMBFE 進(jìn)程發(fā)送報(bào)文。 函數(shù)原型: int Send2FromMbfe( void* sMsgBuf, int nMsgLen ) 參數(shù)說(shuō)明: sMsgBuf,發(fā)往 MBFECOMM 模塊的 TOMBFE 進(jìn)程的報(bào)文 nMsgLen,報(bào)文長(zhǎng)度 返回值: 0,成功 -1,發(fā)送消息失敗 相關(guān)的數(shù)據(jù)庫(kù)表: 無(wú) 程序流程: 1)向 MBFECOMM 模塊的 TOMBFE 進(jìn)程發(fā)送消息包 2)若失敗,則返回-1。 3)成功,則返回 0 2.4.112.4.11 Send2FromHost()Send2FromHost() 功能描述: 向 HOSTCOMM 模塊的 F_HOSTTCP 進(jìn)程發(fā)送報(bào)文。 函數(shù)原型: int Send2FromHost( void* sMsgBuf, int nMsgLen ) 參數(shù)說(shuō)明: sMsgBuf,發(fā)往 HOSTCOMM 模塊的 F_HOSTTCP 進(jìn)程的報(bào)文 nMsgLen,報(bào)文長(zhǎng)度 返回值: 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司15 0,成功 -1,發(fā)送消息失敗 相關(guān)的數(shù)據(jù)庫(kù)表: 無(wú) 程序流程: 1)向 HOSTCOMM 模塊的 F_HOSTTCP 進(jìn)程發(fā)送消息包 2)若失敗,則返回-1。 3)成功,則返回 0 2.4.122.4.12 Send2ToHost()Send2ToHost() 功能描述: 向 HOSTCOMM 模塊的 T_HOSTTCP 進(jìn)程發(fā)送報(bào)文。 函數(shù)原型: int Send2ToHost( void* sMsgBuf, int nMsgLen ) 參數(shù)說(shuō)明: sMsgBuf,發(fā)往 HOSTCOMM 模塊的 T_HOSTTCP 進(jìn)程的報(bào)文 nMsgLen,報(bào)文長(zhǎng)度 返回值: 0,成功 -1,發(fā)送消息失敗 相關(guān)的數(shù)據(jù)庫(kù)表: 無(wú) 程序流程: 1)向 HOSTCOMM 模塊的 T_HOSTTCP 進(jìn)程發(fā)送消息包 2)若失敗,則返回-1。 3)成功,則返回 0 2.4.132.4.13 Send2TO()Send2TO() 功能描述: 向超時(shí)控制進(jìn)程(TOCTL)申請(qǐng)系統(tǒng)流水號(hào),并進(jìn)行交易超時(shí)控制。 函數(shù)原型: int Send2TO( SwtTocDef *pipcSwtToc ) 參數(shù)說(shuō)明: 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司16 pipcSwtToc,與超時(shí)控制進(jìn)程(TOCTL)的通訊報(bào)文 返回值: 0,成功 -1,發(fā)送請(qǐng)求失敗 -2,接受應(yīng)答失敗 相關(guān)的數(shù)據(jù)庫(kù)表: 無(wú) 程序流程: 1)向消息對(duì)列 MSQ_TOIN 發(fā)送請(qǐng)求數(shù)據(jù)報(bào)文 2)若失敗,返回-1 3)從消息對(duì)列 MSQ_TOOUT 接受應(yīng)答報(bào)文 4)若失敗,返回-2 5)返回 0 2.4.142.4.14 UpdateTable()UpdateTable() 功能描述: 更新指定的數(shù)據(jù)庫(kù)表 函數(shù)原型: int UpdateTable(char *szTableName, ChainDef *pchnUpdateFld, ChainDef *pchnWhere ) 參數(shù)說(shuō)明: szTableName,數(shù)據(jù)庫(kù)表名 pchnUpdateFld,更新域信息鏈表 pchnWhere,條件域信息鏈表 返回值: 0,成功 -1,失敗 相關(guān)的數(shù)據(jù)庫(kù)表: szTableName 指定的表 程序流程: 1)通過(guò)調(diào)用數(shù)據(jù)庫(kù)操作函數(shù) UpdateRecord,對(duì)指定的數(shù)據(jù)庫(kù)表進(jìn)行更新 2)若失敗則記系統(tǒng)日志(ReportError()),返回-1。 3)成功,則返回 0 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司17 2.4.152.4.15 SelectTable()SelectTable() 功能描述: 訪問(wèn)指定的數(shù)據(jù)庫(kù)表 函數(shù)原型: int SelectTable( char *szTableName, void *pBuf, ChainDef *pchnWhere ) 參數(shù)說(shuō)明: szTableName,數(shù)據(jù)庫(kù)表名 pBuf,數(shù)據(jù)信息緩存 pchnWhere,條件域信息鏈表 返回值: 0,成功 -1,數(shù)據(jù)未找到 -2,失敗 相關(guān)的數(shù)據(jù)庫(kù)表: szTableName 指定的表 程序流程: 1)通過(guò)調(diào)用數(shù)據(jù)庫(kù)操作函數(shù) SelectRecord,訪問(wèn)指定的數(shù)據(jù)庫(kù)表 2)若未找到紀(jì)錄,返回-1 3)若失敗則記系統(tǒng)日志(ReportError()),返回-2 4)成功,則返回 0 2.4.162.4.16 InsertTxnMonInsertTxnMon ()() 功能描述: 將交易信息插入交易流水表(TBL_TXNMON) 函數(shù)原型: int InsertTxnMon( tblTxnMonDef *pdbTxnMon ) 參數(shù)說(shuō)明: pdbTxnMon,交易信息 返回值: 0,成功 -1,失敗 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司18 相關(guān)的數(shù)據(jù)庫(kù)表: TBL_TXNMON 程序流程: 1)調(diào)用數(shù)據(jù)庫(kù)操作函數(shù) InsertRecord,將交易數(shù)據(jù)插入交易流水表(Txnlog) 2)若失敗則記系統(tǒng)日志(ReportError()),返回-1 3)成功,則返回 0 2.4.172.4.17 InsertRvslTable()InsertRvslTable() 功能描述: 將需重發(fā)的交易信息插入重發(fā)表(TBL_FWDMSG) 函數(shù)原型: int InsertRvslTable( char *sSysSeqNum, char *sIpc, char *sMsgType ) 參數(shù)說(shuō)明: sSysSeqNum,系統(tǒng)流水號(hào) sIpc,報(bào)文 sMsgType,“R”- 沖正交易 “E”- 差錯(cuò)交易 返回值: 0,成功 -1,失敗 相關(guān)的數(shù)據(jù)庫(kù)表: TBL_FWDMSG 程序流程: 1)調(diào)用數(shù)據(jù)庫(kù)操作函數(shù) InsertRecord,將交易數(shù)據(jù)插入重發(fā)表(TBL_FWDMSG) 2)若失敗,返回-1 3)成功,則返回 0 2.4.182.4.18 DeleteRvslTable()DeleteRvslTable() 功能描述: 將已收到應(yīng)答的交易信息從重發(fā)表(TBL_FWDMSG)中刪除 函數(shù)原型: int DeleteRvslTable( char *sSystemSSN, char *sMsgType ) 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司19 參數(shù)說(shuō)明: sSysSeqNum,系統(tǒng)流水號(hào) sMsgType,“R”- 沖正交易 “E”- 差錯(cuò)交易 返回值: 0,成功 -1,失敗 相關(guān)的數(shù)據(jù)庫(kù)表: TBL_FWDMSG 程序流程: 1)調(diào)用數(shù)據(jù)庫(kù)操作函數(shù) DeleteRecord(),將交易數(shù)據(jù)從重發(fā)表(TBL_FWDMSG)中 刪除 2)若失敗,返回-1 3)成功,則返回 0 2.4.192.4.19 Txn_ProcessTxn_Process ()() 功能描述: 交易處理函數(shù)。 函數(shù)原型: void Txn_Process ( int txn_number, char *sTxnMsg ) 參數(shù)說(shuō)明: txn_number內(nèi)部交易代碼 sTxnMsg,交易報(bào)文 返回值: 無(wú) 相關(guān)的數(shù)據(jù)庫(kù)表: 無(wú) 程序流程: 1)根據(jù)交易代碼調(diào)用相應(yīng)的函數(shù)。 2)返回 2.4.202.4.20 MakePgHead()MakePgHead() 功能描述: 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司20 往帳請(qǐng)求,接口系統(tǒng)拼裝塊頭信息。 函數(shù)原型: void MakePgHead( char *CMT, IPCTxnMsgDef *pipcTxnMsg, tblSysMainDef *pdbSysMain ) 參數(shù)說(shuō)明: CMTCMT 號(hào)碼 pipcTxnMsg請(qǐng)求交易報(bào)文 pdbSysMain系統(tǒng)主控表信息 返回值: 無(wú) 相關(guān)的數(shù)據(jù)庫(kù)表: 無(wú) 程序流程: 1)拼裝塊頭信息。 2)返回 2.4.212.4.21 MakeBaYwHead()MakeBaYwHead() 功能描述: 往帳請(qǐng)求,接口系統(tǒng)拼裝批量業(yè)務(wù)頭信息。 函數(shù)原型: void MakeBaYwHead( char *CMT, IPCTxnMsgDef *pipcTxnMsg, tblSysMainDef *pdbSysMain ) 參數(shù)說(shuō)明: CMTCMT 號(hào)碼 pipcTxnMsg請(qǐng)求交易報(bào)文 pdbSysMain系統(tǒng)主控表信息 返回值: 無(wú) 相關(guān)的數(shù)據(jù)庫(kù)表: 無(wú) 程序流程: 1)拼裝批量業(yè)務(wù)頭信息。 2)返回 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司21 2.4.222.4.22 MakeYwHead()MakeYwHead() 功能描述: 往帳請(qǐng)求,接口系統(tǒng)拼裝業(yè)務(wù)頭信息。 函數(shù)原型: void MakeYwHead( char *CMT, IPCTxnMsgDef *pipcTxnMsg, tblSysMainDef *pdbSysMain ) 參數(shù)說(shuō)明: CMTCMT 號(hào)碼 pipcTxnMsg請(qǐng)求交易報(bào)文 pdbSysMain系統(tǒng)主控表信息 返回值: 無(wú) 相關(guān)的數(shù)據(jù)庫(kù)表: 無(wú) 程序流程: 1)拼裝業(yè)務(wù)頭信息。 2)返回 2.4.232.4.23 CheckDulplicatedTxnCheckDulplicatedTxn ()() 功能描述: 檢查交易是否重復(fù)。 函數(shù)原型: int CheckDulplicatedTxn ( char *paytxn_ssn, char *work_date, char *ob_code, char *txn_type ) 參數(shù)說(shuō)明: paytxn_ssn支付交易序號(hào) work_date工作日期 ob_code交易發(fā)起行行號(hào) txn_type交易類型 返回值: 0: 不重復(fù) 1: 重復(fù) 相關(guān)的數(shù)據(jù)庫(kù)表: 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司22 TBL_TXNMON 程序流程: 1)根據(jù)傳入?yún)?shù),組查詢條件。 2)調(diào)用 SelectRecord 在 TBL_TXNMON 表中查找交易。 3)交易未找到返回 0。 4)返回 1 2.4.242.4.24 GetdbSysMainGetdbSysMain ()() 功能描述: 從系統(tǒng)主控表中取得系統(tǒng)主控?cái)?shù)據(jù)。 函數(shù)原型: void GetdbSysMain ( tblSysMainDef *pdbSysMain ) 參數(shù)說(shuō)明: pdbSysMain系統(tǒng)主控?cái)?shù)據(jù) 返回值: 0: 取系統(tǒng)主控?cái)?shù)據(jù)失敗 1: 取系統(tǒng)主控?cái)?shù)據(jù)成功 相關(guān)的數(shù)據(jù)庫(kù)表: TBL_SYSMAIN 程序流程: 1)調(diào)用 SelectTable()查找表 TBL_SYSMAIN 2)若表中未找到,則返回 0。 3)若找到,將結(jié)果復(fù)制到結(jié)構(gòu) pdbSysMain 中。 4)返回 1。 2.4.252.4.25 cmtXXX_req_incmtXXX_req_in ()() 功能描述: 處理來(lái)帳請(qǐng)求。(XXX:代表:代表 CMT 號(hào)號(hào)) 函數(shù)原型: void cmtXXX_req_in( IPCTxnMsgDef *pipcTxnMsg ) 參數(shù)說(shuō)明: pipcTxnMsg,轉(zhuǎn)換后的內(nèi)部 IPC 格式 返回值: 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司23 無(wú) 相關(guān)的數(shù)據(jù)庫(kù)表: TBL_TXNMON 程序流程: 1) 2)返回 2.4.262.4.26 cmtXXX_req_outcmtXXX_req_out ()() 功能描述: 處理往帳請(qǐng)求。(XXX:代表:代表 CMT 號(hào)號(hào)) 函數(shù)原型: void cmtXXX_req_out( IPCTxnMsgDef *pipcTxnMsg ) 參數(shù)說(shuō)明: pipcTxnMsg,轉(zhuǎn)換后的內(nèi)部 IPC 格式 返回值: 無(wú) 相關(guān)的數(shù)據(jù)庫(kù)表: TBL_TXNMON 程序流程: 1) 2)返回 2.52.5接口及其數(shù)據(jù)結(jié)構(gòu)接口及其數(shù)據(jù)結(jié)構(gòu) 2.5.12.5.1與與 MBFECOMMMBFECOMM 模塊模塊 通信方式:message queue(MSQ_TOMBFE、MSQ_FROMMBFE、MSQ_SWITCH) 數(shù)據(jù)結(jié)構(gòu):CNAPS 的 TAG 報(bào)文格式 2.5.22.5.2與與 HOSTCOMMHOSTCOMM 模塊模塊 通信方式: message 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司24 queue(MSQ_TOHOST、MSQ_FROMHOST、MSQ_SWITCH) 數(shù)據(jù)結(jié)構(gòu):HOST 的 TITA/TOTA 報(bào)文格式 2.5.32.5.3與與 TOCTLTOCTL 模塊模塊 通信方式:message queue(MSQ_SWITCH、MSQ_TOIN、MSQ_TOOUT) 數(shù)據(jù)結(jié)構(gòu): 內(nèi)部 IPC(SwtTocDef) 2.5.42.5.4與與 SFDSVRSFDSVR 模塊模塊 通信方式:數(shù)據(jù)庫(kù)表 TBL_FWDMSG 共享 數(shù)據(jù)結(jié)構(gòu): 參見數(shù)據(jù)庫(kù)表 TBL_FWDMSG 定義 2.62.6相關(guān)數(shù)據(jù)庫(kù)表相關(guān)數(shù)據(jù)庫(kù)表 2.6.12.6.1TBL_TXNMONTBL_TXNMON 表表 數(shù)據(jù)結(jié)構(gòu):(參看數(shù)據(jù)庫(kù)表定義) 功能描述:記錄聯(lián)機(jī)交易日志 2.6.22.6.2TBL_FWDMSGTBL_FWDMSG 表表 數(shù)據(jù)結(jié)構(gòu):(參看數(shù)據(jù)庫(kù)表定義) 功能描述:記錄需要重發(fā)的報(bào)文 2.6.32.6.3TBL_SYSMAINTBL_SYSMAIN 表表 數(shù)據(jù)結(jié)構(gòu):(參看數(shù)據(jù)庫(kù)表定義) 功能描述:記錄系統(tǒng)主控信息 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司25 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司26 3 3超時(shí)控制摸塊超時(shí)控制摸塊 TOCTLTOCTL 3.13.1TOCTLTOCTL 模塊的功能模塊的功能 TOCTL 模塊是接口系統(tǒng)的超時(shí)控制模塊。該模塊為聯(lián)機(jī)交易分配 流水號(hào),并對(duì)其進(jìn)行超時(shí)控制。當(dāng)發(fā)生交易超時(shí)時(shí),TOCTL 模塊能夠通 過(guò)消息隊(duì)列通知 SWITCH 進(jìn)行相應(yīng)處理。 3.23.2TOCTLTOCTL 模塊與其他模塊的關(guān)系模塊與其他模塊的關(guān)系 與 TOCTL 模塊有關(guān)的模塊包括: SWITCH 模塊 TOCTL 模塊接受 SWITCH 發(fā)來(lái)的請(qǐng)求報(bào)文,為其分配流水號(hào),并 進(jìn)行超時(shí)控制。TOCTL 模塊與 SWITCH 模塊的接口的數(shù)據(jù)格式為內(nèi)部 的 IPC 格式。 TOCTL 模塊與系統(tǒng)其他模塊的關(guān)系如下圖所示: TOCTL TOIN SWITCH SWITCHTOOUT ssnfile.dat 3.33.3TOCTLTOCTL 模塊處理流程模塊處理流程 TOCTL 利用文件 SSNFILE.DAT 記錄當(dāng)前最大流水號(hào),每次生成 流水號(hào)時(shí)將該文件中的數(shù)值加 1 ;TOCTL 每次重新啟動(dòng)時(shí)將該文件中的 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司27 數(shù)值加 100 。TOCTL 模塊通過(guò)消息隊(duì)列 MSQ_TOINT 接收來(lái)自 SWITCH 模塊的報(bào)文,并跟據(jù)交易類型分別進(jìn)行處理: 正常交易請(qǐng)求 生成新的系統(tǒng)流水號(hào),并按來(lái)帳和往帳交易分別加入各自的等待隊(duì) 列(來(lái)帳和往帳交易的超時(shí)時(shí)間不同),然后通過(guò)消息隊(duì)列 MSQ_TOOUT 將系統(tǒng)流水號(hào)返回給 SWITCH 模塊。同時(shí),TOCTL 模塊對(duì)等待隊(duì)列中的交 易進(jìn)行監(jiān)測(cè),若某筆交易到達(dá)預(yù)定的超時(shí)時(shí)間 ,仍然沒有應(yīng)答消息到來(lái), 則將該交易取出等待隊(duì)列,并將其流水號(hào)通過(guò)消息隊(duì)列 MSQ_SWITCH 發(fā) 往 SWITCH 模塊 ,由 SWITCH 模塊進(jìn)行處理。 正常交易 根據(jù)報(bào)文中的流水號(hào)等信息查找等待隊(duì)列。若找到,則原交易未超 時(shí),將未超時(shí)應(yīng)答發(fā)往 SWITCH 模塊;若未找到,則原交易超時(shí),將超 時(shí)應(yīng)答發(fā)往 SWITCH 模塊。 無(wú)超時(shí)交易請(qǐng)求 生成新的系統(tǒng)流水號(hào),并將流水號(hào)返回 SWITCH 模塊。 3.43.4 TOCTLTOCTL 模塊程序設(shè)計(jì)說(shuō)明模塊程序設(shè)計(jì)說(shuō)明 3.4.13.4.1main()main() 功能描述: TOCTL 主程序 函數(shù)原型: int main(int argc, char *argv); 參數(shù)說(shuō)明: argv1來(lái)帳超時(shí)時(shí)限(缺省為 40 秒) argv2往帳超時(shí)時(shí)限(缺省為 50 秒) 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司28 返回值: 無(wú) 相關(guān)的數(shù)據(jù)庫(kù)表: 無(wú) 程序流程: 1)程序開始 2)初始化消息隊(duì)列;若失敗,則退出程序 3)初始化等待隊(duì)列 4)調(diào)用 GetSSN(),初始化流水號(hào) 5)設(shè)置 SIGALRM 信號(hào)處理函數(shù)為 HandleTickOut();若失敗,則退出程序 6)取等待隊(duì)列記錄,設(shè)置 alarm,開始計(jì)時(shí) 7)讀消息隊(duì)列 Queue3,等待請(qǐng)求報(bào)文 8)若讀出錯(cuò),則重新初始化消息隊(duì)列;成功則轉(zhuǎn) 7,失敗,則退出程序 9)阻塞 SIGALRM 信號(hào) 10) 調(diào)用 HandleRequest()處理請(qǐng)求報(bào)文, 11) 釋放 SIGALRM 信號(hào) 12) 轉(zhuǎn)到 6 3.4.23.4.2GetSSN()GetSSN() 功能描述: 分配系統(tǒng)流水號(hào) 函數(shù)原型: int GetSSN( char* pSSN, int action); 參數(shù)說(shuō)明: action0,初始化系統(tǒng)流水號(hào) 1,分配系統(tǒng)流水號(hào) 返回值: pSSN新的系統(tǒng)流水號(hào) 相關(guān)的數(shù)據(jù)庫(kù)表: 無(wú) 相關(guān)文件: ssnfile.dat保存最新系統(tǒng)流水號(hào) 程序流程: 1)程序開始 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司29 2)若action 為 1,則轉(zhuǎn) 6 3)打開文件 ssnfile.dat 4)讀取流水號(hào),加 100。 5)關(guān)閉文件,轉(zhuǎn) 7 6)流水號(hào)加 1 7)打開文件 ssnfile.dat 8)寫流水號(hào) 9)關(guān)閉文件 10) 返回流水號(hào) 3.4.33.4.3HandleRequestHandleRequest ()() 功能描述: 處理來(lái)自 SWITCH 模塊的報(bào)文 函數(shù)原型: void HandleRequest( SwtTocDef *ipcMsg) 參數(shù)說(shuō)明: ipcMsg請(qǐng)求報(bào)文 返回值: 無(wú) 相關(guān)的數(shù)據(jù)庫(kù)表: 無(wú) 程序流程: 1)程序開始 2)若不是正常交易和撤銷交易請(qǐng)求,轉(zhuǎn) 5 3)調(diào)用 GetSSN()得到新的流水號(hào) 4)調(diào)用 InsertQueue()插入等待隊(duì)列,轉(zhuǎn) 8 5)若不是沖正交易請(qǐng)求和其它無(wú)超時(shí)交易請(qǐng)求,轉(zhuǎn) 7 6)調(diào)用 GetSSN()得到新的流水號(hào),轉(zhuǎn) 8 7)調(diào)用 DeleteQueue()從等待隊(duì)列中刪除該交易,若不存在則原交易超時(shí) 8)將應(yīng)答報(bào)發(fā)回 SWITCH模塊 9)調(diào)用 CalcTimeElapsed()計(jì)算等待隊(duì)列中各交易剩余的超時(shí)時(shí)間 10) 返回 3.4.43.4.4CalcTimeElapsedCalcTimeElapsed ()() 功能描述: 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司30 計(jì)算等待隊(duì)列中各交易剩余的超時(shí)時(shí)間 函數(shù)原型: void CalcTimeElapsed(); 參數(shù)說(shuō)明: 無(wú) 返回值: 無(wú) 相關(guān)的數(shù)據(jù)庫(kù)表: 無(wú) 程序流程: 1)程序開始 2)計(jì)算已計(jì)時(shí)時(shí)間:DT = 當(dāng)前時(shí)間 - 起始計(jì)時(shí)時(shí)間 3)對(duì)受理交易隊(duì)列和發(fā)卡交易隊(duì)列分別按 4)-6)處理 4)對(duì)等待對(duì)列中的每一筆交易按 5、)6)處理 5)若剩余時(shí)間 LT 大于 DT,則計(jì)算新的剩余時(shí)間 LT=LT-DT 6)若剩余時(shí)間 LT 不大于 DT,則停止計(jì)時(shí),調(diào)用 ToRelease()處理。 7)返回 3.4.53.4.5ToReleaseToRelease ()() 功能描述: 處理超時(shí)交易 函數(shù)原型: void ToRelease( short i); 參數(shù)說(shuō)明: i等待隊(duì)列數(shù)組下標(biāo) 返回值: 無(wú) 相關(guān)的數(shù)據(jù)庫(kù)表: 無(wú) 程序流程: 1)程序開始 2)將交易記錄從等待隊(duì)列中刪除 石 家 莊 商 業(yè) 銀 行 現(xiàn) 代 化 支 付 接 口 系 統(tǒng) 詳 細(xì) 設(shè) 計(jì) 上海華騰軟件系統(tǒng)有限公司31 3)調(diào)用 HandleToTrans()向 SWITCH 模塊發(fā)送超時(shí)通知 4)返回 3.4.63.4.6HandleTickOutHandleTickOut ()() 功能描述: 時(shí)鐘信號(hào)(SIGALRM)處理函數(shù) 函數(shù)原型: void HandleTickOut(int iSig); 參數(shù)說(shuō)明: 無(wú) 返回值: 無(wú) 相關(guān)的數(shù)據(jù)庫(kù)表: 無(wú) 程序流程: 1)程序開始 2)調(diào)用 CalcTimeElapsed()計(jì)算等待隊(duì)列中各交易剩余
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年事業(yè)單位考試四川省遂寧市A類《職業(yè)能力傾向測(cè)驗(yàn)》模擬試題含解析
- 2025年遵義市稅務(wù)系統(tǒng)遴選面試真題附詳解含答案
- 慢病防治知識(shí)講座參考課件
- 林長(zhǎng)制智慧林長(zhǎng)綜合管理平臺(tái)建設(shè)方案
- 遼陽(yáng)市弓長(zhǎng)嶺區(qū)文職輔警招聘考試真題
- 老年健康管理內(nèi)容課件
- 老師的視頻課件大全
- 高效智能倉(cāng)儲(chǔ)租賃服務(wù)協(xié)議
- 采礦權(quán)出讓與礦產(chǎn)資源保護(hù)責(zé)任書范本
- 礦山股權(quán)轉(zhuǎn)讓與礦區(qū)環(huán)境保護(hù)責(zé)任書
- 蘇教版 五年級(jí) 數(shù)學(xué) 下冊(cè)《第1課時(shí) 因數(shù)和倍數(shù)》課件
- 《解讀臨床醫(yī)學(xué)認(rèn)證》課件
- 七八年級(jí)的英語(yǔ)單詞
- 全國(guó)高職高專院校信息素養(yǎng)大賽考試題及答案
- 2024年面向社會(huì)公開招聘警務(wù)輔助人員報(bào)名信息表
- 手術(shù)應(yīng)激反應(yīng)
- 《地區(qū)智能電網(wǎng)調(diào)度技術(shù)支持系統(tǒng)應(yīng)用功能規(guī)范》
- 2024中國(guó)類風(fēng)濕關(guān)節(jié)炎診療指南
- 11294營(yíng)銷管理-國(guó)家開放大學(xué)2023年1月至7月期末考試真題及答案(共2套)
- 國(guó)畫基礎(chǔ)知識(shí)題庫(kù)單選題100道及答案解析
- 9日益重要的國(guó)際組織(第3課時(shí)) 教學(xué)設(shè)計(jì)-六年級(jí)下冊(cè)道德與法治
評(píng)論
0/150
提交評(píng)論