一体化读卡服务Web开发技术文档

1. 概述

独立服务模式 (HTTP): 运行 一体化读卡服务.exe 并启用 HTTP 服务,允许外部应用(如网页)通过 HTTP POST 请求进行远程调用。

2. 核心调用接口

HTTP 服务接口

一体化读卡服务.exe 启用 HTTP 服务后,请求和响应的数据格式按以下标准。

  • 请求方法: POST
  • 请求 Body: 包含命令和参数的 JSON 字符串。
  • 响应 Body: 包含操作结果和数据的 JSON 字符串。

3. 基本命令 JSON 结构

所有发送给 HTTP 服务的 JSON 字符串都必须包含以下核心字段:

字段名称类型描述
commandTypeString命令类型,用于区分基础硬件操作或特定医保平台的接口。
commandString具体的执行操作名称。
其他参数Mixed根据不同的 commandType 或 command 确定,例如 port, baud, url, user 等。

响应数据结构字段:

字段名称类型描述
CodeString状态码。 0 表示操作成功;非 0 表示操作失败或异常。
MessageString状态描述信息,如“操作成功”、“设备连接失败”等。
DataObject业务数据体。 包含读卡操作获取的实际数据(如姓名、卡号、身份证号等)。

注意:服务有响应为响应成功,但响应成功不等于读卡成功;判断读卡是否成功,需要看Data字段的返回数据。

发送示例:

{
    "commandType": "BasicOption",
    "command": "SSCardInfo",
    "port": 100,
    "baud": 115200
}

服务响应成功、读卡成功示例:

{
  "Status":200,
  "Message":"ok",
  "Data":
  {
    "Status":0,
    "Message":"读社保卡基本信息成功",
    "Data":
    {
      "卡识别码":"442000D1560000052800000C312CCEEB",
      "卡类别":"3",
      "规范版本":"3.00",
      "初始化机构编号":"915600000244200044010056",
      "发卡日期":"20190822",
      "卡有效期":"20290822",
      "卡号":"T08244609"
    }
  }
}

服务响应成功,但读卡失败示例:

{
  "Status":200,
  "Message":"ok",
  "Data":
  {
    "Status":-2,
    "Message":"社保卡复位失败",
    "Data":""
  }
}

服务响应失败,这个一般不会有返回。或返回非JSON数据。

4. 具体命令

4.1 基础硬件操作 (commandType: BasicOption)

这类命令用于直接操作本地连接的读卡设备。

中文描述command必需参数描述
获取USB设备IDReadUsbID无获取已连接 USB 设备的标识符。
读设备信息ReadDeviceInfoport, baud读取读卡设备的自身信息。
读社保卡基本信息SSCardInfoport, baud读取社保卡(基础信息)。
读社保卡持卡人信息SSCardHolderInfoport, baud读取社保卡(持卡人信息)。
读身份证IDCardport, baud读取二代身份证信息。
内置扫码InsideQRCodeport, baud启用设备内置的扫码功能。
外接P30扫码OutsideQRCodeport, baud启用外接 P30 键盘进行扫码。
读磁卡MagCardport, baud读取磁条卡信息。

业务数据体(服务返回的Data对象)基本字段说明

字段描述
Status返回值,操作成功返回大于等于0。
Message操作描述。
Data返回的数据体。

A、获取USB设备ID

这个是读取电脑的USB外设,并不对读卡器进行连接,所以不会失败,会返回所以HID USB外设的编号。

Send:

{
    "commandType": "BasicOption",
    "command": "ReadUsbID"
}

Get:

{
  "Status":200,
  "Message":"ok",
  "Data":
  {
    "devices":["[VID:_HUB  PID:D808]",
    "[VID:046D  PID:C534]",
    "[VID:05E3  PID:0610]",
    "[VID:152D  PID:0583]",
    "[VID:0471  PID:7003]  T10读卡器",
    "[VID:8087  PID:0024]",
    "[VID:1FC9  PID:5AA7]",
    "[VID:05E3  PID:0626]"]
  }
}

B、读设备信息

功能:读到设备的基本信息:版本、UID等。

Send:

