接口说明

本文介绍图形认证Android客户端接入时所需的接口信息。

工具类接口

获取AlicomCaptcha4Client工具类对象

非单例实现,通过getClient()获取的AlicomCaptcha4Client对象需要保存,以方便在onDestory或其他生命周期使用。

public static AlicomCaptcha4Client getClient(Context context)

参数

类型

说明

context

Context

上下文

使用默认配置初始化

调用init()方法后执行了加载验证码操作,若在onResume()生命周期之前调用,就会预加载验证码;当执行verifyWithCaptcha()展示验证码时,就会展示验证码。

public AlicomCaptcha4Client init(String captchaId)

参数

类型

说明

captchaId

String

验证ID,请传入在控制台创建认证方案后生成的appId

使用自定义配置初始化

public AlicomCaptcha4Client init(String captchaId, AlicomCaptcha4Config config)

参数

类型

说明

captchaId

String

验证ID,请传入在控制台创建认证方案后生成的appId

config

AlicomCaptcha4Config

参数配置对象

添加验证结果监听的对象

添加验证结果监听的对象,当验证码加载成功,用户解答验证码结果回调。

public AlicomCaptcha AlicomCaptcha4Client
addOnSuccessListener(AlicomCaptcha4Client.OnSuccessListener response)

参数

类型

说明

response

AlicomCaptcha4Client.OnSuccessListener

验证结果监听的对象

添加加载验证前端成功监听的对象

添加加载验证前端成功的监听的对象,验证前端加载成功后回调。预加载已完成的情况下,调用verifyWithCaptcha后立即回调。

public AlicomCaptcha4Client
addOnWebViewShowListener(AlicomCaptcha4Client.OnWebViewShowListener listener)

参数

类型

说明

listener

AlicomCaptcha4Client.OnWebViewShowListener

验证前端加载成功监听的对象

添加加载验证码失败监听的对象

添加加载验证码失败监听的对象,加载验证码的过程中报错。

public AlicomCaptcha AlicomCaptcha4Client
addOnFailureListener(AlicomCaptcha4Client.OnFailureListener listener)

参数

类型

说明

listener

AlicomCaptcha4Client.OnFailureListener

加载验证码失败监听的对象

开启验证流程

开启验证流程,加载验证码。调用verifyWithCaptcha()之前需要先调用init()addOnSuccessListener()addOnFailureListener否则可能报错。

public AlicomCaptcha AlicomCaptcha4Client verifyWithCaptcha()

取消验证

取消验证,关闭验证窗口。调用verifyWithCaptcha()之前需要先调用init()addOnSuccessListener()addOnFailureListener否则可能报错。

public void cancel()

设置开启/关闭打印日志监控

public void setLogEnable(boolean enable)

销毁生命周期长的资源

该方法在用户使用的验证码界面的onDestroy生命周期中调用。

public AlicomCaptcha void destroy()

获取版本号

返回的版本号,类型为String。

public static String getVersion()

检测是否支持系统WebView

public static Pair<Boolean, String> isSupportWebView(Context context)

参数

类型

说明

first

Boolean

是否支持WebView,若不支持则可以走兜底逻辑

second

String

加载WebView对象报错说明

参数配置类接口

设置请求超时时间

public AlicomCaptcha Builder setTimeOut(int timeOut)

参数

类型

说明

timeOut

int

请求超时时间,单位:ms,默认10000

设置WebView加载资源地址

默认加载assets目录的gt4-index*.html文件,没有特殊需求无需设置此接口。

public AlicomCaptcha Builder setResourcePath(String html)

参数

类型

说明

html

String

WebView加载地址

控制加载WebView语言

传输JS的设置语言,此接口仅控制加载WebView的语言, SDK的多语言跟随当前应用。如果设置为null或未设置,则使用应用默认语言短码传输给前端。

public AlicomCaptcha Builder setLanguage(String language)

参数

类型

说明

language

String

前端支持语言短码

支持的语言及其语言短码如下:

语言

Language

语言短码

简体中文

Chinese(Simplified)

zho

繁体中文(hk)

Chinese(Hong Kong)

zho-hk

繁体中文(tw)

Chinese(Taiwan)

zho-tw

美式英文

English

eng

英式英文

English

eng-gb

日语

Japanese

jpn

印尼

Indonesian

ind

韩语

Korean

kor

俄语

Russian

rus

阿拉伯语

Arabic

ara

西班牙语

Spanish

spa

法语

French

fra

德语

German

deu

维吾尔语

Uyghur

udm

巴西葡语

Portuguese(Brazil)

pon

欧洲葡语

Portuguese(Europe)

por

设置点击灰色区域是否消失

public AlicomCaptcha Builder setCanceledOnTouchOutside(boolean canceledOnTouchOutside)

参数

类型

说明

canceledOnTouchOutside

boolean

设置点击灰色区域是否消失。

  • true(默认值):消失

  • false:不消失

设置是否是debug模式

public AlicomCaptcha Builder setDebug(boolean debug)

参数

类型

说明

debug

boolean

设置是否是debug模式。

  • true:是

  • false(默认值):不是

