【正文】
的C++語(yǔ)言程序調(diào)用。 API調(diào)用參數(shù)說(shuō)明pRetCode:3位返回碼,表示調(diào)用該API的處理結(jié)果。 斷開(kāi)連接API API函數(shù)的形式void MB_DISCONNECT(void) API使用方法說(shuō)明前置機(jī)端的對(duì)接程序中首先包含頭文件“”,然后只需要將前置機(jī)端的接口程序和支付系統(tǒng)提供的靜態(tài)庫(kù)一起編譯后便可調(diào)用該函數(shù)。 發(fā)送API API函數(shù)的形式void MB_SEND_CNAPS(void *pID,char *pPsWord,char *pInPutMsg,char *pRetMsg) API使用方法說(shuō)明前置機(jī)端的對(duì)接程序中首先包含頭文件“”,然后只需要將前置機(jī)端的接口程序和支付系統(tǒng)提供的靜態(tài)庫(kù)一起編譯后便可調(diào)用該函數(shù)。pPsWord:考慮到API的使用安全性,在前置機(jī)中保存有一個(gè)安全碼,可以在前置機(jī)客戶端維護(hù),只有該輸入?yún)?shù)與前置機(jī)中保存的安全碼一致時(shí),才能調(diào)用該API。其格式為待發(fā)送報(bào)文的報(bào)頭 + 業(yè)務(wù)信息,該業(yè)務(wù)信息可為單筆或批量業(yè)務(wù),分別適用于大額支付業(yè)務(wù)、管理信息和小額支付業(yè)務(wù),其具體格式見(jiàn)第7章的接口報(bào)文說(shuō)明。返回碼含義說(shuō)明:000 正常101 無(wú)權(quán)調(diào)用該API 102系統(tǒng)錯(cuò)誤,商業(yè)銀行檢查前置機(jī)故障后可重發(fā)。104 業(yè)務(wù)檢查錯(cuò),單筆拒絕,行內(nèi)系統(tǒng)退票。106 前置機(jī)沒(méi)有進(jìn)行該種業(yè)務(wù)的權(quán)限,行內(nèi)系統(tǒng)退票。 接收API API函數(shù)的形式void MB_RECEIVE_CNAPS(void *pID,char *pPsWord,char *pOutPutMsg, int nFileFlag, char *pRetCode) API使用方法說(shuō)明前置機(jī)端的對(duì)接程序中首先包含頭文件“”,然后只需要將前置機(jī)端的接口程序和支付系統(tǒng)提供的靜態(tài)庫(kù)一起編譯后便可調(diào)用該函數(shù)。 API調(diào)用參數(shù)說(shuō)明pID:與CNAPS系統(tǒng)連接ID。pOutPutMsg:大小限定為60K,表示由支付系統(tǒng)形成的返回報(bào)文或返回文件,對(duì)于返回報(bào)文,其格式為返回報(bào)文的報(bào)頭 + 業(yè)務(wù)信息,該業(yè)務(wù)信息可為單筆或批量業(yè)務(wù),分別適用于大額支付業(yè)務(wù)、管理信息和小額支付業(yè)務(wù),其具體格式見(jiàn)后的第7章的接口報(bào)文說(shuō)明;對(duì)于返回文件,格式為返回報(bào)文的報(bào)頭 + 文件名,其中文件格式為返回報(bào)文的業(yè)務(wù)信息(詳見(jiàn)第7章的接口報(bào)文說(shuō)明),主要是用于大小額指令明細(xì)下載、行名行號(hào)更新以及賬務(wù)信息下載等功能,商業(yè)銀行可根據(jù)報(bào)頭區(qū)分不同的業(yè)務(wù),對(duì)文件分別處理;若接收失敗則為通用回應(yīng)報(bào)文(CMT910)。pRetCode:3位返回碼,表示調(diào)用該API的處理結(jié)果。返回碼含義說(shuō)明: 000 正常101 無(wú)權(quán)調(diào)用該API 102 系統(tǒng)錯(cuò)誤,商業(yè)銀行檢查前置機(jī)故障后可重發(fā)。 API返回說(shuō)明該API函數(shù)無(wú)返回值。 API調(diào)用參數(shù)說(shuō)明pID:與CNAPS系統(tǒng)連接ID。msgId: 接收API取得報(bào)文的報(bào)文標(biāo)識(shí)號(hào)。含義:0 表示成功處理1 表示處理失敗pRetCode:3位返回碼,表示調(diào)用該API的處理結(jié)果。4.API返回說(shuō)明該API函數(shù)無(wú)返回值。 API使用方法說(shuō)明商業(yè)銀行對(duì)脫機(jī)磁盤文件處理的程序中首先包含頭文件“”,然后只需要將支付系統(tǒng)提供的靜態(tài)庫(kù)一起編譯后便可調(diào)用該函數(shù)。 寫文件API API函數(shù)的形式int WRITE_BUFF(char *pWriteBuff)。 API調(diào)用參數(shù)說(shuō)明pWriteBuff:寫入文件的內(nèi)容。 API返回說(shuō)明該API函數(shù)返回寫文件是否成功,0表示成功,負(fù)數(shù)表示失敗。 API使用方法說(shuō)明商業(yè)銀行對(duì)脫機(jī)磁盤文件處理的程序中首先包含頭文件“”,然后只需要將支付系統(tǒng)提供的靜態(tài)庫(kù)一起編譯后便可調(diào)用該函數(shù)。每次讀取文件的內(nèi)容為一條報(bào)文。 關(guān)閉文件API API函數(shù)的形式void CLOSE_FILE()。 API返回說(shuō)明該API函數(shù)無(wú)返回值。 字符集說(shuō)明 屬性符號(hào)n表示0至9的數(shù)字x表示x字符集中的任意字符G表示GB2312定義的16位(16bits or雙字節(jié))編碼字符g表示x字符集與GB2312字符集可以混合使用 x字符集x字符集由以下86個(gè)字符組成a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 。 * 。 報(bào)文結(jié)構(gòu)報(bào)文由報(bào)文塊組成:報(bào)頭塊,業(yè)務(wù)頭塊,正文塊。 批量支付業(yè)務(wù)報(bào)頭塊業(yè)務(wù)信息批量支付業(yè)務(wù)頭支付業(yè)務(wù)n《=支付業(yè)務(wù)1……正文塊業(yè)務(wù)頭塊 說(shuō)明:l 報(bào)頭塊中的CMT號(hào)為000,表示小額批量支付業(yè)務(wù)。l 報(bào)頭塊中的CMT號(hào)為689,表示明細(xì)下載報(bào)文,其明細(xì)業(yè)務(wù)數(shù)據(jù)的排列順序須與批量支付業(yè)務(wù)頭塊的排列要求一致,即明細(xì)業(yè)務(wù)數(shù)據(jù)的排列順序?yàn)閬?lái)賬借記業(yè)務(wù)、來(lái)賬貸記業(yè)務(wù)、往賬借記業(yè)務(wù)、往賬貸記業(yè)務(wù);批量支付業(yè)務(wù)頭塊用于標(biāo)識(shí)支付業(yè)務(wù)的匯總信息;支付業(yè)務(wù)為所有允許的實(shí)時(shí)支付業(yè)務(wù)(針對(duì)大額明細(xì)下載)或小額支付業(yè)務(wù)(針對(duì)小額明細(xì)下載),由各自業(yè)務(wù)頭中的CMT號(hào)來(lái)表示不同的種類,所有種類的大額支付業(yè)務(wù)(針對(duì)大額明細(xì)下載)或小額支付業(yè)務(wù)(針對(duì)小額明細(xì)下載)都可以打在一包,且不限制n的大小。 文件類報(bào)文報(bào)頭塊正文塊文件名說(shuō)明:此種類型僅用于商業(yè)銀行行內(nèi)系統(tǒng)接收文件形式報(bào)文時(shí)使用,正文塊的內(nèi)容為文件名(包括文件的絕對(duì)路徑),正文的實(shí)際內(nèi)容在文件中。域在塊中的定位采用:TAG符標(biāo)記定位法?!保ň涮?hào))、“:”(冒號(hào))或“”(連字符)開(kāi)始,“/”(斜線)必須按域說(shuō)明中的規(guī)定使用;除非指定為空的域,不能全部是空格;域的內(nèi)容如果為多行,除第一行以外,以(cr)(lf)指明一個(gè)新行的開(kāi)始;“:”(冒號(hào))或“”(連字符)不能作為一行中的第一個(gè)字符;(cr)(lf)必須總是作為一個(gè)序列出現(xiàn)。子域的次序是固定的,子域是定長(zhǎng)的。子域的屬性符號(hào)為 n ,當(dāng)位數(shù)不夠時(shí),需要在前面用0補(bǔ)齊;如果子域的屬性符號(hào)為 n,并且子域的內(nèi)容為行號(hào)內(nèi)容,當(dāng)位數(shù)不足時(shí),在后面補(bǔ)空格;子域的屬性符號(hào)為 x ,當(dāng)位數(shù)不夠時(shí),需要在后面用空格補(bǔ)齊;子域的屬性符號(hào)為G,需使用全角符號(hào), 當(dāng)位數(shù)不夠時(shí),需要在后面用全角空格補(bǔ)齊。行內(nèi)系統(tǒng)向前置機(jī)發(fā)送業(yè)務(wù)時(shí),報(bào)文標(biāo)識(shí)號(hào)由行內(nèi)系統(tǒng)產(chǎn)生,每天從1開(kāi)始順序編號(hào);前置機(jī)系統(tǒng)向行內(nèi)系統(tǒng)發(fā)送業(yè)務(wù)時(shí),報(bào)文標(biāo)識(shí)號(hào)由前置機(jī)系統(tǒng)產(chǎn)生,從1到99999999順序編號(hào)。在商業(yè)銀行系統(tǒng)產(chǎn)生的業(yè)務(wù),序號(hào)由商業(yè)銀行系統(tǒng)產(chǎn)生,每天從1開(kāi)始順序編號(hào)。對(duì)于支付指令和沒(méi)有異步回應(yīng)的業(yè)務(wù),該項(xiàng)可以不填。支付指令也可以通過(guò)支付交易序號(hào)、發(fā)起行行號(hào)、委托日期、業(yè)務(wù)種類(大、小額)進(jìn)行業(yè)務(wù)回應(yīng)的匹配。由“{”和“}”表示塊的開(kāi)始和結(jié)束。 正文塊正文塊中存放用戶的交易信息。8 接口安全管理根據(jù)《中國(guó)現(xiàn)代化支付系統(tǒng)業(yè)務(wù)需求書》,為了保障商業(yè)銀行行內(nèi)系統(tǒng)與支付系統(tǒng)之間支付業(yè)務(wù)的處理和支付信息傳遞的安全、準(zhǔn)確和及時(shí),商業(yè)銀行前置機(jī)系統(tǒng)從用戶管理、審計(jì)追蹤、網(wǎng)絡(luò)安全,密押及加密管理、報(bào)文權(quán)限控制,聯(lián)機(jī)識(shí)別ID,病毒防范管理七方面來(lái)考慮與商業(yè)銀行行內(nèi)系統(tǒng)的接口安全管理。前置機(jī)系統(tǒng)管理員通過(guò)前置機(jī)客戶端在系統(tǒng)參數(shù)維護(hù)功能中設(shè)置安全碼,該安全碼在前置機(jī)端以密文的形式保存。 用戶管理商業(yè)銀行前置機(jī)系統(tǒng)的處理資源、通信資源、信息資源均要進(jìn)行訪問(wèn)控制。操作人員進(jìn)入系統(tǒng)后,只能訪問(wèn)經(jīng)過(guò)授權(quán)的功能。系統(tǒng)管理員增設(shè)用戶,業(yè)務(wù)經(jīng)理對(duì)該用戶進(jìn)行生效處理,互相牽制,新用戶才可登錄系統(tǒng)。 審計(jì)追蹤為了方便安全事件的事后稽查,前置機(jī)系統(tǒng)制訂了合理的審計(jì)策略,對(duì)重要的業(yè)務(wù)操作(包括:所有支付交易、清算賬戶操作以及異常處理)進(jìn)行日志記錄。任何符合審計(jì)追蹤條件的操作都會(huì)記錄必要的審計(jì)追蹤信息;并建立完整的審計(jì)追蹤信息。 網(wǎng)絡(luò)安全為保證支付信息的安全傳輸,商業(yè)銀行系統(tǒng)與支付系統(tǒng)之間的網(wǎng)絡(luò)連接必須采用相應(yīng)的安全措施,不得與其他非支付信息傳輸(如辦公自動(dòng)化、互聯(lián)網(wǎng)等)共用一個(gè)網(wǎng)絡(luò)。(具體網(wǎng)絡(luò)安全方案另文發(fā)布) 密押及加密管理為了實(shí)現(xiàn)商業(yè)銀行行內(nèi)系統(tǒng)與支付系統(tǒng)之間數(shù)據(jù)傳輸?shù)谋C苄院屯暾?,前置機(jī)系統(tǒng)在報(bào)文的組織方面采用安全性高的報(bào)文組織方式;前置機(jī)系統(tǒng)對(duì)發(fā)往CCPC的所有支付信息應(yīng)用硬件加密卡進(jìn)行加支付系統(tǒng)地方押處理,對(duì)從CCPC接收的所有支付信息進(jìn)行核支付系統(tǒng)地方押處理,并對(duì)核押不對(duì)的支付業(yè)務(wù)經(jīng)查詢查復(fù)后進(jìn)行手工核押;同時(shí)對(duì)前置機(jī)系統(tǒng)和CCPC之間聯(lián)機(jī)或脫機(jī)傳輸?shù)娜魏螆?bào)文數(shù)據(jù)進(jìn)行加密和解密處理。該密押卡有單獨(dú)的配置管理工具,可以完成密押軟件模塊初始化、生成管理員卡、保護(hù)密鑰和密押主密鑰的注入、備份和加載等敏感操作。 報(bào)文權(quán)限控制為了保證支付系統(tǒng)的業(yè)務(wù)的安全可靠l 支付系統(tǒng)前置機(jī)端設(shè)有權(quán)限控制。l 在支付系統(tǒng)的CCPC端對(duì)所發(fā)起業(yè)務(wù)進(jìn)行接收方權(quán)限控制,如果接收方不沒(méi)有進(jìn)行該種業(yè)務(wù)的權(quán)限,那么CCPC會(huì)對(duì)所發(fā)起的該筆業(yè)務(wù)做拒票處理。 聯(lián)機(jī)識(shí)別ID為了保證接入支付系統(tǒng)的前置機(jī)的合法性,支付系統(tǒng)引入登錄機(jī)制。 病毒防范管理當(dāng)商業(yè)銀行與前置機(jī)系統(tǒng)之間、前置機(jī)系統(tǒng)與CCPC之間的通訊出現(xiàn)故障時(shí),需要通過(guò)磁介質(zhì)進(jìn)行支付業(yè)務(wù)的傳遞,前置機(jī)系統(tǒng)應(yīng)首先對(duì)磁介質(zhì)進(jìn)行病毒檢查,在病毒檢查通過(guò)后才進(jìn)行數(shù)據(jù)的業(yè)務(wù)處理。包括:報(bào)文格式錯(cuò),行號(hào)檢查錯(cuò),發(fā)送方權(quán)限檢查、系統(tǒng)狀態(tài)檢查等。 密押錯(cuò)誤的處理對(duì)于商業(yè)銀行行內(nèi)系統(tǒng)發(fā)起的支付業(yè)務(wù),支付系統(tǒng)均將進(jìn)行嚴(yán)格的密押檢查。前置機(jī)需對(duì)密押錯(cuò)誤登記簿的信息全部處理后才能進(jìn)行日切處理。如果,匯票處理中心核押不正確,通過(guò)查詢報(bào)文(CMT301)通知代理兌付行該筆匯票密押錯(cuò)誤。l 如錄入錯(cuò)誤,通過(guò)查復(fù)報(bào)文(CMT302)向匯票處理中心更正,匯票處理中心對(duì)更正后的匯票密押再次進(jìn)行核驗(yàn),如果核押配對(duì),實(shí)時(shí)自動(dòng)將款項(xiàng)通過(guò)CMT122報(bào)文匯劃到代理兌付行。匯票處理中心對(duì)更正后的匯票密押再次進(jìn)行核驗(yàn),如果核押配對(duì),實(shí)時(shí)自動(dòng)將款項(xiàng)通過(guò)CMT122報(bào)文匯劃到代理兌付行。 前置機(jī)與CCPC間來(lái)賬核押出錯(cuò)的處理對(duì)于前置機(jī)系統(tǒng)從CCPC接收的任何支付交易指令,當(dāng)核押發(fā)現(xiàn)密押錯(cuò)誤時(shí),前置機(jī)系統(tǒng)仍然實(shí)時(shí)轉(zhuǎn)發(fā)給商業(yè)銀行行內(nèi)系統(tǒng)并標(biāo)記該業(yè)務(wù)核地方押錯(cuò),由商業(yè)銀行行內(nèi)系統(tǒng)作暫存處理,同時(shí)由商業(yè)銀行操作員從前置機(jī)客戶端(通過(guò)CMT309密押查詢報(bào)文)向CCPC發(fā)起對(duì)該筆業(yè)務(wù)密押的查詢,待CCPC(通過(guò)CMT310密押查復(fù)報(bào)文)查復(fù)后,在前置機(jī)客戶端輸入該票據(jù)的業(yè)務(wù)要素以及CCPC通過(guò)查詢查復(fù)傳來(lái)的密押進(jìn)行人工核押,判斷該筆來(lái)賬是否正確,如正確則商業(yè)銀行行內(nèi)系統(tǒng)可對(duì)該筆支付業(yè)務(wù)按正常的來(lái)賬業(yè)務(wù)處理,否則,根據(jù)相應(yīng)的業(yè)務(wù)管理規(guī)定進(jìn)行處理。 支付系統(tǒng)CCPC與NPC之間來(lái)賬核押出錯(cuò)的處理對(duì)于收?qǐng)?bào)中心從NPC接收的任何支付交易指令,當(dāng)核押發(fā)現(xiàn)密押錯(cuò)誤時(shí),收?qǐng)?bào)中心仍然實(shí)時(shí)轉(zhuǎn)發(fā)給商業(yè)銀行并標(biāo)記核全國(guó)押錯(cuò),商業(yè)銀行作暫收處理;同時(shí),收?qǐng)?bào)中心向發(fā)報(bào)中心發(fā)出查詢,并根據(jù)所收到的發(fā)報(bào)中心的查復(fù)在CCPC重新錄入核押要素進(jìn)行人工核押,若核押成功則以密押查詢報(bào)文通知該商業(yè)銀行可對(duì)該筆來(lái)賬業(yè)務(wù)按正常的來(lái)賬業(yè)務(wù)處理,否則,根據(jù)相應(yīng)的業(yè)務(wù)管理規(guī)定進(jìn)行處理。 對(duì)賬不符的處理 往來(lái)賬對(duì)賬不平的處理商業(yè)銀行在日終進(jìn)行匯總對(duì)賬時(shí),如果匯總對(duì)賬不平,可以向前置機(jī)申請(qǐng)下載往來(lái)賬支付明細(xì)數(shù)據(jù);在進(jìn)行明細(xì)對(duì)賬時(shí),商業(yè)銀行系統(tǒng)以下載的支付業(yè)務(wù)明細(xì)數(shù)據(jù)為準(zhǔn),在行內(nèi)系統(tǒng)中作相應(yīng)的調(diào)賬。 前置機(jī)系統(tǒng)系統(tǒng)故障的處理商業(yè)銀行的前置機(jī)系統(tǒng)采用實(shí)時(shí)雙機(jī)熱備份機(jī)制, 備份的前置機(jī)放在較安全的位置,具體由商業(yè)銀行本身負(fù)責(zé),當(dāng)前置機(jī)系統(tǒng)出現(xiàn)故障而無(wú)法工作時(shí),備份的前置機(jī)系統(tǒng)自動(dòng)接替正在運(yùn)行的前置機(jī)系統(tǒng)的所有工作,要求保證數(shù)據(jù)的安全、完整,保證前置機(jī)系統(tǒng)的所有業(yè)務(wù)正常進(jìn)行處理。l 調(diào)用連接API返回錯(cuò)誤碼002,表示數(shù)據(jù)庫(kù)服務(wù)未啟動(dòng),商業(yè)銀行應(yīng)檢查數(shù)據(jù)庫(kù)是否已經(jīng)啟動(dòng)。l 調(diào)用發(fā)送API返回碼為101,表示無(wú)權(quán)調(diào)用該API,商業(yè)銀行應(yīng)檢查所輸入的調(diào)用API安全碼是否正確。l 調(diào)用發(fā)送API返回碼為103,表示格式錯(cuò),對(duì)批量數(shù)據(jù)整包拒絕,商業(yè)銀行應(yīng)修正錯(cuò)誤后重發(fā)。l 調(diào)用發(fā)送API返回碼為105,表示前置機(jī)當(dāng)前狀態(tài)不能進(jìn)行發(fā)送業(yè)務(wù),商業(yè)銀行行內(nèi)系統(tǒng)可重發(fā)。l 調(diào)用接收API返回碼為101,表示無(wú)權(quán)調(diào)用該API,商業(yè)銀行應(yīng)檢查所輸入的調(diào)用API安全碼是否正確。l 調(diào)用接收確認(rèn)API返回碼為101,表示無(wú)權(quán)調(diào)用該API,商業(yè)銀行應(yīng)檢查所輸入的調(diào)用API安全碼是否正確。 發(fā)報(bào)中心CCPC與NPC通訊故障的處理當(dāng)發(fā)報(bào)中心CCPC與NPC通訊出現(xiàn)故障并在一定時(shí)間內(nèi)不能恢復(fù)時(shí),CCPC會(huì)通過(guò)通用回應(yīng)報(bào)文對(duì)商業(yè)銀行發(fā)起的業(yè)務(wù)作拒絕處理。 收?qǐng)?bào)中心CCPC故障的處理當(dāng)收?qǐng)?bào)中心CCPC有故障后,會(huì)在發(fā)報(bào)中心或NPC端對(duì)所有發(fā)往該CCPC的未處理的業(yè)務(wù)作拒絕處理。結(jié)構(gòu): X XX 類別代碼 行別代碼說(shuō)明:①類別代碼:1位數(shù)字,標(biāo)識(shí)銀行類別,其中:0:中央銀行;1:國(guó)有獨(dú)資商業(yè)銀行;2:政策性銀行;3:其他商業(yè)銀行; 4:非銀行金融機(jī)構(gòu);5:外資銀行;9:特許參與者; 8: 待分配 ②行別代碼:2位數(shù)字。結(jié)構(gòu): XXXX 地區(qū)代碼 說(shuō)明:①地區(qū)代碼參照電子聯(lián)行全國(guó)清算中心代碼; ②支付系統(tǒng)與電子聯(lián)行轉(zhuǎn)換中心代碼為“9988”; 發(fā)起行(接收行)行號(hào)十二位定長(zhǎng)數(shù)字。 清算賬戶賬號(hào)十二位定長(zhǎng)字符。 往來(lái)科目賬戶賬號(hào)十