集成要求

合规性说明

请注意,当集成TrustDecision提供的SDK产品到贵司的APP中时

1.1 根据用户的信息保护规定,在用户首次启动APP并开始收集信息之前,贵司应通过交互界面或设计(例如隐私政策弹窗)向用户充分告知收集、使用、共享用户个人信息的目的、方式、范围以及与第三方共享的信息,并获得终端用户的明确同意。

1.2 为向贵司提供业务安全和风控服务,TrustDecision SDK将收集、处理和使用用户设备的识别信息(IMEI/IDFA)、AndroidID、IMSI、MEID、MAC地址、SIM卡序列号、设备类型、设备型号、系统类型、地理位置、登录IP地址、应用列表、运行进程、传感器信息(光线传感器、重力传感器、磁场传感器、加速度传感器、陀螺仪传感器)等设备信息。为确保您使用相关服务的合规性,上述隐私政策中应涵盖TrustDecision SDK提供服务及收集、处理、使用相关信息的授权。以下条款仅供您参考,具体表述可由贵司根据您隐私协议的整体框架及内容进行确定

TrustDecision SDK:为了业务安全和风控,本公司使用TrustDecision SDK。该SDK需要获取您设备上的信息,例如(IMEI/IDFA)、AndroidID、IMSI、MAC地址、SIM卡序列号、设备类型、设备型号、系统类型、地理位置、登录IP地址、应用列表、运行进程、传感器信息(光线传感器、重力传感器、磁场传感器、加速度传感器、陀螺仪传感器)以及其他相关的设备信息,用于欺诈风险识别。

隐私协议: https://www.trustdecision.com/legal/privacy-policy

注意事项

请务必在用户同意隐私协议后,再进行trustdevice_pro_plugin的初始化,避免出现trustdevice_pro_plugin初始化并收集信息时,未获得用户同意隐私协议,而导致合规风险。

快速开始

1.在您的Flutter App的pubspec.yaml中添加trustdevice_pro_plugin

dependencies:
  flutter:
    sdk: flutter
  ...
  trustdevice_pro_plugin: ^1.0.0

2.Android权限申请

动态权限申请:Android6.0及以上需要动态申请权限。动态权限申请代码必须放在初始化插件之前。代码示例如下

//The following permissions are not required to be applied for,and can be
//selectively applied for according to business conditions
 Future<void> _requestPermission() async {
    Map<Permission, PermissionStatus> statuses = await [
      Permission.location,
      Permission.phone,
    ].request();
  }

3.初始化配置

import 'package:trustdevice_pro_plugin/trustdevice_pro_plugin.dart';
// ...

// Initialization
class _MyAppState extends State<MyApp> {
  final _trustdeviceProPlugin = TrustdeviceProPlugin();
  @override
  void initState() async {
    super.initState();
    Map<String, dynamic> configMap = {
    "appKey": "<appKey>", // configure AppKey, please contact TrustDecision Operations to obtain it 
    "appName": "<appName>", // app Name, such as appName, please fill in your app Name
    "partner": "<partner>",// Partner code, such as demo, please fill in your partner, get from trustDecision
    "country": "<country>" // Country parameter,E.g: cn、sg、us、fra
    };
    //initialize the configuration and return the blackbox
    var blackbox = await _trustdeviceProPlugin.initWithOptions(configMap);
  }
  // ...
}

configMap必须包含以下参数

按键 定义 描述
partner partnerCode 合作伙伴代码,例如TrustDecision,请填入您的合作伙伴
appKey appKey 配置TrustDecision的AppKey,请联系TrustDecision运营获取
appName appName 应用名称,例如demo,请填入您的应用名称
country 国家代码 us 表示北美fra 表示欧洲sg 表示新加坡cn 表示中国

我们还提供可选参数配置,具体请查看附件(初始化配置可选参数列表)

4.获取黑盒代码示例如下

 Future<String> _getPlatformBlackBox() async {
    var blackbox = await _trustdeviceProPlugin.getBlackbox();
    return Future.value(blackbox);
  }

获取SDK版本

示例代码

// Get SDK Version
 Future<String> _getSDKVersion() async {
    var sdkVersion = await _trustdeviceProPlugin.getSDKVersion();
    return Future.value(sdkVersion);
  }

其他说明

Android混淆打包:如果开发者需要使用proguard进行混淆打包,请在proguard配置文件中添加如下代码

-keep class cn.tongdun.**{*;}

初始化配置可选参数列表

Android

按键 定义 描述
httpTimeout SDK超时时间配置(单位:毫秒) SDK初始化后网络请求回调超时时间,默认为15*1000ms。
collectLevel 降级黑盒采集字段长度配置 降级后的黑盒会比较长,此配置可控制降级黑盒长度 1.TDRisk.COLLECT_LEVEL_L (默认值,降级后的长度约5000字符) 2.TDRisk.COLLECT_LEVEL_M (降级后的长度约2000字符)
blackBoxMaxSize 黑盒最大长度 默认长度为Integer.MAX_VALUE,会根据实际设备情况而增加)
customProcessName 自定义进程名 更改进程的名称
forceTLSVersion 是否强制https使用TLS-v1.1版本 默认不强制,开发者可根据具体情况设置对应设置
disableDebugger 是否允许调试 SDK集成后,默认允许App进行调试,开发者可根据具体情况进行对应设置。
disableRunningTasks 是否允许获取运行任务 默认允许获取,可通过此方法关闭
disableGPS 不采集GPS相关信息 如您不需要获取位置相关信息,可通过此方法取消对位置相关信息的采集。⚠️当此选项配置后,App拥有定位权限,SDK也不会采集位置相关信息
disableSensor 不采集传感器信息 如您不需要采集传感器相关信息,可通过此方法取消对相关信息的采集。
disableReadPhone 不采集READ_PHONE相关信息 默认会采集需要READ_PHONE_STATE权限的信息,可通过此方法关闭
disableInstallPackageList 不采集安装包列表 默认会采集安装包列表,可通过此方法关闭

iOS

按键 定义 描述 Scene
allowed 反调试配置 SDK集成后,默认具有反调试功能。如您不需要此功能,请将allowed设为disable禁用。 Develop: 请设置此配置。 Release: 请移除此配置。
timeLimit SDK超时时间配置(单位:秒) SDK初始化后网络请求回调超时时间,默认为15s。 如果您对SDK回调时间有一定要求,请设置timeLimit。
noLocation SDK位置信息采集配置 如果App已获得定位权限,SDK会采集位置信息。 如您不希望SDK采集位置信息,请设置noLocation。
noIDFA SDK广告标识符(IDFA)采集配置 如果App已获得IDFA信息权限,SDK会采集IDFA。 如您不希望SDK采集IDFA信息且包含IDFA相关代码,请设置noIDFA。
noDeviceName SDK设备名称采集配置 如果App已获得设备名称权限,SDK会采集设备名称。 如您不希望SDK采集设备名称信息,请设置noDeviceName。
collectLevel 降级黑盒长度配置 降级后的黑盒会比较长,此配置可控制降级黑盒长度 如希望降级黑盒长度尽可能短,请进行此配置。

GitHub

查看 Github