Skip to content

插件开发

凌悦易游内置了一套基于 Hook 的插件系统,支持通过 ZIP 包安装、启用 / 禁用、卸载插件,实现支付渠道、登录方式、前端脚本等扩展。

插件包结构

每个插件以独立目录形式存放,打包为 ZIP 后上传安装:

myplugin/
├── info.json           # 插件元信息 (必须)
├── Plugin.php          # 插件主类 (必须)
├── config.php          # 插件配置项 (可选)
├── install.sql         # 安装时执行的 SQL (可选)
├── uninstall.sql       # 卸载时执行的 SQL (可选)
└── Handler.php         # 业务处理类 (自定义)

info.json

插件元信息文件,系统依据此文件识别插件:

json
{
    "name": "myplugin",
    "title": "我的插件",
    "description": "插件功能描述",
    "author": "作者名",
    "version": "1.0.0",
    "icon": ""
}
字段必须说明
name插件标识名,与目录名一致
title插件显示名称
description插件描述
author作者
version版本号

Plugin.php 主类

插件主类需继承系统提供的基类,并通过 hooks() 方法注册监听的钩子:

php
<?php
namespace addons\myplugin;

use app\common\service\addon\BaseAddon;

class Plugin extends BaseAddon
{
    public function hooks(): array
    {
        return [
            '钩子名称' => 'Handler@方法名',
        ];
    }
}

生命周期

方法触发时机
install()安装插件时
uninstall()卸载插件时
enable()启用时
disable()禁用时
upgrade($fromVersion)升级时
hooks()注册钩子映射

config.php 配置项

插件可定义可视化配置项,安装后在后台「插件管理 → 配置」中修改:

php
<?php
return [
    ['key' => 'merchant_id', 'title' => '商户号', 'value' => ''],
    ['key' => 'api_key',     'title' => 'API密钥', 'value' => ''],
];

系统钩子

插件通过注册钩子来扩展系统功能。以下是可用的钩子列表:

支付相关

钩子名触发时机参数期望返回
pay_channels获取可用支付方式terminal, from['pay_way'=>int, 'name'=>string, 'icon'=>string]
pay_create发起支付pay_way, from, order, terminal['config'=>mixed, 'pay_way'=>int]
pay_notify支付回调通知channel, params, raw['out_trade_no'=>string, 'from'=>string]

登录相关

钩子名触发时机参数期望返回
login_methods获取可用登录方式terminal['login_way'=>string, 'name'=>string, ...]
login_auth_url获取三方授权跳转 URLlogin_way, terminal, redirect_uri授权 URL 字符串

前端脚本

钩子名触发时机参数期望返回
frontend_script前端加载插件脚本terminal['css'=>string, 'js'=>string]

渠道 (终端) 过滤

部分钩子支持按终端渠道过滤,只在指定终端上生效:

终端值说明
1H5
2微信公众号
3微信小程序
4APP
5PC

可在后台「插件管理」的渠道配置中,勾选插件在哪些终端上启用。

支付插件开发

系统提供了支付插件基类,开发第三方支付只需实现以下方法:

方法说明
getChannel()返回支付渠道信息(编号、名称、图标)
pay($from, $order, $terminal)发起支付,返回支付凭证
notify($params)处理支付回调,返回订单号
refund($refundData)退款(可选)
queryRefund($refundSn)查询退款(可选)

TIP

pay_way 编号建议从 100 开始,避免与系统内置支付方式冲突。

支付回调地址格式:https://你的api域名/api/pay/pluginNotify?channel=插件名

安装方式

后台上传安装

  1. 进入 后台 → 插件管理
  2. 点击 上传插件,选择 ZIP 包
  3. 系统自动解压、执行安装 SQL、注册钩子
  4. 配置插件参数并启用

插件商店

在「插件商店」中可浏览和安装官方及第三方插件,一键下载安装。

缓存说明

插件钩子信息会被缓存以提升性能。安装、卸载、启用、禁用操作会自动清除缓存,无需手动处理。

凌悦易游 · 游戏陪玩接单平台