服务端常见问题解答

challenge、validate、seccode 这三个值从哪里来?

在完成拖动滑块或者点击大图等,客户端会向极验服务器请求/ajax.php接口,如果校验成功,接口会返回这三个值。

二次验证失败

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

  1. 检查二次验证请求,服务端sdk是否正确接收到参数(post请求,Content-Type:application/x-www-form-urlencoded)。
  2. sdk内部逻辑问题,检查读取session是否正常(只有当session取得状态值等于1时,代码才会走到向极验发送请求的部分),检查极验返回的数据。
  3. 重复提交问题,向极验发起的二次验证请求参数只能使用一次。
  4. challenge不一致,要保证challenge在整个流程的一致性。
  5. 客户可提供服务端sdk日志和此次验证流程的唯一流水号challenge给极验助手。

什么是宕机模式?

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

如何本地测试宕机模式?

在配置文件中将极验账号id替换为123456789

服务端sdk内部向极验发起register.php请求,始终得到响应是403

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