Files
sub2api/backend
erio fa00b9b79e feat(payment): wxpay pubkey mode only, eager PEM validation
微信从 2024-10 起强推公钥验签,新商户无法下载平台证书,老商户也陆续被迁移。日志里刚确认 beta 商户被微信 404 拒绝平台证书下载。彻底废弃老模式:

- wxpay.go:
  - publicKey / publicKeyId 加入 required 列表
  - NewWxpay 在保存时主动 parse PEM(privateKey 和 publicKey),格式错立即报 WXPAY_CONFIG_INVALID_KEY 带 {key}
  - ensureClient 只走新公钥验签(NewSHA256WithRSAPubkeyVerifier),移除 buildVerifier 和 downloader 分支
  - 清掉 crypto/rsa、auth、downloader 等不再使用的 import

- providerConfig.ts: publicKey / publicKeyId 两个字段去掉 optional:true → UI 加红星必填

- wxpay_test.go:
  - 引入 generateTestKeyPair 在每次用例动态生成有效 RSA 2048 PKCS8/PKIX PEM
  - 替换原先的 "fake-private-key" 字面量,现在 NewWxpay 会真实解析
  - 移除老模式相关用例(legacy/leftover/pair)
  - 新增 malformed PEM 用例覆盖 WXPAY_CONFIG_INVALID_KEY 分支

- i18n locales: 去掉 WXPAY_CONFIG_PAIR_VIOLATION;新增 WXPAY_CONFIG_INVALID_KEY「{key} 格式错误」中英文
2026-04-20 19:35:12 +08:00
..
2026-04-20 19:16:08 +08:00