vb.net中东软医保接口的调用
????前段時間接了個醫院管理系統的小項目,要求接入本市醫保接口,本市的醫保接口采用的是東軟的接口平臺,為動態庫版,只提供了幾個配置文件和幾個DLL動態庫,文檔中寫的不夠詳細,并沒有各種語言平臺的例子,只能一點一點的摸索,雖然自己做項目也做了七八年了,但也是第一次使用vb.net,就索性一邊做一邊摸索吧!
????查遍了搜索引擎,也沒有找到相似的案例,只有自己琢磨,東軟提供的文檔內容如下:
1.1?INIT 初始化函數
1.1.1?功能說明
系統啟動前調用init函數進行初始化,檢查配置文件等完成動態庫初始化準備工作。
1.1.2?語法規則 Syntax:
對外提供接口:
SiInterface.dll
?Int INIT(char *pOutputInfo)
輸入參數:無
輸出參數:outputData char*
返回值: 成功 0??? 失敗 -1???
?
1.1.3?出參格式: outputData char*
提示信息,如出錯則為錯誤提示,HIS開發商需提示出錯誤信息。
1.2?BUSINESS_HANDLE 業務函數
1.2.1?語法規則 Syntax:
對外提供接口:
SiInterface.dll
int WINAPI BUSINESS_HANDLE(const char* inputData,
???????????????????????????????? char* outputData)
輸入參數:inputData?
輸出參數:outputData char*
返回值: 成功 0??? 失敗 -1???
輸入參數是以“^、$、|”分割的字符串
輸出也是以“^”“@、^、$、|”分割的字符串
調用輸入參數的函數經常用,但輸出參數卻沒用過,并且所有對醫保平臺進行的操作都是通過BUSINESS_HANDLE函數來進行,這個問題琢磨了一個星期,終于弄明白了。
我的解決方法如下:
1、導入動態庫
<DllImport("SiInterface.dll", EntryPoint:="INIT")> Public Shared Function INIT(ByVal OutputInfo As String) As Integer
??? End Function
??? <DllImport("SiInterface.dll", EntryPoint:="BUSINESS_HANDLE")> Public Shared Function BUSINESS_HANDLE(ByVal inputData As String, <Out> ByVal outputData As StringBuilder) As Integer
??? End Function
2、調用動態庫
? Dim inputdata As String '入參
??????? Dim outputdata As New StringBuilder() ‘出參
outputdata.Capacity = 1024 ’由于調用出參需要分配內存,現分配內存空間用于存儲出參
inputdata="入參字符串"
BUSINESS_HANDLE(inputdata, outputdata)‘調用函數
????此時執行后,outputdata將會有醫保接口返回的信息
????其中?Dim outputdata As New StringBuilder() 此句最重要,我試了好多重方法,都不好用,只有這句才能用。
????
????希望能對碼農同行們有些幫助。
轉載于:https://blog.51cto.com/yushihai/1569357
總結
以上是生活随笔為你收集整理的vb.net中东软医保接口的调用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Web Service security
- 下一篇: 阻止函数源码在控制台输出