设置WebView背景色

设置WebView背景色,控制的是Android WebView控件的背景色,和前端JS的背景色不同。

public AlicomCaptcha Builder setBackgroundColor(int backgroundColor)

参数

类型

说明

backgroundColor

int

颜色资源地址或Color.parseColor()返回值

设置验证码对话框的主题样式

public Builder setDialogStyle(String dialogStyle)

参数

类型

说明

dialogStyle

String

对话框的主题样式名称

默认的主题样式

<style name="gt4_captcha_dialog_style" parent="android:Theme.Dialog">
<!--Dialog的windowFrame框为无-->
<item name="android:windowFrame">@null</item>
<!--是否浮现在activity之上-->
<item name="android:windowIsFloating">true</item>
<!--是否半透明-->
<item name="android:windowIsTranslucent">true</item>
<!--除去title-->
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<!--显示区域以外是否使用黑色半透明背景-->
<item name="android:backgroundDimEnabled">true</item>
<!--设置dialog的背景-->
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:padding">0dp</item>
</style>

设置验证窗口显示的监听回调

public void setDialogShowListener(AlicomCaptcha4Client.OnDialogShowListener dialogShowListener)

参数

类型

说明

dialogShowListener

AlicomCaptcha4Client.OnDialogShowListener

验证窗口显示监听的对象

额外参数配置

public Builder setParams(Map<String, Object> params)

参数

类型

说明

params

JSONObject

额外参数配置,当前参数传给JS

支持的键值如下:

类型

说明

displayMode

int

主题样式。取值:

  • 0(默认值):跟随系统

  • 1:普通

  • 2:暗黑

protocol

String

协议头,支持HTTPS://HTTP://,默认HTTPS://

bgColor

String

验证背景蒙版颜色,遵循CSS规则,注意最后两位为透明度。默认值:#00000000

loading

String

自定义loading,WebView加载HTML的loading资源相对路径,空字符串表示取消loading效果。

rem

float

设置验证码整体的缩放比例。

hideBar

JSONArray

隐藏后续验证界面的关闭按钮、刷新按钮 。

nextWidth

String

验证码弹窗的宽度,需要携带单位,如"300px"。

riskType

String

当服务端配置了结合风控融合,此字段可指定验证形式。

重要

由于目前暂未提供风控融合模式,此参数调用不会生效。

hideSuccess

boolean

隐藏验证成功弹窗。

代码示例

Map<String, Object> params = new HashMap<>();
params.put("displayMode", 0);
params.put("protocol", "https://");
params.put("bgColor", "#CC0000FF");
params.put("loading", "./loading_test.gif");
params.put("rem", 0.6);
JSONArray hideBar = new JSONArray()
         .put("close")
         .put("refresh");
params.put("hideBar", hideBar);
params.put("nextWidth", "300px");
params.put("hideSuccess", true);

AlicomCaptcha4Config.Builder builder = new AlicomCaptcha4Config.Builder()
        .setParams(params);

构造AlicomCaptcha4Config对象

构造AlicomCaptcha4Config对象,传输给init()接口使用。

public AlicomCaptcha AlicomCaptcha4Config build()

回调监听类接口

验证接口回调

void onSuccess(Boolean status, String response)

参数

类型

说明

status

Boolean

用户操作验证结果

  • true:成功

  • false:失败,失败会刷新验证样式

response

String

用户操作验证成功,需要获取response数据到服务端验证

验证成功示例

{
  "lot_number":"b150e61198924eff9eaae121e9b67aa8",
  "pass_token":"6fcfba4c35cb57b873c99c5b3b02089c58a26244c18f7706aaa1e87aed3aa8f4",
  "gen_time":"1622020720",
  "captcha_output":"Tu6rW0dRNO0NLxMKftwdH00G5whF5HHddthoXSEA1G4="
}

验证失败示例

{
  "captchaId":"647f5ed2ed8acb4be36784e01556bb71",
  "captchaType":"slide",
  "challenge":"95ed53b4-95c6-4c6b-9aac-769b29ef74a0"
}

加载失败回调

void onFailure(String error)

参数

类型

说明

error

String

验证加载失败描述,包括用户主动取消

加载失败示例

{
  "code":"-14460",
  "msg":"验证会话已取消",
  "desc":
       {"description":"User cancelled'Captcha'"}
}

验证前端加载成功

在验证前端加载成功后回调。预加载已完成的情况下,调用verifyWithCaptcha后立即回调。

void onWebViewShow()

验证窗口在显示前回调

void actionBeforeDialogShow(Dialog dialog)

参数

类型

说明

dialog

Dialog

验证窗口实例

验证窗口在显示后回调

可在此处对系统样式进行改变,例如:隐藏导航栏、隐藏状态栏等。

void actionAfterDialogShow(Dialog dialog)

参数

类型

说明

dialog

Dialog

验证窗口实例

验证窗口在改变焦点时回调

void onDialogFocusChanged(Dialog dialog, boolean hasFocus)

参数

类型

说明

dialog

Dialog

验证窗口实例

hasFocus

boolean

是否有焦点