返回首页

发卡端对接授权中心

发卡商城主程序通过统一的客户端库与授权中心交互,开发者无需自己拼装 HTTP 请求和签名。本章覆盖系统授权、应用商店、付费插件守护和应用更新的集成原则。

客户端库一览

模块职责典型场景
系统授权客户端库系统授权激活、授权状态缓存与降级后台「正版授权」、授权状态展示
付费应用授权库付费插件 / 模板授权守护付费应用主文件顶部接入
应用商店模型应用列表、详情、购买、续期、下载、更新检测后台应用商店页、应用升级
授权中心域名通过配置项注入,业务代码应使用系统封装的客户端库。不要在插件里硬编码授权中心地址,也不要自行拼接内部接口。

一、系统授权接入原则

系统授权、域名绑定和授权状态刷新均应通过官方客户端库完成。第三方插件或模板只需要读取授权状态、展示必要提示,不应自行拼接激活、探测或刷新接口。

  • 写场景(激活/绑定)只在后台授权页面触发。
  • 读场景(授权状态展示)使用系统封装能力,失败时应降级提示,不要让整站不可用。
  • 授权中心地址、授权码、域名等鉴权字段由系统统一维护。

二、应用商店模型 Store_Model

Store_Model 是发卡端对应用商店的统一入口,已封装鉴权、错误码、余额变动钩子和分佣写入,业务代码不要直接 curl 应用商店内部接口

常用方法

方法说明典型调用方
getList($type, $page, $pageNum, $keyword, $sortId, $templateType)分页拉取应用列表,返回会员价admin/store.php
getDetail($appId)读取单个应用详情(含定价 / 月付 / 试用配置)应用详情弹窗
buyApp($appId, $buyType, $months)购买 / 续期 / 试用,自动走授权中心余额后台「立即购买」按钮
应用购买、续期、下载等写操作应全部通过系统后台和官方模型触发,不建议第三方插件直接调用底层交易接口。

四、付费插件守护接入

付费插件必须自己在主文件顶部调用 PluginLicense::verify()。完整示例见「授权守护与加密交付」章节。核心要点

  • 授权守护要写在主文件最前面,未通过授权时 return,不要 die / exit
  • 授权失败时尽量保持插件目录可继续被扫描到,避免影响后台识别。
  • 不要在自己插件里复制或改写授权库。
  • 不要使用自定义授权地址绕过统一鉴权。

集成检查清单

要求
授权中心地址从系统配置读取,不硬编码
系统授权激活统一走官方客户端库,不直接拼 URL
系统授权校验统一走官方客户端库,依赖其缓存与降级
付费插件守护主文件顶部 PluginLicense::verify($slug),未通过 return
应用市场调用统一走 Store_Model,不直接 curl 底层接口
更新检测模板类必须传 type,避免 slug 冲突
错误降级授权中心不可达时使用旧缓存,不要让站点整站打不开
日志授权失败 / 余额不足 / 守护异常建议写到运维日志而非用户日志