📘 千帆信用 开发文档

v5.0

🚀 千帆信用实名认证 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"
  }
}

3. 异步回调通知 (Callback)

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

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

回调参数

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

短信接口 API 文档

欢迎使用短信发送服务。本文档将指导您如何通过 API 快速集成短信发送功能。

⚠️ 重要提示: 使用短信发送功能前,必须先完成实名认证。
系统支持余额扣费和资源包扣费两种方式,优先扣除资源包额度。
✨ 功能特性:
短信发送 - 支持验证码、通知类短信,到达率99%
模板管理 - 管理员可创建短信模板,提高发送效率
双重扣费 - 优先扣除短信条数,不足时扣余额

1. 发送短信 (Send SMS)

调用此接口发送短信,支持模板变量替换。

请求方式POST
接口地址face/smsapi.php

请求参数

参数名类型必填说明
api_keyString您的 API Key
phoneString手机号(11位)
template_idString短信模板ID(管理员后台创建)
variablesJSON模板变量,JSON格式,例如:{"code":"123456"}

返回示例 (JSON)

{
  "code": 200,
  "msg": "短信发送成功",
  "data": {
    "phone": "138****1234",
    "template_id": "VERIFY_CODE",
    "cost": 0.50,
    "remaining_balance": 99.50,
    "remaining_sms": 9
  }
}

代码示例 (PHP)

<?php
// 发送短信验证码
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://gulangvision.cn/face/smsapi.php');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
    'api_key' => 'YOUR_API_KEY',
    'phone' => '13800138000',
    'template_id' => 'VERIFY_CODE',
    'variables' => json_encode(['code' => '123456'])
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
if ($result['code'] == 200) {
    echo "发送成功!剩余短信条数: " . $result['data']['remaining_sms'];
} else {
    echo '发送失败: ' . $result['msg'];
}
?>

📧 邮箱发送 API 文档

欢迎使用邮箱发送服务。本文档将指导您如何通过 API 快速集成邮件发送功能。

⚠️ 重要提示: 使用邮箱发送功能前,必须先完成实名认证。
系统支持余额扣费和资源包扣费两种方式,优先扣除资源包额度。
✨ 功能特性:
邮箱发送 - 支持HTML邮件
双重扣费 - 优先扣除邮箱封数,不足时扣余额
灵活格式 - 支持JSON和表单两种请求格式

1. 发送邮件 (Send Email)

调用此接口发送邮件,支持HTML格式。

请求方式POST
接口地址face/mailapi.php

请求参数

参数名类型必填说明
api_keyString您的 API Key
to_emailString收件人邮箱
subjectString邮件主题
contentString邮件内容(支持HTML)
is_htmlBoolean是否为HTML格式,默认true
✅ 支持两种请求格式:
JSON格式 - 设置 Content-Type: application/json
表单格式 - 使用 http_build_query 或 FormData

返回示例 (JSON)

{
  "code": 200,
  "msg": "邮件发送成功",
  "data": {
    "to_email": "user@example.com",
    "subject": "验证码通知",
    "cost": 0.30,
    "remaining_balance": 99.20,
    "remaining_email": 19
  }
}

代码示例 - 表单格式 (PHP)

<?php
// 发送HTML邮件(表单格式)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://gulangvision.cn/face/mailapi.php');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
    'api_key' => 'YOUR_API_KEY',
    'to_email' => 'user@example.com',
    'subject' => '验证码通知',
    'content' => '<h1>您的验证码是:123456</h1><p>5分钟内有效</p>'
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
if ($result['code'] == 200) {
    echo "发送成功!";
} else {
    echo '发送失败: ' . $result['msg'];
}
?>

代码示例 - JSON格式 (PHP)

<?php
// 发送HTML邮件(JSON格式)
$data = [
    'api_key' => 'YOUR_API_KEY',
    'to_email' => 'user@example.com',
    'subject' => '验证码通知',
    'content' => '<h1>您的验证码是:123456</h1><p>5分钟内有效</p>'
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://gulangvision.cn/face/mailapi.php');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
if ($result['code'] == 200) {
    echo "发送成功!";
} else {
    echo '发送失败: ' . $result['msg'];
}
?>

代码示例 - JavaScript (Fetch)

<script>
// 发送HTML邮件(JSON格式)
fetch('https://gulangvision.cn/face/mailapi.php', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        api_key: 'YOUR_API_KEY',
        to_email: 'user@example.com',
        subject: '验证码通知',
        content: '<h1>您的验证码是:123456</h1><p>5分钟内有效</p>'
    })
})
.then(res => res.json())
.then(data => {
    if (data.code == 200) {
        console.log('发送成功!');
    } else {
        console.log('发送失败:', data.msg);
    }
});
</script>

💰 计费说明

本文档说明所有服务的计费规则和扣费逻辑。

1. 扣费优先级

  1. 优先扣除资源包 - 如果有短信条数/邮箱封数额度,优先扣除
  2. 余额扣费 - 资源包不足或过期时,从余额扣除

2. 计费标准

服务类型默认单价说明
实名认证按账户设置默认价
短信发送按账户设置默认价
邮箱发送按账户设置默认价

3. 扣费示例

示例1:有短信条数额度
账户余额:¥100.00
短信条数:10条
发送1条短信后:
  - 短信条数:9条
  - 账户余额:¥100.00(不变)

示例2:无短信条数额度
账户余额:¥100.00
短信条数:0条
发送1条短信后:
  - 短信条数:0条
  - 账户余额:¥99.50(扣除¥0.50)

4. 实名认证要求

⚠️ 重要提示:
使用短信和邮箱发送功能前,必须先完成实名认证!
未完成实名认证的账户调用发送接口会返回 403 错误。

⚠️ 常见错误码

本文档列出所有可能的错误码及其解决方案。

实名认证错误码

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

短信&邮箱错误码

错误码错误信息原因及解决方案
403请先完成实名认证账户未完成实名认证,请先完成认证。
400缺少必要参数缺少 api_key、phone 等必填参数。
400手机号格式错误手机号必须是11位数字。
400邮箱格式错误邮箱格式不正确。
402余额和短信条数都不足请充值或购买短信包。
402余额和邮箱封数都不足请充值或购买邮箱包。
429发送频率过快同一手机号1分钟内只能发送1次。
500短信服务暂时不可用短信网关故障,请稍后重试。
500邮件发送失败SMTP配置错误,请联系管理员。

频率限制

限制类型限制规则说明
单手机号1次/分钟同一手机号1分钟内只能发送1次
单IP10次/小时同一IP每小时最多发送10次
💡 最佳实践:
• 短信验证码建议设置5分钟有效期
• 重要通知建议同时发送短信和邮件
• 定期查看发送记录,监控异常情况
• 及时充值,避免余额不足影响业务