概述
本文是极验无感本机认证产品的服务端API接口说明,供开发者做接入使用。无感本机认证包含APP一键登录、APP本机校验、H5一键登录和H5本机校验四个能力。
如APP使用一键登录功能,则服务端相应对接APP一键登录接口即可。
如APP使用本机校验功能,则服务端相应对接APP本机校验接口即可。
如H5使用一键登录功能,则服务端相应对接H5一键登录接口即可。
如H5或者小程序使用本机校验功能,则服务端相应对接H5本机校验接口即可。
APP一键登录(OneLogin)
1、 接口地址和说明
请求URL:https://onelogin.geetest.com/check_phone
请求方式:
- POST
数据类型:
application/json
2、 接口请求参数
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
process_id | 是 | str | SDK返回的流水号,一次有效 |
sign | 是 | str | 用户签名,用于账号校验 生成方式: 1.将app_id, 以及当前时间戳(毫秒为单位)通过”&&”连接。(app_id + ‘&&’ + timestamp) 2.使用app_key进行hmac-sha256签名。将结果转换为16进制。 |
token | 是 | str | SDK返回的运营商Token |
is_phone_encode | 否 | bool | 返回手机号是否加密,默认不加密,加密传输情况加密方式为AES |
timestamp | 是 | str | 当前时间(单位为毫秒),sign加密所使用的当前时间戳与其相同 |
authcode | 否 | str | 电信新版本接口校验码,若返回此参数,则校验时需传入 |
请求示例:
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、 接口返回参数
返回参数说明:
参数名 | 类型 | 说明 | 是否必返回 |
---|---|---|---|
status | int | 状态码 | true |
error_msg | str | 请求失败时,返回对应状态码的描述 | false |
result | str | 获取手机号成功时,返回手机号,失败时为”get phone failed” | false |
charge | bool | 是否扣费标志,true计费,false不计费 | true |
riskflag | str | 取号是否存在风险行为,当打开风险开关的时候返回 “0”表示无风险,”1”表示有风险 | false |
operator | str | 运营商标识,该字段即将废弃 | false |
APP本机校验(OnePass)
1、 接口地址及说明
请求URL:
https://onepass.geetest.com/v2.0/check_gateway
请求方式:
- POST
数据类型:
application/json
2、 接口请求参数
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
process_id | 是 | string | SDK返回的流水号,一次有效 |
sign | 是 | 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 | int | 状态码,200为成功,具体信息见状态码表 | true |
error_msg | string | 请求失败时,返回对应状态码的描述 | false |
result | string | 校验结果获取成功时返回,”0” 表示匹配,页面输入的手机号与当前流量卡号一致;”1” 表示不匹配,页面输入的手机号与当前流量卡号不一致 | false |
本机号返回示例
{ |
非本机号返回示例
{ |
H5一键登录(OneLogin API)
1、 接口地址和说明
请求URL:
https://onelogin.geetest.com/web/check_phone
请求方式 :
- POST
数据类型
application/x-www-form-urlencoded
2、 接口请求参数
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
process_id | 是 | str | SDK返回的流水号,一次有效 |
sign | 是 | str | 用户签名,用于账号校验 生成方式: 1.将app_id, 以及当前时间戳(毫秒为单位)通过”&&”连接。(app_id + ‘&&’ + timestamp) 2.使用app_key进行hmac-sha256签名。将结果转换为16进制 |
token | 是 | str | SDK返回的运营商Token |
timestamp | 是 | str | 当前时间(单位为毫秒),sign加密所使用的当前时间戳与其相同 |
phone | 否 | str | 联通和电信可能返回此参数,若JS SDK返回此参数,则校验时需传入 |
auth_code | 否 | str | 电信可能返回此参数,若JS SDK返回此参数,则校验时需传入 |
请求示例
curl -d "sign=生成的用户签名&process_id=SDK返回的流水号×tamp=当前时间&token=SDK返回的运营商token&phone=完整手机号" https://onelogin.geetest.com/web/check_phone |
3、 接口返回参数
返回参数说明:
参数名 | 类型 | 说明 | 是否必返回 |
---|---|---|---|
status | int | 状态码 | true |
error_msg | string | 请求失败时,返回对应状态码的描述 | false |
result | str | 取号成功时返回取号结果;取号失败时返回失败信息 | false |
success | bool | 是否取号成功 | false |
charge | bool | 是否扣费 | true |
operator | str | 运营商标识 | false |
关于result参数不同情况下返回内容的解释:
1、当运营商为移动时,如果取号成功,则result返回客户手机号,扣费;如果取号失败,则返回错误信息,如
"get phone failed"
等,不扣费2、当运营商为联通或电信时,如果提交的手机号和token匹配,则result返回用户手机号;如果提交的手机号和token不匹配,则result返回
"not owner"
,扣费;其它校验异常的情况,如result返回错误信息"get phone failed"
等,不扣费
取号成功返回示例
{ |
取号失败(联通或电信手机卡,扣费)返回示例
{ |
取号失败(不扣费)返回示例
{ |
H5本机校验(OnePass API)
1、 接口地址及说明
请求URL:
https://onepass.geetest.com/web/check_gateway
请求方式:
- POST
数据类型:
X-WWW-FORM-URLENCODED
2、 接口请求参数
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
process_id | 是 | string | SDK返回的流水号,一次有效 |
sign | 是 | 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=客户端返回的流水号×tamp=当前时间&phone=校验用的手机号" https://onepass.geetest.com/web/check_gateway |
3、 接口返回参数
返回参数说明:
参数名 | 类型 | 说明 | 是否必返回 |
---|---|---|---|
status | int | 状态码 | true |
error_msg | str | 请求失败时,返回对应状态码的描述 | false |
data | obj | 请求成功时,为返回数据 | false |
+ result | str | 0表示为本机号,1表示为非本机号 | false |
本机号返回示例
{ |
非本机号返回示例
{ |
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下载:
2、 手机号加密方式说明
直接对手机号使用AES(密钥app_key)加密,结果转换为16进制。
示例:
手机号:13333333333
app_key: ‘gywzffojtnzl0vd6kcut8fcgyud5wg49’
加密结果:’be28dea08ee543320b1ef9e1bceb51e4’
demo下载: