接入说明
查找基本信息
- Step1:通过公司公共账号登陆开源联盟平台并提交申请
登录小程序开源联盟平台
( https://ossunion.baidu.com/opensource/index.html )
请使用百度商业账号登录开源联盟平台。如果您还没有百度账号,请先注册百度账号
( https://u.baidu.com/ucweb/?module=Reguser&controller=reg&action=index&appid=563 ) 注册完成后即可登陆。 点击加入后提交申请表可。 - Step2:平台提供成员联盟关键信息
开源联盟平台提供联盟方关键认证信息,如下表所示:
字段 | 说明 | 备注 |
---|---|---|
union_id | 联盟授权ID | 一个联盟成员即一个应用方 |
union_key | 别名:API KEY ,联盟方 API KEY | |
secret_key | 密钥 Key | |
union_name | 联盟方名称 |
- Step3:ACCESS_TOKEN 获取
采用 Client Credentials 方式,即应用公钥、密钥方式获取 Access Token ,后 Access Token 访问各服务接口。对于应用而言,其流程只有一步,即直接获取 Access Token 。
使用 Client Credentials 获取 Access Token 需要应用在其服务端发送请求(推荐用POST方法)到百度 OAuth2.0 授权服务的 https://openapi.baidu.com/oauth/2.0/token 地址上,并带上以下参数:
字段 | 说明 | 备注 |
---|---|---|
grant_type | 必须参数 | 固定为 client_credentials |
client_id | 必须参数 | Step2 中的 union_key |
client_secret | 必须参数 | Step2 中的 secret_key |
scope | 必须参数 | 由百度联盟宿主平台提供值为:smartapp_opensource_openapi |
返回格式如下:
1 | { |
备注:默认情况下,Access Token 的有效期为一个月,如果 Access Token 过期可以重新获取。
交互约定
认证后,开放给联盟成员平台使用的 API ,统一走百度开放平台(developer.baidu.com)进行 OpenAPI 授权后才能访问,访问入口统一走 https://openapi.baidu.com/rest/2.0/smartapp/ 进行请求,并带上统一的参数 access_token 和 union_sign 参数。union_sign 签名生成方法在下文。
返回数据统一放在 data 字段中,示例如下:
1 | { |
签名说明
1、 签名计算示例
① 所有请求参数按照字母先后顺序排列,注意参数中剔除 union_sign 和 access_token 字段
例如:
将 messageId、shopId、shopName、content、devicePosName、rewriteQuery、originalQuery、clientId、cuid、createTime、intents
排序为:
clientId、content、createTime、cuid、devicePosName、intents、messageId、originalQuery、rewriteQuery、shopId、shopName
② 把所有参数名和参数值进行拼装
例如:clientId=xxxx&content=xxxx&createTime=xxxx&cuid=xxxx&devicePosName=xxxx&intents=xxxx&messageId=xxxx&originalQuery=xxxx&rewriteQuery=xxxx&shopId=xxxxx&shopName=xxxx
③ 将密钥拼接到签名字符串最后面
例如:XXXX(即第二步的字符串)+ “&hsk=” + secret
④ 使用MD5进行加密
2、 签名函数和密钥说明
备注:签名计算的字串 secret ,即小程序联盟平台提供的 hsk ,可以登录开源联盟平台在“管理中心 -> 设置 -> 开发设置”中获取。
PHP
1 | public function getSign ($params, $secret) |
JAVA
1 | private static final String EXT_PARAM_SIGN = "union_sign"; |