接口文档 / 鉴权与签名

鉴权与签名

业务接口通过公共请求头校验应用身份、时间戳、签名和门店令牌;事件回调通过 sign 判断请求是否来自 ABC 数字医疗云开放平台。

公共请求头

应用访问平台接口时,需要在 HTTP Header 中携带签名(sign)、请求时间戳(ts)、应用 ID(appId)和访问凭证(authorization)。

请求头类型说明
signstring请求签名,签名方式见详细说明
tsstring当前时间戳,精确到秒;平台只接受与北京时间时间差5分钟内的请求,请确保应用服务时间同步
appIdstring应用 ID
authorizationstringAccessToken

签名 sign 的计算方法

原始 Query 参数包括 param1=v1、param2=v2 等(参数值为空时,该参数不参与签名计算)。再加上公共参数 appId=APP_ID、ts=TS 和请求路径 path=PATH,按 key 的字典序升序排列,以 k=v 格式拼接为参数字符串 s。

s
s = "appId=APP_ID&param1=v1&param2=v2&path=PATH&ts=TS"
举例: "appId=1&param1=2&param2=3&path=/api/v2/open-agency/patient&ts=1648713476"

在 s 末尾追加 appSecret=APP_SECRET,得到 s1。

s1
s1 = "appId=APP_ID&param1=v1&param2=v2&path=PATH&ts=TS&appSecret=APP_SECRET"
举例: "appId=1&param1=2&param2=3&path=/api/v2/open-agency/patient&ts=1648713476&appSecret=qwer"

对 s1 进行 MD5 计算,得到 sign。

sign
举例: md5("appId=1&param1=2&param2=3&path=/api/v2/open-agency/patient&ts=1648713476&appSecret=qwer") = 0357972C991648DD192427C6C9FD3A78

签名计算工具

载入示例
计算模式
HTTP 方法
仅 GET 请求的 Query 参数参与签名。

参与签名的字段

appId = 1
param1 = 2
param2 = 3
path = /api/v2/open-agency/patient
ts = 1648713476

s · 排序后的待签名参数

appId=1&param1=2&param2=3&path=/api/v2/open-agency/patient&ts=1648713476

s1 · 末尾追加 appSecret

appId=1&param1=2&param2=3&path=/api/v2/open-agency/patient&ts=1648713476&appSecret=qwer

sign · MD5 转大写

0357972C991648DD192427C6C9FD3A78

请求头示例

sign: 0357972C991648DD192427C6C9FD3A78
ts: 1648713476
appId: 1
authorization: <YOUR_ACCESS_TOKEN>

排查顺序

依次核对环境、应用密钥、时间戳单位、最终路径、Query 原文和排序结果。

查看常见错误

ABC 开放平台 · 诊所管家

如有疑问,请扫码加入企业微信群咨询。

企业微信群二维码
没有匹配结果

诊所管家