随着文章越来越多,在分享的同时有些高价值的文章也希望能进行一定程度的创收。
1.需求
需求其实比较简单,因为我本身是通过Hugo+Cloudflare Pages实现的Blog网站,那么付费订阅就计划让 Worker 动态识别每一篇文章的属性,只要文章开启了 premium 开关,就根据 KV 里的订阅有效期来决定是否放行。
所以这个方案的核心思路是:Hugo 负责生成内容,Cloudflare Workers 负责在"边缘"守门。
由于 Hugo Pages 是静态的,如果不加控制,所有人都能看到全文。通过 Cloudflare Pages Functions 的 HTMLRewriter 接口,我们可以在页面传给用户之前的几毫秒内,动态地把正文"挖掉"并替换为摘要 + PayPal 订阅按钮。
完整的自动化链路如下:
用户访问溢价文章
→ 看到摘要 + PayPal "Subscribe" 黑色按钮
→ 点击 → PayPal 弹窗 → 确认订阅(绑卡 / 登录)
→ SDK onApprove 回调 → 前端 fetch /api/grant-access
→ 后端 grant-access.ts 向 PayPal REST API 验证订阅状态
→ 写入 KV(30 天有效期)→ 页面自动刷新 → 全文解锁 ✅
下个月 PayPal 自动扣款
→ PayPal Webhook 通知 → /api/paypal-webhook
→ 验证签名 → 自动延长 KV 有效期 → 全程无感知 ✅
用户取消订阅
→ KV 自然过期 → 付费墙重新出现2.代码逻辑
项目 functions/ 目录下部署了 3 个 Cloudflare Pages Function,各司其职:
🔒
本文为付费深度内容
订阅后即可解锁所有付费文章。每月自动续费,可随时取消。