概述与资源

极验3.0验证安全系统 Android SDK提供给集成Android原生客户端开发的开发者使用, SDK不依赖任何第三方库。

环境需求

条目
开发目标 Android 4.0+
开发环境 Android Studio 2.1.3
系统依赖
sdk三方依赖
demo依赖

资源下载

条目
产品结构流程 通讯流程
SDK下载链接 gt3-android-sdk
SDK接口文档 gt3-android-sdk
DEMO下载 演示demo

安装

获取SDK

通过git命令获取

git clone https://github.com/GeeTeam/gt3-android-sdk.git

手动下载获取

使用从github下载.zip文件获取最新的sdk。

Github: gt3-android-sdk

导入SDK

如果你不是使用添加依赖, 将获取的.aar文件拖拽到工程中的libs文件夹下。

import

在拖入.aar到libs文件夹后, 还要检查.aar是否被添加到Library,要在项目的build.gradle下添加如下代码:

repositories {
flatDir {
dirs 'libs'
}
}

并且要手动将aar包添加依赖:

compile(name: 'aar文件夹的名字', ext: 'aar')

libraries

配置接口

Android sdk主要提供以下接口:

  1. 配置验证初始化
  2. 启动验证
  3. 获取验证结果
  4. 处理错误的代理

参考极验3.0验证安全系统的产品结构流程, 必须要先在您的后端搭建相应的服务端SDK,并配置从极验后台获取的idkey, 并且将配置的接口API1API2放入客户端的初始化方法中。

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

编译并运行你的工程

编译你的工程, 体验全新的极验3.0验证安全系统!

build

轻轻点击你集成的验证按钮, 如此自然, 如此传神。

视觉展示

  1. 与自定义的按钮绑定集成

    sample1

  2. 使用极验提供的按钮样式集成

    sample2

代码示例

通过与自定义按钮绑定的方式集成

  1. 添加权限

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  2. 设置数据请求接口并注册验证会话

    GT3GeetestUtilsBind gt3GeetestUtils = new GT3GeetestUtilsBind(MainActivity.this);
    gt3GeetestUtils.getGeetest(MainActivity.this, captchaURL, validateURL, null);
  3. 验证码加载过程中的回调

    gt3GeetestUtilsBind.setGtListener(new GT3GeetestUtilsBind.GT3Listener() {
    /**
     * num 1 点击验证码的关闭按钮来关闭验证码
     * num 2 点击屏幕关闭验证码
     * num 3 点击返回键关闭验证码
     */
    @Override
    public void gt3CloseDialog(int  num) {
    }
    /**
     * 验证码加载准备完成
     */
    @Override
    public void gt3DialogReady() {
    }
    /**
     * 拿到第一个url返回的数据
     */
    @Override
    public void gt3FirstResult(JSONObject jsonObject) {
    }
    /**
     * 往API1请求中添加参数
     */
    @Override
    public Map<String, String> captchaApi1() {
        return null;
    }
    /**
     * 设置是否自定义第二次验证ture为是 默认为false(不自定义)
     */
    @Override
    public boolean gtSetIsCustom() {
        return false;
    }
    /**
     * 统计数据
     */
    @Override
    public void gt3GeetestStatisticsJson(JSONObject result) {
    }
    /**
     * 拿到二次验证需要的数据
     */
    @Override
    public void gt3GetDialogResult(String result) {
    }
    /**
     * 自定义二次验证,当gtSetIsCustom为ture时执行这里面的代码
     */
    @Override
    public void gt3GetDialogResult(boolean a, String result) {
    }
    /**
     * 往二次验证里面put数据
     */
    @Override
    public Map<String, String> gt3SecondResult() {
          return null;
    }
    /**
     * 验证全部走完的回调,result为验证后的数据
     */
    @Override
    public void gt3DialogSuccessResult(String result) {
       
    }
    /**
     * 验证过程中有错误会走这里
     */
    @Override
    public void gt3DialogOnError(String error) {
    }
    });}

通过极验提供的按钮集成

  1. 添加权限

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  2. 添加按钮控件并初始化

    <com.example.sdk.GT3GeetestButton
    android:id="@+id/ll_btn_type"
    android:layout_width="290dp"
    android:layout_height="44dp"
    android:layout_centerHorizontal="true"
    android:layout_centerInParent="true"
    android:gravity="center"
    android:orientation="horizontal" />
    GT3GeetestButton gtbt=(GT3GeetestButton)findViewById(R.id.ll_btn_type);
  3. 设置数据请求接口并注册验证会话

    GT3GeetestUtils gt3GeetestUtils = new GT3GeetestUtils.getInstance(MainActivity.this);
    gt3GeetestUtils.getGeetest(captchaURL, validateURL, null);
  4. 验证码加载的接口

    gt3GeetestUtils.setGtListener(new GT3GeetestUtils.GT3Listener() {
    /**
    * Api1可以在这添加参数
    */
    @Override
    public Map<String, String> captchaApi1() {
    return null;
    }
    /**
    * 验证过程中有错误会走这里
    */
    @Override
    public void gt3DialogOnError(String error) {
    }
    /**
    * num 1 点击验证码的关闭按钮来关闭验证码
    * num 2 点击屏幕关闭验证码
    * num 3 点击返回键关闭验证码
    */
    @Override
    public void gt3CloseDialog(int num) {
    }
    /**
    * 拿到二次验证需要的数据
    */
    @Override
    public void gt3GetDialogResult(String result) {
    }
    /**
    * 自定义二次验证,当gtSetIsCustom为ture时执行这里面的代码
    */
    @Override
    public void gt3GetDialogResult(boolean success,String result) {
    }
    /**
    * 第一次次请求后数据
    */
    @Override
    public void gt3FirstResult(JSONObject jsonObject) {
    }
    /**
    * 往二次验证里面put数据,是map类型,注意map的键名不能是以下三个:geetest_challenge,geetest_validate,geetest_seccode
    */
    @Override
    public Map<String, String> gt3SecondResult() {
    return null;
    }
    /**
    * 验证全部走完的回调,result为验证后的数据
    */
    @Override
    public void gt3DialogSuccessResult(String result) {
    }
    /**
    * 弹框准备完成
    */
    @Override
    public void gt3DialogReady() {
    }
    /**
    * 设置是否自定义第二次验证ture为是 默认为false(不自定义)
    */
    @Override
    public boolean gtSetIsCustom() {
    return false;
    }
    /**
    * 判断自定义按键是否被点击,自定义API1可以在这里设定,请求完毕之后设值
    */
    @Override
    public void gtOnClick(boolean onclick) {
    if(onclick){
    }
    }
    });}

示例代码细节参考官方提供的demo

详细演示demo