集成要求
合规说明
在接入行为采集模块的App隐私政策中应添加我司隐私协议中的如下部分
4.提供识别机器行为欺诈风险服务 (仅适用于已集成设备指纹SDK行为采集模块的情形)
(1)功能描述:为了识别机器行为欺诈风险,SDK需要获取您或您最终用户的相关行为信息。
(2)必要个人信息:触摸、滚动、滑动、屏幕边缘滑动、缩放的行为信息,输入的行为信息(输入类型次数,输入速度,输入耗时),应用进入前台、进入后台的行为信息,浏览页面名称及停留时间的行为信息,设备方向的行为信息,陀螺仪传感器的行为信息,加速度计传感器的行为信息,鼠标的行为信息(web端),键盘的行为信息(web端)
(3)其他可选个人信息:无
1.集成SDK
Gradle集成
在项目的 build.gradle 文件中添加依赖:
dependencies {
// 行为采集
implementation 'com.trustdecision.android:behavior:1.4.4'
}
2.调用行为采集方法
行为采集方法用于获取用户行为数据,其接口定义如下:
public class TDBehaviorResult {
// 返回码,0代表成功
public int code() {
return this.code;
}
// 失败时的错误信息
public String msg() {
return this.msg;
}
// 行为采集数据
public String payload() {
return this.payload;
}
}
public class TDRisk {
/**
* 开始行为采集,将采集数据写入SDK内部容器中
*/
public static void start();
/**
* 结束行为采集,停止将采集数据写入SDK内部容器中,同时清空SDK内部容器中的数据;
*/
public static void stop();
/**
* 返回行为采集结果,如果SDK内部容器中存在数据,则会返回成功code == 0,同时清空SDK内部容器中的数据;
* 如果SDK内部容器中不存在数据则返回code == 104 错误码
*
* @return TDBehaviorResult 包含code、msg、payload字段
*/
public static TDBehaviorResult collect();
}
示例代码
⚠️⚠️⚠️ 确保在业务界面调用start之后,存在用户行为,例如:文字输入、点击、
滑动等,否则调用 collect 会返回104错误码,表示没有采集到行为数据;
public class LoginActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
// 在进入业务界面时,调用 start方法,进行行为采集
TDRisk.start();
}
private void onLoginButtonClick() {
// 在调用业务接口时,调用 collect方法,获取行为采集数据
TDBehaviorResult result = TDRisk.collect();
if (result.code() == 0) {
Log.d("TD", "获取行为采集结果成功,payload: " + result.payload());
} else {
Log.e("TD", "获取行为采集结果失败,code: " + result.code() + ", msg: " + result.msg());
}
}
@Override
protected void onDestroy() {
super.onDestroy();
// 离开业务界面时,调用 stop方法,结束行为采集
TDRisk.stop();
}
}
指定不需要监听的输入框
在 EditText 输入框 设置属性 tag 包含 "TDBehaviorExInput" ,设置后,将不会对 EditText 输入框的文字输入事件进行监听
EditText editText = new EditText(context);
// 不采集 EditText 输入框的文字输入
editText.setTag("otherKey,TDBehaviorExInput");
3.code 返回码
| 错误码 | 描述 | 处理方案 |
|---|---|---|
| 0 | 成功 | 无需处理 |
| 100 | 没有调用 initWithOptions | 没有调用 initWithOptions,需要调用 initWithOptions |
| 101 | 网络鉴权结果还没有返回 | 向用户抛出错误:“网络原因,请检查网络后重试”,引导用户重新调用 collect 方法 |
| 102 | 系统原因导致的鉴权接口网络错误,例如没有网络连接等 | 向用户抛出错误:“网络原因,请检查网络后重试”,引导用户重新调用 collect 方法 |
| 103 | 鉴权接口后端返回状态码非200 | 检查 partner 参数是否填写正确,如果还是失败,提供错误信息result.msg给我司运营确认参数是否正确且在有效期内 |
| 104 | SDK内部容器中没有数据 | 确保在业务界面调用start之后,存在用户行为,例如:文字输入、点击、滑动等! |
| 109 | SDK内部容器中没有数据 | 采集开关全部关闭,请提供错误信息result.msg给我司运营! |
| 110 | SDK内部容器中没有数据 | 确保调用collect方法前调用了start方法! |