{
    "commandType": "BasicOption",
    "command": "ReadDeviceInfo",
    "port": 100,
    "baud": 115200
}

字段说明:

字段定义备注
port设备端口号,Usb填100,串口1填0,串口2填1,以此类推。默认值:100
baud设备波特率,9600-115200。默认值:115200

Get:

{
  "Status":200,
  "Message":"ok",
  "Data":
  {
    "Status":0,
    "Message":"读取设备信息成功!",
    "Data":
    {
      "LibType":"DCRF32",
      "DeviceType":"T10F",
      "DeviceUID":"00010501202410001402",
      "LongVer":"QIANGSH-READER201001011234567890",
      "Ver":"T10STM32S.GZ.0101.DC4.SVN379.260714",
      "SamSN":"05.13-20240827-0041935374-0091225404"
    }
  }
}

字段说明:

字段定义备注
LibType驱动库类型
DeviceType设备类型
DeviceUID设备唯一识别码(UID)
LongVer设备版本信息
Ver设备固件版本信息
SamSN身份证安全模块编号仅支持身份证机型特有。

C、读社保卡基本信息

功能:读到社保卡的基本信息。

Send:

{
    "commandType": "BasicOption",
    "command": "SSCardInfo",
    "port": 100,
    "baud": 115200
}

字段说明:

字段定义备注
port设备端口号,Usb填100,串口1填0,串口2填1,以此类推。默认值:100
baud设备波特率,9600-115200。默认值:115200

Get:

{
  "Status":200,
  "Message":"ok",
  "Data":
  {
    "Status":0,
    "Message":"读社保卡基本信息成功",
    "Data":
    {
      "卡识别码":"440100D1560000050012A78E7175895C",
      "卡类别":"3",
      "规范版本":"1.0",
      "初始化机构编号":"915600000244010044010047",
      "发卡日期":"20130207",
      "卡有效期":"20330207",
      "卡号":"205702061"
    }
  }
}

字段说明:

字段定义备注
Status返回值,成功返回0
Message操作说明
卡识别码社保卡的卡识别码
卡类别社保卡类型
规范版本社保卡的规范版本号这个可以判断是1、2、3代卡;1.x表示一代卡;2.x表示二代卡;3.x表示三代卡。
初始化机构编号机构编码
发卡日期社保卡发卡日期
卡有效期社保卡到期日期
卡号社保卡卡号这个不是社会保障号,仅仅是卡号。

D、读社保卡持卡人信息

功能:读到社保卡的持卡人的基本信息。

Send:

{
    "commandType": "BasicOption",
    "command": "SSCardHolderInfo",
    "port": 100,
    "baud": 115200
}

字段说明:

字段定义备注
port设备端口号,Usb填100,串口1填0,串口2填1,以此类推。默认值:100
baud设备波特率,9600-115200。默认值:115200

Get:

{
  "Status":200,
  "Message":"ok",
  "Data":
  {
    "Status":0,
    "Message":"读社保卡持卡人信息成功",
    "Data":
    {
      "证件号码":"440106200807235016",
      "姓名":"黄东东",
      "姓名扩展":"",
      "性别":"男",
      "民族":"汉族",
      "出生地":"FFFFFF",
      "出生日期":"20080723"
    }
  }
}

字段说明:

字段定义备注
Status返回值,成功返回0
Message操作说明
证件号码持卡人社保保障号现在一般都用身份证号
姓名姓名
姓名扩展姓名的一部分部分少数民族姓名很长的才有。
性别性别
民族民族
出生地出生地行政编码
出生日期出生日期

E、读身份证

功能:读到身份证件的信息。

Send:

{
    "commandType": "BasicOption",
    "command": "IDCard",
    "sPhotoPath": ".\\photo.bmp",
    "port": 100,
    "baud": 115200
}

字段说明:

字段定义备注
port设备端口号,Usb填100,串口1填0,串口2填1,以此类推。默认值:100
baud设备波特率,9600-115200。默认值:115200
sPhotoPath保存身份证照片的路径。

Get:

