河北省自助发放机对接规范
一. 公共参数与签名
1.1. 接口服务域名
APP_HOST:接口服务域名,由平台管理员提供。
1.2. 传入公共参数
为保证数据安全,在所有的接口调用中都加入了以下公用参数,部分参数由平台提供。
参数名 | 参数说明 | 数据类型 | 是否可空 |
appId | 调用方唯一凭证(平台为每个厂商分配一个appId) | String(16) | 否 |
secretKey | 秘钥(由平台提供) | String(20) | 否 |
timestamp | 时间戳,格式 1446190200002 | String(32) | 否 |
token | 16635890992,每次调用接口后由平台返回 | String(128) | 否 |
sign | 签名,参考签名生成方法 | String(256) | 否 |
签名是指使用某种算法(如MD5,与平台管理员协商后保持一致即可)对appId + secretKey+timestamp 组成的字符串加密,得到该记录对 应的签名,下面以MD5算法为例:
sign=md5(appId+ secretKey+timestamp)
其中 appId 和secretKey均由平台提供给接口调用方,timestamp 为时间戳。
1.3.输出公共参数
对于返回值有三个公共返回参数retCode、message及token,retCode代码接口调用是否成功,00-代表成功,1X-代码失败,在失败时,message包含具体的错误说明。
参数名 | 参数说明 | 数据类型 | 是否可空 |
retCode | 返回码:00-成功;1X-错误码,具体信息在message中 | String | 否 |
message | 返回信息,如果retCode为错误码,message中返回了具体的错误信息 | String | 否 |
token | 下一次调用的令牌 | String | 否 |
1.4.首次调用获取token
在第一次调用接口前,要获取一次token,以后不必再调用此接口,以后每次调用接口都会返回token。
接口地址
接口功能 | 首次调用获取token |
接口描述 | {APP_HOST}/thirdparty/qtoken.html |
(2)接口参数
参数名 | 参数说明 | 数据类型 | 是否可空 |
appId | 调用方唯一凭证(平台为每个厂商分配一个appId) | String(16) | 否 |
secretKey | 秘钥(由平台提供) | String(20) | 否 |
timestamp | 时间戳,格式 1446190200002 | String(32) | 否 |
sign | 签名,参考签名生成方法 | String(256) | 否 |
(3)返回结果
参数名 | 参数说明 |
retCode | 返回码 |
message | 提示信息 |
token | 访问令牌 |
二. 群众注册信息同步接口
2.1. 接口说明
本接口用于向平台推送群众注册信息;群众注册时与初始同步信息时调用。
2.2. 接口参数
接口功能 | 群众注册信息同步 |
接口地址 | {APP_HOST}/thirdparty/taccounts.html |
请求类型 | POST |
数据格式 | JSON |
2.3. 请求格式
请求参数说明:
类型 | 参数名 | 参数说明 | 数据类型 | 是否可空 |
权限数据 | appId | 调用方唯一凭证(平台提供) | String(16) | 否 |
timestamp | 时间戳,格式 1446190200002 | String(32) | 否 | |
sign | 签名,参考签名生成方法 | String(256) | 否 | |
token | 令牌 | String(128) | 否 | |
业务数据 | deviceId | 发放机编号 | String(20) | 是 |
name | 群众姓名 | String(50) | 否 | |
sex | 性别(01-男 02-女) | String(2) | 否 | |
telephone | 用户手机号 | String(11) | 否 | |
districtId | 区划编码 | String(12) | 是 |
请求参数示例:
{
"appId":"20183xxxxx",
"secretKey":"1298083681xxx",
"timestamp":"1446190200002",
"sign":"AKDLDHISDFLDSFKJlxxx",
"token":"16635890992",
"jsonString":"[{deviceId:370001001,name:张三,sex:01,telephone:15226783795,
districtId:370000000000}]"
}
2.4. 返回格式
返回结果说明:
参数名 | 参数说明 |
retCode | 返回码 |
message | 提示信息 |
token | 下一次访问令牌 |
返回结果示例:
{
"retCode": 00,
"message": "同步成功!",
"token": "16635890992"
}
三. 群众领取记录同步接口
3.1. 接口说明
本接口用于向平台推送群众领取药具记录信息;群众领取时与初始同步信息时调用。
3.2. 接口参数
接口功能 | 群众领取记录同步 |
接口地址 | {APP_HOST}/thirdparty/records.html |
请求类型 | POST |
数据格式 | JSON |
请求参数说明:
类型 | 参数名 | 参数说明 | 数据类型 | 是否可空 |
权限数据 | appId | 调用方唯一凭证(平台提供) | String(16) | 否 |
timestamp | 时间戳,格式 1446190200002 | String(32) | 否 | |
sign | 签名,参考签名生成方法 | String(256) | 否 | |
token | 令牌 | String(128) | 否 | |
业务数据 | deviceId | 发放机编号 | String(20) | 否 |
telephone | 用户手机号 | String(11) | 否 |
请求参数示例:
{
"appId":"20183xxxxx",
"secretKey":"1298083681xxx",
"timestamp":"1446190200002",
"sign":"AKDLDHISDFLDSFKJlxxx",
"token":"16635890992",
"jsonString":"[{deviceId:370000001,telephone:15226788888,productCode:DLS,batchNo:20180917001,count:10}]"
}
3.3. 返回格式
返回结果说明:
参数名 | 参数说明 |
retCode | 返回码 |
message | 提示信息 |
token | 下一次访问令牌 |
返回结果示例:
{
"retCode": 00,
"message": "同步成功!",
"token": "16635890992"
}
四. 发放机配货同步接口
4.1. 接口说明
本接口用于发放机配货时向平台推送数据。
4.2. 接口参数
接口功能 | 发放机配货同步 |
接口地址 | {APP_HOST}/thirdparty/load.html |
请求类型 | POST |
数据格式 | JSON |
请求参数说明:
类型 | 参数名 | 参数说明 | 数据类型 | 是否可空 |
权限数据 | appId | 调用方唯一凭证(平台提供) | String(16) | 否 |
timestamp | 时间戳,格式 1446190200002 | String(32) | 否 | |
sign | 签名,参考签名生成方法 | String(256) | 否 | |
token | 令牌 | String(128) | 否 | |
业务数据 | deviceId | 发放机编号 | String(20) | 否 |
items | 参数串:厂商编码|批次号|数量|产品ID(产品ID来自省平台pkId) | String(128) | 否 |
请求参数示例:
{
"appId":"20183xxxxx",
"secretKey":"1298083681xxx",
"timestamp":"1446190200002",
"sign":"AKDLDHISDFLDSFKJlxxx",
"token":"16635890992",
"deviceId":"371000001",
"items":"dls|18032401|20|361"
}
4.3. 返回格式
返回结果说明:
参数名 | 参数说明 |
retCode | 返回码 |
message | 提示信息 |
token | 下一次访问令牌 |
返回结果示例:
{
"retCode": 00,
"message": "上货成功!",
"token": "16635890992"
}
五. 发放机信息同步接口
5.1. 接口说明
本接口用于厂商向平台推送自助发放机的基础信息;发放机信息变更与初始同步信息时调用。
5.2. 接口参数
接口功能 | 发放机信息同步 |
接口地址 | {APP_HOST}/thirdparty/drugboxInfo.html |
请求类型 | POST |
数据格式 | JSON |
请求参数说明:
类型 | 参数名 | 参数说明 | 数据类型 | 是否可空 |
权限数据 | appId | 调用方唯一凭证(平台提供) | String(16) | 否 |
timestamp | 时间戳,格式 1446190200002 | String(32) | 否 | |
sign | 签名,参考签名生成方法 | String(256) | 否 | |
token | 令牌 | String(128) | 否 | |
业务数据 | pointId | 发放点编号 | String(20) | 否 |
pointName | 发放点名称 | String(128) | 否 | |
nickName | 发放机名称 | String(128) | 否 | |
districtId | 所属区划 | String(12) | 否 | |
address | 发放机安装地址 | String(1024) | 否 | |
longitude | 经度 | String(50) | 否 | |
latitude | 纬度 | String(50) | 否 | |
capacity | 发放机容量 | Integer | 否 | |
count | 剩余量(只) | Integer | 否 | |
maintainer | 负责人id | String(32) | 否 | |
maintainerName | 负责人姓名 | String(128) | 是 | |
repairmanPhone | 负责人电话 | String(11) | 否 | |
state | 状态(00-正常;01-缺货;02-断货;10-禁用;11-故障;12-未激活) | String(2) | 否 |
请求参数示例:
{
"appId":"20183xxxxx",
"secretKey":"1298083681xxx",
"timestamp":"1446190200002",
"sign":"AKDLDHISDFLDSFKJlxxx",
"token":"16635890992",
"jsonString":"[{pointId:370000001,pointName:保定市人工发放点,nickName:保定市药具站自助发放机,
districtId:370000000000,address:保定市药具站,longitude:115.01212,latitude:38.23231,capacity:52
,count:发放机剩余量,maintainer:ff80808166b67b030166bdd6204f0396,maintainerName:张三,maintainerPhone:15226788888,state:00}]"
}
5.3. 返回格式
返回结果说明:
参数名 | 参数说明 |
retCode | 返回码 |
message | 提示信息 |
token | 下一次访问令牌 |
devices | 发放机信息(nickName-发放机名称;deviceId-发放机编号) |
返回结果示例:
{
"retCode": 00,
"message": "同步成功!",
"token": "16635890992"
"devices":["nickName":"xxx市药具站自助发放机","deviceId":"371000001"]
}
六. 注意事项
本文档接口内容有可能因为系统平台的升级等原因在实际联调时有微小变化,以实际联调时的接口文档为准。