概述

本文是极验无感本机认证产品的服务端API接口说明,供开发者做接入使用。无感本机认证包含APP一键登录、APP本机校验、H5一键登录和H5本机校验四个能力。

如APP使用 一键登录 功能,则服务端相应对接APP一键登录接口即可。

如APP使用 本机校验 功能,则服务端相应对接APP本机校验接口即可。

如H5使用 一键登录 功能,则服务端相应对接H5一键登录接口即可。

如H5或者小程序使用 本机校验 功能,则服务端相应对接H5本机校验接口即可。

APP一键登录(OneLogin)

1、 接口地址和说明

请求URL:
https://onelogin.geetest.com/check_phone

请求方式:

数据类型:
application/json

2、 接口请求参数

请求参数:

用户签名,用于账号校验
生成方式:
1.将app_id, 以及当前时间戳(毫秒为单位)通过”&&”连接。(app_id + ‘&&’ + timestamp)
2.使用app_key进行hmac-sha256签名。将结果转换为16进制。 token SDK返回的运营商Token is_phone_encode 返回手机号是否加密,默认不加密,加密传输情况加密方式为AES timestamp 当前时间(单位为毫秒), sign加密所使用的当前时间戳与其相同 authcode 电信新版本接口校验码,仅电信手机号需此入参 注:authcode为新增参数,sdk为安卓 0.8.0/IOS 1.8.0及以上版本时,服务端均需传此参数

请求示例:

curl -H "Content-Type: application/json" -d '{"token": "客户端返回用于获取结果的token", "sign": "生成的用户签名", "process_id": "客户端返回的流水号", "authcode": "客户端返回的电信校验码", "is_phone_encode": true, "timestamp": "当前时间"}' https://onelogin.geetest.com/check_phone

3、 接口返回参数

返回参数说明:

是否必返回 string 用户签名,用于账号校验
生成方式:
1.将app_id, 以及当前时间戳(毫秒为单位)通过”&&”连接。(app_id + ‘&&’ + timestamp)
2.使用app_key进行hmac-sha256签名。将结果转换为16进制。 accesscode string SDK返回的运营商accesscode phone string C端用户手机号, 11位手机号 timestamp string 当前时间(单位为毫秒), sign加密所使用的当前时间戳与其相同
curl -H "Content-Type: application/json"  -d '{"phone": "手机号", "accesscode": "客户端返回用于获取结果的token", "sign": "生成的用户签名", "process_id": "客户端返回的流水号","timestamp": "当前时间"}' https://onepass.geetest.com/v2.0/check_gateway

3、 接口返回参数

返回参数说明:

是否必返回
{
"status": 200,
"result": "1"
}

H5一键登录(OneLogin API)

1、 接口地址和说明

请求URL:

https://onelogin.geetest.com/web/check_phone

请求方式 :

application/x-www-form-urlencoded

2、 接口请求参数

请求参数

用户签名,用于账号校验 生成方式:
1.将app_id, 以及当前时间戳(毫秒为单位)通过”&&”连接。(app_id + ‘&&’ + timestamp)
2.使用app_key进行hmac-sha256签名。将结果转换为16进制 token SDK返回的运营商Token timestamp 当前时间(单位为毫秒), sign加密所使用的当前时间戳与其相同 phone 由于联通是根据客户填充的完整手机号和token进行本机号码认证,故联通需要传入此号码做校验参数 auth_code 电信可能返回此参数,若JS SDK返回此参数,则校验时需传入
curl -d "sign=生成的用户签名&process_id=SDK返回的流水号&timestamp=当前时间&token=SDK返回的运营商token&phone=完整手机号" https://onelogin.geetest.com/web/check_phone

3、 接口返回参数

返回参数说明:

是否必返回

关于result参数不同情况下返回内容的解释:

1、当运营商为移动或电信时,如果取号成功,则result返回客户手机号,扣费;如果取号失败,则返回错误信息,如 "get phone failed" 等,不扣费

2、当运营商为联通时,如果提交的手机号和token匹配,则result返回用户手机号;如果提交的手机号和token不匹配,则result返回 "not owner" ,扣费;其它校验异常的情况,如result返回错误信息 "get phone failed" 等,不扣费

取号成功返回示例

{
"status": 200,
"result": "13888888888",
"success": true,
"charge": true,
"operator": "CM"
}

取号失败(联通手机卡,扣费)返回示例

{
"status": 200,
"result": "not owner",
"success": false,
"charge": true,
"operator": "CU"
}

取号失败(不扣费)返回示例

{
"status": 500,
"result": "get phone failed",
"success": false,
"charge": false,
"operator": "CT"
}

H5本机校验(OnePass API)

1、 接口地址及说明

请求URL:

  • https://onepass.geetest.com/web/check_gateway
  • 请求方式:

    数据类型:
    X-WWW-FORM-URLENCODED

    2、 接口请求参数

    请求参数:

    string 用户签名,用于账号校验
    生成方式:
    1.将app_id, 以及当前时间戳(毫秒为单位)通过”&&”连接。(app_id + ‘&&’ + timestamp)
    2.使用app_key进行hmac-sha256签名。将结果转换为16进制。 accesscode string 运营商取号的标识,由前端返回 phone string 校验用的手机号 timestamp string 当前时间(单位为毫秒), sign加密所使用的当前时间戳与其相同
    curl -d "sign=生成的用户签名&process_id=客户端返回的流水号&timestamp=当前时间&phone=校验用的手机号" https://onepass.geetest.com/web/check_gateway

    3、 接口返回参数

    返回参数说明:

    是否必返回
    {
    "status": 200,
    "data": {
    "result": "0"
    }
    }

    非本机号返回示例

    {
    "status": 200,
    "data": {
    "result": "1"
    }
    }

    Sign生成和手机号加密说明

    1、 Sign生成方式说明

    1.将app_id, 以及当前时间戳(毫秒为单位)通过”&&”连接。(app_id + ‘&&’ + timestamp)

    2.使用app_key进行hmac-sha256签名。将结果转换为16进制(注意:为小写)。

    注:app_id、app_key在极验后台查看,服务端使用的app_id必须与客户端使用的相对应

    app_id: ‘zoekwui1hnmg49x5fwzf5la0ml5dziwn’
    app_key: ‘gywzffojtnzl0vd6kcut8fcgyud5wg49’
    时间戳: ‘1542355862990’

    签名结果为:

    6ef12cd35800607896a0e82b2a53955d679f97ff63e2a17954ddfbd3f7647501

    demo下载:

    Java , Python , JS , PHP

    2、 手机号加密方式说明

    直接对手机号使用AES(密钥app_key)加密,结果转换为16进制。

    手机号:13333333333

    app_key: ‘gywzffojtnzl0vd6kcut8fcgyud5wg49’

    加密结果:’be28dea08ee543320b1ef9e1bceb51e4’

    demo下载:

    Java , Python , JS , PHP