使用说明
一.准备工作
1.1 申请小程序插件使用权限
用户需要在 微信公众平台->设置->第三方设置->插件管理->添加插件
搜索关键字 andmuui
,并按照提示流程添加插件。添加后,将在 1 ~ 3 个工作日开通使用权限。
1.2 开放平台申请授权应用
用户在 开放平台 注册账号,并进入 控制台->微信小程序视频监控应用->视频能力
填写必要信息,完成接入申请。申请审核将在 3 ~ 5 个工作日内完成,请耐心等候。
应用审核通过后,进入 控制台->微信小程序视频监控应用->应用配置->接入信息(查看)
,可获取应用的 appid
secret
rsa
信息,这三个信息非常重要,将在接下来的流程中使用。
二.开放平台接口
开放平台接口调用,需要遵循 Api 总体规范 统一鉴权,建议用户在自己平台进行包装后,提供接口给小程序使用。
2.1 获取开放平台 token
描述 | 用户在自己小程序中调用接口,获取 开放平台token 。开放平台token 用于鉴别调用方是否是合法的三方应用,并在后续流程换取 业务平台token 。 |
请求类型 | POST |
接入规范 | Api 总体规范 |
接口路径 | /v3/open/api/token |
备注 | 文档1.2 小结获取的 appid rsa 进行Api 总体规范加密鉴权 |
parameters
参数名称 | 参数类型 | 长度 | 是否必须 | 参数含义 | 说明 |
---|---|---|---|---|---|
operatorType | int | 10 | Y | 操作类型 | 1:应用 2:自定义类型,传入 2 代表申请临时 token。传 1 即可 |
sig | String | Y | 签名 | MD5(appId+secret) 使用 文档 1.2 小结获取的 appid secret 进行 md5 加密 |
response
{
"resultCode": "000000",
"resultMsg": "成功",
"data": {
"expires_in": 604800,
"token": "xxx"
}
}
2.2 获取业务平台 token
描述 | 用户在自己小程序中调用接口,使用 开放平台token 换取 业务平台token 。该接口获取用户手机号信息后,会在业务平台判断是否已注册,如果未注册则自动注册,并登录。 业务平台token 用于调取插件页面业务请求。 |
请求类型 | POST |
接入规范 | Api 总体规范 |
接口路径 | /v3/open/api/wechat/user/token |
备注 | 文档2.1 小结获取的 openToken ,传入Api 总体规范 header 中,作为 token;文档 1.2 小结获取的 appid rsa 进行Api 总体规范加密鉴权 |
parameters
参数名称 | 参数类型 | 长度 | 是否必须 | 参数含义 | 说明 |
---|---|---|---|---|---|
encryptedData | String | Y | 微信加密数据 | getPhoneNumber 获取 encryptedData | |
iv | String | Y | 微信解密参数 iv 向量 | getPhoneNumber 获取 iv | |
jsCode | String | Y | 微信授权码 | wx.login 获取 jscode |
response
{
"resultCode": "000000",
"resultMsg": "成功",
"data": {
"token":"xxx.xxx.xxx",
"phone":"178xxxxxx"
}
}
三.使用小程序插件
3.1 配置 app.json
用户在自己的小程序 app.json
中进行配置:
字段 | 类型 | 描述 |
---|---|---|
plugin-name | String | 用户自定义插件名称,定义后通过微信原生方法 requirePlugin({plugin-name}) 引入 |
version | String | 插件版本号,可在 微信公众平台->设置->第三方设置->插件管理->详情 中查看当前版本 |
provider | String | 插件的 appid ,固定值 wx0802ecd34e125641 ,建议写在项目配置中 |
{
"plugins": {
"plugin-name": {
"version": "2.1.0",
"provider": "wx0802ecd34e125641"
}
},
}
3.2 调用插件页面
插件页面和本地路由跳转一样,都调用了微信原生方法 wx.navigateTo
。
第三方应用使用本插件,统一跳转到 plugin-private://wx0802ecd34e125641/pages/third-party-access/index
页面进行鉴权,并通过 eventChannel.emit
方法实现参数传递。
eventChannel.emit
方法预定义事件名称为 postMessage
,并传递一个对象作为参数。以下是入参文档:
parameters
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
openToken | String | Y | 文档 2.1 小结获取的 开放平台token |
env | String | Y | 环境参数,可选: dev-开发环境。插件页面将连接本地 127.0.0.1:1024 服务器; stg-测试环境。插件页面将连接平台测试环境服务器; devPro-调试用生产环境。插件页面将连接平台生产环境服务器,并输出日志,显示 vconsole 面板,以及其他页面内的调试面板;pro-生产环境。插件页面将连接平台生产环境服务器,当小程序发布时,请选择 pro 。 |
target | Object | Y | 第三方应用希望跳转到哪一个插件页面,由该对象进行描述 |
parameters.target
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
module | String | Y | 页面模块的别名,可选: cameras-list-摄像机列表页面,可由该页面查看用户绑定的摄像机,并进入播放器观看; devices-list-摄像机绑定页面,可由该页面查看产品可绑定的摄像机列表,并进行下一步绑定操作; |
product | String | Y | 隶属产品名称,该字段表示第三方应用需要使用中移物联网 旗下哪一款小程序产品的业务。每一款产品对应的插件页面交互有所不同,请根据自身需求填写,详情可咨询对接人。 |
token | String | Y | 文档 2.2 小结获取的 业务平台token |
theme | String | Y | 小程序主题色编号,可选: tq3qte-红色; wibdbw-蓝色; |
代码示例:
wx.navigateTo({
url: "plugin-private://wx0802ecd34e125641/pages/third-party-access/index",
success(res) {
res.eventChannel.emit("postMessage", {
openToken: "xxx",
env: "pro",
target: {
module: "cameras-list",
product: "bi-fe-weapp",
token: "xxx",
theme: "wibdbw"
}
});
}
});