首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >个人信用分接口完整开发指南:从加密传输到风险评估的实战应用

个人信用分接口完整开发指南:从加密传输到风险评估的实战应用

作者头像
天远数科
发布2025-11-02 17:47:40
发布2025-11-02 17:47:40
980
举报

一、"个人信用分"API接口

在互联网金融风控、消费信贷审批、租赁场景信用评估、支付场景反欺诈、电商平台用户分层等众多场景中,精准的个人信用评分是进行风险决策的关键依据。"个人信用分"API接口(代码:JRZQ0L85),能够通过多头趋势分布、多头借贷、流量、账号、网络、社交行为、设备等七大维度的AI机器学习模型,综合产出300-900分的信用评分。

本文将作为一份详细的开发文档,深入剖析此API的完整调用流程,详细解读其加密传输机制、请求响应数据结构和每一个核心字段的含义,帮助开发者利用信用大数据进行更深层次的风险分析与企业风控应用集成。

根据的风控策略建议:450分以下的用户建议直接拒绝,650分以上的用户可以通过审核,450-650分之间的用户可结合其他维度数据综合评估。这一科学的分段策略,可以有效帮助企业构建多层次的风险防控体系。


二、API接口调用示例

2.1 调用说明

个人信用分接口采用高安全级别的AES-128加密传输机制:

  • 请求方式:POST
  • 接口端点https://api.tianyuanapi.com/api/v1/JRZQ0L85?t={13位时间戳}
  • 认证方式:请求头需携带 Access-Id(账号的访问凭证)
  • 加密算法:AES-128-CBC模式,PKCS7填充,随机IV
  • 传输格式:请求参数和响应数据均经过加密后Base64编码

请求参数

  • mobile_no:手机号(必填)
  • id_card:身份证号(必填)
  • name:姓名(必填)

2.2 curl调用示例

代码语言:bash
复制
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字符串。

2.3 Python完整调用示例

代码语言:python
复制
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("决策建议: 需结合其他维度综合评估")

三、核心数据结构解析

3.1 请求数据结构

请求参数在加密前的JSON结构如下:

代码语言:json
复制
{
    "mobile_no": "手机号",
    "id_card": "身份证号",
    "name": "姓名"
}

加密后的请求体结构:

代码语言:json
复制
{
    "data": "Base64编码的加密数据"
}

3.2 响应数据结构

API响应的公共结构:

代码语言:json
复制
{
    "code": 0,
    "message": "业务成功",
    "transaction_id": "202311020001234567",
    "data": "Base64编码的加密数据"
}

解密后的业务数据结构:

代码语言:json
复制
{
    "score_120_General": "480"
}

3.3 数据层级说明

  1. HTTP响应层:包含 codemessagetransaction_iddata 四个字段
  2. 加密数据层data 字段需要使用AES-128-CBC算法解密
  3. 业务数据层:解密后得到具体的信用评分字段

四、字段详解

4.1 请求参数字段

字段名

含义

说明

mobile_no

手机号码

必填,用户的11位手机号码

id_card

身份证号

必填,18位身份证号码,用于身份验证

name

姓名

必填,用户真实姓名,需与身份证一致

4.2 公共响应字段

字段名

含义

说明

code

业务状态码

0表示成功,其他值表示失败

message

状态描述

对应状态码的文字说明

transaction_id

流水号

本次请求的唯一标识,用于追踪和问题排查

data

加密数据

Base64编码的加密业务数据,需解密后使用

4.3 业务数据字段

字段名

含义

说明

score_120_General

个人综合信用评分

分值范围300-900分,分数越高信用越好;-1表示未命中数据

4.4 信用评分分段策略

分数区间

信用等级

风控建议

300-449

高风险

建议直接拒绝

450-649

中等风险

需结合其他维度综合评估

650-900

低风险

建议通过

-1

数据未命中

无历史数据,建议人工审核或使用其他验证方式

4.5 错误码对照表

错误码

