ZBlogCMS 能不能实现付费阅读功能

liulian
liulian 初级会员超兽战士
发布于 2026-10-08 12:02 ·1 浏览 ·0 回复

能,但 ZBlogPHP 自身不带这个功能,得靠插件或自己写钩子。学完这篇你能判断该装现成插件还是自己接支付,并且知道每一步在后台点哪里。

第一步:确认版本和环境,决定走哪条路

这一步要做的是摸清自己的站跑在什么环境上,因为 ZBlogPHP 1.6 和 1.7 的插件不通用。登录后台,看页面底部版权行会写着类似「Z-BlogPHP 1.7.3」,这就是版本号;再看服务器 PHP 版本(后台 → 网站设置 → 全局设置 里一般有显示,或问主机商)。1.7.x 要求 PHP 7.4 以上,低于这个数很多付费插件装不上。

路线只有两条:一是装应用中心现成的付费阅读插件,适合不懂代码的;二是自己写插件接支付接口,适合要对接自家会员体系或想省插件年费的。

注意:动手前先在后台 → 数据库管理 导出一次 SQL 备份,装支付插件涉及新建数据表,出问题好回滚。

第二步:装现成插件(推荐先试这条)

结果是你后台会出现一个「付费阅读」设置页,发文时能勾选收费。步骤:后台 → 应用中心(左侧菜单)→ 搜索框输入「付费阅读」,能看到若干插件,比如「文章付费阅读」「内容隐藏」这类。点进插件详情页,先看「适用版本」是否包含你的 ZBlogPHP 版本,再看是否要求先装「用户中心」类插件(很多付费插件靠它做登录和扣费)。确认后点「安装」→「启用」。

装完去 后台 → 插件管理 → 找到该插件 → 点右侧「管理」,进去填支付宝商户号、应用私钥、支付宝公钥(这几个在支付宝开放平台「我的应用」里拿),并设置默认单价、免费试读比例。

发文时打开 文章管理 → 新建文章,编辑区下方或右侧会多出「付费阅读」面板,勾上「启用付费」再填价格即可。

注意:如果你装了静态化或 Redis 缓存类插件,一定要把付费文章排除在缓存外,否则缓存会把全文吐给所有人,钱就白收了。

第三步:自建方案的思路(只会代码的人看)

结果是你完全控制逻辑,不依赖第三方插件。核心就三件事:截断正文、记订单、收回调。

用 ZBlogPHP 的 Filter_Plugin_ViewPost_Template 钩子挂到主题模板上,在 $article->Content 输出前判断:当前登录用户($zbp->user->ID)在订单表里有没有这篇文章的已支付记录,没有就把正文按试读比例截断,后面拼一个付款二维码。

支付走支付宝当面付的 alipay.trade.precreate 接口拿到二维码链接,微信侧对应 /v3/pay/transactions/native。异步通知地址填你自己写的 notify.php,收到后校验签名、核对金额,再往订单表写一条已支付记录。

注意:个人身份基本开不了微信 Native 支付,需要营业执照;支付宝当面付个人可申请但有限制。做之前先确认资质,别写完代码才发现收不了钱。

第四步:前端验证

结果是你确认「没付钱的人看不到全文」。用一个没登录的浏览器(或无痕窗口)打开付费文章,正常应该只看到试读部分;再在数据库里手动把订单状态改成已支付,刷新页面,全文应该出现。这一步必须测,很多插件默认只隐藏 HTML 不截断源码,右键查看源代码就能看到全文。

小结

  • ZBlogPHP 无内置付费阅读,靠插件或自写钩子实现。
  • 装插件前核对版本号和 PHP 版本,并先备份数据库。
  • 支付资质是硬门槛,个人身份受限,先确认再开发。
  • 缓存插件必须排除付费文章,否则等于免费公开。
  • 上线前用无痕窗口验证,确认源码里也没漏出全文。
版权声明:本文来自 GJ站长论坛《ZBlogCMS 能不能实现付费阅读功能》
原文链接:https://www.gj0.com/thread-939.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~