Tous les produits
Search
Centre de documentation

Fraud Detection:Intégration du SDK de détection de fraude sur appareil pour HarmonyOS

Dernière mise à jour :Aug 26, 2026

Cette rubrique décrit la procédure d'intégration du SDK Device Risk (HarmonyOS).

Remarques d'utilisation

Le SDK Device Risk nécessite HarmonyOS NEXT 5.0 ou version ultérieure (API 12 ou version ultérieure).

Le SDK HarmonyOS présente les limites suivantes :

  • Compatible avec les appareils mobiles intelligents (téléphones ou tablettes) exécutant HarmonyOS NEXT 5.0 ou une version ultérieure.

  • Compatible avec l'architecture arm64-v8a.

Prérequis

Pour respecter les obligations de conformité en matière de confidentialité liées à l'intégration de SDK tiers, réduire les risques de violation de la vie privée et assurer un fonctionnement conforme, utilisez la dernière version publiée sur le centre de documentation Alibaba Cloud. Avant d'utiliser la détection des risques liés aux appareils, consultez les règles de traitement des informations personnelles ainsi que la Politique de confidentialité du SDK de détection de fraude, et intégrez le SDK en suivant les directives de conformité des SDK.

Autorisations

Pour améliorer la précision de la détection de fraude, le SDK requiert les autorisations suivantes :

Autorisation

Requise

Description

ohos.permission.INTERNET

Oui

Accès à Internet. Le SDK nécessite une connexion réseau pour fonctionner.

ohos.permission.GET_NETWORK_INFO

Oui

Vérification de l'état du réseau. Le SDK utilise l'état du réseau pour fournir un service optimal.

ohos.permission.STORE_PERSISTENT_DATA

Non (recommandée)

Autorise l'application à stocker des données persistantes. Le SDK utilise cette autorisation pour améliorer la stabilité de l'empreinte numérique de l'appareil.

ohos.permission.DISTRIBUTED_DATASYNC

Non (recommandée)

Collaboration multi-appareils. Le SDK détecte l'état de plusieurs appareils pour renforcer la sécurité.

ohos.permission.APP_TRACKING_CONSENT

Non (recommandée)

Obtention de l'identifiant publicitaire. Le SDK utilise les informations IDFA pour améliorer la stabilité de l'ID de l'appareil.

Configuration des dépendances

  • Téléchargez le SDK HarmonyOS et extrayez l'archive. Le SDK est fourni sous la forme d'un package .har standard HarmonyOS.

  • Un fichier SO mono-architecture pèse environ 3,0 Mo.

  • Le SDK de détection des risques liés aux appareils intègre des mécanismes de protection du code et de chiffrement des données, ce qui explique la taille relativement importante du package.

  • Dans le fichier oh-package.json5 de votre projet, ajoutez la dépendance suivante à la section dependencies :

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

Configuration de l'obscurcissement des interfaces (important)

Pour éviter les erreurs fonctionnelles dues à l'obscurcissement des interfaces, vérifiez la configuration dans le fichier obfuscation.txt inclus dans le package .har et ne supprimez pas ce fichier. Si la configuration d'obscurcissement ne peut pas être fusionnée avec certaines versions du compilateur et que l'intégration échoue, ajoutez le fichier obfuscation-rules.txt issu du package .har au projet principal de votre application et incluez-y la configuration d'obscurcissement.

Appel du SDK

Une fois la configuration précédente effectuée, intégrez le client SDK en suivant ces trois étapes :

  • Initialisation (initWithOptions)

  • Obtention du jeton client (getDeviceToken)

  • Envoi du jeton à votre serveur métier

1. Initialisation (initWithOptions)

Cette fonction initialise le SDK et collecte les informations relatives à l'appareil. Appelez-la aussi tôt que possible lors du démarrage de l'application, tout en respectant les exigences de conformité. Effectuez cet appel une seule fois par lancement de l'application.

  • Prototype de la fonction

export class SecurityInitListener {
  // code indicates the API call status code
  onInitFinish(code: number): void {}
}

public initWithOptions(ctx: Context,
                userAppKey: string,
                options: Map<string, string>,
                securityInitListener: SecurityInitListener): void;
  • Paramètres

    • ctx : le contexte (Context) de l'Ability actuelle.

    • userAppKey : identifie votre application. Vous pouvez en faire la demande via la section Gestion des applications d'appareil de la console Alibaba Cloud.

    • securityInitListener : le rappel d'initialisation. Utilisez ce rappel pour vérifier si l'initialisation a réussi. Valeur par défaut : null. Pour connaître les valeurs valides du champ code, reportez-vous aux valeurs de retour d'état.

    • options : paramètres optionnels de collecte d'informations. Valeur par défaut : null. Les options disponibles sont les suivantes.

      Champ

      Description

      Exemple

      IPv6

      Indique s'il faut utiliser un nom de domaine IPv6 pour signaler les informations de l'appareil. 0 (par défaut) : utiliser un nom de domaine IPv4. 1 : utiliser un nom de domaine IPv6.

      "0"

      CustomUrl

      Nom de domaine du serveur de rapport de données. Utilisé pour le rapport spécifique à un site. Aucune configuration n'est requise par défaut.

      "https://cloudauth-device.aliyuncs.com"

      CustomHost

      Hôte du serveur de rapport de données. Doit être utilisé conjointement avec CustomUrl. Aucun paramétrage n'est nécessaire par défaut.

      "cloudauth-device.aliyuncs.com"

      Description des paramètres CustomUrl et CustomHost

      Pour le rapport spécifique à un site, définissez CustomUrl et CustomHost sur le point de terminaison désigné pour votre région. Aucune configuration n'est requise par défaut.

      Région

      Adresse

      Singapour (par défaut)

      CustomUrl : https://cloudauth-device.ap-southeast-1.aliyuncs.com CustomHost : cloudauth-device.ap-southeast-1.aliyuncs.com

      Chine (Hong Kong)

      CustomUrl : https://cloudauth-device.cn-hongkong.aliyuncs.com CustomHost : cloudauth-device.cn-hongkong.aliyuncs.com

      Allemagne

      CustomUrl : https://cloudauth-device.eu-central-1.aliyuncs.com CustomHost : cloudauth-device.eu-central-1.aliyuncs.com

      États-Unis

      CustomUrl : https://cloudauth-device.us-west-1.aliyuncs.com CustomHost : cloudauth-device.us-west-1.aliyuncs.com

  • Exemple

