Skip to content

开放平台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,接口权限)
设置通知地址