{
  "Status":200,
  "Message":"ok",
  "Data":
  {
    "Status":0,
    "Message":"证件读取成功!",
    "Data":
    {
      "姓名":"黄心烨",
      "性别":"女",
      "民族":"汉",
      "出生日期":"20001004",
      "住址":"广东省揭阳市榕城区东升新河村新平围",
      "公民身份号码":"445202200010048320",
      "签发机关":"揭阳市公安局榕城分局",
      "有效期限起":"20181210",
      "有效期限止":"20231210"
    }
  }
}

字段说明:

字段定义备注
Status返回值,成功返回0
Message操作说明
姓名姓名
性别性别
民族民族
出生日期出生日期
住址身份证上的地址
公民身份号码身份证号码
签发机关发证机关
有效期限起发证日期
有效期限止有效日期

F、内置扫码

功能:调用设备内置扫码器扫条码、二维码。

Send:

{
    "commandType": "BasicOption",
    "command": "InsideQRCode",
    "iTimeOut": 30,
    "port": 100,
    "baud": 115200
}

字段说明:

字段定义备注
port设备端口号,Usb填100,串口1填0,串口2填1,以此类推。默认值:100
baud设备波特率,9600-115200。默认值:115200

Get:

{
  "Status":200,
  "Message":"ok",
  "Data":
  {
    "Status":0,
    "Message":"扫码成功!",
    "Data":
    {
      "条码长度":28,
      "条码数据":"4244002415156691097602440000"
    }
  }
}

字段说明:

字段定义备注
Status返回值,成功返回0
Message操作说明
条码长度扫到条码数据的长度。
条码数据扫码条码数据的空容。

G、外接P30扫码

功能:调用读卡器外接P30扫码键盘扫条码、二维码。

Send:

{
    "commandType": "BasicOption",
    "command": "OutsideQRCode",
    "iTimeOut": 30,
    "port": 100,
    "baud": 115200
}

字段说明:

字段定义备注
port设备端口号,Usb填100,串口1填0,串口2填1,以此类推。默认值:100
baud设备波特率,9600-115200。默认值:115200

Get:

{
  "Status":200,
  "Message":"ok",
  "Data":
  {
    "Status":0,
    "Message":"扫码成功!",
    "Data":
    {
      "条码长度":28,
      "条码数据":"4244002415156691097602440000"
    }
  }
}

字段说明:

字段定义备注
Status返回值,成功返回0
Message操作说明
条码长度扫到条码数据的长度。
条码数据扫码条码数据的空容。

H、读磁卡

功能:读到磁条卡,注意,这个是同步操作,超时结束前会造成阻塞。

读磁卡要先调用,然后再刷磁卡,刷卡要水平、匀速。

Send:

{
    "commandType": "BasicOption",
    "command": "MagCard",
    "iTimeOut": 30,
    "port": 100,
    "baud": 115200
}

字段说明:

字段定义备注
port设备端口号,Usb填100,串口1填0,串口2填1,以此类推。默认值:100
baud设备波特率,9600-115200。默认值:115200
iTimeOut读磁卡超时时间,单位:秒。

Get:

{
  "Status":200,
  "Message":"ok",
  "Data":
  {
    "Status":0,
    "Message":"读磁卡成功!",
    "Data":
    {
      "第一轨长度":0,
      "第一轨数据":"",
      "第二轨长度":39,
      "第二轨数据":";6217921001521726=24052200000070400000?",
      "第三轨长度":106,
      "第三轨数据":";996217921001521726=15615600000000000008800000002404040000000000000000000=000000000000=000000000000000000?"
    }
  }
}

字段说明:

字段定义备注
Status返回值,成功返回0
Message操作说明
第一轨长度第一磁轨的数据长度。
第一轨数据第一磁轨的数据内容。
第二轨长度第二磁轨的数据长度。
第二轨数据第二磁轨的数据内容。
第三轨长度第三磁轨的数据长度。
第三轨数据第三磁轨的数据内容。

4.2 广州市医保库接口 (commandType: GZSSCard)

这类命令调用广州市医保相关的在线接口,调用的前提是医保网通畅。

