Files
junhong_cmp_fiber/openspec/changes/allow-wechat-authorization-without-miniapp/proposal.md
邹进 08a7a00cd9
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m25s
fix: 微信授权配置公众号必填、小程序选填
商户池变更把授权完整性实现为公众号与小程序四项凭证都必填,
生产只用公众号 H5、未配置小程序,迁移后授权表为空会导致
C 端微信登录与支付全部失败,后台也无法补建。

- SaveAuthorization 启用时只校验公众号 AppID/AppSecret;
  小程序选填,但 AppID 与 AppSecret 须同时填写或同时留空
- 新增迁移 000240:无授权配置且唯一生效综合配置公众号凭证
  完整时补建启用授权配置;down 不删除数据
- 新增 OpenSpec Change allow-wechat-authorization-without-miniapp

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 23:29:55 +09:00

1.9 KiB
Raw Blame History

Why

商户池变更(add-payment-merchant-pools)把公众号与小程序参数拆入独立的微信授权配置,并把“授权字段完整”实现为公众号与小程序四项凭证都必填:迁移 000210 只在四项齐全时复制授权,后台保存也要求四项齐全。8 月之前小程序一直是选填项。生产只使用公众号 H5、从未配置小程序(2026-10-19 只读核查),迁移后授权表为空,C 端微信登录、OpenID、JSSDK 与微信支付 AppID 会全部返回“微信授权未配置”,后台也无法补建。

What Changes

  • 后台保存微信授权配置:启用时只要求公众号 AppID 与 AppSecret;小程序 AppID 与 AppSecret 选填,但必须同时填写或同时留空。
  • 新增成对迁移 000240:尚无未删除的授权配置、存在唯一当前生效综合支付配置且其公众号凭证完整时,补建一条启用的授权配置(小程序字段按原值复制,可以为空);down 不删除数据。
  • 未配置小程序时,小程序登录与小程序支付沿用现有判定,明确返回配置不可用;公众号相关功能不受影响。

Capabilities

New Capabilities

无。

Modified Capabilities

  • merchant-payment-routing:微信授权配置启用条件改为公众号必填、小程序选填;上线迁移按公众号凭证完整性创建授权配置。

Impact

  • 代码:internal/application/merchantpayment/management.go(SaveAuthorization 校验)。
  • 数据库:新增 migrations/000240_backfill_wechat_authorization_oa_only.{up,down}.sql,只插入数据,不改 Schema;测试环境已有授权配置,执行后无变化;生产执行 000210 后补建一条只含公众号的授权配置。
  • 接口:请求与响应结构不变,仅保存校验与错误文案变化。
  • 回滚:覆盖二进制安全;补建的授权配置保留,可在后台停用或编辑。