FAQ

前端常见问题解答

滑动验证在 IE 浏览器出现滑动缺口没有对齐

IE下为 dom 渲染方式,一般是样式影响,导致宽度不够有换行;box-sizing: border-box 影响,检查有没有全局的样式覆盖,使 box-sizing 变为 border-box。

验证码在 H5 下出现显示异常

对不同分辨率的手机做了适配,改变了页面缩放比(initial-scale) 保证 initial-scale 始终为1 。

在 custom 模式下设置宽度失效

宽度有限制,滑动最小值为(278px),大图为210px 不要超出限制范围 。

按钮宽高是否支持修改

宽度可以修改,可以使用任意标准单位,但是有最小260px的限制。高度不支持修改。

浏览器加载极验验证码速度慢

  1. 客户前端部署没有提前做初始化,行为验证要求初始化在业务页面加载完成时进行初始化。
  2. 开启了 IE 浏览器的控制台,会出现页面加载异常慢的情况。

前端验证失败,控制台报错 “drag too much”

多次初始化,导致验证报错;初始化只用做一次就可以。

前端报错 old challenge

challenge 通过部署的 SDK 从极验的服务器上动态注册获得, 且每条的有效时间约为10分钟, 超过10分钟则该 challenge 将会作废。
old challenge :表示 challenge 重复使用,前面获取 challenge 的步骤被缓存,后面重复使用,需要在 register 请求后面加一个时间戳。
代码截图

移动端常见问题解答

iOS 设备在使用 H5 时出现文字点选验证位置错位

文字出现错位是由于 iOS 点击了软键盘顶起了页面,输入框失去焦点后不能恢复导致页面 clientY 变化的原因,提供以下方案:

  1. 加长整个页面。

  2. { width: 100%; height: 100%; } ```。

    ### Android APP 上架谷歌因需要支持64位版本被拒
    1. 确认 APP 已完成64位支持。
    2. 移除 jnilibs 下 liblbs.so 文件。
    3. 移除 Application 中接入的 X5 初始化代码。

    ### Android 验证bind模式卡死在智能验证检测中页面
    1. 检查是否调用getGeetest方法,以继续验证(参考demo RequestAPI1部分)
    2. 检查是否设置api1请求返回数据,即使为null也要设置,SDK内部已处理 (参考demo RequestAPI1部分)
    3. 检查设置的超时时间是否过长,推荐10s以内。

    ### 去除dialog背景蒙层
    1. 未提供api实现该场景

    ### 远程依赖集成产生依赖冲突
    ```java
    implementation('com.geetest.sensebot:sensebot:4.1.7'){
    # 哪个冲突配置那个
    exclude group: 'com.squareup.okhttp3',module: 'okhttp'

    exclude group: 'com.tencent.tbs.tbssdk',module: 'sdk'
    }

服务端常见问题解答

challenge、validate、seccode 这三个值如何设置?

它们是在配置 CaptchaURL 的时候申请的,SDK 里面直接解析第一个 URL 拿到这些数据,内部流程都封装在 SDK 里,这三个参数的解析设置都不用关心。

API1&API2 的配置

API1API2 是网站主集成极验服务端 SDK 后需要提供给客户端的两个 API,分别完成验证初始化和二次验证的功能,可以参考服务端 SDK 中的 Demo 进行开发。

二次验证失败

二次验证的不通过原因可能有:一.请求参数问题;二.客户的 session 问题;三. challenge 重复使用问题; 排查流程如下:

  1. 检查二次验证请求的参数值以及传参形式,传参形式是 key-value 的字典传参。
  2. SDK 内部逻辑问题,检查读取 session 是否正常,代码是否走到向极验发送请求的部分,检查极验响应的返回值。
  3. 重复提交问题,向极验发起的二次验证接口只能生效一次。
  4. challenge 不一致,要保证 challenge 在整个流程的一致性。
  5. 检查 SDK 中 gt 和 key 是否正确,参考 Demo 要保证传参的正确性。
  6. 客户可提供 challenge 给极验助手,查询日志(是否收到二次验证请求,响应结果,异常原因等)。

如何本地测试 failback 模式是否生效?

宕机模式,即 failback 是为了处理极端情况下,网站主服务器连接不上极验云服务器时的一种应急处理模式,保障用户操作不受影响。极验云服务器的可用状态(gt_server_status)在API1中通过session存储,并且通过success字段返回给客户端,客户端根据success字段判定是否走failback的验证判断逻辑,API2中会从session取出gt_server_status,根据该状态,API2确定是在本地还是极验云服务器获取二次验证结果。

模拟宕机模式:API1 的返回结果中success字段强制设置为0,session中保存的gt_server_status设置为 API2 中会判断为宕机模式的值。(如 Java SDK 中可设置为0)

通过哪个值可以判断验证模块是否加载成功?

可以监听验证码的 onReady 事件,该事件执行了就代表验证模块就加载成功了,可以调用 verify 方法显示验证码。

API1 构建出来的 GET 请求,服务器始终响应的是403

通过以下几点确认问题:

  1. 检查 gt_id 是否正常,正常 gt_id 为32位
  2. 检查 url,并查看 url 的组成是否正确
  3. ping一下api.geetest.com 是否能够 ping 通

网络通讯常见问题解答

如何启用 HTTPS?

在 initGeetest 的时候,增加加一个参数:
https:True

将 http 方式换成 httpclient,是否两次请求都可以用 POST

不可以,第一次要用 GET 请求,第二次才是 POST 请求。

验证相关说明

「行为验证」具体有哪些前端展现形式?

同一个场景的验证 ID 和 Key,Web、iOS、Android 是否都能通用?

目前同一个验证 ID 没有使用场景数量限制,但是推荐一个终端下的一个场景使用一个验证 ID,方便后期定位问题与深度定制安全策略。

验证形式设置

验证形式的设置通过在后台的管理设置模块的安全设置里进行设置。

  1. 「行为验证」Cookies 的数据来源与生成方法。

    GeeTestUser:当用户在前端请求极验资源时,极验服务随机下发的标识,同极验下发资源的的请求流水号相关,不涉及用户任何本地信息。

    GeeTestAjaxUser:当用户与极验交互时,极验服务随机下发的标识,同极验的交互流水号相关,不涉及用户任何本地信息。

  2. 「行为验证」Cookies 的作用。

    GeeTestUser:用作标记用户是否历史请求过极验的资源。

    GeeTestAjaxUser:用作标记用户是否对极验发起过交互请求。

  3. 极验目前在用户端只有这2个 Cookies,不存在其他 Cookies。