开放平台2019
开放平台2019
架构
独立工程(gm_openapi?),独立部署,独立域名(open.guanmai.cn?)
开放平台web服务
处理开放平台账号认证,授权,权限校验,对外提供开放平台接口,消息推送服务。
对内主要调用各微服接口。
开放平台三方服务
本身作为观麦开放平台的三方账号,为授权站点对接用友,有赞等其他第三方平台。
开放平台账号
账号类型
站点账号
只能读取或者操作本站点数据
Group账号 可以读取或者操作本group下所有站点的数据
三方开发者 可以读取或者操作授权站点的数据。
OAuth2.0授权流程
1,重定向到station授权页面
2,station用户确认授权
3,带授权码重定向到开发者指定链接
4,用授权码请求开放平台接口
5,获取access_token和refresh_token
接口权限管理
增加接口权限管理,可配置开平账号的接口访问权限,限制可访问或者限制不可访问。
权限可直接存账户表。
测试账号 权限
# openapi_user
appid
secret
...
default_access [新增] 默认
allow [新增]
deny [新增]
接口版本化
对于开放平台,对老接口兼容是必要的。
接口路径规范:
api/[VERSION]/[PATH]
例如:
api/1.0/order/get
api/1.5/order/get
api/2.1/order/update
灰度策略
group灰度
推送
账号绑定固定的推送地址
# openapi_user
appid
secret
...
notify_url [新增]
# push_msg [新增]
_id
appid
body
sent_count
last_send_time
create_time
modify_time
消息体结构
{
"version": "1.0", # 版本号
"appid": "", # 账号appid
"ts": 1588888888, # 消息发送时间戳
"sign": "", # 签名,开发者可以校验消息真伪
"type": "sku_updated", # 消息类型
"station_id": "T0001"
# 以下为各消息类型自定义字段
"data": "%7b%22sku_id%22%3a%22D00001%22%2c%22stocks%22%3a100%7d"
}
消息数据
消息自定义数据以 urlencode(json.dumps(data_dict, separators=(',', ':')))的形式存data字段
签名方式
步骤一:排序拼接(除sign)
stringA="appid=T12345&sku_id=D00001&stocks=100&ts=1588888888&type=sku_updated&version=1.0"
步骤二:拼接秘钥
stringB=stringA + "&secret=abc"
步骤三:哈希
MD5(stringB)
推送策略
三次补推,间隔5秒,5分钟,10分钟?
消息类型
商品信息变更
消息名:merchandise_updated
自定义字段:
订单配送中
消息名:order_delivering
自定义字段:order_ids
商品库存变动
消息名:sku_stock_updated
自定义字段:sku_id, stock
统一返回码
返回码段3000以后
统一分页格式
弃用skip和limit的方式,采用pagination形式
平台官网
接入指引
接口文档
** STEP 2
登录注册
账号信息(appid,secret,接口权限)
设置通知地址