23 Commits
Author SHA1 Message Date
Logan.Li 83a3630404 feat(settings): 运行配置中心——.env 业务参数统一到后台页面维护
CI / backend (push) Canceled after 0s
- 新增 app_configs 表与 appconfig 注册表:读取优先级 页面 → .env → 默认,删除即回退
- 页面可配 7 项:支付回调基址、成功回跳、Webhook 密钥(加密入库)、未验签放行开关、CORS、可信代理、GeoIP 路径
- 引导密钥(JWT_SECRET / OPSLIC_MASTER_KEY / OFFLINE_LICENSE_SEED)与部署参数只读展示掩码+指纹,永不入库
- 校验:URL 格式、密钥长度≥16、CIDR、release 下禁止开启未验签回调;变更写审计日志
- 消费点改造:支付回调地址、Waffo 回跳、webhook 验签、可信代理、CORS、GeoIP 统一走配置中心
- 前端新增「审计与设置 → 运行配置」页(分组表格 + 来源标记 + 编辑弹窗 + 恢复默认)
- .env.example 补注释:哪些必须留在 .env、哪些已收敛到页面
2026-11-01 06:17:58 +08:00
Logan.Li 7d53c6ed3c feat(payment): 后台「支付配置」支持微信支付与支付宝凭据管理
后端:
- 新增 payment_configs 单行配置表;APIv3 密钥、应用私钥/公钥以 AES-256-GCM 密文入库(enc:v1 前缀,主密钥取 PAYMENT_SECRET_KEY,缺省回退 JWT_SECRET 派生)
- 证书/私钥落 PAYMENT_CERT_DIR(默认 /data/payment-certs),目录 0700 / 文件 0600,不经任何静态路由暴露
- 接口:GET/PUT /api/admin/payment/config、POST /upload(PEM 校验 + 微信证书序列号自动回填)、POST /test(真打官方接口:微信 /v3/certificates 签名校验、支付宝 alipay.trade.query 签名校验)、POST /wechat/platform-certs(APIv3 密钥解密平台证书并落盘)
- 未配置凭据时测试返回 skipped 而不是 500;敏感字段在返回体里一律脱敏

