2.4 KiB
2.4 KiB
征信解析发起接口成功判断调整实施记录
背景
联调日志显示,征信解析发起接口 /api/service/interface/invokeService/xfeature 已返回外层 success=true、code=10000,并在 data.mappingOutputFields.message 中返回“文件写入成功,流水号为...”。但系统仍按结果接口的 mappingOutputFields.status_code=0 判断发起接口成功,导致“文件写入成功”被误判为失败,后续结果接口未继续查询。
修改内容
-
CreditParseClient- 发起接口改为校验外层
success=true、code=10000,并校验发起层data.status=1、data.reasonCode=200。 - 结果接口改为与发起接口一致,校验外层
success=true、code=10000,并校验data.status=1、data.reasonCode=200。 mappingOutputFields.status_code不再作为/xfeatureResult是否成功的判断条件;结果接口返回成功后,仅通过payload是否为空判断是否继续轮询。- 接口异常时优先返回
reasonMessage,其次返回mappingOutputFields.message。
- 发起接口改为校验外层
-
响应对象
CreditParseInvokeData新增status、reasonCode、reasonMessage字段。- 对
data层开启未知字段忽略,适配发起接口返回的traceId、procCode、bizId等额外字段。
-
Mock 与文档
lsfx-mock-server发起接口和结果接口成功返回均补充status=1、reasonCode=200。- Mock README 示例同步更新。
-
测试
- Java 单测改为使用发起接口真实成功结构。
- 新增发起接口
status/reasonCode失败时不继续查询结果接口的断言。 - Java 单测增加
/xfeatureResult返回status_code非 0 但status/reasonCode成功时仍继续落库的覆盖。 - Mock 测试同步校验发起接口和结果接口的
data.status=1、data.reasonCode=200。
影响范围
- 仅影响征信解析双接口调用链的成功判断与本地 Mock 返回结构。
- 不涉及前端页面、数据库结构、征信 payload 字段映射和落库逻辑。
验证
mvn -pl ccdi-lsfx -Dtest=CreditParseControllerTest test:通过,8 个用例成功。mvn -pl ccdi-info-collection -am -Dtest=CcdiCreditInfoServiceImplTest -Dsurefire.failIfNoSpecifiedTests=false test:通过,5 个用例成功。cd lsfx-mock-server && python3 -m pytest tests/test_credit_api.py tests/test_startup.py -q:通过,9 个用例成功。git diff --check:通过。