中文描述command必需参数示例参数值
读社保卡ReadCardBasGZurl, user"user": "H44010400081"
读身份证ReadIDCardGZurl, user"url": "<http://igb.hsa.gdgov.cn/gdyb_api/prd/api/card/initDll>"
内置扫码GetTwoBarCodesurl, user同上
外接键盘扫码GetTwoBarCodesByExtP30url, user同上
读磁条医保卡ReadMedicalCardGZurl, user同上

A、读社保卡

功能:医保库读社保卡。第一次读卡时,服务会自动调用Init。

Send:

{
    "commandType": "GZSSCard",
    "command": "ReadCardBasGZ",
    "url": "http://igb.hsa.gdgov.cn/gdyb_api/prd/api/card/initDll",
    "user": "H44012345678"
}

字段说明:

字段定义备注
url医保读卡URL,以当地医保给的为准。
user医院、药店的医疗机构编号。

Get:

{
  "Status":200,
  "Message":"ok",
  "Data":
	{
	  "Lib":".\\GZSSCard\\SSCard.dll",
	  "Api":"ReadCardBasGZ",
	  "InDataLength":10240,
	  "InSignDataLength":10240,
	  "Result":-300000,
	  "OutData":"需要先调用初始化函数",
	  "OutDataLength":10,
	  "OutSignData":"",
	  "OutSignDataLength":0,
	  "ErrorInfo":""
	}
}

字段说明:

字段定义备注
Lib医保动态库的地址
Api调用医保库的API名称。
InDataLength数据长度入参(预分配内存用)
InSignDataLength签名数据长度入参(预分配内存用)
Result返回值,0表示成功,其它为失败。
OutDataResult=0时,读出卡片的原始数据 Result不为0时,会返回医保库报错。医保结算用。
OutDataLength卡片原始数据长度
OutSignData数据签名医保结算用。
OutSignDataLength数据签名长度
ErrorInfo错误信息这个是服务程序返回的错误信息。

B、读身份证

功能:医保库读身份证卡。第一次读卡时,服务会自动调用Init。

Send:

{
    "commandType": "GZSSCard",
    "command": "ReadIDCardGZ",
    "url": "http://igb.hsa.gdgov.cn/gdyb_api/prd/api/card/initDll",
    "user": "H44012345678"
}

字段说明:

字段定义备注
url医保读卡URL,以当地医保给的为准。
user医院、药店的医疗机构编号。

Get:

{
  "Status":200,
  "Message":"ok",
  "Data":
	{
	  "Lib":".\\GZSSCard\\SSCard.dll",
	  "Api":"ReadIDCardGZ",
	  "InDataLength":10240,
	  "InSignDataLength":10240,
	  "Result":-300000,
	  "OutData":"需要先调用初始化函数",
	  "OutDataLength":10,
	  "OutSignData":"",
	  "OutSignDataLength":0,
	  "ErrorInfo":""
	}
}

字段说明:

字段定义备注
Lib医保动态库的地址
Api调用医保库的API名称。
InDataLength数据长度入参(预分配内存用)
InSignDataLength签名数据长度入参(预分配内存用)
Result返回值,0表示成功,其它为失败。
OutDataResult=0时,读出卡片的原始数据 Result不为0时,会返回医保库报错。医保结算用。
OutDataLength卡片原始数据长度
OutSignData数据签名医保结算用。
OutSignDataLength数据签名长度
ErrorInfo错误信息这个是服务程序返回的错误信息。

C、内置扫码

功能:医保库扫码。第一次调用时,服务会自动调用Init。

Send:

{
    "commandType": "GZSSCard",
    "command": "GetTwoBarCodes",
    "url": "http://igb.hsa.gdgov.cn/gdyb_api/prd/api/card/initDll",
    "user": "H44012345678"
}

字段说明:

字段定义备注
url医保读卡URL,以当地医保给的为准。
user医院、药店的医疗机构编号。

Get:

{
  "Status":200,
  "Message":"ok",
  "Data":
	{
	  "Lib":".\\GZSSCard\\SSCard.dll",
	  "Api":"GetTwoBarCodes",
	  "InDataLength":10240,
	  "InSignDataLength":10240,
	  "Result":-300000,
	  "OutData":"需要先调用初始化函数",
	  "OutDataLength":10,
	  "OutSignData":"",
	  "OutSignDataLength":0,
	  "ErrorInfo":""
	}
}

