日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

中国联通计费侧H2协议接口实现

發布時間:2024/3/26 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 中国联通计费侧H2协议接口实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

業務需求,前幾天寫了一個跟聯通計費側的接口,具體要求參見局方規范:

1?????? H2協議

遵循軟件工程及制定協議標準的基本思想,本著接口易用、易理解、易交流的原則,為實現客服系統的規范性、開放性、擴展性、業務獨立性提供保證。

總部H2接口方式

采用事務交易設計,以保證傳輸數據的安全正確。

采用中間件技術,使接口定義簡單明晰。

根據交易的類型,決定交易回應的時限。

?

包頭定義:

包頭格式:內容為一定長ASCII字符串(86位),具體內容如下:

字段名稱

長度

說明

A0版本號信息

(2位)

標識當前使用的協議版本號

A1數據包大小

(5位)

以字節為單位,不足右補空格

A2流水號

(20位)

業務流水號,標志每筆具體交易。數據校驗包可以無流水號

A3標志

(1位)

1表示成功 0表示失敗,僅適用于響應包

A4服務類型

(12位)

編碼規則參見《》

A5業務號碼

(20位)

移動電話號碼

A6業務號碼類型

(1位)

1電話號碼;2帳號;3其他

A7營業點

(6位)

業務受理地點

A8營業員

(8位)

業務受理人

A9包編號

(5位)

標志該筆流水的第幾包數據

A10最后一包標志

(1位)

在進行多包發送的情況下,該標志用以標明是否為最后一數據包。1最后一包數據,無后續包;0非最后一包數據,有后續包,連接錯誤,I/O錯誤等

A11錯誤碼

(5位)

在標志為失敗時需要檢查該錯誤碼。錯誤碼包括系統操作錯誤和業務處理錯誤

?

包體定義:

一個數據包總長度不可大于4K。對存在多條返回記錄的業務,一數據包可含多條記錄。長度如超過4K,就以多包數據發送。每字段之間用“TAB鍵0x09”分隔,每記錄之間用“回車鍵0x0d,0x0a”分隔,包結束用“0x1a”。對于不同的服務類型,其請求包和應答包的包體具有不同的內容。無論數據有無包體返回,一定需要添加包結束符。對于任何非正常返回的數據包應該沒有包體,只有包頭與包結束符。包體字段為定長字符串,非變長字符串,字段內容不應該出現不可打印字符串。

補空格原則

凡字段的數據表示的是金額的,既其字段類型是Number(10)的,這樣的字段是左補空格,其它字段都是右補空格。注:如果省分是按分隔符處理數據,此規則無效。如果省分按定長處理數據,則遵循些規則補空格。


接口采用嚴格的數據長度確認傳輸數據正確性!其間采用的Socket編程沒有什么說的,主要是在開發中遇到以下問題:

1.數據包頭+包體構成,請求數據不能沒有包頭,可以無包體

2.包頭必須采用86位長度,不能長,不能短

3.服務端解析報文必須先讀取報文結束標志,否則,不解析,Socket一直處于read模式,導致客戶端超時

4.文檔說的包以0x1a結束,正確的無包體報文的長度為87位,即結束位長度為1,如果根據文檔描述的,報文長度為90,進入報文解析直接報錯,不解析!

如果全部轉化為16進制,長度完全超出要求。

最后,根據十六進制計算該結束標志為SUB(ASCII),通過將該SUB加上前面報文正常解析.





總結

以上是生活随笔為你收集整理的中国联通计费侧H2协议接口实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。