错误信息

说明

0

业务成功

查询成功

1000

查询为空

未查询到相关数据

1001

接口异常

服务端内部错误

1002

参数解密失败

密钥错误或数据格式错误

1003

基础参数校验不正确

请求参数不符合规范

1004

未经授权的IP

IP地址未在白名单中

1005

缺少Access-Id

请求头未包含Access-Id

1006

未经授权的AccessId

Access-Id无效或已过期

1007

账户余额不足,无法请求

需要充值后继续使用

1008

未开通此产品

需要先在控制台开通该服务

2001

业务失败

业务逻辑处理失败


五、应用价值分析

5.1 互联网金融风控场景

在P2P借贷、消费金融、小额贷款等场景中,JRZQ0L85信用分API可以作为首道风控关卡:

  • 快速筛选:对于450分以下的申请用户直接拒绝,大幅降低坏账率
  • 分层审批:450-650分的用户进入人工审核流程,提高审核效率
  • 自动通过:650分以上的优质用户快速放款,提升用户体验

5.2 租赁行业信用评估

共享经济、租房租车、设备租赁等场景可利用信用分进行:

  • 押金减免:高信用用户免押金或降低押金额度
  • 定价策略:根据信用等级差异化定价
  • 违约预警:低信用用户提前预警,降低违约风险

5.3 电商平台用户管理

  • 信用支付:高分用户开通先用后付功能
  • 营销策略:针对不同信用等级推送差异化优惠
  • 反欺诈:识别低分异常账号,防范交易欺诈

5.4 数据分析建议

开发者可以将天远API返回的信用评分与自有数据结合:

  1. 建立评分卡模型:将信用分作为重要特征输入到企业自有的评分卡系统
  2. 历史数据对比:追踪用户信用分变化趋势,识别风险波动
  3. 多维度交叉验证:结合设备指纹、行为数据等其他维度进行综合判断
  4. A/B测试:测试不同信用分阈值对业务指标的影响,优化风控策略

5.5 系统集成建议

  • 异步调用:对于非实时场景,建议采用异步方式调用API,提高系统性能
  • 缓存机制:对同一用户的查询结果可以设置合理的缓存时间(建议24小时)
  • 降级策略:当API不可用时,应有备用的风控策略
  • 日志记录:完整记录每次API调用的 transaction_id,便于问题追踪

个人信用分接口(JRZQ0L85)是一套基于AI机器学习的多维度信用评估系统,通过七大数据维度的综合分析,为企业提供300-900分的精准信用评分。本文详细介绍了该API的完整接入流程,包括AES-128加密传输机制、请求响应数据结构、字段含义以及实际应用场景。

对于开发者而言,关键要点包括:

  1. 安全第一:严格遵循AES-128-CBC加密传输规范,保护用户隐私数据
  2. 错误处理:完善的异常处理和错误码判断逻辑,确保系统稳定性
  3. 分段策略:合理应用450/650分的风控阈值,平衡风险与业务增长
  4. 数据整合:将信用分与企业自有数据结合,构建更完善的风控体系

通过本文的技术指南,开发者可以快速完成API接入,并在实际业务中充分发挥信用大数据的价值,构建科学高效的风险防控系统。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、"个人信用分"API接口
  • 二、API接口调用示例
    • 2.1 调用说明
    • 2.2 curl调用示例
    • 2.3 Python完整调用示例
  • 三、核心数据结构解析
    • 3.1 请求数据结构
    • 3.2 响应数据结构
    • 3.3 数据层级说明
  • 四、字段详解
    • 4.1 请求参数字段
    • 4.2 公共响应字段
    • 4.3 业务数据字段
    • 4.4 信用评分分段策略
    • 4.5 错误码对照表
  • 五、应用价值分析
    • 5.1 互联网金融风控场景
    • 5.2 租赁行业信用评估
    • 5.3 电商平台用户管理
    • 5.4 数据分析建议
    • 5.5 系统集成建议
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档