🚀 千帆信用实名认证 API 开发文档 v5.0

欢迎使用本系统。本文档将指导您如何通过 API 快速集成金融级人脸实名认证功能。

⚠️ 重要提示: 新版 API 采用 Token 机制,API Key 仅在服务器端使用,不会暴露给前端。
核心流程:1. 服务器调用【创建认证会话】-> 2. 获取认证链接 -> 3. 用户跳转至 H5 完成活体检测 -> 4. 系统自动扣费并回调结果。
✨ v5.0 更新内容:
IP白名单功能 - 支持设置IP访问限制,提高安全性
API Key更换 - 支持在线更换API Key,自动迁移历史记录

1. 创建认证会话 (Create Auth Session)

在您的服务器端调用此接口,创建一个人脸认证会话并获取认证链接。

请求方式POST
接口地址face/api.php?action=create_auth

请求参数

参数名类型必填说明
api_keyString您在后台分配的 API Key
nameString用户真实姓名(需与身份证一致)
id_cardString用户 18 位身份证号码
callback_urlString认证完成后的异步通知地址

返回示例 (JSON)

{
  "success": true,
  "message": "认证成功会话已创建",
  "data": {
    "token": "a1b2c3d4e5f6...",
    "auth_url": "https://gulangvision.cn/face/liveness_check.html?token=a1b2c3d4e5f6...",
    "expire_in": 300
  }
}

代码示例 (PHP)

<?php
// 在服务器端调用 API
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://gulangvision.cn/face/api.php?action=create_auth');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
    'api_key' => 'YOUR_API_KEY',
    'name' => '张三',
    'id_card' => '110101199001011234',
    'callback_url' => 'https://gulangvision.cn/callback.php'
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
if ($result['success']) {
    // 重定向用户到认证页面
    header('Location: ' . $result['data']['auth_url']);
} else {
    echo '错误: ' . $result['message'];
}
?>
💡 安全提示: API Key 仅在服务器端使用,不要在前端 JavaScript 中直接调用此接口!

2. 查询认证状态 (Query Status)

如果您没有配置回调地址,可以通过此接口主动查询认证状态。

请求方式GET
接口地址face/api.php?action=query_status

请求参数

参数名类型必填说明
tokenString二选一认证令牌(从创建会话时获取)
id_cardString二选一身份证号

返回示例 (JSON)

{
  "success": true,
  "data": {
    "is_finished": true,
    "name": "张*",
    "id_card": "110***********1234",
    "result_code": 1001,
    "score": 95,
    "result_text": "成功",
    "time": "2026-04-30 12:30:45"
  }
}

代码示例 (PHP)

<?php
// 查询认证状态
$token = $_SESSION['auth_token']; // 之前保存的 token
$url = "https://gulangvision.cn/face/api.php?action=query_status&token=" . urlencode($token);
$response = file_get_contents($url);
$result = json_decode($response, true);

if ($result['success'] && $result['data']['is_finished']) {
    if ($result['data']['result_code'] == 1001) {
        echo "认证成功!相似度: " . $result['data']['score'];
    } else {
        echo "认证失败: " . $result['data']['result_text'];
    }
} else {
    echo "认证尚未完成";
}
?>

3. 异步回调通知 (Callback)

当用户完成认证后,系统会向您的 callback_url 发送 POST 请求。

✅ 重要提示: 无论认证成功、存疑还是失败,系统都会发送回调通知!
• 认证成功:result_code = 1001
• 认证存疑:result_code = 1002(需要人工审核)
• 认证失败:result_code = 其他值

回调参数

参数名类型说明
keyStringAPI Key
tokenString认证令牌
nameString用户姓名
id_cardString身份证号
result_codeInteger1001: 成功, 1002: 存疑, 1003: 失败, 其他: 错误
messageString结果描述

回调处理示例 (PHP)

<?php
// callback.php
$key = $_POST['key'] ?? '';
$resultCode = intval($_POST['result_code'] ?? 0);
$message = $_POST['message'] ?? '';

// 验证来源
if ($key !== 'YOUR_API_KEY') {
    http_response_code(403);
    exit('Invalid key');
}

// 处理不同认证结果
if ($resultCode == 1001) {
    // 认证成功 - 更新用户状态
    update_user_verification_status('verified');
    log_success("认证成功");
} elseif ($resultCode == 1002) {
    // 认证存疑 - 需要人工审核
    flag_for_manual_review();
    log_warning("认证存疑,需要人工审核");
} elseif ($resultCode == 1003) {
    // 信息比对不匹配
    log_failure("信息比对不匹配");
} else {
    // 其他错误
    log_failure("认证失败: $message");
}

// 返回成功响应
echo 'OK';
?>

4. 计费与数据说明

计费规则

5. 常见错误码 (Error Codes)

错误信息原因及解决方案
无效的 API KeyKey 不存在,请检查是否正确。
API Key 已被禁用该 Key 已被管理员封禁。
余额不足账户余额为 0,请登录后台充值。
操作过于频繁,请稍后再试同一身份证号 5 秒内只能认证一次。
缺少必要参数缺少 api_key、name 或 id_card 参数。
无效的认证令牌或已过期Token 不存在或超过 5 分钟有效期。
该认证已完成Token 已被使用,每个 Token 只能使用一次。
认证服务暂时不可用认证服务 API 调用失败,请稍后重试。
当前IP未被授权访问IP不在白名单中,用户设置白名单

6. v5.0 新功能说明

6.1 IP白名单功能

为了提高系统安全性,系统支持设置IP白名单,只允许特定的IP地址调用API。

🔒 工作原理:
• 白名单验证在最前面进行,优先级最高
• 如果开启白名单且IP不在列表中,直接拒绝请求,不再验证Key和余额
• 如果未开启白名单,则允许所有IP访问(向后兼容)

如何设置:

  1. 登录用户中心,进入"Key管理"页面
  2. 勾选"启用IP白名单限制"
  3. 在文本框中输入允许访问的IP地址(每行一个)
  4. 点击"保存设置"

示例:

192.168.1.100
10.0.0.50
172.16.0.1

6.2 API Key更换功能

如果您需要更换API Key(例如Key泄露),可以在线更换,无需联系管理员。

更换步骤:

  1. 登录用户中心,进入"Key管理"页面
  2. 输入新的API Key(4-32位字母和数字)
  3. 点击"更换Key"
  4. 系统会自动迁移所有历史记录到新Key
⚠️ 注意事项:
• 更换Key后,旧Key立即失效
• 所有认证记录、充值记录、扣费记录都会自动迁移到新Key
• 请确保更新所有使用该Key的应用程序
• 更换Key不会退出登录,Session会自动更新