字段说明:

字段定义备注
Lib医保动态库的地址
Api调用医保库的API名称。
InDataLength数据长度入参(预分配内存用)
InSignDataLength签名数据长度入参(预分配内存用)
Result返回值,0表示成功,其它为失败。
OutDataResult=0时,读出卡片的原始数据 Result不为0时,会返回医保库报错。医保结算用。
OutDataLength卡片原始数据长度
OutSignData数据签名医保结算用。
OutSignDataLength数据签名长度
ErrorInfo错误信息这个是服务程序返回的错误信息。

D、外接键盘扫码

功能:医保库扫码。第一次调用时,服务会自动调用Init。

Send:

{
    "commandType": "GZSSCard",
    "command": "GetTwoBarCodesByExtP30",
    "url": "http://igb.hsa.gdgov.cn/gdyb_api/prd/api/card/initDll",
    "user": "H44012345678"
}

字段说明:

字段定义备注
url医保读卡URL,以当地医保给的为准。
user医院、药店的医疗机构编号。

Get:

{
  "Status":200,
  "Message":"ok",
  "Data":
	{
	  "Lib":".\\GZSSCard\\SSCard.dll",
	  "Api":"GetTwoBarCodes",
	  "InDataLength":10240,
	  "InSignDataLength":10240,
	  "Result":-300000,
	  "OutData":"需要先调用初始化函数",
	  "OutDataLength":10,
	  "OutSignData":"",
	  "OutSignDataLength":0,
	  "ErrorInfo":""
	}
}

字段说明:

字段定义备注
Lib医保动态库的地址
Api调用医保库的API名称。
InDataLength数据长度入参(预分配内存用)
InSignDataLength签名数据长度入参(预分配内存用)
Result返回值,0表示成功,其它为失败。
OutDataResult=0时,读出卡片的原始数据 Result不为0时,会返回医保库报错。医保结算用。
OutDataLength卡片原始数据长度
OutSignData数据签名医保结算用。
OutSignDataLength数据签名长度
ErrorInfo错误信息这个是服务程序返回的错误信息。

E、读磁条医保卡

功能:医保库读磁条医保卡。第一次调用时,服务会自动调用Init。

Send:

{
    "commandType": "GZSSCard",
    "command": "ReadMedicalCardGZ",
    "url": "http://igb.hsa.gdgov.cn/gdyb_api/prd/api/card/initDll",
    "user": "H44012345678"
}

字段说明:

字段定义备注
url医保读卡URL,以当地医保给的为准。
user医院、药店的医疗机构编号。

Get:

{
  "Status":200,
  "Message":"ok",
  "Data":
	{
	  "Lib":".\\GZSSCard\\SSCard.dll",
	  "Api":"ReadMedicalCardGZ",
	  "InDataLength":10240,
	  "InSignDataLength":10240,
	  "Result":-300000,
	  "OutData":"需要先调用初始化函数",
	  "OutDataLength":10,
	  "OutSignData":"",
	  "OutSignDataLength":0,
	  "ErrorInfo":""
	}
}

字段说明:

字段定义备注
Lib医保动态库的地址
Api调用医保库的API名称。
InDataLength数据长度入参(预分配内存用)
InSignDataLength签名数据长度入参(预分配内存用)
Result返回值,0表示成功,其它为失败。
OutDataResult=0时,读出卡片的原始数据 Result不为0时,会返回医保库报错。医保结算用。
OutDataLength卡片原始数据长度
OutSignData数据签名医保结算用。
OutSignDataLength数据签名长度
ErrorInfo错误信息这个是服务程序返回的错误信息。

4.3 广东省医保库接口 (commandType: GDSSCard)

这类命令调用广东省医保相关的在线接口。

中文描述command必需参数示例参数值
读社保卡ReadCardBasurl, user"user": "H440001"
读身份证ReadSFZurl, user"url": "<http://hosp.gd.hsip.gov.cn/gdyb_api/prd/api/card/initDll>"
内置扫码GetQRBaseurl, user同上
外接键盘扫码GetQRBaseByExtP30url, user同上

