dpl/docs/maintenance/STATUS.md

9.9 KiB
Raw Blame History

接手验收状态

文档核对日期:2026-10-11。以下区分本会话检查结果与用户验收确认,不承诺服务器一直保持此状态。

最新代码基线

  • 邮件页签实现版本 13117587c86aa49dafad3467b04d90469f4de2ab;本地提交推送、生产 Git fast-forward 完成。
  • 本地和线上后台实际登录成功;/dove 已验证渲染后台仪表盘。
  • 邮件设置已拆为五页签;无旧悬浮按钮与弹窗。基本设置保留 SMTP,新增 Resend 与档位、收件与自动回复、用量汇报。当前档位三档。
  • 两环境新增页签显示和切换已验收;Resend 页签保存原配置成功。每个扩展页签仅提交本页字段,密钥留空保留。
  • 最新邮件隔离回归:57 测试、333 断言通过。

已有真实联调与限制

Resend 发信、常规 SMTP、配额回退、投递事件回调、master 一次性汇报都曾实测。来信保存、每日一次自动回复曾在本地实测并收到回复。生产 IMAP 连接与增量检查已验证。

用户于 2026-10-11 明确确认“日报送达和自动回复验收 ok”。据此,日报实际送达与自动回复已通过用户验收,不再列为待验收项。本次仅登记该确认,未重新发送邮件、触发日报或读取服务器记录。后续发生异常或变更相关逻辑时重新核验,并检查已处理记录避免重复回复/汇报。

接手注意

  • 生产曾有与邮件无关的教程和文件模式修改,发布时保留了它们。下次仍必须重新核对,不能假定生产工作区干净。
  • 后台资源子模块版本目前锁定 ef5f43da335092cbff8fdf0ad7ff9b4d92d7d0d7;已修复生产未初始化导致的空白问题。
  • 后台邮件 UI 目前由扩展脚本接入已构建的第三方管理界面。升级后台子模块需回归挂载、页签、样式、保存、异步切换和原功能,不能认为 DOM 结构永久稳定。
  • 本地 PHP-FPM 已重载以加载已安装 IMAP;其他环境需独立确认。
  • 独立项目未列入本轮实现;不能把本轮完成扩展为其他聊天任务也完成。

支付配置同步(2026-10-11)

用户授权将本地两条 EPay 配置(支付宝、微信支付)同步到生产,随后要求按资料中新补充的空中支付信息对接线上。两个生产渠道已创建并启用,使用独立生成的渠道标识;通知域名为正式主页 https://dp-link.net。新增资料中的密钥与本地旧配置不同,已按新资料更新线上两个渠道的商户配置,并核对保存值一致。本地商户配置未随该后续要求修改。

生产后台支付列表已实际核对:支付宝、微信支付均显示且开启,通知地址使用正式域名。本次仅修改生产配置数据,未修改支付代码,未创建订单或付款;真实支付和支付回调仍未验收。两次写入前均保存了受保护的加密备份,传输临时私密文件已清除;文档和 Git 不包含商户密钥。

空中支付对接检查与代码修正(2026-10-11)

已实际登录空中支付商户后台,确认账号状态正常、MD5+RSA 兼容模式已启用,提供的新密钥与商户后台一致。已有商户设置未更改;尝试补充空白网站域名时,页面以其他资料未完善拒绝保存,重新读取确认原字段均未改变。接口文档通过每笔请求的 notify_url、return_url 传递回调,不在商户页面单独配置回调地址。

用户授权继续后,已补齐 EPay 回调成功状态、金额(含手续费)、商户及渠道归属校验,并按官方 V1 规则生成签名。隔离测试 5 项、20 个断言通过,覆盖正常/重复回调、错误金额/状态/商户/渠道、缺失/错误签名、取消订单和冲突交易号。语法检查通过。修正已提交推送并通过 Git fast-forward 部署至生产版本 60457487726b95dd7811eea16a625b01cf5c9d69;发布前备份了旧插件和生产既有差异,发布后插件哈希、PHP-FPM 与 Horizon 状态已核对。生产调用空中支付商户查询 API 返回 HTTP 200、业务成功且商户正常。尚未进行真实付款或真实成功回调验收。用户随后要求仅线上联调,本地支付配置保持不动。服务商支付测试页面目前仅展示支付宝按钮;微信通道可用性尚未确认,不能把网站启用微信配置视为通道验收完成。

不付款验收(2026-10-11)

用户明确要求以不做真实支付的方式验收。新增真实控制器与 PaymentService/EPay 插件调用链的隔离测试,使用 SQLite 内存数据库、虚构商户及订单;拦截订单开通任务、禁止外部 HTTP 请求,不操作正式订单。与插件单元测试合计 8 项、53 个断言通过。成功回调返回 success、记录回调号并只派发一次开通任务;签名正确但状态、金额、商户、支付类型或订单不匹配,以及取消订单均不会开通。

