中國(guó)工商銀行銀企互聯(lián)系統(tǒng)企業(yè)開發(fā)手冊(cè)精講_第1頁(yè)
中國(guó)工商銀行銀企互聯(lián)系統(tǒng)企業(yè)開發(fā)手冊(cè)精講_第2頁(yè)
中國(guó)工商銀行銀企互聯(lián)系統(tǒng)企業(yè)開發(fā)手冊(cè)精講_第3頁(yè)
中國(guó)工商銀行銀企互聯(lián)系統(tǒng)企業(yè)開發(fā)手冊(cè)精講_第4頁(yè)
中國(guó)工商銀行銀企互聯(lián)系統(tǒng)企業(yè)開發(fā)手冊(cè)精講_第5頁(yè)
已閱讀5頁(yè),還剩15頁(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)介

1、 企業(yè)開發(fā)手冊(cè) 1. 文檔屬性文檔屬性內(nèi)容文檔名稱中國(guó)工商銀行銀企互聯(lián)系統(tǒng)企業(yè)開發(fā)手冊(cè)文檔版本號(hào)A0文檔狀態(tài)正式稿文檔編寫完成日期2011-11-21作 者高小偉(北京開發(fā)三部),丁孚旌(北京開發(fā)三部)2. 文檔變更歷史清單文檔版本號(hào)變更日期修改人備注A02011-11-21高小偉給文檔加了首頁(yè),版本號(hào),作者等信息。3. 本次修改變更說(shuō)明序號(hào)變更內(nèi)容簡(jiǎn)述.5.目錄第 1 章概述4第 2 章總體方案介紹42.1總體網(wǎng)絡(luò)結(jié)構(gòu)圖42.2企業(yè)端安全服務(wù)器簡(jiǎn)介42.3安全控制介紹5第 3 章重點(diǎn)說(shuō)明6第 4 章銀企互聯(lián)NC方式接入客戶84.1企業(yè)端系統(tǒng)環(huán)境要求8軟件環(huán)境8網(wǎng)絡(luò)環(huán)境8企業(yè)開發(fā)

2、過(guò)程描述8第 5 章銀企互聯(lián)非NC方式接入客戶125.1企業(yè)端系統(tǒng)環(huán)境要求12軟件環(huán)境12網(wǎng)絡(luò)環(huán)境13企業(yè)開發(fā)過(guò)程描述13第 6 章關(guān)于通訊證書和銀行證書的說(shuō)明19第 7 章磁盤證書拆分197.1證書拆分方法197.2證書拆分后流程19第 1 章 概述銀企互聯(lián)面向大的集團(tuán)客戶,提供與企業(yè)ERP系統(tǒng)直連的平臺(tái),銀企互聯(lián)面向大的集團(tuán)客戶,提供與企業(yè)ERP系統(tǒng)直連的平臺(tái),為工行的現(xiàn)金管理服務(wù)提供多渠道和客戶化支持。企業(yè)ERP系統(tǒng)通過(guò)HTTPS協(xié)議與工行系統(tǒng)進(jìn)行連接并向銀企互聯(lián)前置發(fā)送數(shù)據(jù),數(shù)據(jù)的接口格式使用標(biāo)準(zhǔn)的xml數(shù)據(jù)格式,但雙方通訊的過(guò)程中則需要遵守下文描述的規(guī)定。銀企互聯(lián)前置接到企業(yè)數(shù)據(jù)后進(jìn)

3、行一系列的檢查后完成交易,并將處理結(jié)果以企業(yè)便于處理的形式返回給企業(yè)。在安全保證方面,通訊層的安全保證是HTTPS協(xié)議。企業(yè)如需使用銀企互聯(lián)系統(tǒng),要辦理有關(guān)注冊(cè)手續(xù),并審領(lǐng)證書。企業(yè)進(jìn)行結(jié)算類交易時(shí),如果涉及到授權(quán)過(guò)程,企業(yè)需要在企業(yè)網(wǎng)銀系統(tǒng)中完成相關(guān)授權(quán)動(dòng)作。銀企互聯(lián)系統(tǒng)將企業(yè)提交的支付指令或者授權(quán)成功后的指令當(dāng)作最終轉(zhuǎn)賬指令,根據(jù)提交指令的證書ID檢查收付方帳號(hào)等合法性,以保證所提交指令在權(quán)限允許范圍內(nèi)進(jìn)行操作。第 2 章 總體方案介紹2.1 總體網(wǎng)絡(luò)結(jié)構(gòu)圖上圖企業(yè)ERP系統(tǒng)1采用的是非NC方式接入的客戶;企業(yè)ERP系統(tǒng)2采用的是NC方式接入的客戶;2.2 企業(yè)端安全服務(wù)器簡(jiǎn)介此服務(wù)器只對(duì)