A、读社保卡

功能:医保库读社保卡。第一次读卡时,服务会自动调用Init。

Send:

{
    "commandType": "GDSSCard",
    "command": "ReadCardBas",
    "url": "http://hosp.gd.hsip.gov.cn/gdyb_api/prd/api/card/initDll",
    "user": "H44012345678"
}

字段说明:

字段定义备注
url医保读卡URL,以当地医保给的为准。
user医院、药店的医疗机构编号。

Get:

{
  "Status":200,
  "Message":"ok",
  "Data":
	{
	  "Lib":".\\GDSSCard\\SSCard.dll",
	  "Api":"ReadCardBas",
	  "InDataLength":10240,
	  "InSignDataLength":10240,
	  "Result":-300000,
	  "OutData":"需要先调用初始化函数",
	  "OutDataLength":10,
	  "OutSignData":"",
	  "OutSignDataLength":0,
	  "ErrorInfo":""
	}
}

字段说明:

字段定义备注
Lib医保动态库的地址
Api调用医保库的API名称。
InDataLength数据长度入参(预分配内存用)
InSignDataLength签名数据长度入参(预分配内存用)
Result返回值,0表示成功,其它为失败。
OutDataResult=0时,读出卡片的原始数据 Result不为0时,会返回医保库报错。医保结算用。
OutDataLength卡片原始数据长度
OutSignData数据签名医保结算用。
OutSignDataLength数据签名长度
ErrorInfo错误信息这个是服务程序返回的错误信息。

B、读身份证

功能:医保库读身份证卡。第一次读卡时,服务会自动调用Init。

Send:

{
    "commandType": "GDSSCard",
    "command": "ReadSFZ",
    "url": "http://hosp.gd.hsip.gov.cn/gdyb_api/prd/api/card/initDll",
    "user": "H44012345678"
}

字段说明:

字段定义备注
url医保读卡URL,以当地医保给的为准。
user医院、药店的医疗机构编号。

Get:

{
  "Status":200,
  "Message":"ok",
  "Data":
	{
	  "Lib":".\\GDSSCard\\SSCard.dll",
	  "Api":"ReadSFZ",
	  "InDataLength":10240,
	  "InSignDataLength":10240,
	  "Result":-300000,
	  "OutData":"需要先调用初始化函数",
	  "OutDataLength":10,
	  "OutSignData":"",
	  "OutSignDataLength":0,
	  "ErrorInfo":""
	}
}

字段说明:

字段定义备注
Lib医保动态库的地址
Api调用医保库的API名称。
InDataLength数据长度入参(预分配内存用)
InSignDataLength签名数据长度入参(预分配内存用)
Result返回值,0表示成功,其它为失败。
OutDataResult=0时,读出卡片的原始数据 Result不为0时,会返回医保库报错。医保结算用。
OutDataLength卡片原始数据长度
OutSignData数据签名医保结算用。
OutSignDataLength数据签名长度
ErrorInfo错误信息这个是服务程序返回的错误信息。

C、内置扫码

功能:医保库扫码。第一次调用时,服务会自动调用Init。

Send:

{
    "commandType": "GDSSCard",
    "command": "GetQRBase",
    "url": "http://hosp.gd.hsip.gov.cn/gdyb_api/prd/api/card/initDll",
    "user": "H44012345678"
}

字段说明:

字段定义备注
url医保读卡URL,以当地医保给的为准。
user医院、药店的医疗机构编号。

Get:

{
  "Status":200,
  "Message":"ok",
  "Data":
	{
	  "Lib":".\\GDSSCard\\SSCard.dll",
	  "Api":"GetQRBase",
	  "InDataLength":10240,
	  "InSignDataLength":10240,
	  "Result":-300000,
	  "OutData":"需要先调用初始化函数",
	  "OutDataLength":10,
	  "OutSignData":"",
	  "OutSignDataLength":0,
	  "ErrorInfo":""
	}
}

字段说明:

