拒绝骗贷:三步实现天远名下车辆数量查询接口对接(附AES加密详解)

25 阅读5分钟

车辆资产核验与数字化风控的最后拼图

在汽车金融、保险核保以及共享出行等行业中,"人车关系"的核验始终是风控的核心难点。传统的线下查验不仅效率低下,且难以规避伪造证件的风险。对于信贷审批员或保险精算师而言,无法实时核实申请人名下的真实车辆资产,就意味着巨大的坏账隐患。

天远名下车辆数量查询 API 为这一痛点提供了标准化的数字化解决方案。它基于权威数据源,通过“姓名+身份证+手机号”三要素,毫秒级返回用户名下的车辆数量、车牌详情及车辆类型。这一能力帮助开发者将资产核验环节从“人工审核”升级为“代码自动决策”,在秒级完成对用户资产实力的初筛。

Python 接口集成实战

本节演示如何使用 Python 快速对接该接口。由于接口涉及敏感个人信息(身份证、姓名),采用了高强度的 AES-128-CBC 加密传输。我们在示例中封装了完整的请求流程与异常处理机制。

前置配置

  • API Endpoint: https://api.tianyuanapi.com/api/v1/QCXG4T6Q
  • 鉴权方式: HTTP Header Access-Id + Body data (AES加密)
  • 输入参数: 姓名、身份证号、手机号

核心代码实现

Python

import requests
import json
import time
import base64
# 生产环境建议使用 PyCryptodome 库
# from Crypto.Cipher import AES
# from Crypto.Util.Padding import pad, unpad

class VehicleAssetService:
    def __init__(self, access_id, access_key):
        self.url = "<https://api.tianyuanapi.com/api/v1/QCXG4T6Q>"
        self.access_id = access_id
        self.access_key = access_key

    def query_user_vehicles(self, name, id_card, mobile):
        """
        查询用户名下车辆信息
        :param name: 用户真实姓名
        :param id_card: 身份证号
        :param mobile: 手机号
        """
        # 1. 构造带时间戳的请求URL,防止重放攻击
        timestamp = int(time.time() * 1000)
        request_url = f"{self.url}?t={timestamp}"
        
        payload = {
            "name": name,
            "id_card": id_card,
            "mobile_no": mobile
        }
        
        try:
            # 2. 数据加密 (AES-128-CBC)
            # 逻辑说明:生成随机16字节IV -> PKCS7填充 -> AES加密 -> 拼接IV+密文 -> Base64
            encrypted_data = self._encrypt_payload(json.dumps(payload))
            
            headers = {
                "Access-Id": self.access_id,
                "Content-Type": "application/json"
            }
            
            body = {"data": encrypted_data}

            # 3. 发送请求 (设置5秒超时)
            response = requests.post(request_url, json=body, headers=headers, timeout=5)
            
            if response.status_code == 200:
                res_json = response.json()
                
                # 业务状态码校验
                if res_json.get("code") == 0:
                    # 解密响应数据
                    return self._decrypt_response(res_json.get("data"))
                else:
                    print(f"业务异常: [{res_json.get('code')}] {res_json.get('message')}")
                    return None
            else:
                print(f"HTTP请求失败: {response.status_code}")
                return None
                
        except requests.exceptions.RequestException as e:
            print(f"网络请求错误: {e}")
            return None
        except Exception as e:
            print(f"系统内部错误: {e}")
            return None

    def _encrypt_payload(self, plain_text):
        """
        [占位函数] AES加密逻辑实现
        需遵循:AES-CBC模式,128位密钥,PKCS7填充,IV随机生成
        """
        return "base64_string_placeholder"

    def _decrypt_response(self, cipher_text):
        """
        [占位函数] AES解密逻辑实现
        需遵循:Base64解码 -> 提取前16位IV -> AES解密 -> 去除填充
        """
        # 模拟解密后的返回数据
        return {
            "vehicleCount": "1",
            "list": [
                {"plateNum": "苏UC037G", "plateColor": 0, "vehicleType": 1}
            ]
        }

# 调用示例
if __name__ == "__main__":
    service = VehicleAssetService("YOUR_ACCESS_ID", "YOUR_ACCESS_KEY")
    result = service.query_user_vehicles("张三", "3201021990xxxx", "1380013xxxx")
    
    if result:
        print(f"名下车辆总数: {result['vehicleCount']}")
        for car in result['list']:
            print(f"车牌: {car['plateNum']} | 类型代码: {car['vehicleType']}")

Curl 快速验证

Bash

curl -X POST "<https://api.tianyuanapi.com/api/v1/QCXG4T6Q?t=1735689600000>" \
     -H "Access-Id: YOUR_ACCESS_ID" \
     -H "Content-Type: application/json" \
     -d '{"data": "YOUR_ENCRYPTED_BASE64_STRING"}'

数据字段深度解析与字典映射

天远名下车辆数量查询 API 返回的数据结构包含统计信息和详细列表。为了让数据具有业务可读性,开发者必须在本地建立“代码-含义”的映射字典。

以下是核心返回字段详解:

字段名类型描述开发者注意 (Developer Notes)
vehicleCountString车辆总数风控核心指标。若此值为 0,在车贷场景下通常意味着直接拒单或需要补充其他资产证明。
plateNumString车牌号如 "苏UC037G"。可用于后续的违章查询或车辆估值接口的入参。
plateColorInteger车牌颜色代码
vehicleTypeInteger车辆类型代码需转义1:一型客车(私家车常见), 11:一型货车。若发现申请个人消费贷的用户名下多为货车/作业车(21-26),需警惕其是否存在营运性质,这可能影响还款能力的评估。

字典映射参考表:

Code 0 (未确定): 系统无法识别具体车型,建议人工复核。

Code 11 (绿色): 新能源牌照,通常意味着车辆购置时间较新,且受路权限制较少。

API 驱动的业务场景延伸

除了基础的“查数量”,该 API 还可以结合业务逻辑衍生出更多高价值应用:

  1. 车贷反欺诈自动化

    在汽车抵押贷款申请中,申请人往往声称“名下有车”。接入该 API 后,系统可在用户提交申请的瞬间,校验其填写的车辆信息(车牌、车型)与官方登记数据是否一致。如果用户填写“奔驰S级”但接口返回“五型货车”或“无车辆信息”,系统可触发自动拦截机制,无需人工介入。

  2. 网约车/物流司机背景筛查

    对于物流平台或网约车平台,核实司机是否“带车加盟”至关重要。通过该接口,平台可以批量核验注册司机的身份证号,确认其名下是否持有符合运营标准的车辆(如校验 vehicleType 是否为客车或货车),从而快速建立合规的运力池。

  3. 高净值客群精准营销

    保险公司或高端俱乐部在进行客户分层时,可以将“名下车辆数量”作为评估客户经济实力的维度之一。例如,名下拥有 2 辆及以上车辆的用户,通常具有更高的家庭消费能力和保险购买潜力,系统可将其标记为 VIP 潜客,推送高价值的组合保险产品。

结语

集成 天远名下车辆数量查询 API,不仅是增加一个查询功能,更是为企业的业务流程注入了数据校验的“刚性”。它以低成本高效地解决了资产不透明的问题,是构建现代化金融风控体系不可或缺的一环。

建议开发者在对接完成后,利用单元测试覆盖 plateColorvehicleType 的所有枚举值,确保业务系统能正确处理各种车辆类型的回显。