4、使用NC方式接入的客戶有效。企業(yè)端安全服務(wù)器被稱為NetSafe Client。它有兩個(gè)可以配置的端口分別用于加密和簽名驗(yàn)簽服務(wù),如下圖所示(假設(shè)為加密端口,為簽名驗(yàn)簽端口)。1(加密)NetSafeClient2(簽名驗(yàn)簽)1. http交易請(qǐng)求包https交易請(qǐng)求包1.簽名驗(yàn)簽請(qǐng)求包2.簽名驗(yàn)簽結(jié)果2. 交易結(jié)果具體使用時(shí),企業(yè)應(yīng)用向工行提交交易請(qǐng)求時(shí),可以依照http協(xié)議向NetSafe Client的端口發(fā)送請(qǐng)求。接到請(qǐng)求后,NetSafe Client使用企業(yè)證書將http請(qǐng)求包轉(zhuǎn)換成https請(qǐng)求包發(fā)往工行端服務(wù)器;如果需要對(duì)某些交易數(shù)據(jù)進(jìn)行簽名,則企業(yè)應(yīng)用需要與簽名端口建立Soc

5、ket 連接并將待簽名數(shù)據(jù)發(fā)往端口,然后接收端口的簽名結(jié)果,之后再將包含簽名信息的交易請(qǐng)求發(fā)往端口而完成整個(gè)交易請(qǐng)求過(guò)程。對(duì)簽名還是驗(yàn)簽名請(qǐng)求的區(qū)分則是通過(guò)http包頭來(lái)進(jìn)行。Content-Type: INFOSEC_SIGN/1.0和Content-Type: INFOSEC_VERIFY_SIGN/1.0分別用于標(biāo)識(shí)簽名請(qǐng)求和驗(yàn)簽名請(qǐng)求,而Content-Type: INFOSEC_SIGN_RESULT/1.0和Content-Type: INFOSEC_VERIFY_SIGN_RESULT/1.0分別用于標(biāo)識(shí)簽名和驗(yàn)簽名的返回結(jié)果。為方便起見,可以將NetSafe Client的兩個(gè)

6、服務(wù)端口邏輯地稱為兩臺(tái)服務(wù)器,NetSafe Client的加密服務(wù)器和簽名服務(wù)器。2.3 安全控制介紹對(duì)于NC方式接入的客戶ü 企業(yè)向工行提交的交易數(shù)據(jù),必須通過(guò)企業(yè)方的NetSafe Client進(jìn)行與工行服務(wù)器的連接,接口確定需要簽名的數(shù)據(jù)也必須由NetSafe Client的簽名服務(wù)器簽名后組成規(guī)定的數(shù)據(jù)包格式后,通過(guò)NetSafe Client提交工行,這樣可以保證企業(yè)數(shù)據(jù)以及相關(guān)信息不被惡意篡改。ü 數(shù)據(jù)全部由NetSafe Client負(fù)責(zé)轉(zhuǎn)發(fā),使NetSafe Client成為架設(shè)在企業(yè)現(xiàn)場(chǎng)的工行接入服務(wù)器。而企業(yè)與工行之間安全的連接,由NetSafe Cl

7、ient和工行安全代理服務(wù)器NetSafe保證;ü 工行接收到企業(yè)提交過(guò)來(lái)的部分關(guān)鍵交易數(shù)據(jù)后,需要解密并驗(yàn)證企業(yè)的數(shù)字簽名,以防止第三方假冒企業(yè)的行為。對(duì)于非NC方式接入的客戶ü 企業(yè)向工行提交交易數(shù)據(jù)時(shí)的安全控制企業(yè)ERP與銀企互聯(lián)系統(tǒng)之間使用HTTPS協(xié)議通訊。企業(yè)可以選擇是否對(duì)交易數(shù)據(jù)進(jìn)行對(duì)稱加密,目前系統(tǒng)支持的算法有DES與3DES。進(jìn)行對(duì)稱加密可以防止第三方截獲交易的信息。而加密中需要用到的密鑰由企業(yè)與工行共同約定。(加密功能暫不支持)企業(yè)需要對(duì)其發(fā)送的指令數(shù)據(jù)進(jìn)行數(shù)字簽名,簽名中使用的證書可以是企業(yè)證書也可以是工行證書,其中簽名使用的算法是SHA1withRS

