聊聊銀企直聯服務那些事


背景

相關 wiki 定義。

銀企直聯是指集團企業在集團內部建立自己的資金管理系統,通過數據接口將內部資金管理系統與商業銀行核心系統、網銀或者現金管理平台實現聯接。通過銀企直聯系統企業可實現實時帳戶信息查詢、明細查詢、自動轉帳、交易查詢等功能。並且交易的實時性和方便性得到大幅提高。“銀企直聯”的應用特點是連接手段不限,公網、專線均可。

下面說說一些使用銀企直聯的實際場景。

公司一般都會在某個銀行開設對公賬戶,相關款項需要通過該對公賬戶出款。使用對公賬戶出款需要使用企業網銀,出款流程類似我們使用個人網銀出款流程。

若業務場景需要將商家的當天收款金額轉賬至其銀行卡。未接入銀企之前,財務同學需要登錄企業網銀,創建出款信息,然后插入銀行 U 盾,確認出款。接入銀企之后,可以實現自動將商家的金額匯總然后轉賬出款,無需繁瑣的網銀流程。這樣可以與內部服務關聯,實現線上化。

當然銀企服務還可以實現查找銀行流水等功能。

我司基於銀企直聯服務,開發了公司內部服務,很大程度解決財務打款,后期做賬核對繁瑣問題。

現就將本人接入幾家銀行經歷,談談銀企直聯服務接入流程。

銀企接入流程

銀企接入流程:

  1. 與銀行簽訂相關服務,獲取相關開發文檔,以及生產相關配置參數。
  2. 安裝銀企前置服務。
  3. 根據文檔接入相關接口。
  4. 相關接口測試環境測試,完成測試報告,提交給銀行。銀行開通正式環境權限,然后在正式環境測試連通性。

第一步一般由公司財務相關人員與銀行客戶經理商談即可。

第二步安裝銀企前置服務軟件。整個銀企服務一般由企業應用程序,銀企前置程序,銀行服務構成。三者關系見下圖。

部署圖

企業內部程序根據銀行文檔組裝報文,報文格式一般以 xml 為主。然后內部程序將報文通過 HTTP 或 Socket 方式發送至銀行前置程序。銀行前置程序接受報文,先進行相關報文格式校驗,然后使用數字證書加密報文,發送至銀行服務。最后銀行前置程序驗證銀行服務返回報文,再將解析后報文返回企業內部程序。

銀行前置程序與銀行服務連接有兩種方式:

公網連接,特點成本低,網速容易受外部網絡環境影響。

專線連接,采用專門線路物理連接企業與銀行兩端。該方式網速穩定,不易受外部網絡環境影響。但是成本相對較高。

需要注意的是,銀企前置程序大都只能安裝在 Windows 上,可能與銀企直聯所需要的 U 盾驅動只兼容 Windows 有關。有的銀企前置程序為單獨軟件,需要安裝,有的為 Java 程序,無需單獨安裝。

第三步,根據銀行開發文檔接入相關接口。

銀企服務一般會提供轉賬,查詢流水,查詢余額等接口。

第四步測試相關銀企服務,有的銀行需要在測試環境測試通過后,才能開通正式生產環境。

目前已經開發的銀行如下:

  • [x] 招商銀行
  • [x] 建設銀行
  • [x] 寧波銀行
  • [x] 平安銀行
  • [x] 工商銀行

相關銀行開發經驗

招商銀行

招行銀企前置程序需要單獨安裝,相關接口按照文檔開發即可。招行開發文檔比較完善,且存在相關 Demo,接入比較簡單。

建設銀行

建行銀企前置服務為 Java 程序,需要安裝 JDK5+ 。

建行銀企前置程序需要設置操作員,需要提前在企業網銀處設置,設置過程比較繁瑣。

建行開發文檔未提供開發 Demo,可以向銀行支持技術索取。企業程序向建行前置服務發送報文需要使用以下方式 requestXML='xml'

