依据通联支付机构类VA接口文档规范,为 对接GCP 机构 VA API 自动生成: 带逐字段中文注释的 DTO、请求 / 响应模型、业务服务、通知处理器,以及真实 HTTP 集成测试(不使用 Mock HTTP 客户端); 签名逻辑复用 gcp-api-quick-integration 组件。
名称: gcp- api-organcus business-model-generator. 描述: 生成每个字段中文文档的 DTO, 请求/响应模式, 业务是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
在已完成签名底座(gcp-api-quick-integration)的前提下,仅凭内嵌规范生成第二至第六章对接代码:
唯一规范来源:embedded-organ-va-chapter2-6-spec.md。
生成对接代码时须同时满足:
chapter2、chapter3、Chapter2Models 等章节标识;应使用 业务域名称(例如 VA 交易、账务、受益人、文件、子客户等),与内嵌规范中的接口分组语义一致。X-AGCP-Auth、敏感 keyid 等,可截断或掩码)。若底座已具备同等日志,业务层不得重复刷屏,但须保证联调路径上至少有一处完整可见。上送 JSON 时,字段值为 null 的键不得出现在报文中(禁止 "bnfid": null 等);序列化使用 NON_NULL(或语言等价物),且 SHA256 摘要与签名必须基于与 HTTP 实体完全一致的 UTF-8 字节(见 ../gcp-api-quick-integration/implementation-pitfalls.md 第 2.1 节)。…gcp.organva 或客户指定的 …integration.gcp.organva),其下再分子包(client、config、security、service、handler、model 及按业务域分的 model 子包);避免与现有业务包混在同一目录或随意散落在 com.example.* 根下。public static class 嵌套」作为唯一形态(客户难以在 IDE 中导航,且常见诉求是 setXxx 链式/分步赋值)。extends(如修改类继承注册类)或组合,仍为独立文件。@Getter / @Setter(Lombok) 或 手写 getter/setter;禁止仅提供 public 字段却无访问器、却要求客户以「嵌套类名 + 字段」方式拼装(与上述独立类 + setter 目标冲突)。.java 源文件须为 UTF-8 且无 BOM(避免 javac 报 ufeff 非法字符)。embedded-organ-va-chapter2-6-spec.md 中对应接口表格一致,禁止臆造规范未出现的含义。/** … */ JavaDoc;正文以规范表 「中文名称」 为主,并酌情并入 「必输」「备注」 要点(可精简,不得丢失必输/条件必输/枚举取值等关键语义)。类级 JavaDoc 可写明对应接口 path 与方向(合作方→通联 / 通联→合作方)。使用 Lombok 时注释仍写在 字段上(IDE 一般在字段与 setter 调用链上可查阅;若团队要求 getter 上可见,可按项目既有 lombok.config 配置处理)。""" / #、C# /// 等),同样须逐字段中文说明,来源仍为内嵌规范。OrganVaCusinfoBasePayload),各字段同样须带中文注释;若字段为「整段 JSON 字符串」类型(如 organvacusinfo),注释中说明「内容为 1.1 客户基础信息 JSON 字符串」等,与规范章节一致。当目标栈为 Java + Spring Boot 且生成 合作方 → 通联 的出站 JUnit 测试时,须遵守:
GcpOrganVaHttpClient、RestClient 封装等)使用 @Mock、@MockBean、@Spy 等绕过真实 TLS/签名/序列化链路;测试须能观察到客户端日志中的 URL、body、状态码与响应体(与「可观测性」一致)。@SpringBootTest(classes = …):测试类所在包往往与 @SpringBootApplication 不同包,须 显式 指定含 @SpringBootConfiguration 的启动类,避免 Unable to find a @SpringBootConfiguration。.gitignore 覆盖的本地文件(如项目根目录 application-local.properties),主配置用 spring.config.import=optional:file:./application-local.properties;测试侧用 @TestPropertySource(locations = "file:./application-local.properties") 等与本地联调一致。不得在生成的业务源码中硬编码私钥/平台公钥。@EnabledIf(或等价)检测文件存在性后 整类跳过,避免无密钥时构建失败;有文件时 必须 发起真实请求。@Test 方法,注入真实 …Service,调用后断言响应非空或断言 rspcode 等业务约定(具体断言由客户按环境调整时,须在交付说明中写明)。gcp-api-quick-integration 生成底座,且生成后须满足 signing-and-verify-spec.md 与 implementation-pitfalls.md(见该 Skill 目录),再继续本 Skill。embedded-organ-va-chapter2-6-spec.md 生成第二至第六章代码(DTO/模型/Service/Handler)。@SpringBootTest + 真实 Service/Client,禁止 Mock HTTP 客户端);至少能跑通 TLS 与签名并收到网关 HTTP 响应;可按接口补充断言或异常场景说明。regcus 必须按规范将 organvacusinfo、organvainfo、uboinfo 作为 JSON 字符串上送。application-local.properties(或等价)启用与跳过;若生成 Java 且目标为 Java 8,禁止在测试与公共工具类中使用 String.isBlank、Path.of、Files.readString 等仅高版本 JDK API。application.properties 后建议 mvn clean 避免 target/classes 残留旧配置。output-checklist.md)gcp-api-quick-integration 约定;算法细节以 signing-and-verify-spec.md 为准)。以下问题多由 签名底座与网关规范不一致 或 运行环境假设过新 引起,生成业务层时须在交付物与说明中一并规避:
| 问题 | 处理 |
|---|---|
网关验签报 Bad signature length |
底座侧 X-AGCP-Auth 须为小写 hex,非 Base64;分隔符为 : |
X-AGCP-Date / Send / Crdt 与文档不一致 |
严格按 signing-and-verify-spec.md:yyyyMMddHHmmss、send=date+"000"、Crdt=keyid:yyyyMMdd:gcpservice |
| 回调验签失败 | Handler 侧对 X-AGCP-Auth 做 hex 解码;支持整段 GCP1-RSA-SHA512:hex 截取 |
| 私钥无 PEM 头 | 密钥加载须支持 无头 PKCS#8 Base64(见 implementation-pitfalls.md) |
| Java 8 编译失败 | 工具类/测试避免 Java 11+ API |
| 已改配置仍读旧值 | 提示 mvn clean 或核对 IDE 使用的 classpath |
| 客户误以为测试已打网关 | 默认交付真实 HTTP 集成测试;文档写明须配置本地密钥与 application-local.properties(或等价),且无配置时 @EnabledIf 跳过类 |
Java 编译报 非法字符 ufeff |
源文件以 UTF-8 无 BOM 保存;勿在 package 行前插入 BOM |
底座侧完整排障表:.cursor/skills/gcp-api-quick-integration/implementation-pitfalls.md。
embedded-organ-va-chapter2-6-spec.mddependency-contract.mdoutput-checklist.mdexamples.md../gcp-api-quick-integration/signing-and-verify-spec.md、../gcp-api-quick-integration/implementation-pitfalls.md相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.3万人学习
共49课时 | 82.7万人学习
最新文章