8、A。進(jìn)行數(shù)字簽名可以防止第三方假冒企業(yè)的行為。ü 工行向企業(yè)發(fā)送結(jié)果信息時(shí)的安全控制企業(yè)ERP與銀企互聯(lián)系統(tǒng)之間使用HTTPS協(xié)議通訊。企業(yè)可選擇是否對(duì)返回?cái)?shù)據(jù)進(jìn)行對(duì)稱加密,方法與上文相同。工行對(duì)部分關(guān)鍵交易返回信息進(jìn)行數(shù)字簽名。第 3 章 重點(diǎn)說(shuō)明Ø xml格式要支持業(yè)界公認(rèn)的標(biāo)準(zhǔn)格式,例如:<Tag />等同于<Tag></Tag>;上送數(shù)據(jù)格式盡量簡(jiǎn)單,避免使用CDData等文本格式。Ø 所有的交易請(qǐng)求包中“包序列ID”2002年12月23日發(fā)送的一個(gè)交易請(qǐng)求包的包序列ID)。在一個(gè)企業(yè)代碼下當(dāng)日包序列ID必須唯一。工行處

9、理完畢之后將該字段原值返回,即所有的交易返回包中“包序列ID”字段(PackageID)。Ø 轉(zhuǎn)帳交易請(qǐng)求包中“簽名時(shí)間”字段(SignTime),格式為yyyyMMddhhmm2002年12月23日9點(diǎn)27分10秒568毫秒)。簽名時(shí)間應(yīng)為北京時(shí)間。簽名時(shí)間如果與交易請(qǐng)求到達(dá)工行服務(wù)器時(shí)的北京標(biāo)準(zhǔn)時(shí)間誤差過(guò)大(暫定為15分鐘),交易將無(wú)法進(jìn)行。此措施將可以有效地防止黑客采用重放攻擊進(jìn)行干擾帳務(wù)活動(dòng)的行為。同一筆交易如果因?yàn)榫W(wǎng)絡(luò)不正常等因素需要重新提交時(shí),要修改轉(zhuǎn)賬交易請(qǐng)求包的“簽名時(shí)間字段”并重新簽名。Ø 所有請(qǐng)求包和返回包中備用字段的使用主要是出于對(duì)今后擴(kuò)展的考慮,如果

10、以后需要增加企業(yè)上送的項(xiàng)目或者返回給企業(yè)的信息,不必再改變交易包格式。目前對(duì)企業(yè)請(qǐng)求包來(lái)說(shuō)這些備用字段的值可以送空;企業(yè)對(duì)銀行返回包中的備用字段也不必作處理。請(qǐng)求包中的備用字段標(biāo)簽為“ReqReserved*”,返回包中的備用字段標(biāo)簽為“RepReserved*”(其中*為1、2、3或4,詳見接口說(shuō)明文檔)。Ø 查詢歷史明細(xì)返回?cái)?shù)據(jù)包中交易時(shí)間(<Trans_time></Trans_time>)數(shù)值如為空,則說(shuō)明該筆指令是銀行的計(jì)息交易明細(xì)。Ø 支付查詢指令接口,方便企業(yè)對(duì)可疑、有疑問(wèn)(如網(wǎng)絡(luò)中斷,交易長(zhǎng)時(shí)間沒有返回等)或處理完畢的轉(zhuǎn)帳指令進(jìn)行查詢

11、。企業(yè)提交要查詢的結(jié)算請(qǐng)求的包序列ID,工行返回該筆轉(zhuǎn)帳指令的基本信息和狀態(tài)。Ø 本接口說(shuō)明中所有涉及金額的字段都是以分為單位(不帶小數(shù)點(diǎn))。Ø 如企業(yè)系統(tǒng)需要代理匯兌功能則企業(yè)應(yīng)用需同步開發(fā)網(wǎng)點(diǎn)信息下載交易,以便為代理匯兌交易中收方為它行情況時(shí)提供工行網(wǎng)點(diǎn)名稱。否則,無(wú)需開發(fā)網(wǎng)點(diǎn)信息下載交易。Ø 在網(wǎng)點(diǎn)信息下載功能中,由于下載數(shù)據(jù)過(guò)大且數(shù)據(jù)不會(huì)經(jīng)常更新,所以此交易控制了企業(yè)每日下載次數(shù)。目前暫定次數(shù)為每日2次。Ø 個(gè)人聯(lián)名卡簽權(quán)指令只支持幣種是人民幣的賬號(hào)/卡號(hào)。Ø 企業(yè)端傳輸數(shù)據(jù)時(shí),指定xml編碼方式為GBK。Ø 銀企互聯(lián)提交包中

12、包含“<SignTime>簽名時(shí)間(yyyyMMddhhmmssSSS)</SignTime>”此標(biāo)簽的,說(shuō)明該交易需要進(jìn)行簽名處理。Ø 企業(yè)端的程序需要對(duì)銀行返回的數(shù)據(jù)有可擴(kuò)展性,以便適應(yīng)今后業(yè)務(wù)的不斷發(fā)展。Ø 銀企互聯(lián)系統(tǒng)支持兩種接入方式,客戶可以任何選擇一種。第一種:使用第三方NC軟件方式接入銀企互聯(lián)系統(tǒng);第二種:使用非NC方式企業(yè)直接接入銀企互聯(lián)系統(tǒng);Ø 一些接口中,返回包分文件級(jí)返回包和指令級(jí)返回包兩種。文件級(jí)返回包是作為客戶請(qǐng)求的響應(yīng)信息同步返回的。而指令級(jí)返回包是銀行主動(dòng)發(fā)起的異步返回信息,表示指令處理的結(jié)果,指令級(jí)返回包首先

