一、 为中小微金融构建低成本的高效风控
在汽车融资租赁、小额消费信贷以及民间借贷登记服务中心等业务场景中,如何在控制技术成本的同时,获得媲美银行级的风控能力,是众多中小企业面临的难题。天远个人风险报告API(接口代码 COMBTY11)提供了一种高性价比的解决方案。
该API通过标准化的接口输出,聚合了“谛听多维报告”与“深度司法涉诉”两大核心数据板块,涵盖了反欺诈评分、多头借贷历史、失信被执行记录以及公安不良信息。对于使用 PHP(如 Laravel, ThinkPHP, Yii)开发业务系统的团队而言,接入天远API意味着可以快速拥有一个无需维护庞大数据库的云端风控中心,有效识别“老赖”与职业骗贷团伙,保障资金安全。
二、 API接口调用示例(PHP版)
本接口要求上传用户授权书,并采用加密方式传输敏感信息。PHP 的 cURL 库或 GuzzleHTTP 客户端都能完美胜任此任务。
1. 接口技术参数
- 接口地址:
https://api.tianyuanapi.com/api/v1/COMBTY11?t=13位时间戳 - 请求方式:POST
- 鉴权方式:参数加密后 Base64 编码,放入
data字段。 - 前置条件:需提前将用户签署的授权书上传至服务器,获取公网可访问的 URL。
2. Curl 命令行测试
Bash
curl -X POST "https://api.tianyuanapi.com/api/v1/COMBTY11?t=1715068800000" \
-H "Content-Type: application/json" \
-d '{
"data": "eyJpZF9jYXJkIjoiMTEwMTAxMTk5MDAxMDEwMTIzIiwibmFtZSI6IuW8oOSBgSIsIm1vYmlsZV9ubyI6IjEzODAwMTM4MDAwIiwiYXV0aG9yaXphdGlvbl91cmwiOiJodHRwczovL2ltZy5leGFtcGxlLmNvbS9hdXRoLnBuZyIsImF1dGhfZGF0ZSI6IjIwMjQwMTAxLTIwMjQxMjMxIn0="
}'
3. PHP (Guzzle) 完整服务类示例
以下代码展示了基于 GuzzleHttp(现代 PHP 开发标配)的封装方式,适用于 Laravel 或 Symfony 项目。
PHP
<?php
namespace App\Services\RiskControl;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\GuzzleException;
use Illuminate\Support\Facades\Log;
class PersonalRiskService
{
private $client;
private $apiUrl = 'https://api.tianyuanapi.com/api/v1/COMBTY11';
public function __construct()
{
$this->client = new Client([
'timeout' => 30.0, // 风险报告生成耗时较长,建议30秒
'headers' => ['Content-Type' => 'application/json']
]);
}
/**
* 模拟加密逻辑 (AES)
* 实际对接请使用天远官方提供的 SDK 或加密算法
*/
private function encryptData(array $payload): string
{
$jsonStr = json_encode($payload, JSON_UNESCAPED_UNICODE);
// TODO: $encrypted = openssl_encrypt($jsonStr, 'AES-128-ECB', $key...);
// 此处仅做 Base64 演示
return base64_encode($jsonStr);
}
/**
* 获取个人风险综合报告
*
* @param string $name 姓名
* @param string $idCard 身份证
* @param string $mobile 手机号
* @param string $authUrl 授权书URL
* @param string $authDate 授权时间段 YYYYMMDD-YYYYMMDD
* @return array|null
*/
public function fetchReport($name, $idCard, $mobile, $authUrl, $authDate)
{
// 1. 组装参数
$requestData = [
'name' => $name,
'id_card' => $idCard,
'mobile_no' => $mobile,
'authorization_url' => $authUrl, // 必填
'auth_date' => $authDate // 必填
];
// 2. 加密
$encrypted = $this->encryptData($requestData);
$timestamp = round(microtime(true) * 1000);
try {
// 3. 发送请求
$response = $this->client->post($this->apiUrl . '?t=' . $timestamp, [
'json' => ['data' => $encrypted]
]);
$result = json_decode($response->getBody()->getContents(), true);
// 4. 解析组合包
if (isset($result['responses'])) {
return $this->formatRiskData($result['responses']);
}
Log::error("天远API调用异常", ['response' => $result]);
return null;
} catch (GuzzleException $e) {
Log::error("天远API网络错误: " . $e->getMessage());
return null;
}
}
/**
* 格式化关键风控指标,便于存入数据库
*/
private function formatRiskData(array $responses)
{
$riskProfile = [
'score_fraud' => -1, // 反欺诈分
'score_credit' => -1, // 信用分
'risk_tags' => [], // 风险标签
'court_records' => 0, // 法院记录数
'is_dishonest' => false // 是否失信人
];
foreach ($responses as $item) {
if (!$item['success'] || empty($item['data'])) continue;
// 谛听多维报告 (信用与评分)
if ($item['api_code'] === 'DWBG8B4D') {
$data = $item['data'];
$riskProfile['score_fraud'] = $data['fraudScore'] ?? -1;
$riskProfile['score_credit'] = $data['creditScore'] ?? -1;
// 提取风险标签
if (isset($data['riskWarning'])) {
foreach ($data['riskWarning'] as $key => $val) {
if ($val === 1 && $key !== 'totalRiskCounts') {
$riskProfile['risk_tags'][] = $key;
}
}
}
}
// 司法涉诉 (法律风险)
if ($item['api_code'] === 'FLXG0V4B') {
$data = $item['data'];
// 统计案件总数
$riskProfile['court_records'] = $data['entout']['data']['count']['count_total'] ?? 0;
// 检查是否有失信记录
if (!empty($data['sxbzxr']['data']['sxbzxr'])) {
$riskProfile['is_dishonest'] = true;
}
}
}
return $riskProfile;
}
}
// 调用示例
/*
$service = new PersonalRiskService();
$report = $service->fetchReport('张三', '110101199001011234', '13800138000', 'http://oss/auth.jpg', '20230101-20240101');
print_r($report);
*/
三、 核心数据结构解析
天远API 的响应设计非常适合 PHP 的数组处理模式。开发者需要关注 responses 数组下的两个核心子产品。
数据模块对照表:
| 模块名称 | API Code | 核心作用 | 对应 PHP 逻辑 |
|---|---|---|---|
| 谛听多维报告 | DWBG8B4D | 评分、反欺诈、多头借贷 | 用于计算系统自动审批的“评分卡” |
| 个人司法涉诉 | FLXG0V4B | 法院判决、执行、失信 | 用于“一票否决”制的黑名单过滤 |
四、 字段详解
在信贷或租赁业务中,以下字段直接决定了订单的通过率。PHP 开发者需重点关注这些字段的解析与落库。
1. 核心评分与建议 (DWBG8B4D)
| 字段名 | 类型 | 含义 | 业务阈值建议 |
|---|---|---|---|
fraudScore | int | 反欺诈评分 | [0-100]。>80 分为高危,建议直接拒单。 |
creditScore | int | 信用评分 | [300-1000]。<500 分为信用较差,需增加担保。 |
checkSuggest | string | 系统建议 | 如“建议拒绝”,可作为初审参考。 |
2. 借贷风险雷达 (DWBG8B4D -> overdueRiskProduct)
此模块反映了申请人的资金饥渴程度和还款能力。
| 字段名 | 类型 | 含义 | 说明 |
|---|---|---|---|
currentOverdueAmount | string | 当前逾期金额 | 如 (0,1000)。若不为空,说明当前有债未还。 |
daysSinceLastSuccessfulRepayment | string | 最近一次还款距今天数 | 若时间过长(如 160+),说明近期无还款行为,可能是“老赖”。 |
totalLoanInstitutions | string | 贷款总机构数 | 多头借贷指标,数量越多风险越大。 |
3. 司法黑名单 (FLXG0V4B)
| 字段名 | 类型 | 含义 | 风险等级 |
|---|---|---|---|
sxbzxr | array | 失信被执行人列表 | 极高风险。俗称老赖,禁止放款。 |
xgbzxr | array | 限制高消费列表 | 高风险。资金流动性受限。 |
criminal | object | 刑事案件 | 高风险。需人工核查案由(如涉毒、诈骗)。 |
五、 应用价值分析
对于使用 PHP 构建业务系统的企业,天远API 可以无缝嵌入现有的工作流中:
-
自动化的贷前初审
在用户提交贷款申请后,PHP 后端触发 API 调用。系统根据返回的 fraudScore 和 riskWarning(如 hasCriminalRecord 有前科)自动打标。如果命中“失信”或“涉黑”标签,直接流转至“自动拒绝”状态,节省 80% 的人工信审成本。
-
汽车租赁风控
租车行业最怕“租车不还”或“抵押黑车”。通过 API 中的 leasingRiskAssessment(租赁风险评估)字段,可以查看用户在其他租赁机构的申请记录。如果发现用户近期频繁申请(frequentRentalApplications == 1),系统应提示门店收取高额押金或拒绝交车。
-
存量客户贷后预警
利用 PHP 的定时任务(Cron Job),定期(如每月)批量扫描存量客户的风险变化。如果发现某客户突然新增了“法院执行记录”或“多头借贷”激增,系统可自动触发“贷后预警”,提示催收团队提前介入。
六、 总结
天远个人风险报告API 为 PHP 开发者提供了一把打开大数据风控之门的钥匙。它不仅解决了中小企业数据源匮乏的问题,更通过标准化的接口降低了技术对接门槛。
开发建议:
- 异步处理:由于报告生成涉及多方数据查询,建议使用 PHP 的消息队列(如 Redis Queue / RabbitMQ)来异步处理 API 调用,避免阻塞主业务流程。
- 数据留存:务必保存 API 返回的原始 JSON 数据(建议存入 MongoDB 或 MySQL JSON 列),以便后续发生争议时进行溯源。
- 费用控制:在开发测试阶段,注意控制调用频率;在生产环境,可配合本地缓存策略,对短时间内的重复查询直接返回缓存结果,降低成本。