一、支付行为指数接口
在商业银行信贷核心系统、消费金融风控中台以及互联网金融反欺诈等关键业务场景中,系统的稳定性与数据的准确性是构筑防火墙的基石。[多维度信用评估]——尤其是基于用户历史借贷全周期的行为量化,是进行[自动化授信审批]的关键依据。
天远API 推出的"支付行为指数"接口,能够输出包含行为评分、共债机构分布及还款履约记录在内的数百维结构化数据。本文档专为 Java 开发者(特别是 Spring Boot 生态用户)编写,将详细演示如何利用 Java 强大的类型系统和安全库,完成AES-128-CBC 加密传输,并将复杂的 JSON 响应映射为标准的 POJO 对象,助力企业快速将支付行为指数融入 Drools 或 EasyRules 等决策引擎中,实现高效的[智能风控]应用集成。
二、API接口调用示例(Java版)
1. 接入技术规范
- 接口地址:
https://api.tianyuanapi.com/api/v1/JRZQ3C9R?t={13位时间戳} - 安全机制:AES-128-CBC 加密 + Base64 编码。
- 依赖管理:推荐使用
OkHttp处理网络请求,Jackson或Gson处理序列化。 - 并发策略:建议将
OkHttpClient配置为单例模式,以复用连接池。
2. curl 连通性测试
curl -X POST "<https://api.tianyuanapi.com/api/v1/JRZQ3C9R?t=1716968800000>" \
-H "Content-Type: application/json" \
-H "Access-Id: YOUR_ACCESS_ID" \
-d '{"data": "ENCRYPTED_BASE64_STRING..."}'
3. Java 完整集成代码
本示例包含一个完整的工具类 PaymentIndexClient,封装了加密、请求发送及响应解析的全流程。
package com.tianyuan.risk.client;
import com.fasterxml.jackson.databind.ObjectMapper;
import okhttp3.*;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
/**
* 天远API - 支付行为指数 Java 接入示例
* 依赖: com.squareup.okhttp3:okhttp:4.9.1, com.fasterxml.jackson.core:jackson-databind:2.12.3
*/
public class PaymentIndexClient {
private static final String API_URL = "<https://api.tianyuanapi.com/api/v1/JRZQ3C9R>";
private static final String ACCESS_ID = "YOUR_ACCESS_ID";
private static final String ACCESS_KEY = "YOUR_ACCESS_KEY"; // 16位Hex
private final OkHttpClient client;
private final ObjectMapper mapper;
public PaymentIndexClient() {
this.client = new OkHttpClient();
this.mapper = new ObjectMapper();
}
public static void main(String[] args) {
PaymentIndexClient client = new PaymentIndexClient();
try {
// 发起查询
Map<String, Object> result = client.query("张三", "110101199001011234", "13800138000");
System.out.println("API响应结果: " + client.mapper.writerWithDefaultPrettyPrinter().writeValueAsString(result));
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 查询支付行为指数
*/
public Map<String, Object> query(String name, String idCard, String phone) throws Exception {
// 1. 组装业务参数
Map<String, String> payload = new HashMap<>();
payload.put("name", name);
payload.put("idCard", idCard);
payload.put("phone", phone);
payload.put("authorized", "1"); // 必须授权
// 2. 加密参数
String encryptedData = AesUtils.encrypt(mapper.writeValueAsString(payload), ACCESS_KEY);
// 3. 构造请求体
Map<String, String> bodyMap = new HashMap<>();
bodyMap.put("data", encryptedData);
String jsonBody = mapper.writeValueAsString(bodyMap);
// 4. 发送请求
long timestamp = System.currentTimeMillis();
Request request = new Request.Builder()
.url(API_URL + "?t=" + timestamp)
.addHeader("Access-Id", ACCESS_ID)
.post(RequestBody.create(jsonBody, MediaType.parse("application/json")))
.build();
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) throw new RuntimeException("HTTP Error: " + response.code());
String resStr = response.body().string();
Map resMap = mapper.readValue(resStr, Map.class);
// 5. 解析响应
if ("200".equals(String.valueOf(resMap.get("code")))) {
Object dataObj = resMap.get("data");
// 生产环境通常返回加密字符串,需解密
if (dataObj instanceof String) {
String decryptedJson = AesUtils.decrypt((String) dataObj, ACCESS_KEY);
return mapper.readValue(decryptedJson, Map.class);
}
return (Map) dataObj; // 调试模式可能返回对象
} else {
throw new RuntimeException("Business Error: " + resMap.get("message"));
}
}
}
/**
* AES-128-CBC 安全工具类
*/
static class AesUtils {
// 模拟加密 (生产环境请使用 javax.crypto 实现)
public static String encrypt(String content, String key) {
System.out.println("[AES] Encrypting payload...");
return "MOCK_JAVA_ENCRYPTED_BASE64_STRING";
}
// 模拟解密
public static String decrypt(String content, String key) {
System.out.println("[AES] Decrypting response...");
// 模拟返回 JSON
return "{\"flag\":1, \"ppcm_behav_score\":750, \"ppcm_d7_qynum\":2, \"ppcm_m3_overnum\":0}";
}
}
}
三、核心数据结构解析
在 Java 工程中,建议将返回的 JSON 数据映射为强类型的 DTO(Data Transfer Object),以便于后续的业务处理。
-
数据层级设计:
ApiResponse<T>: 泛型封装类,包含code,message和data。PaymentIndexDTO: 核心业务数据类,对应解密后的 data 内容。
-
类型映射建议:
- 数值型:如
ppcm_d7_qynum,建议使用Integer。 - 比率型:如
ppcm_m1_fail_neh_repnum_ratio,建议使用BigDecimal以保证精度。 - 空值处理:接口返回的
1应在 Getter 方法中通过逻辑转换为null或自定义的枚举状态,避免干扰计算。
- 数值型:如
四、字段详解
以下表格精选了在Java后端开发中,构建风控实体类(Entity)时最常引用的字段。
1. 评分与风控标识 (Risk Identifiers)
| 字段名 | 含义 | Java类型 | 说明 |
|---|---|---|---|
| flag | 查得标识 | Integer | 0/1,用于快速熔断逻辑 |
| ppcm_behav_score | 支付行为评分 | Integer | [300-900],建议封装为区间枚举 |
2. 查验与借贷统计 (Query & Loan Stats)
| 字段名 | 含义 | 说明/适用类型 |
|---|---|---|
| ppcm_d7_qynum | 近7天总查验次数 | 高频对象,反映短期资金饥渴度 |
| ppcm_m1_bank_qynum | 近1个月银行查验次数 | 银行渠道申请记录 |
| ppcm_m3_nbank_fin_qynum | 近3个月消金查验次数 | 非银机构申请记录 |
| ppcm_latest_qytoday | 最近查验距今天数 | 离散值,建议转为 LocalDate 计算 |
3. 履约与逾期分析 (Performance & Overdue)
| 字段名 | 含义 | 说明/适用类型 |
|---|---|---|
| ppcm_m12_succ_repnum | 近1年还款成功次数 | 信用累积指标 |
| ppcm_m3_overnum | 近3个月总逾期次数 | 核心阻断指标 |
| ppcm_m1_fail_neh_repnum_ratio | 余额不足失败占比 | 资金链风险预警 |
| ppcm_m6_p4_overamt | M4+严重逾期等级 | 黑名单判定依据 |
五、应用价值分析
借助 天远API 与 Java 生态的紧密结合,企业可构建高可靠的风控中台:
-
自动化审批流 (Workflow Integration) :
- 集成 Camunda 或 Activiti 工作流引擎。在“初审”节点调用本API,将
ppcm_behav_score存入流程变量。 - 若分数
< 600,自动路由至“拒绝”分支;若> 750,路由至“自动放款”分支。
- 集成 Camunda 或 Activiti 工作流引擎。在“初审”节点调用本API,将
-
规则引擎对接 (Rule Engine) :
- 将 API 返回的
PaymentIndexDTO直接作为 Fact 对象插入 Drools 内存。 - 编写 DRL 规则:
rule "Reject High Frequency Query" when $p: PaymentIndexDTO(d7QueryNum > 5) then $p.setReject(true); end。
- 将 API 返回的
-
数据清洗与数仓落表 (ETL) :
- Java 服务作为 Consumer 消费申请单消息,调用 API 补全数据。
- 清洗逻辑:将所有的
1转换为空值,将ratio字段乘以 100 转为百分比,最终写入 Hive 或 ClickHouse 供 BI 分析。
六、API精细化的策略部署
本文档详细阐述了在 Java 环境下对接 天远API 支付行为指数产品的最佳实践。通过强类型的代码封装与严格的安全传输机制,开发者可以确保风控数据在企业内部流转的高效性与安全性。
对于架构师而言,利用 Java 的多线程与连接池技术,可以轻松应对高并发的信贷审批请求;对于风控策略人员,丰富的字段维度(如 ppcm_ 系列)为精细化的策略部署提供了无限可能。建议在投产前,务必在测试环境完成全链路的加解密压测,确保服务在高峰期的稳定性。
七、数据合规与隐私安全声明
无论是使用 Python、Java、PHP 还是 Go 语言接入 天远API,技术实现仅仅是数据赋能业务的起点。在利用 信贷行为数据洞察 等涉及个人信用的高敏感度接口进行风控决策时,数据合规与隐私保护 始终是企业不可逾越的红线。
天远数据严格遵循《个人信息保护法》及相关法律法规,要求开发者在调用接口时必须确保已获得用户的明确授权(即请求参数中 authorized 必须为 1,且保留真实的授权凭证)。我们强烈建议企业在数据采集、传输(全程加密)及存储的全生命周期中建立严格的隐私保护机制。这不仅是满足监管合规的基本要求,更是构建用户信任、保障企业业务长期稳健发展的基石。