> >

资源与概述

GeeGaurd Android SDK 提供给集成 Android 原生客户端开发的开发者使用。

环境要求

条目 资源
开发目标 Android 4.4+
开发环境 Android Studio 4.1
编译工具 gradle (ant 编译请解压提取 jar 和资源文件
系统依赖
SDK 三方依赖

集成

获取 SDK

请联系您的对接人。

导入 SDK

zip 包中的 .aar 文件(包括 geetest_geeguard_android_vx.y.z_date.aar拖拽到工程中的 libs 文件夹下,在拖入 .aarlibs 文件夹后,还要检查.aar是否被添加到Library,要在项目的 build.gradle 下添加如下代码:

repositories {
flatDir {
dirs 'libs'
}
}

并且要手动将aar 包添加依赖 (需要您手动添加):

implementation(name: 'geetest_geeguard_android_vx.y.z_date', ext: 'aar')

添加权限声明

<!--必选-默认申请-->
<uses-permission android:name="android.permission.INTERNET" />
<!--可选-6.0或以上需动态申请(存储日志以便分析异常)-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

配置混淆规则

极验 SDK 已做混淆处理,集成时请带上混淆规则,勿再次混淆 SDK

-dontwarn com.geetest.geeguard.**
-keep class com.geetest.geeguard.**{*;}

调用逻辑

  1. 在后台注册 AppID
  2. 使用 AppID 获取 GeeGuardReceipt

集成代码参考下方的代码示例

代码示例

该示例适用于 2.3.0+ 版本

应用启动后立即注册 appID

// 您申请的 AppID
const val appId = "123456789012345678901234567890ab"

class APP : Application() {
override fun onCreate() {
super.onCreate()
GeeGuard.register(this, appId)
}
}

获取 GeeToken

使用 GeeGuard SDK 对数据进行签名,并获取环境检测 GeeToken:

// 直接获取 GeeToken,需在服务端解析结果
fun getGeeToken(context: Context) {
thread {
val data = "唯一标记本次业务流水号数据或凭证,用于业务关联及校验"

val receipt = GeeGuard.fetchReceipt(context, data)
// 由于 SDK 不方便引入 androidx.annotation, Kotlin 可能无法正确处理 SDK 返回的可空类型, 接入时请处理 GeeGuardReceipt 为空的可能性
if (receipt != null) {
// 随业务数据一同提交,请在服务端获取最终的环境识别结果及指纹
// 接口参数请参考服务端文档
Log.i("GeeToken: ${receipt.geeToken}")
} else {
Log.w("无法获取 GeeGuardReceipt,请检查是否已通过 GeeGuard.register(appId) 注册 AppID")
}
}
}

// 获取 respondedGeeToken,需在服务端解析结果
// 此方法回调为异步
fun getRespondedGeeToken(context: Context) {
thread {
val data = "唯一标记本次业务流水号数据或凭证,用于业务关联及校验"

GeeGuard.submitReceipt(context, data) { status, receipt ->
if (status == 200) {
// 由于 SDK 不方便引入 androidx.annotation, Kotlin 可能无法正确处理 SDK 返回的可空类型, 接入时请处理 GeeGuardReceipt 为空的可能性
if (receipt == null) {
return;
}
// 随业务数据一同提交,请在服务端获取最终的环境识别结果及指纹
// 接口参数请参考服务端文档
text.postValue("RespondedGeeToken: ${receipt.respondedGeeToken}")
} else {
text.postValue("Status: $status")
}
}
}
}

错误码清单

异步获取方法 GeeGuard.submitReceipt(Context, String, GeeGuard.CallbackHandler) 中可能返回的错误码有:

错误码 描述
-200 未注册 AppID,请在启动后注册 AppID
-300 网络错误,详细见日志中 tag 为 GeeGuard 的 stacktrace
-500 服务响应格式异常,详细请查看 receipt.originalResponse
-501 服务响应失败,详细请查看 receipt.originalResponse

查询 GeeToken 结果

将 respondedGeeToken 或 GeeToken 跟随业务数据一起提交到业务的服务端,服务端再向极验设备指纹服务查询结果。详细见服务端文档。

更新说明

版本号 更新内容 日期
2.5.1 1. 修复部分模拟器上出现的崩溃
2. 升级安全能力
3. 其他已知问题的修复
2024-01-29
2.5.0 1. 修复少数机型上出现的崩溃
2. 升级安全能力
3. 其他已知问题的修复
2024-01-10
2.3.0 1. 调用接口调整 2023-08-30
2.2.2 1. 升级安全能力
2. 修复已知问题
2023-07-26
2.2.0 1. 升级安全能力 2023-04-19
2.1.1 1. 升级部分功能
2. 修复已知问题
2023-02-07
2.1.0 1. 功能升级及优化
2. 修复已知问题
2022-09-07
2.0.0 - 2022-07-25
1.5.0 - 2022-05-26