@State USER_PRODUCT_KEY: string = "123e4567e89b12d3a45642661417****";

let options: Map<string, string> = new Map<string, string>();
options.set("IPv6", "0"); // Set to IPv4
// Set a custom data reporting endpoint
// options.set("CustomUrl", "xxx"); Set the reporting site URL
// options.set("CustomHost", "xxx"); Set the reporting site host

SecurityDevice.getInstance().initWithOptions(getContext(),
                            this.USER_PRODUCT_KEY, options, null);

2. Obtention du jeton client (getDeviceToken)

Obtenez le jeton client et signalez-le à votre serveur métier. Vous pouvez ensuite utiliser l'intégration Intégration de l'API côté serveur côté serveur pour récupérer les informations sur les risques liés à l'appareil.

Important

Assurez-vous que l'intervalle entre l'appel à initWithOptions et getDeviceToken est d'au moins 3 secondes, ou appelez getDeviceToken dans le rappel de réussite de l'initialisation.

Lors de l'appel à getDeviceToken, nous vous recommandons de transmettre un bizId pour lier le jeton à un ID métier unique. Lors de la consultation des résultats côté serveur, transmettez le même ID pour vérifier le risque de falsification du jeton.

  • Prototype de la fonction

export class SecurityToken {
   // Result code
  public code:number = 0;

  // deviceToken returned by the SDK
  public token:string = "";
}

// Recommended: pass bizId
public getDeviceToken(bizId?: string): SecurityToken
Important

Dans de bonnes conditions réseau, le jeton fait environ 600 octets. Dans de mauvaises conditions réseau, il atteint environ 2 Ko.

Si un grand nombre de jetons longs apparaissent dans votre activité métier :

Vérifiez d'abord que le réseau client est stable.

Ensuite, assurez-vous que l'intervalle entre les appels SDK initWithOptions et getDeviceToken est d'au moins 3 secondes, ou appelez getDeviceToken dans le rappel de réussite de l'initialisation.

  • Exemple

// Example with bizId. bizId is the client's business ID; passing it is optional.
let bizId = "1234567890abcdef1234567890ab****";
let tokenObj: SecurityToken = SecurityDevice.getInstance().getDeviceToken(bizId);
if (tokenObj.code == SecurityCode.SC_SUCCESS) {
  console.log("Aliyun Token: " + tokenObj.token);
} else {
  console.log("Aliyun Code: " + tokenObj.code);
}

3. Envoi du jeton à votre serveur métier

Après avoir obtenu le deviceToken, transmettez-le en tant que paramètre à votre serveur métier. Le serveur appelle ensuite l'API Alibaba Cloud de détection des risques liés aux appareils avec le deviceToken pour interroger et vérifier les informations sur les risques de l'appareil.

Valeurs de retour d'état

SecurityCode

Code

Description

SC_SUCCESS

10000

La collecte d'informations par le SDK a réussi.

SC_NOT_INIT

10001

Le SDK n'a pas terminé la collecte d'informations.

SC_NOT_PERMISSION

10002

Les autorisations de base HarmonyOS requises ne sont pas toutes accordées.

SC_UNKNOWN_ERROR

10003

Erreur système inconnue.

SC_NETWORK_ERROR

10004

Erreur réseau.

SC_NETWORK_ERROR_EMPTY

10005

Erreur réseau. La réponse est vide.

SC_NETWORK_ERROR_INVALID

10006

Le format de la réponse réseau n'est pas valide.

SC_PARSE_SRV_CFG_ERROR

10007

Échec de l'analyse de la configuration du serveur.

SC_NETWORK_RET_CODE_ERROR

10008

La passerelle a renvoyé un échec.

SC_APPKEY_EMPTY

10009

L'AppKey est vide.

SC_PARAMS_ERROR

10010

Autres erreurs de paramètre.

SC_FGKEY_ERROR

10011

Erreur de calcul de la clé.

SC_APPKEY_ERROR

10012

La version du SDK et la version de l'AppKey ne correspondent pas.

Exemple de code complet

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) => {
            // Initialize the SDK. Call only once during the app lifecycle.
            SecurityDevice.getInstance().initWithOptions(getContext(), this.ALIYUN_APPKEY, null, null);

            // Do not call getDeviceToken synchronously right after initialization. If initialization has not finished, a degraded deviceToken is returned.
            setTimeout(() => {
              let tokenObj: SecurityToken = SecurityDevice.getInstance().getDeviceToken();
              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%')
  }
}

Appel de l'API de détection des risques liés aux appareils

Transmettez le deviceToken et les autres paramètres, puis reportez-vous à la section Intégration de l'API côté serveur pour appeler l'API de détection de fraude et effectuer la détection.

FAQ

Pour les questions fréquemment posées concernant l'intégration du SDK Device Risk, consultez la FAQ.