13、會(huì)返回整批指令的處理結(jié)果,然后對(duì)于其中指令狀態(tài)非最終狀態(tài)(成功和失敗)的指令,銀行會(huì)實(shí)時(shí)更新每一條指令的狀態(tài),然后再每條分別以指令級(jí)返回包的格式返回給客戶。Ø 建議客戶使用HTTP/1.1協(xié)議。HTTP/1.0及其以下協(xié)議版本可能無(wú)法正常發(fā)送指令到銀行端。下面將區(qū)分兩類客戶分別對(duì)接入方式等相關(guān)信息進(jìn)行說(shuō)明。第 4 章 銀企互聯(lián)NC方式接入客戶4.1 企業(yè)端系統(tǒng)環(huán)境要求4.1.1 軟件環(huán)境對(duì)企業(yè)的ERP系統(tǒng)無(wú)要求;工行企業(yè)端證書服務(wù)器軟件NetSafe Client需安裝在一臺(tái)PC機(jī)上。4.1.2 網(wǎng)絡(luò)環(huán)境企業(yè)財(cái)務(wù)系統(tǒng)通過(guò)局域網(wǎng)與工商銀行提供的NetSafe Client連接;企業(yè)端的

14、NetSafe Client可以通過(guò)專線或INTERNET與中國(guó)工商銀行銀企互聯(lián)系統(tǒng)互聯(lián)。4.1.3 企業(yè)開發(fā)過(guò)程描述 企業(yè)提交交易請(qǐng)求數(shù)據(jù)過(guò)程企業(yè)提交的交易分為兩大類:查詢類和結(jié)算類(需要進(jìn)行簽名處理)。1、 查詢類:(1) 企業(yè)按照工行提供的xml包格式進(jìn)行打包,在局域網(wǎng)內(nèi)通過(guò)http協(xié)議以POST方式將交易包發(fā)送到NetSafe Client的安全http協(xié)議服務(wù)器。http請(qǐng)求格式:action=”http:/客戶端NetSafe Client的地址和加密端口號(hào)/servlet/ICBCCMPAPIReqServlet?userID=證書ID&PackageID=

15、包序列ID &SendTime=請(qǐng)求時(shí)間”http請(qǐng)求包頭信息:Content-Type應(yīng)為application/x-www-form-urlencoded請(qǐng)求數(shù)據(jù)格式(post方式):Version=版本號(hào)(目前支持和兩個(gè)版本。不同版本號(hào)對(duì)應(yīng)的接口格式不同,請(qǐng)參考具體交易的接口文檔) &TransCode=交易代碼(區(qū)分交易類型,每個(gè)交易固定)&BankCode=客戶的歸屬單位&GroupCIS=客戶的歸屬編碼&ID=客戶的證書ID(無(wú)證書客戶可空)&PackageID=客戶的指令包序列號(hào)(由客戶ERP系統(tǒng)產(chǎn)生,不

16、可重復(fù))&Cert=客戶的證書公鑰信息(進(jìn)行BASE64編碼;NC客戶送空) &reqData=客戶的xml請(qǐng)求數(shù)據(jù)其中:包序列ID、證書ID應(yīng)根據(jù)實(shí)際情況進(jìn)行更改,請(qǐng)求時(shí)間為企業(yè)發(fā)出該交易請(qǐng)求包的當(dāng)前系統(tǒng)時(shí)間。post方式最后不允許有回車等其他亂字符,TransCode交易名稱應(yīng)與xml包內(nèi)標(biāo)簽<TransCode></TransCode>中的值一致,action中的證書ID、PackageID與請(qǐng)求數(shù)據(jù)格式中的證書ID、PackageID、xml包中的證書ID、PackageID的值三者相一致。(2) NetSafe Client將xml包加密后按照

17、https協(xié)議,通過(guò)互聯(lián)網(wǎng)/專線發(fā)送到銀行端的NetSafe Server。(本步由NetSafe Client完成,企業(yè)無(wú)需處理);(3) NetSafe Server將交易請(qǐng)求送銀企互聯(lián)系統(tǒng)進(jìn)行處理。企業(yè)NetSafe ClientNetSafe Server(1)(2)工行(3)2、 結(jié)算類:(1) 企業(yè)按照工行提供的xml包格式進(jìn)行打包,在局域網(wǎng)內(nèi)與NetSafe Client的簽名端口建立Socket連接,通過(guò)此連接向簽名端口發(fā)送http數(shù)據(jù)包。http包頭中需包含“Content-Length”和“Content-Type”兩個(gè)屬性。其中“Content-Length:”后面是需要

