产品动态
产品公告

<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-keep class com.**.TNative$aa { public *; }-keep class com.**.TNative$aa$bb { public *; }-keep class com.**.TNative$bb { *; }-keep class com.**.TNative$bb$I { *; }
dependencies {implementation fileTree(dir: 'libs', include: ['*.aar'])}defaultConfig {ndk {abiFilters "armeabi-v7a", "arm64-v8a"}}
<WebViewandroid:id="@+id/tcaptchaWebview"android:layout_width="match_parent"android:layout_height="match_parent"/>
// 初始化TencentCaptchaConfig.BuilderconfigBuilder =newTencentCaptchaConfig.Builder(getApplicationContext(),newITencentCaptchaPrivacyPolicy(){...},newICaptchaDeviceInfoProvider(){...});RetCoderet =TencentCaptcha.init(config.build());...//必填参数TencentCaptchaParam.BuildertencentCaptchaBuilder =newTencentCaptchaParam.Builder().setWebView(tcaptchaWebView).setCaptchaAppid(验证码CaptchaAppid);// 业务startTencentCaptcha.start(callback,tencentCaptchaBuilder.build());
TencentCaptchaCallback callback = new TencentCaptchaCallback() {@Overridepublic void finish(RetCode ret, JSONObject resultObject) {...}@Overridepublic void exception(Throwable t) {...}};
类 | 说明 |
TencentCaptcha | SDK 主入口类 |
TencentCaptchaConfig | SDK 初始化配置 |
TencentCaptchaCallback | SDK 结果回调 |
TencentCaptchaParam | SDK 验证码入参 |
/***使用构建好的配置进行初始化** @param TencentCaptchaConfig* @return RetCode*/RetCode init(TencentCaptchaConfig);/*** 开始验证码检测** @param TencentCaptchaCallback* @param TencentCaptchaParam* @return RetCode*/RetCode start(TencentCaptchaCallback, TencentCaptchaParam);/*** 中断检测流程*/void stop();
/*** 创建TencentCaptcha.Builder对象。** @param Context* @param ITencentCaptchaPrivacyPolicy接口实例,【必须传入实现】,调用SDK任何接口都会通过该实例询问用户是否已经同意隐私条款* @param ICaptchaDeviceInfoProvider接口实例,传入ANDROIDID,用于设备标识符本身的有效性校验,并甄别设备环境异常,以识别设备风险*/*/Builder(Context, ITencentCaptchaPrivacyPolicy,ICaptchaDeviceInfoProvider);
/*** 验证码校验结束时回调,通知宿主获取校验票据等信息。** @param RetCode,RetCode非OK的时候,请参考【RetCode值】章节* @param JSONObject,RetCode为OK时,返回JSONObject信息说明请参考【JSONObject返回值】章节*/void finish(RetCode, JSONObject);/*** SDK工作线程发生异常时回调** @param Throwable*/void exception(Throwable);
/*** 创建TencentCaptchaParam.Build对象** @return TencentCaptchaParam*/TencentCaptchaParam build();/*** 设置验证码CaptchaAppid,走腾讯云控制台对应获取,不输入SDK无法正常工作** @param String, 验证码CaptchaAppid* @return Build*/Builder setCaptchaAppid(String);/*** 设置显示验证码的WebView** @param webView* @return Builder*/Builder setWebView(WebView);
TencentCaptchaConfig.Builder configBuilder = newTencentCaptchaConfig.Builder(getApplicationContext(),new ITencentCaptchaPrivacyPolicy() {@Overridepublic boolean userAgreement() {// 是否授权通过// true标识授权通过,可正常使用sdk// false表示未授权,后续调用start方法会抛出异常return false;}},new ICaptchaDeviceInfoProvider() {@Overridepublic String getAndroidId() {return androidId; // 获取AndroidId实现}});
// 初始化SDKRetCode ret = TencentCaptcha.init(configBuilder.build());if(ret == RetCode.OK) {// 初始化成功} else {// 初始化失败log.error("ret code: " + ret.getCode() + " msg:" + ret.getMsg()); }
TencentCaptchaCallback callback = new TencentCaptchaCallback() {@Overridepublic void finish(RetCode ret, JSONObject resultObject) {if (ret == RetCode.OK) {// 成功,执行业务逻辑} else {// 失败log.error("code:" + ret.getCode() + " msg:" + ret.getMsg());}}@Overridepublic void exception(Throwable t) {// 异常t.printStackTrace();}};
TencentCaptchaParam.Builder paramBuilder = newTencentCaptchaParam.Builder().setWebView(tcaptchaWebView) //必填,验证码显示webview.setCaptchaAppid("CaptchaAppid"); // 必填,验证码CaptchaAppid
TencentCaptcha.start(callback, paramBuilder.build());
@Overrideprotected void onPause() {super.onPause();TencentCaptcha.stop();}
/*** 获取错误码** @return int*/int getCode();/*** 获取详细的错误信息** @return String*/String getMsg();
RetCode值 | code | 说明 |
OK | 0 | 成功,表示接收校验结果信息成功,具体判断还要结合 JSONObject 内容。 |
INIT_FAILED | 1 | 初始化失败 |
NOT_INIT | 2 | 未初始化 |
INVALID_PARAMS | 3 | 入参非法 |
INVALID_WEBVIEW | 4 | webview为空 |
CAPTCHA_RETDATA_EMPTY | 5 | 验证码返回参数为空 |
CAPTCHA_EXCEPTION | 6 | 验证码检测异常 |
POLICY_ERROR | 7 | 未同意隐私条款 |
CAPTCHA_TIMEOUT | 8 | 验证码超时 |
字段名 | 值类型 | 说明 |
ret | Int | 验证结果,0:验证成功。2:用户主动关闭验证码。 |
ticket | String | 验证码返回的票据,当且仅当ret = 0 时 ticket 有值。 |
CaptchaAppId | String | 验证码应用ID。 |
bizState | Any | 自定义透传参数。 |
randstr | String | 本次验证的随机串,后续票据校验时需传递该参数。 |
errorCode | Number | 错误code ,详情请参见回调函数errorCode说明。 |
errorMessage | String | 错误信息。 |
/*** 自定义透传参数,业务可用该字段传递少量数据,该字段的内容会被带入 callback 回调的对象中。** @param Object* @return Builder*/Builder setBizState(Object);/*** true: 开启自适应深夜模式。** @param boolean* @return Builder*/Builder setEnableDarkMode(boolean);/*** "force": 开启强制深夜模式: 。** @param String* @return Builder*/Builder setEnableDarkMode(String);/*** false: 隐藏帮助按钮** @param boolean* @return Builder*/Builder setNeedFeedBack(boolean);/*** 自定义帮助链接: "url地址"。** @param String* @return Builder*/Builder setNeedFeedBack(String);/*** 指定验证码提示文案的语言,优先级高于控制台配置。* 支持传入值同 navigator.language 用户首选语言,大小写不敏感。* 详情参见 https://www.tencentcloud.com/zh/document/product/1159/49680?lang=zh&pg=#userLanguage 。** @param String* @return Builder*/Builder setUserLanguage(String);/*** true: 开启适老化* false:关闭适老化** @param boolean* @return Builder*/Builder setEnableAged(boolean);/*** 定义验证码展示方式。* popup: (默认)弹出式,以浮层形式居中弹出展示验证码。** @param String* @return Builder*/Builder setType(String);/*** 是否在验证码加载过程中显示loading框。不指定该参数时,默认显示loading框。* true: 显示loading框* false: 不显示loading框** @param boolean* @return Builder*/Builder setLoading(boolean);/*** 设置CaptchaAppId 加密校验串,详情见 CaptchaAppid 加密校验能力接入指引** @param String* @return Builder*/Builder setAidEncrypted(String);/*** 回调验证码内部部分信息,详见【TencentCaptchaParam.OptionsCallback说明】。** @param OptionsCallback* @return Builder*/Builder setOptionsCallback(OptionsCallback);/*** 支持灵活设置对应key及value值** @param String,对应key值* @param Object,对应value值* 如设置key为enableAutoCheck,设置value为true开启,将对安全的请求可自动完成勾选验证,无需用户操作。不设置默认为关闭。* @return*/Builder setExtractParameter(String, Object);/*** 设置可访问的验证码接入host,如海外接入域名ca.turing.captcha.qcloud.com及www.tycaptcha.com二选一。** @param String* @return*/Builder setCaptchaPageHost(String);/*** 设置验证码毫秒级超时时间,最小值为10s。若不传,默认是60s。* 极端网络情况下,验证码整体处理时间误差可能会达10s。可能出现无法加载验证码、安全类校验有缺失的情况。** @param int* @return*/Builder setCaptchaTimeoutMillis(int)/*** 【接口已停用,请统一用setCaptchaTimeoutMillis接口】* 设置webview实际加载验证码的毫秒级超时,默认为60s。* 验证码在加载前会做必要的网络连通性检查,该检查耗费时间视网络情况不同,最长耗时为5s。不包含在本方法设置的超时时间内。** @param int* @return*/Builder setWebviewCaptchaTimeoutMills(int);/*** 【接口已停用,请统一用setCaptchaTimeoutMillis接口】* 设置验证码native时请求后台毫秒级超时,默认为60s。** @param int* @return*/Builder setNativeReqTimeoutMills(int);/*** 【接口已停用,请统一用setCaptchaTimeoutMillis接口】* 设置验证码native时本地组包阶段(含降级处理)毫秒级超时。默认为10s。** @param int* @return*/Builder setNativePackTimeoutMills(int);
配置名 | 值类型 | 说明 |
enableAutoCheck | true | 开启后,对安全的请求可自动完成勾选验证,无需用户操作,默认为关闭。 开启:{"enableAutoCheck":true} |
/*** 1.optFuncName为ready时,* data返回验证码加载完成的回调,回调参数为验证码实际的宽高(单位:px):* {"sdkView": {* "width": number,* "height": number* }}* 该参数仅为查看验证码宽高使用,请勿使用此 参数直接设定宽高。* 2.optFuncName为showFn时,data返回duration,渲染耗时 + sid 信息。** @param optFuncName, String* @param data, String*/void onCallback(String optFuncName, String data);结果回调,返回值
文档反馈