跳至内容
Blog付费订阅的设置和开通

随着文章越来越多,在分享的同时有些高价值的文章也希望能进行一定程度的创收。

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,各司其职:

🔒

本文为付费深度内容

订阅后即可解锁所有付费文章。每月自动续费,可随时取消。