news 2026/4/28 14:13:49

天远多头借贷行业风险版API接口调用代码流程、接入方法以及应用场景

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
天远多头借贷行业风险版API接口调用代码流程、接入方法以及应用场景

一、精细化风控时代的“多头”计量工具

在互金与银行信贷业务中,“多头借贷”(Multi-Lending)往往是借款人资金链断裂的前兆。然而,传统的借贷次数统计已难以满足精细化风控的需求——借款人是在银行申请房贷,还是在夜间频繁申请高息网贷?这两种行为的风险等级截然不同。

天远API推出的“多头借贷行业风险版”接口,正是解决这一痛点的利器。它不同于普通的黑名单查询,而是通过通用、短周期、长周期、非银行、银行5大细分维度,输出 0-100 分的量化风险评分。同时,它提供了细致到“凌晨申请占比”、“近7天新增平台数”等数百个行为指标。本文将作为一份详尽的技术指南,帮助开发者使用 Python 对接此 API,并解析其特有的List<KV>数据结构,助力企业构建更精准的授信模型。

二、API接口调用示例

本接口沿用了天远API的高安全标准,采用 AES-128-CBC 对称加密传输。开发者需注意请求体data的加密逻辑以及响应数据的解密与格式转换。

1. 接口基础信息

  • 接口地址https://api.tianyuanapi.com/api/v1/DWBG7F3A?t={13位时间戳}
  • 请求方式:POST
  • 安全机制
    • Header:Access-Id
    • Body:data(AES加密 + Base64编码)

2. Curl 调用示例

Bash

curl -X POST "https://api.tianyuanapi.com/api/v1/DWBG7F3A?t=1716345678000" \ -H "Content-Type: application/json" \ -H "Access-Id: YOUR_ACCESS_ID" \ -d '{ "data": "U2FsdGVkX1+..." }'

3. Python 完整调用代码 (含数据清洗)

由于该接口返回的数据是[{"riskCode":..., "riskCodeValue":...}]的数组格式,直接使用极其不便。下方的 Python 示例中增加了一个parse_risk_report函数,将其转换为易于读取的字典格式。

Python

import requests import json import time import base64 from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad from Crypto.Random import get_random_bytes class TianyuanIndustryRiskAPI: def __init__(self, access_id, access_key): self.access_id = access_id # 确保密钥为16字节二进制 self.access_key = access_key.encode('utf-8')[:16] self.api_url = "https://api.tianyuanapi.com/api/v1/DWBG7F3A" def _encrypt(self, plain_dict): """AES-128-CBC 加密核心逻辑""" try: # 1. 序列化并转成 bytes plain_text = json.dumps(plain_dict).encode('utf-8') # 2. 生成随机 IV iv = get_random_bytes(16) # 3. 初始化加密器 cipher = AES.new(self.access_key, AES.MODE_CBC, iv) # 4. 填充并加密 encrypted_bytes = cipher.encrypt(pad(plain_text, AES.block_size)) # 5. 拼接 IV + 密文 -> Base64 return base64.b64encode(iv + encrypted_bytes).decode('utf-8') except Exception as e: print(f"[Encryption Error] {e}") return None def _decrypt(self, base64_str): """AES-128-CBC 解密核心逻辑""" try: encrypted_data = base64.b64decode(base64_str) iv = encrypted_data[:16] cipher_text = encrypted_data[16:] cipher = AES.new(self.access_key, AES.MODE_CBC, iv) decrypted_text = unpad(cipher.decrypt(cipher_text), AES.block_size) return json.loads(decrypted_text.decode('utf-8')) except Exception as e: print(f"[Decryption Error] {e}") return None def query_industry_risk(self, name, id_card, mobile): # 1. 构造请求参数 payload = { "name": name, "id_card": id_card, "mobile_no": mobile } # 2. 加密 encrypted_data = self._encrypt(payload) if not encrypted_data: return # 3. 发送请求 timestamp = int(time.time() * 1000) url = f"{self.api_url}?t={timestamp}" headers = {"Access-Id": self.access_id} try: resp = requests.post(url, json={"data": encrypted_data}, headers=headers) res_json = resp.json() if res_json.get("code") == 0: print(">>> 请求成功,正在解密...") raw_data = self._decrypt(res_json.get("data")) # 4. 数据清洗(将列表转为字典) clean_report = self.parse_risk_report(raw_data) self.print_key_indicators(clean_report) else: print(f"API Error: {res_json.get('message')}") except Exception as e: print(f"Network Error: {e}") def parse_risk_report(self, raw_data): """ 将 [{"riskCode": "41001", "riskCodeValue": "43"}, ...] 转换为 {"41001": "43", ...} 以便快速查找 """ report_list = raw_data.get("riskInfo_report_v3.1", []) risk_map = {} for item in report_list: # 兼容 int 和 string 类型的 code code = str(item.get("riskCode")) val = item.get("riskCodeValue") risk_map[code] = val return risk_map def print_key_indicators(self, risk_map): print("\n=== 多头借贷行业风险核心指标 ===") # 41001: 多头申请通用分 print(f"通用评分 (0-100): {risk_map.get('41001', 'N/A')}") # 41002: 短周期多头共债子分 print(f"短周期风险分 (7天-3月): {risk_map.get('41002', 'N/A')}") # 40001: 7天内总申请次数 print(f"近7天总申请次数: {risk_map.get('40001', '0')}") # 40002: 7天内银行申请次数 print(f"近7天银行申请次数: {risk_map.get('40002', '0')}") # 40105: 7天总申请夜晚次数 print(f"近7天深夜申请次数: {risk_map.get('40105', '0')}") # 使用示例 if __name__ == "__main__": client = TianyuanIndustryRiskAPI("YOUR_ACCESS_ID", "YOUR_ACCESS_KEY_HEX") client.query_industry_risk("张三", "110101199001011234", "13800138000")

