
在互联网金融风控、消费信贷审批、租赁场景信用评估、支付场景反欺诈、电商平台用户分层等众多场景中,精准的个人信用评分是进行风险决策的关键依据。"个人信用分"API接口(代码:JRZQ0L85),能够通过多头趋势分布、多头借贷、流量、账号、网络、社交行为、设备等七大维度的AI机器学习模型,综合产出300-900分的信用评分。
本文将作为一份详细的开发文档,深入剖析此API的完整调用流程,详细解读其加密传输机制、请求响应数据结构和每一个核心字段的含义,帮助开发者利用信用大数据进行更深层次的风险分析与企业风控应用集成。
根据的风控策略建议:450分以下的用户建议直接拒绝,650分以上的用户可以通过审核,450-650分之间的用户可结合其他维度数据综合评估。这一科学的分段策略,可以有效帮助企业构建多层次的风险防控体系。
个人信用分接口采用高安全级别的AES-128加密传输机制:
https://api.tianyuanapi.com/api/v1/JRZQ0L85?t={13位时间戳}Access-Id(账号的访问凭证)请求参数:
mobile_no:手机号(必填)id_card:身份证号(必填)name:姓名(必填)curl -X POST "https://api.tianyuanapi.com/api/v1/JRZQ0L85?t=1699999999999" \
-H "Content-Type: application/json" \
-H "Access-Id: your_access_id_here" \
-d '{
"data": "encrypted_base64_string_here"
}'说明:data 字段的值是将请求参数JSON对象加密后的Base64字符串。
import requests
import json
import time
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
from Crypto.Util.Padding import pad, unpad
import base64
# ============ 加密解密函数 ============
def aes_encrypt(plain_text, key_hex):
"""
AES-128-CBC加密函数
:param plain_text: 待加密的明文字符串
:param key_hex: 16进制格式的密钥字符串
:return: Base64编码的加密结果(包含IV)
"""
# 将16进制密钥转为字节
key = bytes.fromhex(key_hex)
# 生成随机IV(16字节)
iv = get_random_bytes(16)
# 创建AES加密器
cipher = AES.new(key, AES.MODE_CBC, iv)
# 对明文进行PKCS7填充并加密
padded_data = pad(plain_text.encode('utf-8'), AES.block_size)
encrypted_data = cipher.encrypt(padded_data)
# 将IV和密文拼接后进行Base64编码
result = base64.b64encode(iv + encrypted_data).decode('utf-8')
return result
def aes_decrypt(encrypted_base64, key_hex):
"""
AES-128-CBC解密函数
:param encrypted_base64: Base64编码的加密数据(包含IV)
:param key_hex: 16进制格式的密钥字符串
:return: 解密后的明文字符串
"""
# 将16进制密钥转为字节
key = bytes.fromhex(key_hex)
# Base64解码
encrypted_data = base64.b64decode(encrypted_base64)
# 提取IV(前16字节)和密文
iv = encrypted_data[:16]
ciphertext = encrypted_data[16:]
# 创建AES解密器
cipher = AES.new(key, AES.MODE_CBC, iv)
# 解密并去除PKCS7填充
decrypted_padded = cipher.decrypt(ciphertext)
decrypted_data = unpad(decrypted_padded, AES.block_size)
return decrypted_data.decode('utf-8')
# ============ API调用主函数 ============
def query_credit_score(mobile_no, id_card, name, access_id, access_key):
"""
调用个人信用分API接口
:param mobile_no: 手机号
:param id_card: 身份证号
:param name: 姓名
:param access_id: 访问ID
:param access_key: 访问密钥(16进制字符串)
:return: 解密后的响应数据
"""
# 1. 构建请求参数
request_params = {
"mobile_no": mobile_no,
"id_card": id_card,
"name": name
}
# 2. 将请求参数转为JSON字符串并加密
params_json = json.dumps(request_params, ensure_ascii=False)
encrypted_data = aes_encrypt(params_json, access_key)
# 3. 构建请求体
request_body = {
"data": encrypted_data
}
# 4. 构建请求头
headers = {
"Content-Type": "application/json",
"Access-Id": access_id
}
# 5. 生成13位时间戳
timestamp = str(int(time.time() * 1000))
# 6. 发送POST请求
url = f"https://api.tianyuanapi.com/api/v1/JRZQ0L85?t={timestamp}"
try:
response = requests.post(url, headers=headers, json=request_body, timeout=10)
response.raise_for_status() # 检查HTTP状态码
# 7. 解析响应
response_data = response.json()
# 8. 检查业务状态码
if response_data.get("code") != 0:
print(f"业务错误: {response_data.get('message')}")
return None
# 9. 解密响应数据
encrypted_response = response_data.get("data")
if encrypted_response:
decrypted_data = aes_decrypt(encrypted_response, access_key)
return json.loads(decrypted_data)
else:
print("响应数据为空")
return None
except requests.exceptions.RequestException as e:
print(f"请求异常: {str(e)}")
return None
except Exception as e:
print(f"处理异常: {str(e)}")
return None
# ============ 使用示例 ============
if __name__ == "__main__":
# 配置您的访问凭证
ACCESS_ID = "your_access_id"
ACCESS_KEY = "your_access_key_in_hex" # 16进制字符串格式
# 调用API
result = query_credit_score(
mobile_no="13800138000",
id_card="110101199001011234",
name="张三",
access_id=ACCESS_ID,
access_key=ACCESS_KEY
)
# 处理结果
if result:
score = result.get("score_120_General")
print(f"信用评分: {score}")
# 根据评分进行风控决策
if score == "-1":
print("决策建议: 未命中数据,建议人工审核")
elif int(score) < 450:
print("决策建议: 建议拒绝")
elif int(score) >= 650:
print("决策建议: 建议通过")
else:
print("决策建议: 需结合其他维度综合评估")请求参数在加密前的JSON结构如下:
{
"mobile_no": "手机号",
"id_card": "身份证号",
"name": "姓名"
}加密后的请求体结构:
{
"data": "Base64编码的加密数据"
}API响应的公共结构:
{
"code": 0,
"message": "业务成功",
"transaction_id": "202311020001234567",
"data": "Base64编码的加密数据"
}解密后的业务数据结构:
{
"score_120_General": "480"
}code、message、transaction_id、data 四个字段data 字段需要使用AES-128-CBC算法解密字段名 | 含义 | 说明 |
|---|---|---|
mobile_no | 手机号码 | 必填,用户的11位手机号码 |
id_card | 身份证号 | 必填,18位身份证号码,用于身份验证 |
name | 姓名 | 必填,用户真实姓名,需与身份证一致 |
字段名 | 含义 | 说明 |
|---|---|---|
code | 业务状态码 | 0表示成功,其他值表示失败 |
message | 状态描述 | 对应状态码的文字说明 |
transaction_id | 流水号 | 本次请求的唯一标识,用于追踪和问题排查 |
data | 加密数据 | Base64编码的加密业务数据,需解密后使用 |
字段名 | 含义 | 说明 |
|---|---|---|
score_120_General | 个人综合信用评分 | 分值范围300-900分,分数越高信用越好;-1表示未命中数据 |
分数区间 | 信用等级 | 风控建议 |
|---|---|---|
300-449 | 高风险 | 建议直接拒绝 |
450-649 | 中等风险 | 需结合其他维度综合评估 |
650-900 | 低风险 | 建议通过 |
-1 | 数据未命中 | 无历史数据,建议人工审核或使用其他验证方式 |
错误码 | 错误信息 | 说明 |
|---|---|---|
0 | 业务成功 | 查询成功 |
1000 | 查询为空 | 未查询到相关数据 |
1001 | 接口异常 | 服务端内部错误 |
1002 | 参数解密失败 | 密钥错误或数据格式错误 |
1003 | 基础参数校验不正确 | 请求参数不符合规范 |
1004 | 未经授权的IP | IP地址未在白名单中 |
1005 | 缺少Access-Id | 请求头未包含Access-Id |
1006 | 未经授权的AccessId | Access-Id无效或已过期 |
1007 | 账户余额不足,无法请求 | 需要充值后继续使用 |
1008 | 未开通此产品 | 需要先在控制台开通该服务 |
2001 | 业务失败 | 业务逻辑处理失败 |
在P2P借贷、消费金融、小额贷款等场景中,JRZQ0L85信用分API可以作为首道风控关卡:
共享经济、租房租车、设备租赁等场景可利用信用分进行:
开发者可以将天远API返回的信用评分与自有数据结合:
transaction_id,便于问题追踪个人信用分接口(JRZQ0L85)是一套基于AI机器学习的多维度信用评估系统,通过七大数据维度的综合分析,为企业提供300-900分的精准信用评分。本文详细介绍了该API的完整接入流程,包括AES-128加密传输机制、请求响应数据结构、字段含义以及实际应用场景。
对于开发者而言,关键要点包括:
通过本文的技术指南,开发者可以快速完成API接入,并在实际业务中充分发挥信用大数据的价值,构建科学高效的风险防控系统。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。