1-3 九医云商城对外通用接口
九医云商城Sass对外通用接口
版本号 | 变更日期 | 变更描述 | 变更人 |
---|---|---|---|
V1.0 | 2023/09/18 | 创建 | 李呈云 |
[TOC]
一、概述
> 本文档主要是九医云平台通用接口规范。包括:通用接口中参数及返回值说明等内容。
二、接口规范
2.1安全验证
> - 本套接口遵循Bearer Token (RFC 6750) 用于OAuth 2.0授权访问资源 > - 业务接口中以sign系统级参数进行请求校验,除Token请求接口外均需携带签名进行交互 > - 业务接口中以timestamp(时间戳10位)系统级参数有效时间为100秒 > - 业务接口中以nonce系统级参数校验重放攻击,唯一随机数,可以是uuid,每次请求都随机生成
2.2协议格式
2.2.1 通信协议
> - 请求参数与返回参数都以JSON 格式作为数据格式 > - 字符集默认使用 UTF-8,请勿使用其它字符集 > - 所有业务接口默认为post
2.2.2 数据约束
> - 与日期,时间有关的信息以yyyy-MM-dd HH:mm:ss格式传输 > - 与金额有关的信息以元为单位,保留两位小数(可按具体需求) > - 业务接口非必填参数可不传,若传,则参数值不能为空
2.3 系统级参数约束
2.3.1 请求说明
> - 请求参数采用 JSON 格式 > - 包含sign,appKey,timestamp,nonce,input字段
参数名称 | 参数类型 | 必填 | 说明 |
---|---|---|---|
appKey | string | Y | 商户Key(九医云提供) |
timestamp | long | Y | 取当前时间戳(10位) |
nonce | string | Y | 唯一随机数,可以是uuid,每次请求都随机生成 |
sign | string | N | 签名值 |
input | object | N | 业务模型 |
2.3.2 返回说明
> - 返回结果采用 JSON 格式 > - 包含code、msg、output字段
参数名称 | 参数类型 | 必填 | 说明 |
---|---|---|---|
code | Integer | Y | 200 标识成功,非200 失败 |
msg | string | Y | 返回信息 |
nonce | string | Y | 请求时携带的随机数 |
output | object | N | 返回数据,json 格式 |
2.4 签名方法
客户端和服务端之间约定一个相同的秘钥secret(九医云提供),作为加密字符串的一部分
生成规则由字符串secret + timestamp + nonce拼接后进行MD5加密得出小写字符串后进行SHA1加密后得出小写字符串作为数据签名
demo:
secret=Hwdiicysdgrffc012342de_dsr$221
timestamp=1637725871
nonce=BE6DD046-CAFB-B26F-7C9006BE48EA48D4
tempStr = Hwdiicysdgrffc012342de_dsr$2211637725871BE6DD046-CAFB-B26F-7C9006BE48EA48D4
md5Str = MD5(tempStr); 得出 1d121b5435f3281112c5a0c8ff66b77c
sign = SHA1(md5Str); 得出 39d8b31606bc3cf349540c9f52d586ea60aeb924
三、校验获取Token接口详细说明
> - 测试接口地址:https://test.91medicine.net/gateway/auth-server/ > - 生产接口地址:https://cloud.91medicine.cn/gateway/auth-server/
3.1 OAuth Bearer Token获取接口
> - Url路径:oauth/token
3.1.1 接口请求模型
参数名称 | 参数类型 | 必填 | 说明 |
---|---|---|---|
grant_type | string | Y | 传入固定值:password |
username | string | Y | 用户名(九医云技术提供) |
password | string | Y | 密码(九医云技术提供) |
3.1.2 接口返回模型
参数名称 | 参数类型 | 必填 | 说明 |
---|---|---|---|
access_token | string | Y | 返回的token |
expires_in | int | Y | 剩余有效期(秒) 一般是86399 |
token_type | string | Y | 请求业务接口头部类型bearer |
Demo:
Method:GET
Request:
grant_type=pwd&username=jiuwei&password=yf2023&platform=shop&Auto-Key=e33cc4e2-91a2-43d0-abeb-cbfcc42eb1e4&client_id=dt&client_secret=dt&scope=all&need=false&headStoreUuid=
Response:
{
"code": 0,
"msg": "",
"data": {
"access_token": "baa2dc2b-2bf7-4202-bb13-f7ef3f16fcc9",
"token_type": "bearer",
"refresh_token": "dbf99cbe-3699-42ab-b423-32ac28e07e23",
"expires_in": 601631,
"scope": "all"
}
}