小程序接入
兼容性
支持小程序基础库所有版本
接入流程
- 添加易盾服务端域名白名单
- 在小程序中引入 SDK
- init:初始化 SDK 以获取 SDK 对象,整个页面 SDK 初始化一次即可
- getToken:获取 token,每次调用返回不同的 token 值
- 提交token:将 token 作为请求参数提交到业务方后端
微信小程序
- 添加域名白名单
使用公众号账号登录微信公众平台,在管理员首页的左侧栏,可以找到 开发 - 开发管理 菜单,点击页面上“开发设置”,需要将小程序 SDK 的服务器域名(地址:https://ac.dun.163yun.com)加入服务器域名白名单。
- 下载 SDK 代码
下载并保存 SDK 代码至本地(编码格式为UTF8),下载地址:SDK 集合
百度小程序
- 添加域名白名单
登录百度小程序平台,在“小程序管理 -> 设置 -> 开发设置 -> 服务器域名”,将小程序 SDK 的服务器域名(地址:https://ac.dun.163yun.com)加入服务器域名白名单。
- 下载 SDK 代码
下载并保存 SDK 代码至本地(编码格式为UTF8),下载地址:SDK 集合
支付宝小程序
- 添加域名白名单
登录支付宝小程序开放平台,在“控制台 -> 开放服务 -> 开发设置 -> 服务器域名白名单”,将小程序 SDK 的服务器域名(地址:https://ac.dun.163yun.com)加入服务器域名白名单。
- 下载 SDK 代码
下载并保存 SDK 代码至本地(编码格式为UTF8),下载地址:SDK 集合
字节跳动小程序
- 添加域名白名单
登录字节跳动小程序开发者平台,在“开发管理 -> 开发设置 -> 服务器域名”,将小程序 SDK 的服务器域名(地址:https://ac.dun.163yun.com)加入服务器域名白名单。
- 下载 SDK 代码
下载并保存 SDK 代码至本地(编码格式为UTF8),下载地址:SDK 集合
QQ 小程序
- 添加域名白名单
登录 QQ 小程序开发者平台,在“开发-> 开发设置 -> 服务器域名”,将小程序 SDK 的服务器域名(地址:https://ac.dun.163yun.com)加入服务器域名白名单。
- 下载 SDK 代码
下载并保存 SDK 代码至本地(编码格式为UTF8),下载地址:SDK 集合
嵌入 SDK
在需要保护的小程序页面嵌入 SDK,请注意:
- 请在该页面头部引入;
- 一个页面引入一次即可
示例代码如下:
const Watchman = require('./watchman.wx.js')
init 接口
引入 SDK 后,在onLoad或者onReady生命周期回调函数中进行初始化 SDK,以获取 SDK 对象,拥有 SDK 对象才能调用 SDK 的其他接口。接口调用说明如下:
- 调用方式:Watchman.init(options)
- 返回值:void
参数 options 结构如下:
属性名 | 类型 | 是否必须 | 作用 |
---|---|---|---|
productNumber | String | 是 | 产品编号 |
onload | Function | 是 | 初始化完成后的回调函数,SDK 对象将以回调函数参数的形式提供 |
onerror | Function | 否 | 初始化失败的回调函数 |
初始化 SDK 的示例代码如下:
const Watchman = require('./watchman.wx.js')
Page({
data: {
watchmanInstance: null
},
onLoad: function () {
Watchman.init({
productNumber: 'YOUR_PRODUCT_NUMBER',
onload: (instance) => {
this.data.watchmanInstance = instance
}
})
}
})
getToken接口
getToken 接口返回唯一凭证 token,业务方前端需要将此 token 提交到业务后端,业务后端再使用此 token 来调用易盾服务端的 check 接口获取检测结果。注意:
- 一般由用户的操作来触发 getToken 调用,比如用户点击“提交”按钮动作。
- 一个 token 只能使用一次。
- 建议调用 getToken 接口时增加超时逻辑,避免内部错误导致回调未触发,影响业务流程
接口说明如下:
- 调用方式:watchmanInstance.getToken(businessId, callback)
- 接口描述:获取唯一凭证 token
- 返回值:void
参数名 | 类型 | 是否必须 | 作用 |
---|---|---|---|
businessId | String | 是 | 业务id |
callback(token) | Function | 是 | 初始化完成后的回调函数,SDK对象将以回调函数参数的形式提供 |
timeout | Number | 否 | 超时时间,单位毫秒,默认值 2000 |
获取查询 token 的示例代码如下:
if (this.data.watchmanInstance) {
this.data.watchmanInstance.getToken('<YOUR_BUSINESS_ID>', (token) => {
// 将 token 作为参数提交到服务端
})
} else {
// 初始化失败,或者还未初始化成功
}
可选接口
start 接口
控制 SDK 开始监听页面事件,SDK 将收集页面的事件信息。 接口说明如下:
- 调用方式:watchmanInstance.start()
- 返回值:void
- 接口参数:无
示例代码如下:
if (this.data.watchmanInstance) {
this.data.watchmanInstance.start()
} else {
// 初始化失败,或者还未初始化成功
}
stop 接口
控制 SDK 结束监听页面事件。若需要再次监听页面事件,请再次调用 start 接口。(请注意:由于微信 API 限制,stop 接口会停用当前页面所有的罗盘、加速器等监听事件,如果页面需要保持监听这些事件,请谨慎调用 stop 接口)
接口说明如下:
- 调用方式:watchmanInstance.stop()
- 返回值:void
- 接口参数:无
示例代码如下:
if (this.data.watchmanInstance) {
this.data.watchmanInstance.stop()
} else {
// 初始化失败,或者还未初始化成功
}
接入示例
const Watchman = require('./watchman.wx.js')
Page({
data: {
watchmanInstance: null
},
onLoad: function () {
Watchman.init({
productNumber: '<YOUR_PRODUCT_NUMBER>',
onload: (instance) => {
this.data.watchmanInstance = instance
}
})
},
submit: function (token) {
wx.request({
url: '<YOUR_SERVER_API>',
data: {
token: token
},
success (res) {}
})
},
handleBtnClick: function () {
if (this.data.watchmanInstance) {
this.data.watchmanInstance.getToken('<YOUR_BUSINESS_ID>', (token) => {
this.submit(token)
}, 3000)
} else {
// 初始化失败,或者还未初始化成功
}
}
})