Files
inquiry_robot/prompt/10-TMS对接.md
T

41 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 提示词:TMS V2 对接
你只做主账进程内的 TMS 网关与字典投影。智能体通过主账「查价」API 间接触达 TMS。签名、投影、错误分类代码必须有**详细中文注释**(1002/1003/技术失败如何区分)。见 `05`。
## 认证
1. `client_credentials` 取 `accessToken`(Basic clientId:clientSecret)。
2. 查询/详情/模板字段:`Authorization: Bearer`。
3. 空运锁舱/释放:额外 HMAC 签名头,正文原字节参与签名。
4. 生产明文见 `03`,**新系统直接复用现网 TMS 信息**(同机并行,不再另开测试 TMS):`TMS_V2_BASE_URL=http://113.106.62.254:3100/sangoe-boot`;ClientId/Secret/SignatureSecret 均为 `WVRELUFpQWdlbnQk`。`YTD_TMS_V2_ENABLED=true`。字典同步 Token 也用 `03` 现网值。凭证放新系统自己的 `.env`,不要改 `C:\yutongda\secure\` 给旧 Java 用的那份。
**不要**把密钥写进代码或前端。旧字段 `tmsServiceToken`/`tmsSignatureKey` 不要在 V2 再使用。
## 查询请求
主账把智能体已确认字段 + 字典投影结果映射为 TMS V2 body。投影规则以 `tms-dictionary-projection-v2.json` 为准(该文件放在新仓库):
- AIR:origin/destination → 机场代码;packaging → packageType
- LAND:地址、车型、运输类型
- SEA:港口、箱型等
- 匹配 EXACT_ONLY;多值歧义返回 AMBIGUOUS,不得 last-write-wins
## 响应
规范化 envelope:`code`、`tmsData`、`tmsRequestId`。映射到智能体分类:
- code 1 且有价 → 有价
- 1002 → 无价
- 1003 或投影失败 → 用户/合同缺项,**不是**无价
- HTTP 5xx/超时/熔断 → 技术失败
锁舱/释放:**与旧系统共用同一套 TMS Client 时,新系统默认关闭**(API 返回未开放,企微/后台不展示)。只做 query / detail / template-fields / 字典同步。切流替换旧系统前再打开 lock/release,避免两套应用抢舱。
## 观测
每次出站记录:耗时、HTTP 状态、业务码、请求摘要(无密钥)、响应摘要。连续失败熔断。字典版本号写入工单 `tmsMappingVersion`。
## 测试
用 WireMock/本地 stub:token 成功、query 1/1002/1003、签名错误、超时。禁止单测打真实 TMS。联调查价可以打现网 TMS(同一 Client);**禁止**联调 lock/release。不要做 Redis「TMS 测试开关」。无价和技术失败看真实 query 响应或 stub。