|
|
43c349919d
|
fix: 防止用户误取消已付款订单-回调重新激活+2分钟内禁止取消+成功页30s超时提示
|
2026-06-15 10:37:28 +08:00 |
|
|
|
b806d0c7e0
|
feat: 支付成功页轮询确认+升级页onShow自动同步pending订单
|
2026-06-07 10:24:52 +08:00 |
|
|
|
f8bee8f8b4
|
fix: 后台定时清理refresh_token+清理payment.rs死代码
|
2026-06-05 22:35:02 +08:00 |
|
|
|
ef05d4fed6
|
fix: 续费页按钮文案按用户状态区分(续费/开通)
|
2026-06-02 13:21:05 +08:00 |
|
|
|
12437975f3
|
feat: 网页续费页UI大改-横向卡片布局+续费文案+响应式优化
|
2026-06-02 13:19:22 +08:00 |
|
|
|
f7f8a1e03f
|
fix: 全站文案统一为环境计算助手
|
2026-06-02 13:16:42 +08:00 |
|
|
|
173bd25d74
|
fix: 网页端支付页响应式设计-紧凑布局+手机端适配
|
2026-06-02 13:13:55 +08:00 |
|
|
|
ebf2fcc383
|
fix: 网页端已付费用户显示续费套餐(原只显示会员信息无套餐)
|
2026-06-02 13:11:43 +08:00 |
|
|
|
62386052c8
|
fix: 首页文案大气稳定度判定→环境计算助手
|
2026-06-02 13:08:44 +08:00 |
|
|
|
0db36dd0f0
|
fix: 二维码改用静态文件(static/QR.jpg)代替损坏的内联base64
|
2026-06-02 13:06:32 +08:00 |
|
|
|
c27c86d764
|
feat: 首页添加微信小程序二维码+fix: switch-env.sh容器内路径
|
2026-06-02 13:04:12 +08:00 |
|
|
|
2c0bdf18ce
|
fix: Mock支付增加MOCK_PAY_KEY密钥验证(规则:支付宝优先>启用开关>请求头签名)
|
2026-06-02 12:08:05 +08:00 |
|
|
|
5d6be08f32
|
fix: 修复2个支付安全漏洞-未经认证的payment_success确认+未禁用mock_confirm
|
2026-06-02 11:46:26 +08:00 |
|
|
|
bcd9bc81e4
|
fix: 创建订单前查重-防止同一用户同一套餐重复pending订单
|
2026-06-02 11:38:23 +08:00 |
|
|
|
6893fcb5d9
|
feat: 根页面改为小程序介绍页(响应式设计)
|
2026-05-31 23:22:59 +08:00 |
|
|
|
49b32a8b2d
|
fix: 添加季卡/半年卡HTML卡片+原价删除线显示
|
2026-05-27 09:30:54 +08:00 |
|
|
|
55259a96a6
|
fix: 套餐定价更新+新增季卡/半年卡+SQL interval适配
|
2026-05-27 09:18:20 +08:00 |
|
|
|
8d7e9d8ca1
|
fix: notifications查询type列别名与sqlx rename冲突导致500
|
2026-05-26 15:08:57 +08:00 |
|
|
|
640f57b6da
|
feat: 通知系统(notifications表+CRUD接口+管理员接口)
|
2026-05-26 15:02:49 +08:00 |
|
|
|
80434047df
|
fix: 支付页面文案-检测额度→存储空间,无限次→无限制
|
2026-05-26 10:35:54 +08:00 |
|
|
|
da4af50b45
|
fix: mock_login支持X-Mock-Key请求头鉴权 + deploy自动配置随机密钥
|
2026-05-25 16:27:01 +08:00 |
|
|
|
722ab837d0
|
refactor: is_paid→is_member, paid_expires_at→membership_expires_at 全局重命名
|
2026-05-25 15:33:31 +08:00 |
|
|
|
94ad9ba190
|
fix: payment_page支持resume参数复用已有待支付订单
|
2026-05-25 14:59:33 +08:00 |
|
|
|
ae46e0b0fc
|
fix: sync-order仅查询状态不确认订单(防止误激活)
|
2026-05-25 14:50:43 +08:00 |
|
|
|
d5f87d3d85
|
fix: rsa2_sign后备逻辑改为from_pkcs8_der(支持裸Base64私钥)
|
2026-05-25 14:13:32 +08:00 |
|
|
|
e6e04979dc
|
fix: get_user_quota 返回 was_paid 字段
|
2026-05-25 13:45:55 +08:00 |
|
|
|
fed95531fe
|
fix: 维护模式使用500条临时限额而非完全跳过(防滥用)
|
2026-05-25 13:34:40 +08:00 |
|
|
|
f82dd8d5de
|
feat: 添加PAYMENT_MAINTENANCE_MODE维护模式 + ServiceUnavailable错误
|
2026-05-25 13:32:16 +08:00 |
|
|
|
72cbb8ff28
|
fix: 添加用户取消订单 + 管理员手动退款端点
|
2026-05-25 13:09:54 +08:00 |
|
|
|
5f3b919e92
|
fix: 添加后台定时重试 + 管理员强制确认 + 审计日志 + mock守卫
|
2026-05-25 13:04:19 +08:00 |
|
|
|
af2837e15e
|
fix: 修复付费机制失效处理的5个后端缺口
- 新增POST /payment/refund-notify支付宝退款Webhook
- 新增待支付订单自动清理(超过24h→cancelled, 含启动清理)
- 新增web登录码过期启动清理
- 永久会员用NULL替代硬编码2099-12-31
- 修复缺失的is_paid_active数据库函数(改用内联SQL)
|
2026-05-25 12:07:15 +08:00 |
|
moira
|
f8a95c7417
|
feat: 集成 Sentry 错误监控 + 前端错误上报中继
后端:
- Cargo.toml 添加 sentry/sentry-actix/sentry-tracing (v0.48)
- main.rs 条件初始化 Sentry(SENTRY_DSN 环境变量控制)
- 新增 handlers/sentry.rs — POST /api/sentry/events 前端中继端点
- sentry-actix 全局中间件 + sentry-tracing 自动捕获 tracing::error!
- .env.example 添加 SENTRY_DSN / SENTRY_TRACES_SAMPLE_RATE 配置
前端:
- 新增 utils/sentryReporter.ts (批量上报/防抖/开发环境跳过)
- app.ts 全局错误处理接入 Sentry (wx.onError/onUnhandledRejection/onPageNotFound)
Sentry 未配置 DSN 时完全无操作,无性能开销
|
2026-05-14 10:12:09 +08:00 |
|
moira
|
27c8979690
|
fix: 全量代码审计修复—安全/死代码/错误处理/配置净化
P0 安全修复:
- 支付宝回调验签 (alipay_notify BTreeMap + rsa2_verify)
- JWT fallback 'default_secret' 改为 .expect() (panic保底)
- 安全响应头中间件 (CSP/X-Frame-Options/HSTS)
P1 死代码清理:
- 移除孤儿文件 src/alipay.rs (284行, 无mod注册)
- 移除Cargo未使用依赖 (actix-files/error/log/hex/digest)
- log::info! → tracing::info! (auth.rs)
- 移除 config.rs server_host + 3个TOML定义
P1 质量修复:
- 修复 weather.rs unwrap() → unwrap_or
- 修复 auth.rs+payment.rs 错误吞咽 (add tracing::warn)
- 修复 main.rs 3x parse().unwrap → unwrap_or
P3 运维:
- 新增 scripts/backup-db.sh (定时备份用)
- 新增 README.md (快速入门文档)
- deploy.sh 集成 backup-db.sh 上传
|
2026-05-13 17:20:31 +08:00 |
|
|
|
061c2bbb5a
|
fix: 修复多处代码质量问题-移除unwrap/println/dead-code/重复代码/错误吞咽
|
2026-05-11 13:38:41 +08:00 |
|
|
|
2c66528205
|
fix: goPay 加载状态、轮询 5min 超时;成功页已有小程序引导
|
2026-05-07 17:33:30 +08:00 |
|
|
|
df64877a5d
|
fix: 推荐标签移到包年;清理永久套餐的残留 CSS
|
2026-05-07 17:30:11 +08:00 |
|
|
|
e074171d44
|
fix: 网页端套餐只保留包月和包年,移除永久
|
2026-05-07 17:26:16 +08:00 |
|
|
|
228a9f3b3b
|
feat: 添加 GET /api/payment/orders 接口,返回用户订单记录
|
2026-05-07 17:12:31 +08:00 |
|
|
|
a05b46dfe2
|
feat: 添加 POST /api/payment/sync-order 接口,用于强制同步订单会员状态
|
2026-05-07 16:58:55 +08:00 |
|
|
|
c82bb303f7
|
fix: payment/success 同步确认订单(防止异步回调未到)
|
2026-05-07 16:52:41 +08:00 |
|
|
|
aab0377b3a
|
fix: 支付宝表单 method 改为 GET(沙箱 page.pay 不支持 POST)
|
2026-05-07 16:39:31 +08:00 |
|
|
|
05b6520140
|
fix: 支付宝表单添加 HTML 转义,防止 JSON 双引号破坏属性
|
2026-05-07 16:27:27 +08:00 |
|
|
|
d884914338
|
fix: 支付宝表单使用原始值,浏览器自动处理URL编码
修复 double-encoding 问题:表单 hidden input 不应预先 URL 编码,
浏览器提交时会自动编码,预编码会导致二次编码(如空格变 %2520)
|
2026-05-07 15:37:51 +08:00 |
|
|
|
7a194251be
|
fix: 支付宝签名使用原始值,改用表单自动提交方式
- 修复签名源:使用原始参数值(不进行 URL 编码)
- 改用 HTML 表单自动提交方式代替服务器端 API 调用
- 避免 nginx 代理大响应体的问题
|
2026-05-07 15:19:34 +08:00 |
|
|
|
2046638721
|
feat: 实现 Mock 支付功能,修复支付激活会员问题
- 当未配置 ALIPAY_* 环境变量时,自动启用 Mock 支付模式
- Mock 支付页面点击按钮后调用 /api/payment/mock-confirm 激活会员
- 更新 AGENTS.md 文档说明 Mock 支付配置和使用方法
|
2026-04-28 10:17:26 +08:00 |
|
|
|
ef246db31c
|
fix: 修复支付宝 RSA2 签名问题
- 支持 base64 编码的 PEM 格式私钥(systemd 环境变量)
- 使用 Digest + Pkcs1v15Sign::new() 进行签名(自动哈希)
- 修复 rsa2_sign 和 rsa2_verify 函数实现
|
2026-04-27 14:27:14 +08:00 |
|
|
|
00fea53a4c
|
fix: 修复支付宝 RSA 签名失败问题
- 支持 base64 编码的 PEM 格式私钥(用于 systemd 环境变量)
- RSA 签名/验证前需先用 Sha256::digest() 哈希输入
- 添加 Digest trait 导入
|
2026-04-27 13:53:18 +08:00 |
|
|
|
580e68b58c
|
feat(payment): 支持 URL 参数直接传递 JWT 登录
|
2026-04-27 13:13:32 +08:00 |
|
|
|
aa84bbc4e6
|
feat(auth): 修复网页端登录流程,移除 web_generate_login_code 的 JWT 依赖
|
2026-04-27 09:08:25 +08:00 |
|
|
|
e6048ea010
|
feat(auth): 实现登录限流和性能优化
性能优化:
- 添加数据库索引优化查询性能 (006)
- weather_data: user_id, date, is_favorite 索引
- users: openid 索引
- payment_orders: status 索引
- 新增 refresh_tokens 表支持双 Token 机制 (004)
- 新增 web_login_codes 表支持网页端扫码登录 (005)
安全增强:
- 实现基于 IP 的登录限流 (rate_limiter.rs)
- 滑动窗口算法: 5次/分钟/IP
- 自动清理过期记录
- 429 TooManyRequests 响应
新模块:
- src/rate_limiter.rs: 限流模块
- src/alipay.rs: 支付宝签名模块 (RSA2)
- src/error.rs: 统一错误类型 (含 TooManyRequests)
- src/handlers/meta.rs: 元数据处理器
代码清理:
- 修复 .gitignore 规则,正确跟踪 src/ 和 migrations/
|
2026-04-24 16:13:49 +08:00 |
|