必须将thinkphp插件设计为持续服务入口:基础版免费但锁核心功能,通过free_mode字段控制本地/远程校验;许可证绑定设备指纹(cpu/主板+mac+php id)而非ip;按需开通高级模块、用量预警触发付费、静默升级引导转化。

想靠ThinkPHP插件赚钱,不能只卖源码压缩包——用户买完就跑,没有复购、没有续费、没有数据沉淀。必须把插件设计成“持续服务入口”,让每次更新、每项配置、每个新功能都成为二次付费机会。
基础版免费,但核心能力锁死
在插件的config.php或install.sql中,用字段标识功能开关:free_mode=1表示启用免费模式,此时所有API调用走本地校验;free_mode=0则强制调用远程许可服务接口(如/api/license/check)。【free_mode字段不可被前端修改,必须由后端SQL写入且仅在安装时初始化】
免费版默认关闭“多站点同步”“自动备份归档”“API批量调用”三项功能,对应按钮灰显+鼠标悬停提示“升级专业版解锁”。
这一步操作起来很简单,直接把文件拖进去就行。
许可证绑定设备指纹而非IP
第一步:采集客户端硬件特征组合——CPU序列号(Windows)/主板UUID(Linux)+当前Web服务器MAC地址+PHP唯一安装ID(md5(php_ini_path . $_SERVER['DOCUMENT_ROOT']))。
第二步:三者拼接后SHA256哈希,作为该实例唯一license_key,提交至授权中心生成带签名的token(有效期90天,含时间戳和随机盐值)。
第三步:插件每次启动时校验token有效性,过期后降级为免费模式,但保留全部历史数据——用户续费只需重新激活,不丢失任何配置记录。
注意:不要用$_SERVER['REMOTE_ADDR']做绑定依据,Nginx反向代理或CDN会污染真实IP,导致频繁误判失效。
按需开通高级模块
方法一:后台“模块市场”页签内,列出已安装插件的可扩展功能包,如“微信模板消息增强包”“Excel导出加密版”“PDF水印定制引擎”。每个包单独定价,购买后即时写入user_plugin_module表,触发钩子自动加载对应Service类。
方法二:在插件设置页底部嵌入“用量仪表盘”,显示当前月API调用次数/导出文件数/并发连接数,当达阈值80%时弹出浮动窗:“剩余23次调用,升级企业版享不限量”。点击跳转至支付页,订单号携带module_code参数(如wx_tpl_v2),支付成功回调直接更新user_plugin_quota记录。
【module_code必须与数据库plugin_module表中的code字段完全一致,大小写敏感,否则权限写入失败】
静默升级触发付费提醒
插件检测到新版本时,不强制覆盖,而是将新版diff patch存入/data/plugin_updates/目录,并在后台系统通知栏显示黄标:“v2.4.1可用|含AI摘要生成(需开通)”。
用户点击“查看详情”,页面展示新增功能对比表,其中标★的功能全部标记为“高级特性”,点击“立即启用”跳转至对应模块购买页。
若用户选择“忽略本次更新”,系统记录ignore_version日志,但7天后再次提示——避免一次忽略就永久丢失商业触点。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











