使用说明

一.准备工作

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"
      }
    });
  }
});