18、簽名的二進(jìn)制數(shù)據(jù)包的長(zhǎng)度,“Content-Type:”后面是需要簽名的標(biāo)記,為INFOSEC_SIGN/1.0。(注意大小寫)http請(qǐng)求格式:action=”http:/客戶端NetSafe Client的地址和簽名端口號(hào)”請(qǐng)求數(shù)據(jù)格式:結(jié)算類請(qǐng)求提交的xml包NetSafe Client對(duì)xml包進(jìn)行簽名后,通過(guò)http協(xié)議將簽名結(jié)果返回給企業(yè)系統(tǒng)。如簽名成功<sign>標(biāo)簽與</sign>標(biāo)簽之間的部分為簽名結(jié)果。NetSafe Client返回的簽名包如下:<html><head><title>簽名結(jié)果</title&

19、gt;<result>0</result></head><body><sign>MIIIXAYJKovcNAQcCo. 0BlLdSgw=</sign></body></html>(2) 企業(yè)按照工行提供的xml包格式進(jìn)行打包,在局域網(wǎng)內(nèi)通過(guò)http協(xié)議以POST方式將交易包發(fā)送到NetSafe Client的安全http協(xié)議服務(wù)器。http請(qǐng)求格式:action=”http:/客戶端NetSafe Client的地址和加密端口號(hào)/servlet/ICBCCMPAPIReqServlet?userI

20、D=證書ID&PackageID=包序列ID &SendTime=請(qǐng)求時(shí)間” 請(qǐng)求數(shù)據(jù)格式(post方式):Version=版本號(hào)(區(qū)分版本時(shí)間,暫定.1) &TransCode=交易代碼(區(qū)分交易類型,每個(gè)交易固定)&BankCode=客戶的歸屬單位&GroupCIS=客戶的歸屬編碼&ID=客戶的證書ID(無(wú)證書客戶可空)&PackageID=客戶的指令包序列號(hào)(由客戶ERP系統(tǒng)產(chǎn)生,不可重復(fù))&Cert=客戶的證書公鑰信息(進(jìn)行BASE64編碼;NC客戶送空) &reqData=客戶的xml請(qǐng)求數(shù)據(jù)其中:包序列ID、證

21、書ID應(yīng)根據(jù)實(shí)際情況進(jìn)行更改,請(qǐng)求時(shí)間為企業(yè)發(fā)出該交易請(qǐng)求包的當(dāng)前系統(tǒng)時(shí)間。post方式最后不允許有回車等其他亂字符,TransCode交易名稱應(yīng)與xml包內(nèi)標(biāo)簽<TransCode></TransCode>中的值一致,action中的證書ID、PackageID與請(qǐng)求數(shù)據(jù)格式中的證書ID、PackageID、xml包中的證書ID、PackageID的值三者相一致。(3) NetSafe Client將企業(yè)送來(lái)的簽名包加密后按照https協(xié)議,通過(guò)互聯(lián)網(wǎng)/專線發(fā)送到工行端的NetSafe Server,再發(fā)往工行網(wǎng)銀進(jìn)行處理。(本步由NetSafe Client完成,企

22、業(yè)無(wú)需處理)。企業(yè)NetSafe ClientNetSafe Server(1)(2)(3)(4) 企業(yè)接收交易響應(yīng)數(shù)據(jù)過(guò)程企業(yè)接收到數(shù)據(jù)包的格式:reqData=交易返回包 或 errorCode=錯(cuò)誤代碼步驟:判斷返回?cái)?shù)據(jù)中是否是errorCode:(1)如果是:根據(jù)錯(cuò)誤代碼做相應(yīng)處理,結(jié)束。錯(cuò)誤代碼的含義參見接口說(shuō)明文檔中的附錄。(2)如果否:企業(yè)接收到數(shù)據(jù)包的格式:reqData=交易結(jié)果包;企業(yè)根據(jù)先進(jìn)行BASE64解碼,簽名返回包按照格式拆分出明文和密文,驗(yàn)簽正確后對(duì)明文按工行提供的xml包格式進(jìn)行解包。對(duì)于單筆提交類指令(即存在文件級(jí)返回包的指令),返回的xml包格

23、式按照指令級(jí)返回包格式來(lái)處理,多筆則按照文件級(jí)返回包格式來(lái)處理。 企業(yè)接收銀行主動(dòng)返回過(guò)程http請(qǐng)求格式:action=”http:/客戶ERP服務(wù)器的地址和端口號(hào)” 請(qǐng)求數(shù)據(jù)格式(post方式):Version=版本號(hào)(.1,不同版本號(hào)對(duì)應(yīng)的接口格式不同,請(qǐng)參考具體交易的接口文檔) &TransCode=交易代碼(區(qū)分交易類型,每個(gè)交易固定)&BankCode=客戶的歸屬單位&GroupCIS=客戶的歸屬編碼&ID=客戶的證書ID(無(wú)證書客戶可空)&PackageID=客戶的指令包序列號(hào)(由客戶ERP系統(tǒng)產(chǎn)生,不可重復(fù))&Cer

