dpl/docs/maintenance/BUSINESS_RULES.md

36 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 业务约束
## 邮件渠道
- 验证码、登录链接、工单回应邮件通知优先 Resend;工单通知须有有效用户邮箱。额度耗尽或明确无法使用时走常规邮箱。
- 其他通知、人工群发与来信自动回复使用常规邮箱;收件通过该邮箱 IMAP。不能把“Resend 支持收件 API”理解成已有 IMAP 邮箱。
- 额度采用官方用量查询与本地预占;当前查询缓存 15 秒,并非每封都查。日/月限制有免费档保护,默认 100/3000,以实际配置及官方结果为准。
- 发送超时属于结果未知,不直接跨渠道重复发。已提交是接口/SMTP 接受;Resend 已投递需投递事件或状态核对,不等于已读。普通 SMTP 不能假装具有投递回执。
- 回调必须通过签名和事件去重。回调密钥可选是允许仅用状态核对,并非允许无签名回调。
- 来信加密保存;普通来信不要求网站绑定邮箱。按发件地址北京时间每自然日只自动回复一次。同一来信不再次回复。过滤退信、自身、自动与列表邮件,防止循环;限制不能阻止攻击者换邮箱。
- 日报北京时间每天 08:00,通过 master 当前默认会话;默认目的地及发送授权已经由用户确认,但任何后续目的地/授权变化仍需核对。真实发送和定时调度分别验收。
## 自动邮件三档
| 档位 | 提醒类自动邮件 | 实际套餐到期通知 |
| --- | --- | --- |
| 一档 | 原有逻辑 | 按现有用途与用户设置判断,不扩大旧行为 |
| 二档 | 关闭流量及到期前提醒等 | 仅允许启用二档之后新到期的用户,不补历史到期 |
| 三档 | 关闭 | 关闭 |
管理员人工群发、验证与登录邮件、工单回应通知、来信自动回复始终不受档位影响。到期通知只有后台允许且用户未关闭提醒才发;任一方关闭均不发。改档要核对排队任务发送时的再次判断,恢复档位不补发已取消任务。
## 品牌与后台
邮件发件名称使用 app_name,正文 Logo 与名称并排、保持协调的小间距;页脚链接是网站正式主页,不能使用 deeplink-system.com 发信服务域名代替主页。收件箱头像由邮箱客户端决定,正文 Logo 不能强制控制它。
后台管理员权限必须在账号数据与实际登录中验证。路径变更需同时验证 HTML、资源加载和登录仪表盘;不能仅依靠 200 响应。密码、SMTP/IMAP/API 凭据不得写进维护指南、Git 提交或截图。
## 支付与授权边界
支付优先复用已有配置;涉及支付代码修改需按此前用户边界先确认具体改动。2026-10-11 用户已授权补齐 EPay 支付状态、订单金额及关联信息校验,随后指定支付对接仅在线上联调,不调整本地支付配置。空中支付已有商户设置尽量保留,需要新增的设置可添加。不得把邮件发布顺便混入支付变更,也不得未经授权执行真实付款。
常规已授权的修复、验证、文档与 Git 发布继续推进;涉及删除不可恢复数据、变更账号权限范围、新的外部数据传输目的地等敏感边界需要明确授权。已有授权不用重复询问。备份、脱敏与隔离数据不自动等于完成真实业务验收。
EPay 按空中支付 V1 文档签名(忽略 sign、sign_type 和空值,参数不进行 URL 编码)。回调须验证签名、成功状态、商户、指定支付类型、订单所属渠道及实付金额(订单金额加手续费),取消订单或冲突交易号不能开通;相同成功回调保留现有订单幂等处理。