智能风控 鸿蒙 端接入文档(ArkTS)

2024.06.20 14:06:52

    隐私说明

    法规需求

    根据我国《网络安全法》等相关法律法规及国家标准的要求,个人信息的收集和使用,应当遵循合法、正当、必要的原则,公开收集、使用规则,明示收集、使用信息的目的、方式和范围,并经被收集者同意。故我们强烈建议您在拟接入易盾安全SDK前,检查和完善拟接入软件的《隐私政策》中有关采集个人信息部分的说明,确保已涵盖拟接入SDK项下需要采集的个人信息(详见附表),并明确您有权将上述个人信息提供给第三方用于安全服务。

    规范里要求涉及到用户隐私、设备敏感信息的数据采集均需要在隐私政策中明确声明,并需要弹窗由用户确认,在未确认弹窗前,不允许进行采集,当用户不同意时,同样不允许进行采集。

    详情请参照网易易盾隐私政策,请放到应用“隐私协议”中。

    三方SDK采集说明

    为保证符合国家隐私合规政策,需要在隐私政策中的三方SDK列表中补充易盾设备安全SDK相关说明

    SDK名称 公司 SDK用途 收集个人信息字段
    易盾智能风控SDK 杭州网易智企科技有限公司 用于风险控制、反欺诈、设备环境风险,以保障账户和交易安全 唯一设备识别码(AAID、OAID);设备运行状态(SIM卡状态、USB状态、充电状态、电池容量及电量、启动时间);设备基本信息(设备品牌及型号、设备厂商、设备所运行系统版本、名称、系统内核信息、CPU型号、设备内存及存储大小、屏幕亮度及分辨率、设备架构、基带信息、辅助功能列表、模拟器类型);日志信息(网络连接类型及状态、IP地址、运营商信息、网络代理、WIFI信息)。
    申请权限 个人信息对外传输/共享 SDK隐私政策链接 联系方式
    网络权限 是否传输/共享:是
    传输/共享对象:杭州网易智企科技有限公司
    **涉及传输信息:**唯一设备识别码(AAID、OAID);设备运行状态(SIM卡状态、USB状态、充电状态、电池容量及电量、启动时间);设备基本信息(设备品牌及型号、设备厂商、设备所运行系统版本、名称、系统内核信息、CPU型号、设备内存及存储大小、屏幕亮度及分辨率、设备架构、基带信息、辅助功能列表、模拟器类型);日志信息(网络连接类型及状态、IP地址、运营商信息、网络代理、WIFI信息)。
    传输方式:https
    https://dun.163.com/clause/privacy Privacy@service.netease.com

     

    接入说明

    接入 “智能风控” SDK,开发者需要完成以下步骤:

    1. 根据应用/游戏开发平台,将SDK拷贝到指定的工程目录,并修改项目配置;
    2. 初始化SDK(初始化接口:init);
    3. 调用getToken获取token信息(getToken接口:getToken);
    4. 验证SDK接入是否正确;
    5. 可选择性的接入相关功能性接口;
    6. 本SDK最低支持的系统为:API 11。
    

    接入建议:

    接入步骤

    SDK 涉及到以下文件:

    YiDunProtector-HarmonyNEXT-x.x.x.har   //其中x.x.x是对应版本号
    

    注意: 打包出来的 hap,必须包含 lib/{ABI}/libNetHTProtect.so。

    导入SDK

    (1)以 DevEco Studio NEXT 为例,将获取到的 SDK 的 hap 文件放到工程中的 libs 文件夹下(没有libs文件夹可以自行创建,不限制文件夹名称),然后在 工程根目录 的 oh-package.json5 文件中增加如下代码:

      "dependencies": {
        "@ohos/YiDunProtector": "file:./libs/YiDunProtector-HarmonyNEXT.har", //具体har名称可能会有变化,以实际为准
      },
    

    (2)点击右上方的Sync Now刷新工程

    (3)如果没有弹出Sync Now选项,可手动点击File -> Sync and Refresh Project  

    SDK 接入调用说明

    SDK 初始化接口(init)

    接口用途:

    用于初始化智能风控 SDK。

    接入须知:

    • 使用其他接口之前,必须先调用初始化接口(init),建议在应用/游戏启动过后第一时间调用(初始化后,并不会获取任何个人隐私相关信息);
    • 该接口为 必须调用接口

    函数原型:

    static init(context: Context, productId: string, config?: HTProtectConfig): number;
    

    参数说明:

    参数 说明 必要性
    context 当前环境的上下文 必填
    productId 易盾HTP分配的productId,可登录易盾后台获取 必填
    config 配置类的对象 可选,不需要可忽略

    返回值说明:

    code 说明
    200 初始化成功
    1001 context为空
    1002 加载so失败
    1003 productId格式错误

    配置类HTProtectConfig设置:

    (1) 设置渠道信息
    channel: string = '';
    

    若需要传递当前应用包体来源渠道可调用该接口(比如:应用宝渠道编号/信息)。  如需要示例 demo 请联系易盾获取。

    示例代码:

    ....
    import { HTProtect } from '@ohos/YiDunProtector' //导入必要类
    import { HTProtectConfig } from '@ohos/YiDunProtector';
    ....
    
    @Entry
    @Component
    struct Index {
      @State message: string = 'Hello World';
    
      build() {
        Row() {
          Column() {
            Text(this.message)
              .fontSize(50)
              .fontWeight(FontWeight.Bold)
              .onClick(() => {
                let config: HTProtectConfig = new HTProtectConfig();
                config.channel = "测试";//设置渠道信息
                let ret = HTProtect.init(getContext(this), "product id", config); //调用初始化,带配置
                ...
                let ret = HTProtect.init(getContext(this), "product id");//调用初始化,不带配置
                ...
                hilog.info(0x0000, 'testTag', '%{public}s  %{public}d', 'init htp status', ret);
              });
          }
          .width('100%')
        }
        .height('100%')
      }
    }
    

    获取凭证(getToken)

    接口用途:

    用于关键业务节点风险防控场景中,比如注册、登录、领劵、抽卡、兑换、点赞、评论等业务场景。业务方可通过此接口,获取检测唯一凭证 token。业务服务端通过此凭证实时获取当前用户/玩家风险检测结果,并根据结果进行处置。

    接口适用场景为:
    1、游戏类应用,当 SDK 数据上报接口被屏蔽导致数据上报失败时,通过 getToken 接口获取 SDK 采集信息,并由客户服务端传递给易盾服务器;
    2、全类型应用,在关键业务节点主动调用检测时,通过 getToken 接口获取检测凭证,由客户服务端通过 token 凭证从易盾服务器查询检测结果。
    

    接入须知:

    函数原型:

    static async getToken(timeout: number, businessId: string): Promise<AntiCheatResult>
    

    参数说明:

    参数 说明 必要性
    timeout 网络超时时间 必填,单位毫秒,[200,10000],此区间外的默认为3000,表示网络传输超时时间
    businessId 业务 ID 必填,由易盾后台分配(32位),并在官网“服务管理”中查询

    返回值说明:

    AntiCheatResult类说明:

    interface AntiCheatResult {
      code: number;
      codeStr: string;
      token: string;
    }
    

    变量说明:

    变量 说明
    code 结果码,不同结果码含义如下:200:表示调用成功,其他结果码均表示调用失败;199:产品ID不合法;201:SDK未初始化;202:在主线程运行;203:businessId不合法;204:其他情况,比如受到攻击
    codeStr 结果码对应的字符说明,200:success,199:productId invalid;201:error not init;202:error. run on main thread;203:businessId invalid;204:gen token error
    token 当 code 为200时,返回正常token(40位)。当网络状态不佳或者超时时,会返回离线 token(几KB左右)

    示例代码:

    ....
    import { HTProtect } from '@ohos/YiDunProtector' //导入必要类
    ....
    
    //异步模式,通过promise进行异步调用
    HTProtect.getToken(5000, "business id").then((result) => {
       hilog.info(0x0000, 'testTag', 'getAsync htp token  code:%{public}d token:%{public}s codeStr:%{public}s', result.code, result.token, result.codeStr);
    });
    
    //同步模式,通过await将结果直接返回到result中
    let result = await HTProtect.getToken(5000, "business id");
    hilog.info(0x0000, 'testTag', 'getSync htp token  code:%{public}d token:%{public}s codeStr:%{public}s', result.code, result.token, result.codeStr);
    
    Online Chat Tel:95163223 Free trial