mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-09-24 16:05:44 +08:00
微信从 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} 格式错误」中英文