字段定义备注
Lib医保动态库的地址
Api调用医保库的API名称。
InDataLength数据长度入参(预分配内存用)
InSignDataLength签名数据长度入参(预分配内存用)
Result返回值,0表示成功,其它为失败。
OutDataResult=0时,读出卡片的原始数据 Result不为0时,会返回医保库报错。医保结算用。
OutDataLength卡片原始数据长度
OutSignData数据签名医保结算用。
OutSignDataLength数据签名长度
ErrorInfo错误信息这个是服务程序返回的错误信息。

D、外接键盘扫码

功能:医保库扫码。第一次调用时,服务会自动调用Init。

Send:

{
    "commandType": "GDSSCard",
    "command": "GetQRBaseByExtP30",
    "url": "http://hosp.gd.hsip.gov.cn/gdyb_api/prd/api/card/initDll",
    "user": "H44012345678"
}

字段说明:

字段定义备注
url医保读卡URL,以当地医保给的为准。
user医院、药店的医疗机构编号。

Get:

{
  "Status":200,
  "Message":"ok",
  "Data":
	{
	  "Lib":".\\GDSSCard\\SSCard.dll",
	  "Api":"GetQRBase",
	  "InDataLength":10240,
	  "InSignDataLength":10240,
	  "Result":-300000,
	  "OutData":"需要先调用初始化函数",
	  "OutDataLength":10,
	  "OutSignData":"",
	  "OutSignDataLength":0,
	  "ErrorInfo":""
	}
}

字段说明:

字段定义备注
Lib医保动态库的地址
Api调用医保库的API名称。
InDataLength数据长度入参(预分配内存用)
InSignDataLength签名数据长度入参(预分配内存用)
Result返回值,0表示成功,其它为失败。
OutDataResult=0时,读出卡片的原始数据 Result不为0时,会返回医保库报错。医保结算用。
OutDataLength卡片原始数据长度
OutSignData数据签名医保结算用。
OutSignDataLength数据签名长度
ErrorInfo错误信息这个是服务程序返回的错误信息。

4.4 国家医保电子凭证动态库接口 (commandType: NationEcTrans)

这个是调用国家医保电子凭证动态库的接口。只有一个通道入口,具体操作如扫码、刷脸,是通过入参指定的。

通道接口 Send:

{
    "commandType": "NationEcTrans",
    "command": "NationEcTrans",
    "sUrl": "https://igb.hsa.gdgov.cn/prd_nation_eccode/prd_eccode/localcfc/api/hsecfc/localQrCodeQuery",
    "sInData": {
        "data": {
            "businessType": "01101",
            "deviceType": "",
            "officeId": "32760",
            "officeName": "消化内科",
            "operatorId": "test001",
            "operatorName": "超级管理员",
            "orgId": "H44010400081"
        },
        "orgId": "H44010400081",
        "transType": "ec.query"
    }
}
字段定义备注
sUrl扫码网络URL,一般是医保给的。
sInData发给动态库的JSON报文。 按《国家医保电子凭证业务标准动态库交互规范.pdf》标准

Get:

{
  "Status":200,
  "Message":"ok",
  "Data":
  {
    "Lib":"NationECCode.dll",
    "Api":"NationEcTrans",
    "Url":"https://igb.hsa.gdgov.cn/prd_nation_eccode/prd_eccode/localcfc/api/hsecfc/localQrCodeQuery",
    "InData":
    {
      "data":
      {
        "businessType":"01101",
        "deviceType":"",
        "officeId":"32760",
        "officeName":"消化内科",
        "operatorId":"test001",
        "operatorName":"超级管理员",
        "orgId":"H44010400081"
      },
      "orgId":"H44010400081",
      "transType":"ec.query"
    },
    "Result":"0000",
    "OutData":
    {
      "code":-2,
      "message":"医保电子凭证编码错误,
      请重新扫码",
      "orgId":"H44010400081"
    },
    "ErrorInfo":""
  }
}
字段定义备注
Lib国家库的文件名称
Api国家库的接口名称
Url调用时的URL入参内空
InData调用时的INDATA入参内容
Result调用动态库的返回值,0000表示成功。
OutData调用后读出的出参内容。内按文档里德解析

附文档:

4.5 社保库接口(38号文相关,commandType:SSCardDriver)

4.6 身份证阅读器接口(commandType:SDTApi)