fix(config): 占位凭证清理改为一次性(标记位保护),避免误清管理员填写的真实 AppID

- 历史占位 appId/appSecret 的清理由"每次启动执行"改为"仅首启执行一次",写入 wechat_pay_placeholder_cleaned 标记
- 此后即使管理员填写的 AppID 恰好等于旧占位值(本账真实 AppID),重启也不会被再次清空
- 「拉取小程序模板列表」缺凭证时错误提示改为可操作指引(指明填写位置)
- 回归 87 套件/636 用例全绿;冒烟 5/5 验证 Phase A 首启清理、Phase B 重启保留
这个提交包含在:
xcbyy
2026-10-19 11:00:23 +08:00
父节点 01823a1db4
当前提交 b77827522f
共有 3 个文件被更改,包括 26 次插入 和 15 次删除

查看文件

@@ -3920,7 +3920,10 @@ app.get('/api/admin/message/templates', async (_req: Request, res: Response) =>
try {
const cfg = await resolveWechatPayRuntimeConfig();
if (!cfg.appId || !cfg.appSecret) {
return res.json({ code: 40000, message: '小程序 appId/appSecret 未配置' });
return res.json({
code: 40000,
message: '小程序 AppID/AppSecret 未配置:请在后台「平台配置 → 微信支付商户配置」填写本小程序的 AppID 与 32 位 AppSecret(或设置环境变量 WX_APP_ID/WX_APP_SECRET),保存后重试',
});
}
const accessToken = await getWechatAccessToken(cfg.appId, cfg.appSecret);
const data = await wechatHttpGetJson(