微信小程序 SDK 接入

更新时间:
复制 MD 格式

在微信小程序中接入设备风险 SDK,采集设备指纹生成 deviceToken。将 deviceToken 上报至业务服务器后,可联动风险识别服务检测注册、登录、营销活动等场景中的黑产设备风险。本文介绍 SDK 的下载、集成、初始化及 deviceToken 获取方法。

背景信息

微信小程序 SDK 是专为小程序环境设计的设备风险识别工具,通过嵌入 SDK,开发者可以快速集成设备指纹能力,实时获取设备信息并联动风险识别服务。该 SDK 支持多种场景,如注册、登录、营销活动等,有效防范黑产攻击,提升业务安全性。

SDK 集成指南

  1. 下载并引入 SDK

    风险识别控制台下载微信小程序 SDK。建议在小程序首页(index 页面)引入,并将 AliyunFP 对象全局挂载,便于其他页面调用。

    import * as AliyunFP from './feilin.weixin.xxxx.js';
    const app = getApp();
    app.AliyunFP = AliyunFP;
  2. 添加 canvas 节点

    在页面的 axml 文件中添加 feilin-view 节点,用于 SDK 采集设备指纹。

    <view>
      <view> 业务的 UI 布局 </view>
    
      <view id="feilin-view" style="position:fixed;top:99999rpx;">
        <canvas id="feilin-canvas" type="2d" style="width:150px;height:150px;"></canvas>
        <canvas id="feilin-webgl" type="webgl" style="width:150px;height:150px;"></canvas>
      </view>
    </view>
  3. 初始化 SDK

    在页面的 onReady 生命周期中调用 AliyunFP.init() 初始化 SDK。

    appKey 用于标识用户身份,可在阿里云控制台的设备 App 管理申请获取。

    Page({
      onReady() {
        AliyunFP.init(
          {
            appKey: '用于标识用户身份,可在阿里云控制台的设备 App 管理申请获取',
            appName: '小程序应用名称',
            openId: '微信小程序用户 ID(建议传入)',
            endpoints: [
              'https://cloudauth-device.aliyuncs.com'
            ],
          },
          (initStatus, deviceToken) => {
            console.log("initStatus:" + initStatus + "  deviceToken:" + deviceToken);
          }
        );
      }
    });
    重要

    未指定 endpoints 时将使用默认服务地址。请务必将 endpoints 中的域名添加至小程序后台的服务器域名白名单,否则 SDK 无法正常通信。

    endpoints 默认服务地址:

    地域

    服务地址

    中国内地(默认)

    https://cloudauth-device.aliyuncs.com

  4. 获取 deviceToken

    推荐通过 AliyunFP.init 的回调获取 deviceToken。也可在用户触发业务行为(如注册、登录、订购等)时主动调用 AliyunFP.getToken 获取。两次调用之间需间隔至少 1 秒。

    AliyunFP.getToken()
    
    // 传入 bizId,将本次 token 与业务唯一认证 ID 绑定
    AliyunFP.getToken(bizId)

接入示例

页面结构(axml)

<view>
  <view class="page-description">
    {{ message }}
  </view>

  <button type="primary" onTap="onLogin">
    登录
  </button>

  <view id="feilin-view" style="position: fixed; top: 99999rpx;">
    <canvas id="feilin-canvas" type="2d" style="width: 150px; height: 150px;"></canvas>
    <canvas id="feilin-webgl" type="webgl" style="width: 150px; height: 150px;"></canvas>
  </view>
</view>

逻辑实现(js)

import * as AliyunFP from './feilin.weixin.xxxx.js';
const app = getApp();
app.AliyunFP = AliyunFP;

Page({
  onReady() {
    // 页面渲染完成后初始化 SDK
    AliyunFP.init({
      appKey: '用于标识用户身份,可在阿里云控制台的设备 App 管理申请获取',
      appName: '小程序应用名称',
      openId: '微信小程序用户 ID(建议传入)',
      endpoints: ['https://cloudauth-device.aliyuncs.com'],
    }, (initStatus, deviceToken) => {
      console.log("initStatus:" + initStatus + "  deviceToken:" + deviceToken);
    });
  },

  onLogin() {
    // 用户点击登录按钮时获取 deviceToken,随业务请求上报
    const deviceToken = AliyunFP.getToken();
    const data = {
      "deviceToken": deviceToken,
      "其他业务参数": ""
    };
    // 将 deviceToken 随业务请求发送至服务端,服务端通过 deviceToken 查询设备风险
  }
});

调用风险识别 API 接口

将 deviceToken 与其他参数,参考服务端API接口接入,请求风险识别 API 接口进行识别。