寧波銀行

這家銀行相對坑爹,前期銀行技術支持給錯文檔,且支持人員不知道前置機軟件怎么安裝。后經與其總行交談,才獲取接口等文檔。

前置程序需要單獨安裝,設置也比較麻煩,需要指定兩個端口,一個為報文接受端口,一個為加密端口。

寧波銀行與上面銀行不同之處在於,其每筆報文需要先通過登陸接口獲取 session,然后再構建報文。轉賬接口報文需要先將報文發送到前置機加密,獲取簽名數據,然后將簽名數據組裝到報文中構成完整 xml。

寧波銀行前置程序使用 U 盾驅動兼容性較差,長時間使用過程中會出現 U 盾突然無法識別情況,需要重新插拔。

平安銀行

銀行前置程序為 Java web,需要使用 JDK 6+ 版本。

平安銀行報文由報頭加報文體構成。報文頭按照固定格式拼接,報文體根據接口拼接。部分接口需要前置機加密,需要在前置機軟件后台提前設置。

工商銀行

工行前期接入過程需要注意 U 盾自帶驅動存在問題,需要使用特殊的驅動程序。

U 盾證書剛開始拿到可能無法用於交易,需要銀行人員分配證書權限。

相關問題

下面說說接入或日常運維中中可能碰到的問題。

轉賬掉單問題

銀企轉賬接口,未返回一個不明確狀態(成功或失敗),這種情況我們稱為掉單。

導致掉單的原因可能為銀行內部服務出錯,或網絡問題。

對於這種掉單情況,需要配合使用銀企查詢接口,查詢最終狀態。

銀企前置程序並發問題

銀企前置程序一般無法支持很高並發交易量,如招商銀行文檔就建議同時不超過 50 。若企業程序調用轉賬接口並發數較大,可以采用批量打包方式,每隔一段時間將所有交易組裝成報文,然后調用銀企批量轉賬接口。

安全問題

企業內部服務與銀企前置服務通訊報文一般都是未加密的明文,這個通訊過程比較容易被監聽,篡改,安全性較低。

我們之前做法為將銀企服務與企業內部程序部署在企業內網。外部網絡訪問需通過相關 VPN 才能訪問。

轉賬時效

銀企轉賬接口通常內部使用人行大小額系統或超級網銀系統。采用系統不同,轉賬時效性也不同。

大小額系統由大額支付系統與小額支付系統構成。小額系統全年無休,7x24 小時工作,金額小於 5W 的交易會采用小額系統。大額系統運行在工作日的 8:00 ~ 17:00,金額大於 5 W 以上的以上會使用大額系統。

超級網銀系統,央行第二代支付系統,交易限額為 5w,到賬速度非常快,但是相對轉賬費率較高。

對於非工作日大於 5w 的交易若想保證時效性,可以采用拆單方法,將一筆轉賬拆分成多筆轉賬出去。

聯行號/超級行號

銀企轉賬接口,一般對於跨行轉賬,接口需要傳入他行卡所在行的聯行號/超級行號。聯行號/超級行號相關資料可以讓銀行提供,但是不同銀行給的資料可能不太相同。

企業網銀設置問題

前期接入過程,若報文組裝正確,但是報文始終無法通過,多半由於權限未正常設置導致。一般需要登錄企業網銀單獨設置權限,設置比較繁瑣,且每家銀行都不太一樣,詳情咨詢銀行客戶經理。

銀行 U 盾密碼問題

銀企程序每次啟動運行前會讀取加載 U 盾數字證書,讀取過程需要輸入 U 盾數字密碼。需要注意輸入正確密碼,輸錯次數過多,會導致 U 盾被銀行鎖死無法使用。需要去銀行解鎖或重新申請新 U 盾。這個說多了都是淚。:(

參考文檔

銀企直聯系統
小額批量支付系統
大額實時支付系統
超級網銀


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM