Parcourir la source

docs(统一支付平台): 补联调环境边界与回调基址约束

alphaH il y a 1 semaine
Parent
commit
9225ef7530

+ 2 - 0
docs/superpowers/specs/2026-10-20-unified-pay-channel-design.md

@@ -901,6 +901,7 @@ POST /payment/notify/unified/{order|refund}   (免登录)
 2. **再跑菜单**:`db/unified-menu.sql`。执行前先跑脚本头的只读核对:确认 `route_name='payment-unified'` 不存在、role 1/2 存在。
 3. **配置**(按需,改环境变量,不改 `application.yml`):`UNIFIED_PAY_BASE_URL`、`UNIFIED_PAY_NOTIFY_BASE_URL` 等;默认值已写在代码里。
    - **联调边界**:`t-cube.huianrong.com/gateway` 是用户提供的上游(测试页带测试参数)。凭据只在用户手里,**仓库不保存**;`pay-h5-test.html` 含 `APP_SECRET`,**不得复制进仓库**。builder 不需要上游访问权限:单测用自造向量 + 桩传输;真实联调由用户按第 8 步执行。联调脚本(若写)放 `logs/`,不入库。
+   - **联调时的回调地址**:`UNIFIED_PAY_NOTIFY_BASE_URL` 必须指向**本次联调实例自己可达的地址**,不要指向生产域名(`qcsj88888.com`)。否则上游会把测试单的通知打到生产实例,生产侧只能按「未知单号」记 ERROR + 返回 SUCCESS。上游网关是测试还是生产环境尚未确认(§14 #17);若是生产,验收的 1 元是真金。
 4. **构建**:后端 jar + 前端 dist(命令见项目既有构建说明;`mvn` 用绝对路径,不加 `-q`)。
 5. **换 jar/dist**。
 6. **超管录入商户配置**:`mch_no`、`app_id`、`app_secret`、`channel_user_if_code`。
@@ -935,6 +936,7 @@ POST /payment/notify/unified/{order|refund}   (免登录)
 | 14 | 上游是否要求 `notifyUrl` 公网 HTTPS | 默认生产域名 | 部署后看上游是否回调 |
 | 15 | 通知参数是否带 `appId` | 带则必须匹配;未带只记 WARN,不拒收 | 看首个通知的参数键名 |
 | 16 | 一个 `mch_no` 是否对应多个 `app_id` | 当前 `UNIQUE (mch_no)`、一配置一个 `app_id`;通知按 `mch_no` 唯一定位 | 联调确认;若上游确实多 app,改为 `UNIQUE (mch_no, app_id)`,通知需按候选配置逐个验签 |
+| 17 | 上游网关是测试环境还是生产环境 | 按「测试页 + 测试参数」当测试环境用;**未证实** | 用户确认域名归属;若是生产,验收的 1 元是真金,回调地址必须指到联调实例 |
 
 ## 15. 设计裁量与残余风险