一、打造高效轻量的个人风险防控网关
在诸如互联网金融(FinTech)、共享经济(如网约车、短租平台)以及电商分期等高频交易场景中,用户体验与风控效率常常难以兼顾。前端业务追求毫秒级响应,而后台却需处理海量数据以识别潜在风险。
天远个人风险报告API作为一款“数据中间件”,通过整合谛听多维数据与深度司法信息,有效弥合了这一矛盾。
该接口不仅支持实名认证与运营商信息核验,还输出反欺诈评分、借贷意向分析及详尽的司法涉诉记录。对于采用Node.js构建BFF层或微服务架构的开发团队而言,其标准化的JSON结构与高并发响应能力,有助于快速部署一套轻量、高效的人员风险拦截机制,在保障流畅体验的同时实现精准风控。
COMBTY11
二、Node.js环境下的API调用实例
本接口支持HTTPS协议下的POST请求,数据交互格式为JSON。得益于Node.js非阻塞I/O的特性,非常适合用于聚合外部API调用场景。
1. 接口基本参数
请求地址:
https://api.tianyuanapi.com/api/v1/COMBTY11?t=13位时间戳
请求方式:POST
鉴权与加密机制:所有业务参数(含授权书URL)需先序列化并加密,随后转换为Base64字符串后填入指定字段。
data
2. 使用Curl命令行进行测试
Bashcurl -X POST "https://api.tianyuanapi.com/api/v1/COMBTY11?t=1715068800000" \ -H "Content-Type: application/json" \ -d '{ "data": "eyJpZF9jYXJkIjoiNDUyMTIyMjAwMDA4Mjc0MjNYIiwibmFtZSI6IuW8oOS7SiIsIm1vYmlsZV9ubyI6IjEzODAwMTM4MDAwIiwiYXV0aG9yaXphdGlvbl91cmwiOiJodHRwczovL29zcy5leGFtcGxlLmNvbS9hdXRoLnBuZyIsImF1dGhfZGF0ZSI6IjIwMjMwMTAxLTIwMjMxMjMxIn0=" }'
3. Node.js (基于Axios + Async/Await) 调用示例
以下代码展示了如何在Node.js环境中(适用于Express、Koa或NestJS框架)封装一个通用的风险查询服务模块。
JavaScriptconst axios = require('axios'); // const crypto = require('crypto'); // 实际加密需要用到 // 1. API 配置 const API_CONFIG = { url: 'https://api.tianyuanapi.com/api/v1/COMBTY11', timeout: 10000 // 建议设置较长超时,因为涉及多维数据查询 }; /** * 模拟加密处理函数 * 实际接入时,请使用天远API提供的加密算法(通常为AES)替换此函数 */ function encryptPayload(payload) { const jsonStr = JSON.stringify(payload); // TODO: 实现真实的加密逻辑 // const encrypted = aesEncrypt(jsonStr, secretKey); // 这里仅做 Base64 编码演示 return Buffer.from(jsonStr).toString('base64'); } /** * 获取个人风险报告 * @param {Object} userInfo 用户信息对象 * @returns {Promise<Object>} 解析后的风险数据 */ async function fetchRiskReport(userInfo) { const { name, idCard, mobile, authUrl, authDate } = userInfo; // 2. 构建业务参数 const payload = { name: name, id_card: idCard, mobile_no: mobile, authorization_url: authUrl, // 必须提供授权书 URL auth_date: authDate // 格式 YYYYMMDD-YYYYMMDD }; const encryptedData = encryptPayload(payload); const timestamp = Date.now(); try { // 3. 发起异步请求 const response = await axios.post(`${API_CONFIG.url}?t=${timestamp}`, { data: encryptedData }, { headers: { 'Content-Type': 'application/json' } }); const result = response.data; // 4. 处理组合包响应 if (result && result.responses) { return transformData(result.responses); } else { console.error('API Error:', result); throw new Error('Risk API response format error'); } } catch (error) { console.error('Request Failed:', error.message); return null; } } /** * 数据清洗与转换工具函数 * 将复杂的组合包结构扁平化,便于前端使用 */ function transformData(responses) { const report = { summary: { score: 0, suggestion: '' }, risks: [], legal: [] }; responses.forEach(item => { if (!item.success || !item.data) return; // 谛听多维报告 (DWBG8B4D) if (item.api_code === 'DWBG8B4D') { const data = item.data; report.summary.fraudScore = data.fraudScore; // 反欺诈分 report.summary.creditScore = data.creditScore; // 信用分 report.summary.suggestion = data.checkSuggest; // 审核建议 // 提取高风险项 if (data.riskWarning) { Object.entries(data.riskWarning).forEach(([key, value]) => { if (value === 1 && key !== 'totalRiskCounts') { report.risks.push(key); // 将命中的风险标签加入数组 } }); } } // 个人司法涉诉 (FLXG0V4B) else if (item.api_code === 'FLXG0V4B') { const entout = item.data.entout?.data || {}; const sxbzxr = item.data.sxbzxr?.data?.sxbzxr || []; // 失信被执行人 if (sxbzxr.length > 0) { report.legal.push(...sxbzxr.map(c => ({ type: '失信被执行', court: c.zxfy, // 执行法院 caseNo: c.ah, // 案号 duty: c.yw // 义务 }))); } } }); return report; } // 5. 执行调用测试 (async () => { const user = { name: "张三", idCard: "110101199001011234", mobile: "13900000000", authUrl: "http://oss.example.com/auth/user_123.jpg", authDate: "20230101-20250101" }; const result = await fetchRiskReport(user); console.log('清洗后的风控报告:', JSON.stringify(result, null, 2)); })();
三、核心响应结构解析
天远API的返回结果采用“组合模式”设计,天然适配JavaScript中的解构赋值语法,便于开发者灵活提取所需字段。
数据层级说明:
- Response Body:包含一个主数据数组。
- Item Object:数组中的每个元素,内嵌基础信息与加密字段。
- DWBG8B4D:核心风控数据模块,重点关注以下三项:
—— 反欺诈评分fraudScore
—— 信用评分creditScore
—— 风险清单riskWarning
- FLXG0V4B:司法相关信息模块,关键内容包括:
—— 失信被执行人列表sxbzxr
—— 刑事案件记录entout.data.criminal
responses
api_code
四、关键字段详细说明
为方便开发者在TypeORM或Mongoose中定义Schema模型,以下对主要字段进行逐一解析。
1. 评分与审核建议(DWBG8B4D → data)
| 字段名 (JSON) | JS类型 | 含义 | 业务逻辑参考 |
|---|---|---|---|
|
Number | 反欺诈评分 | 评分范围 [0,100];若高于80,判定为高风险,建议前端直接拒绝操作。 |
|
Number | 信用评分 | 评分区间 [300,1000];低于500视为信用一般,建议进入人工复审流程。 |
|
String | 审核建议 | 可能取值如:“建议拒绝”、“建议复审”等,可直接用于界面提示。 |
2. 借贷与逾期风险信息(DWBG8B4D → overdueRiskProduct)
此部分数据适用于贷前评估环节,辅助判断用户还款能力与多头借贷倾向。
| 字段名 (JSON) | JS类型 | 含义 | 说明 |
|---|---|---|---|
|
String | 当前逾期金额 | 以区间形式表示,例如“(0,1000)”代表当前存在小额逾期。 |
|
String | 近30天逾期状态 | 取值为“逾期”或“未逾期”,可用于短期行为监控。 |
|
String | 贷款总机构数 | 反映多头借贷情况,数值过大则风险升高。 |
3. 司法涉诉信息(FLXG0V4B)
重点关注失信记录与刑事犯罪背景,提升平台安全性。
| 字段名 (JSON) | JS类型 | 含义 | 说明 |
|---|---|---|---|
|
Array | 失信被执行人列表 | 包含具体失信行为描述字段 。 |
|
Array | 限高被执行人列表 | 记录限制高消费执行信息,含 (发布日期)。 |
|
Object | 刑事案件 | 位于 节点下,包含定罪信息 (罪名)。 |
五、典型应用场景价值分析
在Node.js技术生态中集成天远API,可显著增强多种互联网业务的风险识别能力。
1. 电商分期 / 先享后付(BNPL)
当用户点击“开通分期”时,BFF层可异步调用天远API,结合creditScore与overdueRiskProduct字段实时评估信用状况。若currentOverdueAmount非空,则自动终止开通流程,从而有效降低坏账率。
2. C2C租赁平台(房产/电子设备)
在租客提交订单阶段,系统调用接口获取leasingRiskAssessment风险评估结果。若检测到veryFrequentRentalApplications == 1 或存在司法执行记录,可动态调整押金比例或强制要求第三方担保,提升交易安全。
3. 社交与婚恋平台高端会员认证
针对付费认证用户,可通过调用接口验证其身份真实性与信用背景。发现异常司法记录或虚假信息时,拒绝认证申请,维护平台信誉与用户体验。
对于已完成实名认证的高价值用户,可通过 FLXG0V4B 接口中的婚姻状态(如包含该字段)以及司法诉讼记录来进行深度背景核查。一旦识别出用户存在“重婚”行为或曾有严重的“经济诈骗”犯罪记录(即 hasCriminalRecord == 1),平台应立即采取账号封禁措施,以保障社区环境的安全与可信。
在实际开发中,天远个人风险报告API 为 Node.js 环境下的开发者提供了一套高效且覆盖全面的数据调用方案。仅需一次接口请求,即可整合征信、司法及社会安全三大维度的信息,形成完整的用户风险画像,显著降低风控系统建设的技术门槛和集成复杂度。
集成建议:
文件上传处理
由于接口调用前需要提交相关凭证,
authorization_url开发者应首先将用户签署的授权文件上传至对象存储服务(例如 COS 或 OSS),然后将生成的公网可访问链接传递给 API 使用。
数据缓存策略
考虑到风险报告数据体量较大且更新频率不高,推荐使用 Redis 对查询结果进行缓存(例如设置 24 小时有效期),从而减少重复调用带来的成本支出,并有效提升系统响应性能。
隐私信息保护
在前端页面展示报告内容时,必须对敏感字段(如具体案件编号、涉及金额等)实施脱敏处理,仅呈现风险等级评估结果或处置建议,确保用户隐私得到充分保护。


雷达卡


京公网安备 11010802022788号