24、t=客戶的證書公鑰信息(進(jìn)行BASE64編碼;NC客戶送空) &reqData=客戶的xml請(qǐng)求數(shù)據(jù)reqData數(shù)據(jù)格式:如果需要簽名,格式為:數(shù)字字符串:長(zhǎng)度10位,代表明文數(shù)據(jù)長(zhǎng)度,不足10位左補(bǔ)0;明文:xml明文,長(zhǎng)度可變,需要上面的數(shù)據(jù)指明,雙字節(jié)字符(漢字)算作1位長(zhǎng)度;分隔符:ICBCCMP;密文:明文經(jīng)過(guò)簽名后的數(shù)據(jù)并做BASE64編碼;如果不需要簽名,則直接送xml明文;以上數(shù)據(jù)經(jīng)過(guò)拼接后,再進(jìn)行BASE64編碼(僅reqData項(xiàng))得到最終的reqData數(shù)據(jù)。按照以上格式將請(qǐng)求數(shù)據(jù)發(fā)送到企業(yè);此格式返回的數(shù)據(jù)是不經(jīng)過(guò)NC的,是銀行直接發(fā)給企業(yè)的ERP系統(tǒng);如有使

25、用,企業(yè)需要在內(nèi)管注冊(cè)或者修改集團(tuán)信息時(shí)填入企業(yè)用于接收銀行反饋的地址,標(biāo)準(zhǔn)格式是http:/ip:port;編解碼方式查看. 報(bào)文版本號(hào)說(shuō)明當(dāng)存量接口無(wú)法滿足客戶需求且無(wú)備用字段可擴(kuò)充時(shí),進(jìn)行接口版本號(hào)的升級(jí)。升級(jí)后的接口保持TransCode不變,Version提升,使用新接口的客戶,請(qǐng)求報(bào)文應(yīng)與相應(yīng)版本的報(bào)文格式保持一致。同時(shí),要求使用新版本的客戶系統(tǒng)按照自動(dòng)擴(kuò)展解析方式調(diào)用開發(fā)。即:企業(yè)客戶根據(jù)銀企互聯(lián)接口數(shù)據(jù)返回包定義的 “是否可選”標(biāo)記來(lái)判斷解析原則,如果標(biāo)志為“否”的,需要客戶系統(tǒng)校驗(yàn)標(biāo)簽節(jié)點(diǎn),如果為“是”的,客戶系統(tǒng)可根據(jù)自身需求決定是否拓展。第 5 章 銀企互

26、聯(lián)非NC方式接入客戶5.1 企業(yè)端系統(tǒng)環(huán)境要求5.1.1 軟件環(huán)境對(duì)企業(yè)的ERP系統(tǒng)無(wú)要求;5.1.2 網(wǎng)絡(luò)環(huán)境企業(yè)財(cái)務(wù)系統(tǒng)可以通過(guò)專線與中國(guó)工商銀行銀企互聯(lián)系統(tǒng)互聯(lián)。5.1.3 企業(yè)開發(fā)過(guò)程描述 企業(yè)提交交易請(qǐng)求數(shù)據(jù)過(guò)程(1) 企業(yè)按照工行提供的xml包格式進(jìn)行打包,在局域網(wǎng)內(nèi)通過(guò)http協(xié)議以POST方式將交易包發(fā)送到銀行前置機(jī)。http請(qǐng)求格式:action=http:/銀行通訊前置的地址和加密端口號(hào)? 請(qǐng)求數(shù)據(jù)見下面“請(qǐng)求數(shù)據(jù)格式(post方式)”http包頭信息:Content-Type應(yīng)為application/x-www-form-urlencoded請(qǐng)求數(shù)據(jù)格式(

27、post方式):Version=版本號(hào)(目前支持和兩個(gè)版本。不同版本號(hào)對(duì)應(yīng)的接口格式不同,請(qǐng)參考具體交易的接口文檔) &TransCode=交易代碼(區(qū)分交易類型,每個(gè)交易固定)&BankCode=客戶的歸屬單位&GroupCIS=客戶的歸屬編碼&ID=客戶的證書ID(無(wú)證書客戶可空)&PackageID=客戶的指令包序列號(hào)(由客戶ERP系統(tǒng)產(chǎn)生,不可重復(fù))&Cert=客戶的證書公鑰信息(進(jìn)行BASE64編碼;NC客戶送空) &reqData=客戶的xml請(qǐng)求數(shù)據(jù)其中:包序列ID、證書ID應(yīng)根據(jù)實(shí)際情況進(jìn)行更改