三、核心数据结构解析

与通用查询不同,本接口的响应数据结构通过code来定义语义,极大地压缩了传输体积。

1. 响应根节点

  • code: 0 表示成功。
  • data: 加密字符串,解密后包含一个核心键riskInfo_report_v3.1

2. 报告列表结构

解密后的riskInfo_report_v3.1是一个对象数组 11111。

  • riskCode: 风险指标代码(如41001,40001)。
  • riskCodeValue: 对应的具体数值(如43分,或0次)。

开发者务必在业务层建立一个映射表(Mapping),将这些数字代码转换为具有业务含义的字段名(如score_general,count_7d_apply)。

四、字段详解(风控核心代码表)

以下表格精选了天远API行业风险版中最具业务价值的字段 2222222222222222222222222。

1. 多头共债评分(决策核心)

Code名称取值范围业务解读
41001多头申请通用分0-100综合评估,分数越高多头倾向越严重。
41002短周期多头共债分0-100聚焦7天-3个月的急借行为,反映短期资金缺口。
41003长周期多头共债分0-100聚焦6个月+的行为,反映长期债务累积压力。
41005银行多头共债子分0-100专门衡量在银行体系内的多头行为。

2. 行业维度申请统计(画像核心)

Code名称说明适用场景
400027天内银行申请次数银行系数据判断用户是否在通过正规渠道融资。
400047天内互金申请次数P2P/网贷数据高频申请通常意味着资质较差或急需用钱。
400037天内持牌消金申请次数持牌机构数据衡量用户在消费场景下的活跃度。

3. 时间与行为异常(反欺诈核心)

Code名称说明风险提示
400977天总申请白天次数08:00 - 23:00正常作息时间内的申请。
401057天总申请夜晚次数00:00 - 07:00高危指标:凌晨频繁申请往往对应赌博输钱或极度焦虑。
401617天相对过去30天新增平台平台数差值突发性地向大量新平台申请,是“撸口子”的典型特征。

五、应用价值分析

通过集成天远API的多头借贷行业风险版,金融机构可以在以下场景中显著提升风控效能:

  1. 区分客群资质(银行 vs. 非银):

    利用 41005 (银行分) 和 41004 (非银分) 的差异。如果一个用户在“非银”维度分数极高(频繁借网贷),但在“银行”维度分数低,说明其资质可能无法通过银行审批,属于次级客群,需谨慎授信。

  2. 识别“以贷养贷”迹象:

    结合 41003 (长周期分) 和 40161 (新增平台数)。如果用户长期存在多头行为,且近期突然新增了大量借贷平台,极大概率正在寻求“拆东墙补西墙”,建议直接拒绝。

  3. 夜间反欺诈阻断:

    编写规则:当 40105 (7天夜晚申请次数) / 40001 (7天总次数) > 50% 时,触发人工审核。正常用户的借贷行为通常发生在日间,夜间聚集性申请往往通过机器脚本或中介代办,具有极高的欺诈风险。

六、总结

天远多头借贷行业风险版API,通过将笼统的“申请次数”拆解为分行业(银行/互金/消金)和分时段(白天/凌晨)的精细化指标,为风控模型提供了更高维度的特征输入。

对于 Python 开发者,虽然 List 的数据结构处理起来比扁平 JSON 略繁琐,但其带来的数据密度和扩展性极高。建议在接入层编写通用的解析器(如文中的parse_risk_report),将这些高价值的RiskCode转化为业务可用的决策因子,从而构建出更稳健的信贷防御体系。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 0:47:37

音元系统:目录

目录 1 绪论 2 已有析音法 2.1 已有各式析音法的分类 2.1.1 各类各式二分法 2.1.1.1 两段二分法 2.1.1.1.1 声韵二分法 2.1.1.1.2 首干二分法 2.1.1.2 质调二分法 2.1.2 一调二质分析法 2.1.2.1 节调声质韵质分析法 2.1.2.2 节调声母韵母分析法 2.1.3 一调三质分析…

作者头像 李华
网站建设 2026/4/23 10:51:05

Java毕业设计不会做怎么办?

同学别慌&#xff0c;毕业设计确实是大学生涯的一大挑战&#xff0c;但完全有办法解决。很多同学都经历过这个阶段&#xff0c;我们一步步来梳理。 &#x1f50d; 第一步&#xff1a;冷静分析现状 明确截止时间 - 离答辩还有多少周&#xff1f; 评估当前进度 - 是完全没开始&…

作者头像 李华
网站建设 2026/4/20 17:52:24

Day 37 - 早停策略与模型权重的保存

在深度学习的训练过程中&#xff0c;我们经常面临两个核心问题&#xff1a;“训练到什么时候停止&#xff1f;” 和 “训练好的模型怎么存&#xff1f;”。如果训练时间太短&#xff0c;模型欠拟合&#xff1b;训练时间太长&#xff0c;模型过拟合。手动盯着Loss曲线决定何时停…

作者头像 李华
网站建设 2026/4/27 6:31:26

Blade构建系统终极指南:新手快速上手指南

Blade构建系统终极指南&#xff1a;新手快速上手指南 【免费下载链接】blade-build Blade is a powerful build system from Tencent, supports many mainstream programming languages, such as C/C, java, scala, python, protobuf... 项目地址: https://gitcode.com/gh_mi…

作者头像 李华