前端:
- /payments 改为「通用设置 + 微信支付 / 支付宝 / Waffo 海外支付」页签(原 Waffo 页整页迁到 views/payments/Waffo.vue)
- 微信:mchid、AppID、APIv3 密钥(密码框 + 掩码回显 + 更换/清除)、证书序列号、支付方式多选、三项证书上传、自动获取平台证书
- 支付宝:app_id、应用私钥(粘贴/上传)、支付宝公钥、网关、RSA2、回调地址
- 菜单归入「审计与设置 → 支付配置」
2026-11-01 05:59:51 +08:00
Logan.Li 630f2819cb feat(auth): 登录页改版并支持「记住密码」
- 左右分栏:左侧品牌区(产品定位 + 三条能力要点),窄屏自动收起只留表单
- 表单补字段标签、记住密码勾选与提示、登录按钮 loading 文案
- 记住密码:本机保存账号密码(XOR+Base64 混淆,非明文),下次自动填充并恢复勾选;取消勾选再登录会清除
- 清掉模板化的单卡片登录页
2026-11-01 05:59:51 +08:00
Logan.Li 7d648a2883 docs: 接入文档页签文案精简 2026-09-14 23:23:56 +08:00
Logan.Li 722b719688 fix: 接入文档页——签名规范深底配色修复;接入模型改CSS时序图(不再字符对齐);补请求参数表/curl自测/信封格式说明 2026-09-14 23:19:46 +08:00
Logan.Li 53678b3ca9 fix: 侧边栏菜单光标保持默认箭头 2026-09-14 23:05:50 +08:00
Logan.Li 473dcd0aab feat: 产品/客户/订单批量删除;接入 GeoLite2 城市库(地理分布/激活记录/审计日志显示归属地);仪表盘趋势图美化 2026-09-14 22:48:14 +08:00
Logan.Li 252ae14aef feat: 离线License批量删除;同步循环加固(启动即跑/pending自动握手/防重入/panic恢复,移至main启动);同步时间显示到秒 2026-09-14 22:08:43 +08:00
Logan.Li 44387835e1 feat: 节点互联双向同步——授权/计划/客户(邮箱)按业务键LWW增量同步,HTTPS+HMAC互联密钥,默认10分钟宽松节奏 2026-09-14 21:33:00 +08:00
Logan.Li 059bbb833a feat: 管理后台新增接入文档页——Rust/Vue/React/CLI/后端代理接入示例 2026-09-14 21:08:39 +08:00
Logan.Li b76111dfc3 feat: 客户端授权防护——响应签名/激活令牌/宽限期/换座限制/在线清扫/疑似共享标记 2026-09-14 21:08:39 +08:00
Logan.Li 37d9e8ca56 fix: 测试包年商品改用 USD,避免 CNY 不被支持
Waffo 测试侧 Yearly Product 仅支持 USD;按 Product ID 自动选币种。
2026-08-13 00:13:07 +08:00
Logan.Li 2b44e8dcb3 fix: 仅保留 Waffo,并修复调试包年误用永久 Product
调试不再把兼容字段 product_id 覆盖到包年;包年禁止回落永久商品;下单强制走 Waffo。
2026-08-13 00:04:22 +08:00
Logan.Li d94da2129c fix: 支付页去掉货币列,包年/永久货币由后端自动带
Product 映射只保留计划与 PROD_xxx;包年默认 CNY、永久默认 USD,避免误填干扰。
2026-08-12 23:47:31 +08:00
Logan.Li 7c146cb639 fix: 修复支付页测试/生产 Product 映射串用与无法保存
切换环境时先暂存再切换;后端 Profile 不再串用另一侧商品;支持一键填充 OpsXshell 与跨环境复制,调试使用当前页映射。
2026-08-12 23:35:27 +08:00
Logan.LiandCursor 9b79eabd34 fix: 修复收入统计 404,并隔离支付测试/生产配置
Dashboard 收入接口路径对齐;登录页去掉「授权管理平台」;Waffo 测试/生产密钥与 Product 映射分环境保存。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 22:37:22 +08:00
Logan.LiandCursor 76bba729f1 chore: 清理设置页多余文案并移除未使用的 License 模板
支付已迁至独立菜单;模板未接入发证流程,前后端入口一并下线。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 22:01:02 +08:00
Logan.LiandCursor 4c46088f4f feat: 客户关联产品并支持按产品圈选通知群体
新增客户-产品多对多关联,列表可按产品筛选并复制邮箱;发证/下单自动回填历史关联。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 21:58:35 +08:00
Logan.LiandCursor d0e1ca3729 feat: License 支持筛选多选批量删除
仅已吊销或已过期可删,有效授权自动跳过;单条删除同步限制。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 21:53:34 +08:00
Logan.LiandCursor f26e787cfc fix: 离线证到期重签空邮箱撞唯一索引
复用 customer_id/同名客户,禁止重复插入空 email;重签前端带回原客户。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 21:49:55 +08:00
Logan.LiandCursor bac72e6945 fix: 按评审报告止血支付漏洞并加固授权链路
废除浏览器回跳自助结算,通用 webhook 强制密钥鉴权,Waffo 支持验签与未知事件忽略;重构订单状态机/激活占座/SQLite WAL,并补备份、readyz、限流与前端导出/登录页安全修复。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 21:26:58 +08:00
Logan.LiandCursor 8cc2c83f9d feat: 通用授权后台、离线证、Waffo 支付页与仪表盘加强
支持多产品计划展示、LICOFF 离线签发、支付独立配置与调试,以及分析看板;同步更新 README 与集成文档。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 20:25:46 +08:00
Logan.Li 4ae318335c feat: 完成 opsx-licence 许可证管理平台全栈实现
基于 opsx-web-lite 框架(Go+Gin+Vue3+Element Plus)构建许可证管理服务器,
业务域参考 Licence 服务器 Web 版。

【后端 - 4层架构】
- 认证:单 Admin 表 + JWT(HS256)
- 核心授权域:Product / Customer / License / Activation
  · License 生成/验证/激活/机器绑定/心跳/续期/吊销
  · 客户端契约接口:/api/v1/license/{verify,activate,deactivate,heartbeat}
- 定价订单:Plan / Order / 支付网关配置
- 防重复购买:CustomerEntitlement + 幂等支付 webhook + 手动发放
- 分析审计:Dashboard 统计 / Analytics / AuditLog / Setting 管理

【前端】
- Dashboard(ECharts 图表)、产品、客户、License、计划、订单、权益、日志、设置
- 9 个完整 CRUD 业务页面 + 登录/布局

【部署】
- SQLite + 单二进制(//go:embed 嵌入前端)
- 开发:./run.sh start(前端5181/后端9001)
- 生产:./run.sh build && ./run.sh binary start
- 默认账号:admin/admin

Author: Logan.Li
2026-08-07 15:02:00 +08:00