28、,請(qǐng)求時(shí)間為企業(yè)發(fā)出該交易請(qǐng)求包的當(dāng)前系統(tǒng)時(shí)間。post方式最后不允許有回車等其他亂字符,TransCode交易名稱應(yīng)與xml包內(nèi)標(biāo)簽<TransCode></TransCode>中的值一致,action中的證書ID、PackageID與請(qǐng)求數(shù)據(jù)格式中的證書ID、PackageID、xml包中的證書ID、PackageID的值三者相一致。reqData數(shù)據(jù)格式: 如果需要簽名:數(shù)字字符串:長(zhǎng)度10位,代表明文數(shù)據(jù)長(zhǎng)度,不足10位左補(bǔ)0;明文:xml明文,長(zhǎng)度可變,需要上面的數(shù)據(jù)指明,雙字節(jié)字符(漢字)算作1位長(zhǎng)度;分隔符:ICBCCMP;密文:明文經(jīng)過(guò)簽名后的數(shù)據(jù)并做B

29、ASE64編碼;如果不需要簽名,則直接送xml明文;以上數(shù)據(jù)經(jīng)過(guò)拼接后,再進(jìn)行BASE64編碼得到最終的reqData數(shù)據(jù)。以上每項(xiàng)請(qǐng)求參數(shù)的值(全部參數(shù)項(xiàng))均應(yīng)做一次URLEncode編碼,然后按照以上格式將請(qǐng)求數(shù)據(jù)發(fā)送到工行; 企業(yè)接收交易響應(yīng)數(shù)據(jù)過(guò)程企業(yè)接收到數(shù)據(jù)包的格式:reqData=交易返回包 或 errorCode=錯(cuò)誤代碼reqData=交易返回包結(jié)構(gòu):如果交易返回包進(jìn)行了簽名,則結(jié)構(gòu)為:數(shù)字字符串:長(zhǎng)度10位,代表明文數(shù)據(jù)長(zhǎng)度,不足10位左補(bǔ)0;明文:長(zhǎng)度可變,需要上面的數(shù)據(jù)指明,雙字節(jié)字符(漢字)算作1位長(zhǎng)度;分隔符:ICBCCMP;密文:明文經(jīng)過(guò)簽名后的數(shù)據(jù)

30、;如果交易返回包沒有簽名,則結(jié)構(gòu)為:明文;不論是否簽名,交易返回包均進(jìn)行了BASE64編碼;步驟:判斷返回?cái)?shù)據(jù)中是否是“errorCode=”打頭:(1)如果是:根據(jù)錯(cuò)誤代碼做相應(yīng)處理,結(jié)束。錯(cuò)誤代碼的含義參見接口說(shuō)明文檔中的附錄。(2)如果否:企業(yè)接收到數(shù)據(jù)包的格式:reqData=交易結(jié)果包企業(yè)根據(jù)先進(jìn)行BASE64解碼,簽名返回包按照格式拆分出明文和密文,驗(yàn)簽正確后對(duì)明文按工行提供的xml包格式進(jìn)行解包。對(duì)于單筆提交類指令(即存在文件級(jí)返回包的指令),返回的xml包格式按照指令級(jí)返回包格式來(lái)處理,多筆則按照文件級(jí)返回包格式來(lái)處理。 企業(yè)接收銀行主動(dòng)返回過(guò)程http請(qǐng)求格式:

31、action=”http:/客戶ERP服務(wù)器的地址和端口號(hào)” 請(qǐng)求數(shù)據(jù)格式(post方式):Version=版本號(hào)(.1,不同版本號(hào)對(duì)應(yīng)的接口格式不同,請(qǐng)參考具體交易的接口文檔) &TransCode=交易代碼(區(qū)分交易類型,每個(gè)交易固定)&BankCode=客戶的歸屬單位&GroupCIS=客戶的歸屬編碼&ID=客戶的證書ID(無(wú)證書客戶可空)&PackageID=客戶的指令包序列號(hào)(由客戶ERP系統(tǒng)產(chǎn)生,不可重復(fù))&Cert=客戶的證書公鑰信息(進(jìn)行BASE64編碼;NC客戶送空) &reqData=客戶的xml請(qǐng)求數(shù)據(jù)reqData

