小程序接入

2024.03.13 15:46:30

    兼容性

    支持小程序基础库所有版本

    接入流程

    • 添加易盾服务端域名白名单
    • 在小程序中引入 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 {
          // 初始化失败,或者还未初始化成功
        }
      }
    })
    
    Online Chat Tel:95163223 Free trial