爱发电对接
适用版本 1.0.0 | 后台路径:插件 → 打赏插件 → 设置 → 爱发电
爱发电是可选渠道:开启后平台订单可以通过 Webhook 自动入库,也可以手动同步补录历史订单。插件只通过开放接口读取订单数据,不托管任何资金。
前置条件
- 爱发电账号已开通创作者
- 能访问开发者后台 https://afdian.com/dashboard/dev
- 站点使用 HTTPS,且能被爱发电的服务器访问(Webhook 需要公网可达)
配置步骤
1. 获取开发者凭据
在爱发电开发者后台获取 user_id 与 api token。
2. 填写插件设置
打开「插件 → 打赏插件 → 设置 → 爱发电」:
- 打开「启用爱发电」
- 填入开发者
user_id - 「API 凭据」新建一个 Halo 密钥:键名填
token,值填爱发电 api token;也可以直接选择已有密钥 - 填写「爱发电主页」后,前台打赏页会显示「前往爱发电」入口卡片
3. 配置 Webhook
把下面的地址填入爱发电开发者后台的 Webhook 通知地址:
该路径需要匿名可访问,Halo 会把「有名称段的 POST」按非资源请求处理,插件已在匿名角色中显式放行。若站点前置了 CDN / WAF(如阿里云 ESA),要把这个路径加入白名单,否则爱发电的请求会被人机校验拦截。
4. 补录历史订单
「内容 → 打赏」点击「同步爱发电」,最多拉取最近 250 条订单。后台手动同步不会发送通知,适合一次导入大量历史记录。
回调校验
爱发电的回调没有签名机制,所以插件不会直接信任请求内容:
- 收到回调后立即返回成功结构(不返回时平台判定为失败)
- 异步调用
query-order反查订单,确认单号一致、真实存在且支付成功 - 只有校验通过的订单才会入库,伪造请求会被丢弃
- 记录以
afdian-{订单号}为唯一标识,重复推送不会重复创建
订单昵称与头像通过 query-sponsor 反查,带 10 分钟缓存;查不到时昵称显示为「匿名读者」,头像留空。
注意事项
- 回调反查不到时(刚支付就回调、凭据未配置等)不会入库,但会在日志里留一条
warn;平台收到成功响应后不会重推,这类订单需要在后台点「同步爱发电」补齐 - 订单号含大写、空格等不适合作为资源名的字符时会被规整并附短哈希,不影响唯一性
- 「订单自动确认并展示」关闭时,平台订单入库为待确认,仍需人工确认
- 启用爱发电后,插件会向
afdian.com(备用ifdian.net)请求订单与打赏者数据,传输内容为开发者身份标识、请求签名、分页参数与订单号,不含站点内容与访客数据 - 所有外部请求都有 15 秒超时与重试上限,失败时降级;最坏情况(超时 + 重试 + 备用域名)单次调用约 60 秒,只影响爱发电相关操作,不阻塞站点访问
- Token 保存在 Halo 密钥中,不会明文出现在插件设置或前台