日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

設備風險SDK Harmony接入

本文檔介紹了設備風險SDK (Harmony系統)的接入流程。

前提條件

  • 設備風險SDK需要在Harmony Next (0.0.71)及以上版本的系統運行,API版本最低支持12

  • 不支持模擬器模式調試

  • 僅支持開啟字節碼打包方案

權限說明

為增強風險識別的識別效果,當前 SDK 需要以下權限:

權限

是否必須

說明

ohos.permission.INTERNET

聯網權限。SDK需要聯網才能使用。

ohos.permission.GET_NETWORK_INFO

網絡狀態確認。SDK可以根據網絡狀態提供更好的服務。

ohos.permission.STORE_PERSISTENT_DATA

否(推薦賦予)

允許應用存儲持久化的數據。SDK可以增加設備指紋穩定性

ohos.permission.DISTRIBUTED_DATASYNC

否(推薦賦予)

多設備協同。SDK可以檢測多設備狀態,增強安全效果

ohos.permission.APP_TRACKING_CONSENT

否(推薦賦予)

獲取廣告標識符權限。SDK獲取IDFA信息,增強設備ID穩定性

下載和配置SDK

  1. 下載 Harmony SDK,并完成解壓。SDK 為 Harmony 標準的 .har 包。

  2. har文件拷貝到工程中存放har包的目錄。建議參考鴻蒙官方文檔放至libs目錄下,在工程根目錄的oh-package.json5添加認證包的版本依賴樹管理,示例如下:

image.png

  1. 修改項目工程中的oh-package.json5文件,在denpendencies中添加AliyunDevice依賴包,示例如下:

{
  ....
  "dependencies": {
    "aliyundevice" : "file:../libs/HarmonyOS-AliyunDevice-xxx.har"
    ....
  }
}

接口說明

Harmony SDK包含初始化(initWithOptions)、獲取Token(getDeviceToken)2 個核心接口。

初始化SDK

完成 SDK 內部初始化,在 App 啟動的時候,您需要盡可能早的調用該函數 。

  • 函數原型

export class SecurityInitListener {
  // code表示接口調用狀態碼
  onInitFinish(code: number): void {}
}

public initWithOptions(ctx: Context, 
                userAppKey: string, 
                options: Map<string, string>,
                securityInitListener: SecurityInitListener): void;
  • 參數

ctx:當前 Ability 的 Context。

userAppKey:用于標識用戶身份, 控制臺進行獲取。

options:初始化可選項,默認可以為null。可選參數如下

字段名

說明

示例

IPv6

是否使用IPv6域名上報設備信息。

默認為“0”:使用IPv4域名;

“1”:使用IPv6域名。

"1"

securityInitListener:設備風險SDK初始化回調接口,可在回調中判斷初始化是否成功。其中,code字段取值范圍可參考“狀態返回值”。

  • 返回值

無。

獲取客戶端Token

獲取客戶端 Token,并上報到業務自己的服務器,后續通過服務器端設備風險識別事件及返回參數,從而獲取客戶端設備風險信息。

  • 函數原型

export class SecurityToken {
  /**
   * 結果Code, 含義參照SecurityCode
   */
  public code:number = 0;

  /**
   * SDK返回的deviceToken
   */
  public session:string = "";
}

public async getDeviceToken(): Promise<SecurityToken>
  • 返回值

SecurityToken 類型。

code:返回接口調用狀態碼,可用于判斷接口調用是否成功。code 字段取值范圍可參考“狀態返回值”。

token:返回 Token 字符串信息,可用于業務后續查詢阿里云設備風險識別接口。

注意(非常重要):

1.因數據上報可能存在延遲,請確保SDK的信息采集initWithOptions接口和getDeviceToken接口調用時間間隔2秒以上。

2.Token 字符串在網絡環境良好的場景下,長度為 1K 左右;在網絡環境較差的場景下,返回的長度在 2K 左右。

狀態返回值

SecurityCode

Code

備注

SC_SUCCESS

10000

SDK信息采集成功

SC_NOT_INIT

10001

SDK未信息采集

SC_NOT_PERMISSION

10002

SDK需要的Harmony基礎權限未完全授權

SC_UNKNOWN_ERROR

10003

系統未知錯誤

SC_NETWORK_ERROR

10004

網絡錯誤

SC_NETWORK_ERROR_EMPTY

10005

網絡錯誤,返回內容為空串

SC_NETWORK_ERROR_INVALID

10006

網絡返回的格式非法

SC_PARSE_SRV_CFG_ERROR

10007

服務端配置解析失敗

SC_NETWORK_RET_CODE_ERROR

10008

網關返回失敗

SC_APPKEY_EMPTY

10009

AppKey為空

SC_PARAMS_ERROR

10010

其他參數錯誤

SC_FGKEY_ERROR

10011

密鑰計算錯誤

SC_APPKEY_ERROR

10012

SDK版本和AppKey版本不匹配

接口混淆配置

為避免接口被混淆而造成功能異常,請查看har包中obfuscation.txt文件中的配置,請勿移除該文件。

示例代碼

初始化設備風險識別 SDK,initWithOptions 接口需要在 APP 啟動盡可能早的時候調用。

其中,參數ALIYUN_APPKEY用于標識用戶身份,可在阿里云控制臺的設備App管理申請獲取。

SecurityDevice.getInstance().initWithOptions(getContext(), 
                             this.ALIYUN_APPKEY, null, null);

在業務需要風險識別的場景下(如注冊、活動推廣等)獲取戶端 Token 并上報到業務的服務器端。確保 initWithOptions 和 getDeviceToken 接口的調用間隔在2秒以上。

SecurityDevice.getInstance().getDeviceToken().then((tokenObj: SecurityToken) => {
  if (tokenObj.code == SecurityCode.SC_SUCCESS) {
    console.log("Aliyun Token: " + tokenObj.token);
  } else {
    console.log("Aliyun Code: " + tokenObj.code);
  }
})

完整代碼:

import { SecurityCode, SecurityToken, SecurityDevice } from 'aliyundevice';

@Entry
@Component
struct Index {
  @State message: string = 'Aliyun Device';
  @State ALIYUN_APPKEY: string = "XXX";

  build() {
    Row() {
      Column() {
        Button(this.message)
          .fontSize(18)
          .fontWeight(FontWeight.Bold)
          .onClick((event: ClickEvent) => {
            // 初始化SDK
            SecurityDevice.getInstance().initWithOptions(getContext(), this.ALIYUN_APPKEY, null, null);

            // 延時2秒獲取Token
            setTimeout(() => {
              SecurityDevice.getInstance().getDeviceToken().then((tokenObj: SecurityToken) => {
                if (tokenObj.code == SecurityCode.SC_SUCCESS) {
                  console.log("Aliyun Token: " + tokenObj.token);
                } else {
                  console.log("Aliyun Code: " + tokenObj.code);
                }
              })
            }, 2000);
          })
          .margin({ top: 10 })
      }
      .width('100%')
    }
    .height('100%')
  }
}

調用風險識別API接口

deviceToken與其他參數,根據如下相應的風險識別服務事件參數文檔說明,請求風險識別API接口進行識別:

設備風險識別事件及返回參數

注冊風險識別功能及參數說明

營銷風險識別功能及參數說明

登錄風險識別功能及參數說明

流量推廣反作弊功能及參數說明