32、數(shù)據(jù)格式:如果需要簽名,格式為:數(shù)字字符串:長(zhǎng)度10位,代表明文數(shù)據(jù)長(zhǎng)度,不足10位左補(bǔ)0;明文:xml明文,長(zhǎng)度可變,需要上面的數(shù)據(jù)指明,雙字節(jié)字符(漢字)算作1位長(zhǎng)度;分隔符:ICBCCMP;密文:明文經(jīng)過(guò)簽名后的數(shù)據(jù)并做BASE64編碼;如果不需要簽名,則直接送xml明文;以上數(shù)據(jù)經(jīng)過(guò)拼接后,再進(jìn)行BASE64編碼(僅reqData項(xiàng))得到最終的reqData數(shù)據(jù)。按照以上格式將請(qǐng)求數(shù)據(jù)發(fā)送到企業(yè);此格式返回的數(shù)據(jù)是銀行直接發(fā)給企業(yè)的ERP系統(tǒng);如有使用,企業(yè)需要在內(nèi)管注冊(cè)或者修改集團(tuán)信息時(shí)填入企業(yè)用于接收銀行反饋的地址,標(biāo)準(zhǔn)格式是http:/ip:port;編解碼方式查看.5企業(yè)簽名驗(yàn)

33、簽過(guò)程在銀企互聯(lián)中,對(duì)于指令體的簽名與驗(yàn)簽工作由純java版工行簽名驗(yàn)簽接口完成的。本文檔對(duì)在專業(yè)版銀企互聯(lián)中使用的接口作出描述。同時(shí)提供了一套純java版的從企業(yè)發(fā)送指令到工行系統(tǒng)和從工行系統(tǒng)接收處理結(jié)果的例子程序。從企業(yè)發(fā)送指令到工行系統(tǒng)的例子中包括了兩方面的內(nèi)容:用企業(yè)的數(shù)據(jù)層私鑰對(duì)數(shù)據(jù)進(jìn)行簽名,然后用工行的通訊層公鑰進(jìn)行通訊認(rèn)證;從工行系統(tǒng)接收處理結(jié)果的例子中包括了兩方面的內(nèi)容:用企業(yè)的通訊層私鑰要求通訊認(rèn)證,然后用工行的數(shù)據(jù)層公鑰進(jìn)行數(shù)據(jù)的驗(yàn)簽。使用這種接入方式的客戶只能使用磁盤證書;該磁盤證書需要拆分,拆分為一對(duì)數(shù)據(jù)層證書,用于簽名驗(yàn)簽;一對(duì)通訊層證書,用于建立與銀行的https連

34、接。拆分方法見第7章企業(yè)簽名驗(yàn)簽方法總體介紹接口包含icbc.jar、InfosecCrypto_Java1_02_JDK14.jar、tools.jar四個(gè)文件,使用時(shí)需要把這四個(gè)文件放置到j(luò)ava的classpath目錄中。該接口建議的JDK 版本為。(不要使用JDK1.5版本或者比1.4更低版本)接口使用的詳細(xì)說(shuō)明Sign(對(duì)原始數(shù)據(jù)進(jìn)行數(shù)字簽名的函數(shù))public static byte sign(byte src, int len, byte privateKey, char keyPass)Description 用rsa算法對(duì)一段消息簽名 Param

35、eters: privateKey - 為口令保護(hù)的私鑰 src - 為待簽名消息 len - 為待簽名消息的長(zhǎng)度keyPass - 為私鑰保護(hù)口令 Returns: 如果成功返回簽名結(jié)果,如果失敗返回null Throws: NoSuchProviderException - NoSuchAlgorithmException - InvalidKeyException - SignatureException - verifySign(對(duì)數(shù)字簽名進(jìn)行驗(yàn)簽的函數(shù))public static int verifySign(byte src, int len, byte cer

36、t, byte sign)Description 用rsa算法對(duì)一段簽名進(jìn)行驗(yàn)證 Parameters: cert - 為證書 src - 為被簽名的消息 len - 為被簽名消息的長(zhǎng)度sign - 為簽名的結(jié)果 Returns: 如果成功返回0,如果其它則失敗 Throws: SignatureException - NoSuchAlgorithmException - InvalidKeyException -附件說(shuō)明1 ceshizhang.cer ,ceshizhang.key是一套客戶證書的公鑰與私鑰,保護(hù)口令是12345678。2 Test.java是一個(gè)演示各個(gè)接口使用

37、方式的測(cè)試程序。3 APIforZHEJIANG文件夾指導(dǎo)企業(yè)開發(fā)的例子程序;使用說(shuō)明例子的使用說(shuō)明。4 附件如下 https服務(wù)器建立開發(fā)支持請(qǐng)參考上面附件中APIforZHEJIANGAPIforZHEJIANGicbcapiserver.java開發(fā)。使用說(shuō)明文檔介紹了開發(fā)方法。 Base64編解碼方法參考建議使用sun提供的BASE64編解碼方法實(shí)現(xiàn)。/* * base64解碼 * param s:需要解碼的數(shù)據(jù) * return 解碼后的數(shù)據(jù) */public static String getstrFromBASE64(String s) if (s = null)return null;sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();try byte b = decoder.decodeBuffer(s);return new String

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論