本轮验收目标是代码逻辑及接口可达性,不包含真实收款、服务商实际成功回调和正式套餐开通;微信通道仍未得到真实验证。线上隔离检查已完成:生产 PHP 环境以虚构内存订单执行 13 项插件检查全部通过,正式订单写入次数为 0;通过用户指定的远端访问域名请求公网无签名回调,返回 HTTP 422,确认拒绝。生产未安装 PHPUnit 和 SQLite PDO,因此未安装额外依赖,完整控制器内存数据库测试在开发测试环境执行。测试与文档已通过 Git 更新生产至 7a123f8e970c5c404084cd5867d2343824b3f13f。不付款验收按该范围通过;不宣称真实收款、实际服务商成功回调、正式套餐开通或微信通道已通过。

每次维护更新本文件

记录任务、修改文件、测试、提交、是否推送/部署、真实验收结果、尚未完成项与敏感边界。禁止写密码、令牌、原始用户邮件或未经核实的完成结论。

Telegram 工单实现(2026-10-11)

沿用原有 Telegram 插件与机器人接口,未对接 master。新增工单推送与消息关联、管理员私聊绑定及权限校验、更新编号去重、未知发送结果不自动重试、429 延迟重试和现有邮件通知复用。新增设置直接位于 Telegram 设置页面,无悬浮入口。

本地新迁移执行成功;工单与既有邮件回归合计 68 项测试、375 个断言通过,PHP 与 JavaScript 语法检查通过。浏览器验证新增区域显示、保存、刷新持久化以及切换邮件设置后返回恢复;测试开关已恢复推送开启、回复关闭。详细操作见 TELEGRAM_TICKETS.md。

用户已在线上保存机器人令牌;只读检查确认令牌配置存在,官方 getWebhookInfo 成功,但机器人开关仍关闭、回调地址为空、绑定管理员为零。本节记录时新代码尚未部署,真实工单推送、Telegram 回复和邮件通知闭环尚未验收。

Telegram 工单 Git 上线

用户明确批准上线后,实现已提交推送并在生产 fast-forward 至 6c9422d05566e40c3dfa577dae0a57f7afa9f195。发布前数据库完整转储、配置、原提交及生产既有差异已备份到受保护的 /root/codex-backups/dpl/telegram-tickets-20261011;两张新表迁移成功。发布时私密备份用的 umask 导致 Git 新文件不可供运行用户读取,已只修正受影响的非私密代码文件与父目录权限;备份仍保持私密。视图缓存清理、PHP-FPM 重载和 Horizon 重启完成,站点 HTTP 200,两个服务 active,恢复原有 cron。生产既有教程和存储目录修改保留。

线上实际登录后台,新增工单区域显示并保存成功。机器人令牌已配置,但当前机器人未启用、回调为空、管理员未绑定;未点击连接按钮,未发送真实 Telegram 工单或邮件。下一步由管理员在页面连接机器人并通过一次性命令私聊完成身份绑定,再开启回复并做真实闭环验收。代码上线完成不表示真实工单链路已验收。

管理员邮箱汇报核查

检查当前 app 与 plugins-core 发信入口:工单创建/用户追加内容推送 Telegram,管理员回复的邮件收件人为工单提交用户;收款与节点离线通知也通过 Telegram;用量日报由 master 发送 Telegram。未发现专门向管理员邮箱发送上述汇报的代码,因此没有需要移除的管理员邮件汇报实现。本次不新增全局邮箱封锁,不删除验证码、登录邮件、人工群发或正常用户通知;管理员汇报渠道约束已写入 BUSINESS_RULES.md。该核查不是新的真实工单验收。

用户随后明确关闭管理员邮箱汇报应通过开关保留实现,不能删除代码。已更新业务约束;当前尚未找到此类实际邮件入口,本轮没有删代码,也没有添加没有实际对象的开关。若后续增加该类入口,须提供独立默认关闭的开关。线上机器人现已启用,官方回调地址已注册,管理员绑定数仍为零;真实工单链路尚未验收。

Telegram 真实回复排查

管理员完成绑定并开启回复后,已通过正式队列向管理员私聊发送一条隔离测试工单通知。用户确认收到并已使用回复功能发送文字,但现场核对仍未发现管理员回复、关联更新记录或 ticket_reply 邮件。绑定、通知映射、回复权限和官方回调 HTTP 200 均已核对,不能据此宣布真实闭环通过。

补充真实控制器 → 原插件 → 工单与邮件队列的隔离回归,回复按引用消息编号识别而不依赖引用原文;为已绑定管理员增加一小时自动过期、无正文的路由诊断缓存。工单与邮件测试合计 70 项、383 个断言通过,PHP 语法检查通过。修正已提交推送并通过 Git fast-forward 发布至 5b643135e1d197b10819f71a3e501907ffc2c8bf;发布前已备份旧代码及既有差异,PHP-FPM 已重载,PHP-FPM/Horizon 均 active。发布后再次核对测试工单仍无管理员回复或邮件,短期诊断尚无新的管理员消息;真实回复验收仍未通过。