Files
sub2api/backend
erio 9ed977dba2 feat(payment): validate provider config at save time + loosen wxpay pair rule
**保存时校验** — admin 保存 enabled 的 provider 时,调用 provider.CreateProvider 做一次构造器校验(只在 enabled 时),把原本只在创建订单才暴露的配置错误提前到保存那一刻。已有的结构化错误(WXPAY_CONFIG_MISSING_KEY 等)直接给前端 i18n 用。

**wxpay 校验放宽** — 之前 publicKey/publicKeyId "必须成对"的规则过于严格:DB 里可能残留历史 publicKey(没 publicKeyId),用户想走老平台证书模式但被 pair violation 拦住。改为:
- publicKeyId 非空 → 必须有 publicKey(报 WXPAY_CONFIG_MISSING_KEY key=publicKey)
- publicKeyId 空 → publicKey 视为历史残留,不使用也不报错

移除 WXPAY_CONFIG_PAIR_VIOLATION 错误码。

- payment_config_providers.go: CreateProviderInstance 和 UpdateProviderInstance 新增 validateProviderConfig;Update 要先取旧记录决定 finalEnabled 和 merged config
- wxpay.go: 去掉成对校验,换成"publicKeyId 非空才要求 publicKey"
- wxpay_test.go: 更新用例反映新语义
2026-04-20 19:15:38 +08:00
..
2026-04-20 18:52:33 +08:00
…